原理
非対称暗号化(公開キー暗号化) は、一方向関数の存在に基づいています。つまり、この関数をメッセージに適用するのは簡単ですが、メッセージを変換した瞬間からそのメッセージを再度見つけるのは非常に困難です。
実際には、一方向および秘密侵害機能が非対称暗号化で使用されます。このような機能は、秘密キーと呼ばれる秘密に保たれた特定の情報を持っていない限り、元に戻すのは困難です。
このような関数から、物事がどのように機能するかは次のとおりです。アリスは、暗号化されたメッセージを誰からでも受信できるようにしたいと考えています。次に、RSA などの非対称暗号化アルゴリズム (リストはこちら) を使用して、一方向の秘密侵害関数から値を生成します。
それはブロードキャストされますが、この機能を反転できるようにする情報は秘密に保たれます。私たちは、(セキュリティを心配する必要なく)配布する情報の公開キーと、(アリスの独占的所有物であり続ける必要がある)秘密情報の秘密キーについて話します。

暗号化
公開キーの役割の 1 つは、暗号化を有効にすることです。したがって、ボブが暗号化されたメッセージをアリスに送信するために使用するのはこのキーです。もう 1 つのキー (秘密情報) は、を復号化するために使用されます。したがって、違反が見つからない限り、アリスだけがボブのメッセージを読むことができます。
オリジン認証
一方、アリスがメッセージのダイジェストに自分の秘密鍵を使用すると、ボブはそのメッセージが本当にアリスからのものであることを確認できます。ボブは、提供されたダイジェストにアリスの公開鍵を適用します(アリスの公開鍵で暗号化されたダイジェスト)。したがって、メッセージの元の要約が見つかります。アリスが本当に送信者であるかどうかを知るには、このようにして得られた圧縮とメッセージの実際の圧縮を比較するだけで十分です。これにより、ボブは受信したメッセージの発信元について安心することができます。それは本当にアリスのものであるということです。特にデジタル署名はこのメカニズムに基づいて機能します。
類推
安全な
暗号化: アリスは金庫を選びました。彼女はそれを開いてボブに送り、鍵を保管します。ボブはアリスに手紙を書きたいとき、そこにメッセージを残し、金庫を閉めてアリスに送り返します。チェストは不可侵であり、誰も鍵を見つけることができないと仮定すると、アリスだけが鍵を持っているため、受け取り時にチェストを開けることができるのはアリスだけです。
認証または署名: アリスはメッセージを金庫に入れ、ボブに送信する前に閉じます。ボブがアリスの公開鍵を使用して金庫を開けることができた場合、それはアリスのものであり、したがってそこにメッセージを置いたのも彼女であるためです。
2つのロックが付いたボックス
もう 1 つの可能な例えは、2 つの異なるロックが付いた箱を想像することです。一方のボックスを閉じると、もう一方のロックに対応するキーのみがボックスを開けることができ、その逆も同様です。キーの 1 つは非公開で秘密にされており、もう 1 つは公開されており、ボックスを使用したい人は誰でもコピーを取得できると言われています。
メッセージを暗号化するために、ボブはボックスを取り出し、その中にメッセージを入れ、公開キーを使用してボックスを閉じます。もう一方のロックへのアクセスを許可する秘密鍵の所有者 (この場合はアリス) だけがボックスを再度開くことができます。
メッセージに署名するために、アリスはメッセージをボックスに入れ、秘密鍵を使用してメッセージを閉じます。したがって、公開キーを取得した人は誰でもボックスを開けることができます。しかし、ボックスは秘密鍵で閉じられていたため、この人は、メッセージをボックスに入れてそのボックスを閉じたのは確かにこの鍵の唯一の所有者であるアリスであると確信することになります。

アプリケーション
対称キーの安全な送信
非対称暗号化は、対称暗号化に対する主要なニーズを満たします。つまり、許可されていない第三者による鍵の傍受、つまり許可なく暗号化されたデータが読み取られることを防ぐために、2 人の通信相手の間で鍵を安全に共有することです。
対称暗号化メカニズムは計算時間の点で安価であるため、非対称暗号化メカニズムよりも好まれます。ただし、対称暗号化キーを使用するには、2 人の通信相手がこのキーを共有する必要があります。つまり、交換前にそれを知っている必要があります。このキーの通信が安全ではない「クリアな」媒体を介して実行される場合、これは問題となる可能性があります。この欠点を克服するために、対称キーを交換する唯一のフェーズに非対称暗号化メカニズムが使用され、後者は交換の残り全体に使用されます。
認証メカニズム
非対称暗号化メカニズムを使用する主な欠点は、公開キーが、データを機密に交換したいすべての人 (ボブ、キャロルなど) に配布されるという事実です。その結果、秘密鍵を所有する人、アリスが暗号化されたデータを復号するとき、彼女にはこのデータの出所 (ボブ、キャロルなど) を確実に検証する方法がありません。これは暗号化認証の問題について話しているのです。 。この問題を解決するには、認証メカニズムを使用して、暗号化された情報の出所を保証します。これらのメカニズムは非対称暗号化に基づいています。
非対称暗号化による認証の原理:
目的: ボブは、出所を保証しながら、暗号化されたデータをアリスに送信したいと考えています (メッセージ認証。彼はアリスに自分が送信者であることを正式に保証します)。
- アリスは非対称鍵のペアを作成します: 秘密鍵 (彼女が保管)、公開鍵 (特にボブに自由に配布)
- 次にボブは、アリスが以前に行ったように、非対称キーのペアを作成します。ボブは秘密キーを保持し、公開キーをアリスに送信します。
- ボブは自分の秘密鍵(暗号化によるメッセージのデジタル署名) を使用してメッセージを暗号化し、次にアリスの公開鍵(メッセージの実際の暗号化) を使用して再度暗号化します。
- アリスはボブの(二重に)暗号化されたメッセージを受信します。彼女は、最初に自分の秘密鍵を使用してそれを復号化します。この段階では、メッセージはまだボブの秘密鍵によって暗号化されているため、まだ「読み取り可能」ではありません。
- アリスは、ボブの公開鍵を使用してメッセージをもう一度復号します。
この認証方法では、非対称キー ペアの特異性を使用します。公開キーを使用してメッセージを暗号化すると、秘密キーを使用してメッセージを復号化できます。逆も可能です。秘密キーを使用して暗号化した場合、公開キーを使用して復号化できます。
したがって、アリスによって 2 回復号化されたメッセージ (アリスの秘密鍵、ボブの公開鍵) が実際にボブからのものである場合、そのメッセージは「読み取り可能」です (それはボブが書いた [暗号化なしの] メッセージです)。

証明書
非対称暗号化は、証明書に関連付けられたエンティティの公開キーを含むデジタル証明書でも使用されます。秘密キーは、この最後のエンティティのレベルに保存されます。証明書のアプリケーションとは、たとえば、Web サーバー (たとえば、SSL モジュールを備えた Apache) や、単に署名を希望するクライアントなどのエンティティの認証とデジタル署名を管理するための公開キー基盤(PKI) の実装です。前のセクションで説明した方法で証明書を使用して情報を暗号化します。
改ざん防止の秘密鍵?
128 ビット キーを使用した対称暗号化では、 2,128 (38 桁の数字) 通りの方法でメッセージを暗号化できます。したがって、総当たりでメッセージを解読しようとするハッカーは、メッセージを 1 つずつ試す必要があります。
公開鍵システムの場合は異なります。まず第一に、キーが長くなります (たとえば、RSA の場合は最小 1024 ビット)。これは、それらが非常に特殊な数学的構造を持っているという事実によるものです (ビットのランダムなシーケンスを秘密鍵として選択することはできません)。したがって、たとえば 1024 ビットを徹底的に検索するよりも明らかに良い方法があります。キーの数学的構造を利用します (RSA の場合、これは因数分解につながります)。
楕円曲線を使用した暗号技術の現在の開発に注目する必要があります。これにより、(より複雑な理論と実装を犠牲にして)古典的なアルゴリズムよりも大幅に小さいキーの使用が可能になります(現在、160ビットのサイズが非常に安全であると考えられています)。同等のセキュリティレベルを実現します。
歴史的
公開キー暗号の概念 (非対称暗号の別名) は、Whitfield Diffie と Martin Hellman によるものです。これは 1976 年のNational Computer Conferenceで初めて発表され、数か月後に「New Directions in Cryptography」で出版されました。
W. ディフィーと M. ヘルマンは 1976 年の論文で、公開鍵システムを発見できず、その例を挙げることができませんでした。 Ronald Rivest 、 Adi Shamir 、 Leonard Adlemanによる記事「A Method for Obtaining Digital Signatures and Public-key Cryptosystems」で最初の例が得られるまで、1978 年まで待たなければなりませんでした。RSA は、その著者 3 人の名前から取られた略語です。少なくともアカデミック版はそうです。
実際、英国の暗号サービス (GCHQ、政府通信本部) で働いていたジェームス エリス氏は、その少し前にこのアイデアを持っていました。 1973 年に、CC Cocks は、(同じ数字のサービスについて) RSA アルゴリズムと呼ばれるものを説明しました。最後に、1974 年に MJ Williamson が、Diffie と Hellman のプロトコルに非常に近い鍵交換プロトコルを発明しました。これらの調査結果は 1997 年に GCHQ によって初めて公表されました。
