ダミー用の電子署名:それが何であり、どのようにチョークしないか。 パート2

パート1



引き続きデジタル署名に関する秘密の知識を簡単な言語で明らかにしながら、S / MIME + X.509キャンプとPGPキャンプの主な違いだけでなく、デジタル署名に関する便利で効率的な作業に必要なものを分析します。







これら2つの大きなキャンプの機能を検討する前に、受信者が署名を検証するために必要な情報(および暗号化されたハッシュは既に署名と呼ぶことができます)、およびどのような形式で彼に転送できるかを検討する価値があります。



情報の各部分は、公開鍵と一緒に、または私たちの署名と一緒に送信することができます。あるいは、これとそれにより、より便利になります。 もちろん、公開鍵で送信された情報と署名で送信された情報を分離することはできません。 ただし、署名された情報を送信するたびに、同じものを送信します。 送信する紙の手紙ごとに(2行の短い手紙でも)、「Hello!」という形式の付録を添付します。 モスクワの赤の広場で出会ったV.パプキンは、私たちが出会ってレストランに行き、それから<...>に行きました。 同意する、少し不快。



しかし、署名の検証に必要な情報に戻りましょう。

簡単なものから始めましょう。この署名を行った人を見つけることができる情報です。 すでに合意したように、非対称暗号化により、公開キーと受信した署名を一意に関連付けることができます。 問題は、公開鍵自体が一連のバイトであるということです。 さらに、もちろん、それは私たち(つまり、送信者)が所有するクローズドと接続されていますが、この接続は受信者には明らかではありません。 彼は、V。Pupkin、I。Petrov、S。Sidorovからのバイトセットを持っています。 そして、彼はどのようにそれらを識別することができますか? 誰がどのバイトセットに属しているかについて、別個のレジストリを保持しますか? これが、 2番目のレジストリであることが判明したものです(書き込み先に加えて、どのハッシュ関数でどのハッシュが作成されるか)。 そして再び、不快です!



そのため、各公開キーをこのキーの所有者に関する情報に関連付けて、すべてを1つのパッケージで送信する必要があります。 その後、レジストリの問題はそれ自体で解決されます。公開キーを持つパッケージ(より正確にはコンテナ)を簡単に表示し、その所有権をすぐに理解できます。



ただし、この情報は、受信者が受信した署名に関連付ける必要があります。 どうやってやるの? 今度は署名を転送するために別のコンテナを作成し、その署名内でこの署名を作成した人に関する情報を複製する必要があります。

美しい城との類推を続けて、キーに「このキーはV. Pupkinのロックを開きます」と書きます。 城には「V.パプキンの城」も書いています。 この情報を使用して、ボックスの受信者は自分が持っている各キーをランダムにロックに挿入するのではなく、キーを受け取ってすぐに開きます。



これで、検証中に送信された情報に従って、公開キーのコンテナを見つけ、そこからキーを取得し、ハッシュを復号化して...



しかし、実際には、その「そして」? どのハッシュ関数がハッシュに使用されたかに関する情報を受信者に伝える方法の問題はまだ解決していませんが、署名を検証するにはこの情報が必要です! これは非常に簡単に解決できます。この情報を公開キーとともにコンテナに入れます。 結局のところ、デジタル署名を作成する手順と見なされるのは「ハッシュ-ハッシュ結果の暗号化」の組み合わせであり、その結果は署名と見なされます。 したがって、ハッシュ暗号化アルゴリズムと、それを束にするためのハッシュ関数を組み合わせるのは十分に論理的だと思われます。 そして、この情報を一緒に提供する必要があります。







次に、署名者情報に戻ります。 これはどのような情報ですか? 氏名? いいえ、多くのV.パプキンがいます。 名前+生年月日? そのため、同じ日に生まれたV.パプキンがたくさんいます! さらに、Vasily、Victor、またはVasilisaまたはVictoria Pupkinyである場合もあります。 したがって、より多くの情報があるはずです。 私たちが人を特定するすべてのパラメータの一致が可能な限り信じられないほど大きいはずです。



もちろん、このような情報のパッケージは可能です。 それはただ、彼と仕事をするのはすでに難しいことです。 結局のところ、公開キーコンテナは、最後に並べ替え、保存、使用する必要があります。 また、使用するたびに50個のパラメーターを指定する必要がある場合、2番目のコンテナーで何かを変更する必要があることが明らかになります。 もちろん、この問題の解決策が見つかりました。



それが何であるかを理解するために、私たち全員が持っている紙の文書、つまりパスポートを見てみましょう。 その中で、名前、生年月日、性別、その他の多くの情報を見つけることができます。 しかし、最も重要なのは、その中にシリーズと番号を見つけることができることです。 そして、考慮に入れて分類するのに便利な固有の情報であるのはシリーズと番号です。 さらに、これらはすべての残りの情報をまとめたものよりも大幅に短く、同時に個人を識別することができます。



同じ方法を公開キーコンテナに適用すると、各コンテナには特定の番号、それに固有の文字のシーケンスが必要になります。 この一連の文字は通常識別子と呼ば 、コンテナ自体は証明書または単にキーと呼ばれます。

これが、OpenPGPとS / MIME + X.509のイデオロギーにおける根本的な違いの始まりです。 それらを簡単に理解するために、パスポートの例えに戻りましょう。



パスポートは、チケットの購入時、書類の発行時、領土へのパス発行、さらには他の国でも使用できます! つまり、さまざまな場所で、多くの場合、互いに完全に無関係な場所で、さまざまな人とあなたの性格を識別するために使用します。 そして、どこでもパスポートが受け入れられます。 あなたがあなたであることの保証は、他者との関係における第三者、つまり国家です。 特別に発行され、署名され、認定されたパスポートをあなたに与えたのは、それがあなたのパスポートがそのような普遍的な文書である理由です。



一方、友人の輪の中や社内では、次のように自己紹介するだけで十分です。 インスティテュートのグループ「または」Vのパプキン 営業部のパプキン。」 そして、このサークルであなたが接触している人々は第三者をもう必要としません、彼らはすでに彼が5年間勉強したグループからのPupkin、または最近夕食に行った営業部からのPupkinを覚えています、そしてあなたが提供した情報は彼らにとって十分です。



これら2つのキャンプを分割することもできます。



X.509証明書は、パスポートに似ています。 ここで、証明書は、あなたの身元を保証する厳しい第三者である認証局(CA)によって発行されます。 署名を受け取った人は、常にCAに連絡して、この特定の証明書に関心のある情報を求めることができます。



PGP(および後に登場するOpenPGP標準)は、いわゆる信頼ネットワークに基づいて作成されました。 この考えは、関係を築くために第三者を必要としない人々は署名を交換するが、悪い人々からの保護のみを必要とすることを意味します。



もちろん、S / MIME + X.509とPGPの両方でライバルキャンプの方法を使用できるので、この区分はすでにかなりalready意的になっています。 しかし、それでも、標準はかなり長い間並行して開発されており、それらの間の相互互換性が不可能になるほど開発されてきました。



より有能なサードパーティの参加を志向しているため、S / MIME + X.509標準はより人気のある標準になりましたが、PGPには一定の数の切り札があり、死なないだけでなく、正常に開発を続けています。

各形式の詳細な説明と、いつ、どこで、どの形式を使用するかに関する推奨事項については、次の記事を参照してください。



パート3



All Articles