このページをはてなブックマークに追加このページを含むはてなブックマーク このページをlivedoor クリップに追加このページを含むlivedoor クリップ

目次

宣伝

 当サイトにおける暗号に関するページでは、説明が足りなかったり、誤った記述をしていたりするところがあります。今後、少しずつ修正する予定です。

 暗号理論の『暗号技術のすべて』が発売されています。初心者向けの暗号本です。これまで暗号本に何度か挑戦しつつも挫折してしまった方、学校の課題で悩んでいる方、資格試験にて暗号の問題が苦手な方などにお勧めです。

『暗号技術のすべて』宣伝サイト

 興味がある方は宣伝サイトを参照してください。Amazonでも発売中です。

バーナム暗号

 バーナム暗号(ワンタイムパッド)はもっとも理想的なストリーム暗号といえる。バーナム暗号では、送りたいメッセージのビット長と同じ長さの鍵を、送信者と受信者で共有できなければならない。

 このバーナム暗号はかなり強力で、完全に安全な暗号通信が実現できる。アドバーサリーが無限の能力を持っていたとしても、安全ということになる。しかしながら、長いメッセージを暗号化したい場合は、同じ長さの鍵を秘密裏に共有するなどと現実的にほとんどありえない。

バーナム暗号を弱めて、使いやすくする

 そこでバーナム暗号の安全性は少し弱まってしまうが、共有する鍵を短くて済むように工夫したものが、現在のストリーム暗号である。共通鍵暗号系だから、共有している鍵は一様ランダム値となる。つまり、言い換えれば、現在のストリーム暗号は短いランダム値を共有しているということになる。この短いランダム値から擬似ランダム値を生成し、それを追加して全体を鍵として利用するのである。短いものから長いものを作るので、最初に共有している短いランダム値(鍵)をシードという。ポイントは両者が同じランダム値から同じ擬似ランダム値を生成できなければ意味がない。これを実現する方法として、擬似乱数生成器ハッシュ関数が使われる。

バーナム暗号

現実的なストリーム暗号

 この図では、Ψを擬似ランダム関数(長さを長くする)として利用している。

参考文献

  • ゼミノート
  • 『現代暗号の基礎数理』