cryptography

暗号

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

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

「解読」は「復号」の一種ですが、意味合いがかなり違います。「解読」(cryptanalysis)は、どういう方法で暗号化したかを知らないか、あるいは方法は知っていても復号のための鍵を知らない人が、がんばって解析して読むこと、いわゆる「クラック」のことです。

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

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

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

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

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

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

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