web-dev-qa-db-ja.com

暗号化ハッシュ関数を使用して、匿名の記事の著者であることを証明できますか?

私の理解から、ハッシュ関数は一方向関数です。意見記事を匿名で公開したいとしますが、後で記事を書いたのが本人であることを証明したい可能性があります。名前、誕生日、社会保障番号などの識別情報を暗号化ハッシュ関数に入れ、その「仮名」としてそのハッシュを配置することは簡単にできますか?この質問は Deniable proof of authorship と同じ質問ですが、答えがわかりません。また、答えがハッシュ関数の使用に関するものかどうかわかりません。

これが機能する場合、欠点はありますか?私のような人が犯すよくある間違いはありますか?この機能を破る方法は、世界中のすべての個人の識別情報を入力して、それが仮名と一致するかどうかを確認する以外にありません。

1
William Park

私を攻撃する1つの方法は、example @ example.comなどの明らかに偽の電子メールを使用して、新しいPGP/GPGキーを生成することです。公開する作品に署名し、署名が作品とともに公開されていることを確認します。

後で作成したことを確認する必要がある場合は、署名を作成した秘密鍵と公開鍵を掘り下げるだけです。これは、作品が公開される前に、その作品に関する知識とアクセスがあったことを証明するために使用できます。

キーを自分で接続しない限り、第三者が作品を接続することはできません。

もちろん、鍵となる資料をその間の期間に保管する必要があります。

1
vidarlo

短い答え:いいえ

これはハッシュの目的ではありません。代わりに、この目的のためにデジタル署名を使用することをお勧めします。個人情報の投稿とハッシュの投稿に違いはありますか?誰かがハッシュが本当にあなたの個人情報であることを確認するために、彼らはその情報を必要とするでしょう。誰かがあなたがあなたの個人情報をハッシュした人であることをどのように確認できますか?それもできました。

情報セキュリティには、CIA(A)と呼ばれる概念があり、これはConfidentialityIntegrityAvailabilityおよびAuthenticityの略です。 =。特定の暗号化の概念は、これらのサブセットを提供します(今のところ、可用性は省略しておきましょう)。

暗号化:

  • 機密性:true、整合性:false、認証性:false

ハッシュ:

  • 機密性:n/a、整合性:true、信頼性:false

MACs(メッセージ認証コード):

  • 機密性:n/a、整合性:true、認証性:true

デジタル署名(公開鍵暗号):

  • 機密性:n/a、整合性:true、認証性:true

ハッシュはメッセージの整合性のみを提供します(安全な方法でハッシュを提示していると仮定します)。個人情報をハッシュ化することにより、「私の個人情報は変更されていません」という唯一の主張が可能になります。メッセージをハッシュすることで、あなたができる唯一の主張は、「ねえ、このメッセージは変更されていません」。

その記事を作成して信頼性と否認防止性が必要な場合は、公開鍵と秘密鍵のペアを生成し、秘密鍵を使用してメッセージに署名できます。これで署名されたので、公開鍵を使用して署名を投稿できます(これが安全に提示されていることが前提です)。誰もが公開鍵を使用して、メッセージがあなたからのものであることを確認できます。秘密鍵を持つのはあなただけなので、他の誰も署名を真似ることはできません。

これは実際、否認防止と呼ばれるより厳しいセキュリティ原則をもたらします。つまり、そのメッセージに署名したことを証明できるだけでなく、そのメッセージへの署名を拒否することもできません。

1
Thomas

他の回答ではセキュリティのプロパティについて説明しますが、1つはハッシュ関数に言及し、ハッシュ関数がメッセージの整合性のためにどのように使用されるかを示します(HMACなど)。

別の回答は、デジタル署名の使用を示しています。デジタル署名は、メッセージ、この場合は記事の信憑性を検証するための方法です。質問のケースでは、デジタル署名を使用するには、匿名の作成者が秘密鍵で記事に署名する必要があります。これにより、ドキュメントが改ざんされていないこと(整合性)が作成者によって実際に作成されたことを確認できます(認証)。 )公開鍵を使用する。

ここに問題があります。まず、作者は、ある仮名に関連付けられた公開鍵を使用して匿名のままでいる可能性があります。たとえば、ここでの質問はまだアイデンティティに関係しています。仮名は匿名ではないことに注意することが重要です。仮名を使用しても、実際には最終的には何らかのアイデンティティにマッピングされます。この場合、他の人にそれが本人であることを確認してもらいます。つまり、自分の身元を提供する必要があります。 これは匿名の記事を公開するという目的全体を無効にします

だから、あなたの質問に答えるために..いいえ、最終的なケースであなたのアイデンティティを明らかにすることなしにではありません。

1
rshah

ビットコインブロックチェーンを使用して証人として機能できます。

記事を公開する前に、名前とその他の識別情報を文書の「カバーページ」に追加します。次に、このドキュメントのハッシュを取得し、そのハッシュをビットコイントランザクション(具体的には、トランザクションのop_returnフィールド)に格納します。

次に、記事を書いたのが本人であることを証明したい場合は、(カバーページを付けて)文書を公開し、ブロックチェーンで文書のハッシュを参照します。

ブロックチェーンの数レベル以上の深さでブロックを変更することは事実上不可能であるため、これは、ドキュメントがトランザクションの日付の時点でカバーページとともに存在していたことを証明しています。さらに、必要に応じて、同じ署名鍵を使用して別のトランザクションを作成することにより、トランザクションの署名に使用される鍵を所有していることを証明できます。

これは基本的に、proofofexistence.com、stampery.com、opentimestamps.orgなどの背後にある機能です。

0
mti2935