共通鍵暗号方式
(秘密鍵暗号方式、対称鍵暗号方式とも)
Symmetric-key cryptosystem (or Secret-key cryptosystem)
共通鍵暗号方式とは、暗号化に使う鍵と、復号に使う鍵が同じ暗号方式のことを言います。暗号と言ったときに普通の人が真っ先に思い付くのがこの方式です。
共通鍵暗号方式は秘密鍵暗号方式とも言われますが、公開鍵暗号方式における秘密鍵と混同しやすいため、共通鍵暗号方式や対称鍵暗号方式と明示的に呼ばれることがあります。
- DES (Data Encryption Standard)
IBMが開発し、後に米国の標準となった暗号です。暗号方式としては一番有名な方式でしょう。
数ある暗号方式の中でも歴史も古く、さまざまな暗号攻撃にも耐え続けてきました。
鍵の長さが56bitの暗号方式としては事実上一番安全な暗号方式ということができるでしょう。
DESは暗号化する対象を8バイト(64bit)毎に処理するブロック暗号です。
しかしDESが標準になったのは1977年。さすがにムーアの法則(1年半から2年で集積密度が倍になる…ということは20年なら少なく見積もっても2の10乗、1024倍ですね)には耐えられず、今ではビジネス用途には不十分な強度という認識が一般的です。実際The RSA DES Challenge IIでは5ヶ月ほどで鍵が解読されてしまいました。この後継となるのがAESです。
- AES
(Advanced Encryption Standard) (Rijndael)
DESの後継としてNISTが募集し、最終的にVincent Rijmen氏とJoan
Daemen氏が開発したRijndaelという暗号が認定されました。AESの鍵長は128/192/256bit、ブロック長は128/192/256bitの中から自由に組み合わせて利用することができます。
蛇足ですが、Vincent Rijmen氏とは一度お会いしてお話したことがあります。
- CAMELLIA
NTTと三菱が共同で開発した暗号です。AESと互換で利用できる、とあるのですが、Rijndael自体はブロック長も192/256bitが使えるのにCAMELLIAはブロック長は128bit固定のようです。AESとしてはブロック長128bit固定ということになるのでしょうか?
ちょっとこのあたりが不明です。
- FEAL (Fast Data Encryption Algorithm)
NTTによって開発された暗号方式で、日本では比較的広く使われています。例えばS型と呼ばれる日本のICカードの規格などにも採用されています。名前の通り、暗号化が速いことが特徴です。FEALのうち、もっとも広く使われているものがFEAL-8で、64bit鍵で暗号化処理を8回繰り返すものです。
FEALは当初暗号化処理の繰り返し回数が4回のものが発表されましたが、すぐに解読されました。そこで、8回にしたFEAL-8を発表し、同時に100万円の懸賞金付きの問題を発表しました。
結局その問題を期限内に解くことが出来る人はいなかったのですが、FEAL-8に関しては多くの解読報告が学会でされています。
最近では、ある条件下では12個の暗号文と平文の組で鍵が分かってしまうとの報告もされています。ただし、これらの報告はかなり特殊な状況なので、これらの報告の内容を把握した上で危険の無いような運用を行うことは十分可能です。
後に暗号化処理の繰り返し回数を自由に設定できるFEAL-N、鍵の長さを128bitにしたFEAL-Xなどが発表されました。
FEAL-8以上についてはNTTが特許を申請中であり、これが受理される可能性が高いと言われているのでFEALを使用する場合は注意した方が良いでしょう。
FEALはDESと同じく、暗号化する対象を8バイト毎に処理するブロック暗号です。
- IDEA(the International Data Encryption Algorithm)
James Massey氏とXuejia Lai氏が考案した128bitの鍵を使用し、64bit毎に暗号化を行うブロック暗号です。 暗号処理繰り返し数は8回です。PGPで使われているのが有名です。
- RC4
RSAを開発したRonald L. Rivest氏によるストリーム暗号の共通鍵暗号方式です。
Ron's Cipherの名前を取ってRCというのではないかといわれています。この暗号方式は、鍵の長さを自由に変更することができるという利点があります。
- RC2
RSAを開発したRonald L. Rivest氏によるブロック暗号です。RC2とRC4は1バイトごとに暗号化できるか、数バイト毎に暗号化するかの違いがあります。(ストリーム暗号であるRC4の方が1バイト毎に暗号化ができます)
- RC5
RC2の改良型。
- Triple DES
DESの暗号/復号処理を3回実行して暗号化を行う方式です。処理の組み合わせかたでいくつかのモードが存在します。
DES-EDEモードでは、56bitのDESの鍵を二つ(A,Bとする)使い、データを暗号化するときには、Aで暗号化処理をした後にBで復号化処理、そして再びAで暗号化処理する暗号方式です。
一時期Double DESがありましたが、DESよりも弱いことがわかり、Triple
DESの出番となりました。(これをバースデーパラドックスといいます。簡単に説明すると、二人が同じ誕生日である確率はほぼ1/365であるのに対し、40人ぐらいいる中に同じ誕生日の人がいる確率は1/2に近く、予想よりも非常に高い確率になるというものです。)
Tripile-DESは、DES用に開発されている高速なLSIがそのまま利用できたり、DESの大きな実績があるなどのメリットがあるので、ビジネス用途として比較的広く使用されています。
- SkipJack
KeyEscrowを盛り込んだ暗号方式で、鍵交換にはKEA(Key Exchange Algorithm)を使います。これをワンチップ化したのが有名なClipper
Chipです。
- ワンタイムパッド
数学的に証明されている、ただ一つの絶対破られない究極の暗号がワンタイムパッドです。この暗号方式は、暗号化する対象と同じ長さの鍵を用意し、1バイト毎に鍵と暗号化の対象を演算して暗号化します。当然鍵は規則性の無い乱数列であることが前提です。一度使った鍵は二度とつかってはいけません。
欠点は…言わなくても分かりますね。
- 量子暗号(量子通信)
ワンタイムパッドの課題を解決することができるのが量子通信です。量子通信は、物質を構成する非常に小さな粒子を使って通信を行うもので、盗み見すると情報が変わってしまうため、それを検出できるという特性があります。この特性を利用して安全に暗号鍵を送付し、それをワンタイムパッドで使えば、理論的に破ることができない暗号が完成する、ということになります。ただし、量子通信は今までの通信インフラと全く異なる通信ですので、実用化されたとしても特殊な環境で使われるにとどまるでしょう。(もちろんインターネットでは利用できません。)
- SXAL8/MBAL
ローレルインテリジェントシステムが開発した暗号システムです。DESより100倍高速とうたっています。1995年10月にISOの12番目の暗号方式として登録されたということです。(しかしこれは安全だということをあらわすものではありません。)暗号の世界でこの暗号方式を検証したという話は聞いたことがありません。
- GCC(Gao's Chaos Cryptosystem) Chaos暗号
高
振宇氏によるカオス理論を暗号に利用した暗号方式です。詳しくは国際情報科学研究所のWebを参照してください。
1995年10月から1997年いっぱいまで1000万円の賞金をかけて解読コンテストが行われましたが、解読者は出ませんでした。
- バーナム暗号
ワンタイムパッドに似ていますが、乱数列を発生する関数を用意し、その関数の種を鍵として使用する方式です。暗号としての強度はその関数の乱数性に依存します。
アルゴリズム非公開の暗号などではよく使われているらしいです。ただし、ものの本によれば、暗号学において解読が容易な暗号方式の例として使われる暗号方式でもあるということです。
(もちろん、その関数が発生する疑似乱数が予測不能であるならば問題はありません。カオス暗号もこの一種ですね。)
- MISTY
(Mitsubishi Electric's Information Security Technology)
三菱の開発した暗号です。特許化されていますが、申し込めば基本的に無償で利用できるとのことです。
- Blowfish
APPLIED CRYPTOGRAPHYの著者、BRUCE SCHNEIERによる暗号です。
- Twofish
Blowfishの改良型。AESの最終候補まで行きましたが、残念ながら落選してしまいました。(Counterpane社のページ)
- RC6
RC5の改良型。これもAESの最終候補まで行きましたが、残念ながら落選してしまいました。
| Copyright (C) Keiichiro Oguma / All rights reserved. |

|