RSA [RSA78]における処理手続きを図III.6に示す.
RSAの復号化では秘密鍵
を指数とするべき乗剰余算が行われるため,
III.2.2.1節で述べたSM-1への攻撃をそのまま用いることで
RSAに対するプローブ解析を実行することができる.
復号化のべき乗剰余算では暗号文
と法
とが既知であり,
プローブ解析から秘密鍵
を直接求めることが可能である.
DSA (Digital Signature Algorithm) [DSA95]における処理手続きを 図III.7に示す.
前述のRSAとは異なり,DSAでは秘密鍵
が
署名手続きにおけるべき乗剰余算の指数として用いられていないため,
(i)の
の計算にプローブ解析を適用する.
の計算では指数
以外の
は既知であり,
III.2.2.1節で述べたSM-1へのプローブ攻撃を
実行して
を求めることができる.
一方(ii)より
プローブ解析では各ラウンド毎に
か
どちらか片方のレジスタのビット値を測定する.
今,レジスタ
をプローブするとし,1組の平文と暗号文を用意して
最終16段目の鍵
の6ビットを求めることを考える.
この鍵
の6ビットを
と書き,
と
関数等で演算処理が行われるレジスタ
のビットを
と書く.
まず
において
プローブ解析から
と
が分かっているため,
の推測値を
として
を計算する.
一方,暗号文に初期転置
をかけることで
の正しい値を
得ることができるため,これと
とを比較することで
鍵の推測値
が正しかったかどうかを判断することができる.
プローブするビット数に依存すると思われるが,
文献[HPS99] では鍵の6ビットを求めるには
暗号文が6つあればよいとしている.
以上の手続きは1段目にも同様に適用可能であるため, 1段目と16段目からそれぞれ6ビットずつ, 合計12ビットをプローブ解析から得ることができる. そしてDESの鍵56ビットの残り44ビットに関しては 総当たり検索を行うことで鍵の全ビットを求める.
このようにしてプローブ解析のDESへの適用は可能であるが,
triple-DESに関しては必要な総当たり検索数が
となり
プローブ解析は現実的ではない.
またDESへの攻撃に関しても,プローブするビット位置は任意ではなく
求める鍵のビットと対応していなければならない等の
技術的困難さが含まれる.
RC5に対するプローブ解析ではDESへの適用と同様にレジスタ
か
どちらか
片方のビット値が各ラウンド毎にプローブ可能であることを前提条件とし,
ここではレジスタ
のビット
(上位ビット側から
番目)をプローブするとする.
また暗号化の前処理としてRC5では秘密鍵から拡張鍵テーブルを作成するが,
プローブ解析では秘密鍵そのものではなく拡張された鍵
の解読を目的とする.
RC5への攻撃手順は以下の通りである.
Handschuhらは用意する平文/暗号文は
の数倍程度でよく,
解析は複雑でないとしている.
しかしDESの場合と同様にプローブするビット位置が既知であることを
前提としている点などからは,技術的には困難が伴なうと予想される.