単純電力解析
RSA暗号の復号過程において、以下のアルゴリズムが実行されたとする。秘密鍵に相当するdはバイナリ演算を行っていて、nビットの数値であるとする。すなわちd[i]は0or1である。
Calculate M=C mod N INPUT: d,C OUTPUT: M
この場合d[i]=0の場合は1の自乗算の処理のみが行われるが、d[i]=1の場合は1に加え2の掛算の処理も行われる。自乗算と掛算の消費電力が異なることを利用すれば1個の消費電力波形から秘密鍵を導出できてしまう。SPAから秘密鍵を守るには以下の2種類のアルゴリズムが利用される。
Calculate M=C mod N INPUT: d,C OUTPUT: M
Calculate M=C mod N INPUT: d,C OUTPUT: M
上記のアルゴリズムは上から"Add-and-double-always method","Montgomery Ladder"(論文[IIT03]の呼び名)と呼ばれ、d[i]の値に関わらず1と2の演算を行い、3でd[i]の値に即した処理を行うのが特徴である。これにより理論上1個の消費電力波形から秘密鍵を導出することはできない。これら3つの暗号アルゴリズムはRSAのみにかかわらず、ElGamal暗号や楕円曲線暗号など公開鍵暗号全般に適用できる。