cryptography

暗号

暗号関係でよく間違える用語は「復号」と「解読」です。

普通に読める文が平文(へいぶん・ひらぶん)です。それを普通に読めなくする作業が「暗号化」です。暗号化したものが「暗号文」です。暗号文を平文に戻す作業を「復号」といいます(「複合」ではありません。「復号化」という人もいますが「復号」のほうが一般的だと思います)。

一方、「解読」(cryptanalysis)は、復号に必要な情報(秘密鍵とか)を知らない人が、暗号文から平文を推定すること、いわゆる「クラック」のことです。

暗号にはいろいろな方法があります。文字をずらす「シーザー暗号」がよく教科書に出てきます。例えば「IBM」をアルファベットの逆向きに1文字ずらして「HAL」にするようなものです。かつてマイクロソフトがWindowsを刷新するために、「VMS」という有名なOSを作っていた人を雇って、「VMS」の次の「WNT」という意味を込めて「Windows NT」と命名したという都市伝説があります。

シーザー暗号の一種で、アルファベット26文字を13個ずらす ROT13 は、クイズなどの正解がすぐに読めないようにするために使われることがあります。

これらはお遊び暗号です。現在使われている本格的な暗号は、解読が事実上不可能なものばかりです。

暗号には共通鍵暗号と公開鍵暗号があるという話は教科書に載っていると思います。共通鍵暗号で有名なのがAES、公開鍵暗号にはいろいろありますが教科書でよく出てくるのはRSAです。

公開鍵暗号は、公開鍵で暗号化して秘密鍵で復号します。公開鍵暗号のうちRSAは、秘密鍵で変換したものを公開鍵で変換して元に戻すこともできますが、これは公開鍵暗号一般の性質ではありません。

公開鍵暗号技術は、電子署名にも使われています。この場合、秘密鍵で署名して公開鍵で検証します。これは暗号化ではないので、「秘密鍵で暗号化して公開鍵で復号する」と言うのは避けたいところです。

Webのhttpsで使われる暗号化については SSL/TLS をご覧ください。

暗号一般、特に公開鍵暗号関連技術の正確でやさしい説明としては、光成滋生さんの図解即戦力 暗号と認証のしくみと理論がこれ1冊でしっかりわかる教科書をお薦めします。

具体的な暗号や解読の方法についての本サイトの記事:

それ以外の参考: