キャッシュレス決済、ブロックチェーンやIoT(インターネット・オブ・シングズ)…昨今話題のITサービスを支える重要な役割を果たしているのが、暗号技術および暗号鍵を適切に管理する「鍵管理」の技術だ。
ITサービスのセキュリティー確保だけでなく、利便性や拡張性、運用容易性などにも鍵管理のメカニズムが重要な役割を果たしている。本連載は鍵管理に焦点を当て、様々なITサービスの裏側を支える鍵管理の特徴や課題、展望などを数回にわたって解説する。
第1回の本稿は、まず全体総論として暗号技術における「鍵」の機能について基本的事項を解説する。
鍵管理の今昔
やや教科書的な説明となるが、一般に暗号文を作成するには、その処理手順やプロトコルである「アルゴリズム」(例:○文字ずらす)と、その際のパラメーターである「鍵」(例:○=5文字)が必要となる。
かつて暗号といえば暗号文の作成も復号も同じ鍵を使う「共通鍵暗号方式」が主流だった。暗号化する際の「アルゴリズム」と「鍵」は共に通信当事者同士の秘密とされ、当事者間で厳重に管理する必要があった。管理コストは膨大となり、運用に耐えられるだけの組織が必要となるため、実質的には防衛など軍事目的での利用にとどまっていた。すべてがベールに包まれていたのだ。
一方で、「アルゴリズム」を非公開としていたため、そもそもの暗号方式の強度について、専門家や第三者による十分な検証が行われず、結果的に脆弱な「なんちゃって暗号」となっている可能性もあった。
1970年代後半、もっぱら軍事目的だった暗号技術をビジネスで利用できるようにするため、当時の米国国立標準局(NBS)で考案されたのが国際標準暗号「DES(Data Encryption Standard)」である。DESはアルゴリズムの公開を前提とし、十分な強度を持った「鍵」だけを当事者間で秘密にすればよいように設計された暗号方式である。
アルゴリズムが公開されているため、多くの研究者によって安全性が検証され、様々な解読手法に耐えてきた。また、公開されたアルゴリズムを実装した暗号通信装置を民間が開発できるようになり、民間企業においても暗号通信の導入が進んだ。
ただし、通信の両端(両者)で鍵を厳重に管理する必要がある点は変わりない。さらに大勢で個別に暗号通信を行うとなると、管理すべき鍵の数が膨大となる欠点があった。
例えばN人で相互に暗号通信するには、系全体でN(N-1)/2個の鍵が必要となり、Nの2乗のオーダーで増えていく。そのため、共通鍵暗号の用途は事前に登録した少数の拠点間の暗号通信にとどまっていた。
この欠点を克服すべく登場したのが「RSA(Rivest-Shamir-Adleman)」に代表される公開鍵暗号方式や、「DH(Diffie-Hellman )」に代表される鍵交換方式である。
これらの方式は、自身の持つ鍵ペア(公開鍵と秘密鍵)のうち、秘密鍵だけを秘密に管理すればよい。例えば、N人で相互に暗号通信/鍵交換するには、系全体でN個の鍵だけで十分であり、線形オーダーで済む。
このため、見ず知らずのたくさんの人が参加するインターネットであっても、各個人が自己の鍵を管理するだけで、暗号通信が可能となった。鍵の数が爆発せずに済み、事前登録や申請手続きも不要となった。個人間の暗号処理が大きく普及するためのブレークスルーとなったのだ。