Q. 共通鍵と公開鍵の暗号化方式の違いは? A. 共通鍵は暗号化と復号に同じ鍵を、公開鍵は異なる鍵を用いています。 |
歴史の古い共通鍵暗号
暗号は通信内容を秘匿するために古くから使われてきた手法だ。現在では、便利だが盗聴や改ざんなどのリスクがあるインターネットを利用する際の必須技術となっている。
コンピュータ用の暗号化技術は、データの暗号処理に使われる「鍵」の性格の違いから、「共通鍵暗号」と「公開鍵暗号」の2種類に大別される。
まず共通鍵暗号は、通信の送り手と受け手が同一の鍵を使う方式だ。暗号化と復号に同じ鍵を用いることから、対称暗号ともいう。また、その鍵を第三者に対して秘密にしておかなければならないため、秘密鍵暗号とも呼ばれる(図1)。共通鍵暗号の歴史は古く、2000年以上前のローマの英雄シーザーが使用していた「シーザー暗号」まで遡ることができる。現代の多くのUNIXシステムにも、シーザー暗号(「ROT13」)を処理するための機能が標準装備されている。
しかし、シーザー暗号の原理は非常に単純で、コンピュータを用いなくても簡単に解読できるため通信の秘匿のためには適さない。現在、インターネットで広く使われているDESや3DES、AESなどの共通鍵暗号は、高度なアルゴリズム(数学の関数)による暗号処理を行なっており、事実上人力で解析するのは不可能である。
DES(Data Encryption Standard)は、1977年に米国の連邦政府の標準暗号規格となった、もっともポピュラーな共通鍵暗号だ。DESの暗号処理アルゴリズムは米国政府により公開されたため、暗号技術者による多数の研究が行なわれ、暗号化技術の発展に大きく寄与した。
ただし、20世紀末の時点ですでにDESは安全ではなくなっていた。1999年に開催されたDESの解析時間を競うコンテストでは、DESの解析専用機とインターネットで接続された全世界の約10万台のコンピュータによる分散処理の結果、暗号化したメッセージはわずか22時間15分で解読されてしまった。このため、DESのアルゴリズムを3回繰り返して暗号化を行なう3DES(Triple DES)や、DESに代わって米国の連邦標準規格となったAES(Advanced Encryption Standard)が多く使われるようになった。
共通鍵暗号の弱点
共通鍵暗号を用いて通信するには、その前に通信相手に鍵を渡しておく必要がある。しかもその鍵は、相手と自分の2人だけの秘密にしておかなければならない。鍵を安全かつ秘密裏に届けるには相手に直接手渡しするのが一番だが、そもそもひんぱんに会えるのであれば暗号通信の必要はない。相手がなかなか会えない遠隔地にいるからこそ、暗号通信のニーズがあるわけだ。つまり、暗号化通信を必要とする人ほど、鍵を安全に交換することが難しいという問題がある。
さらに共通鍵暗号では、長期に渡り同じ暗号鍵を使い続けていると「総あたり攻撃」という解読法により鍵を解読される危険性がある。先に述べたDESの解析時間を競うコンテストでも、この総あたり攻撃で解読されている。このため、共通鍵暗号を長期に渡り使い続けるなら、定期的に鍵を変更する必要がある。しかし、ここでも鍵の交換が難しいという問題に直面する。このように、「鍵の安全な交換」は2000年を超える暗号の歴史の中で最大の問題であった。
(次ページ、「公開鍵暗号の登場」に続く)
この連載の記事
-
第11回
TECH
今どきのウイルスに対抗する方法を教えてください -
第10回
TECH
ユーザー認証でなにができるのですか? -
第10回
TECH
指紋や顔型でユーザー認証をする理由とは? -
第9回
TECH
電子証明書がなぜ必要か知っていますか? -
第8回
TECH
ファイアウォールはどのように動くのですか? -
第6回
TECH
IP電話にはどのような危険がありますか? -
第5回
TECH
無線LANって本当に安全なの? -
第4回
TECH
SQLインジェクションやXSSって何されるの? -
第3回
TECH
Winnyは使ってはいけないのですか? -
第2回
TECH
不審なメールはなぜ開いてはいけない? - この連載の一覧へ