研究概要 |
鍵更新の工夫により暗号の乱数性が高められることを示すため、以下のようにこれまで広く使われてきたDESを強化する暗号システムを作った場合の信頼性を検証した。DESを利用した通信では、同じ暗号鍵を使い続けると、鍵が破られる危険がある。これを回避するため、一回の通信を終了する度に暗号鍵を更新して、安全性を確保する。256ビットの基本鍵kを秘密に共有し、鍵更新は次のように行う。128ビットの素数s,tで、(s-1)/2も(t-1)/2も素数となるものを選び、N=s×t(256ビット)とする。ここでの基本鍵kのべき乗で生成される乗法群の位数e、すなわち、k^e=1modNをみたす最小の正の整数eは、k^2≠1modNであれば、(s-1)(t-1)/2, (s-1)(t-1)/4, (s-1), (t-1), (s-1)/2, (t-1)/2のいずれかで、どれも十分に大きい。また、これを求めるには、Nを因数分解するか全数チェックすることが必要となり、現在の技術では事実上求められないとみなせる。1回目の通信に用いる暗号鍵g(k,1)は、h(k,1)=k^2modNの最初48ビットとし、i回目の通信に利用する暗号鍵g(k,i)は、h(k,i)=h(k,i-1)^2modNのi(mod256)ビット目から、mod256ビットで連続する48ビットとする。このように基本鍵kを次々に二乗して、未知の2つの素数の積Nでの剰余h(k,i)を作り、これを並べて作った列が、連続するいくつものデータを集めても、次のビットをランダムより良い確率で予測することが難しい乱数列になっていることは、L. Blum, M. Blum, M. Shub (1986)により示されている。よって、万一第三者がいくつかのiについて暗号鍵g(k,i)を用いての通信のデータからDESを解読してg(k,i)を推定できたとしても、法則を見つけることは大変に難しく、他の暗号鍵を推定するには、全数チェック相当の計算が必要となると考えられ、安全に通信を行うことができると考えられる。
|