cryptofoundry

cryptofoundry へのお問い合わせ

構築または自動化したい内容をお聞かせください。

記事

ADAMANT Messengerにおける暗号化の概要

ADAMANT Messenger鋳造所から ↗
ADAMANT Messengerにおける暗号化の概要

ADAMANTは、Bitcoin、Ethereum、Signal、Tor、OpenSSH、およびその他多くのシステムで使用されているのと同じ、よく確立された暗号アルゴリズムに依存しています。暗号技術は本質的に保守的であり、すべての暗号は時間の試練に耐えなければなりません。ADAMANTが他と異なる点は、ブロックチェーン自体が分散化、擬似匿名性による匿名性、メッセージの完全性と順序保証、永続的ストレージ、信頼性の高い配信、中間者攻撃(Man-in-the-Middle)への耐性を保証していることです。メッセージやトランザクションは、受信者や中央機関ではなく、ネットワーク上のすべてのノードによって検証されます。この分散化の代償として、ノード運営者を補償するトランザクション手数料が発生します。

アカウントと鍵ペア

ADAMANTアカウントは、12語のBIP39ニーモニックパスフレーズから始まり、約2048¹²の可能な組み合わせの中から約132ビットのエントロピーを提供します。このBIP39シードはSHA-256でハッシュされ、256ビットの値が生成され、そこからEd25519デジタル署名鍵(256ビットの公開鍵と512ビットの秘密鍵)が導出されます。これは、約3000ビットのRSA鍵や強力な128ビットブロック暗号と同等のセキュリティを提供します。ユーザーが目にするADMアドレスは、公開鍵のSHA-256ハッシュの上位8バイトに先頭に’U’を付けたもので、64ビットの識別子となります。Ed25519の公開鍵は、ユーザーの最初の送信トランザクションとともにブロックチェーン上に公開されます。

メッセージの暗号化

暗号化されたメッセージの送信では、ユーザーのEd25519署名鍵がCurve25519 Diffie-Hellman鍵(256ビットの公開鍵と256ビットの秘密鍵)に変換され、通信相手間での非対称暗号化が可能になります。メッセージはCurve25519-XSalsa20-Poly1305暗号(NaCl.box)で暗号化され、XSalsa20と192ビットのnonce、およびPoly1305による認証付き暗号化により、データの完全性とメッセージの真正性が検証されます。

キー・バリュー・ストレージ(KVS)

キー・バリュー・ストレージでは、ユーザーのEd25519署名鍵を使ってXSalsa20-Poly1305の秘密鍵が導出されます。データはノイズを加えたJSONオブジェクトとしてシリアル化され、NaCl.secretboxで暗号化されます。これもまた、XSalsa20と192ビットのnonce、Poly1305による完全性および真正性の検証を使用しています。

トランザクション署名

トランザクションデータ(タイムスタンプや暗号化されたメッセージを含む)はSHA-256でハッシュされます。送信者は、256ビットの公開鍵と512ビットの秘密鍵を持つEd25519を使ってこのハッシュに署名します。トランザクションIDは、この署名のSHA-256ハッシュの上位8バイトです。

鍵生成、メッセージの暗号化/復号、トランザクション署名に関する詳細な技術資料は、GitHub上のADAMANTプロジェクトのWikiで確認できます。

ブロックチェーン上でのストレージと量子コンピュータ

一部のユーザーは、暗号化されたメッセージがブロックチェーン上に永続的に保存されることで将来の脆弱性が生じるのではないかと懸念しています。つまり、量子コンピュータが実用化された際、過去に保存されたすべての通信が遡って復号される可能性があるのか、という点です。

この懸念はADAMANTに特有のものではありません。量子暗号解読は、国家の機密、インターネット通信、保存データなど、ITインフラ全体を脅かします。なぜなら、現代のほぼすべてのシステムが同じ暗号プリミティブ群に依存しているからです。PRISMのような大規模監視プログラムはすでに通信を収集・保存しているため、今日傍受された暗号化データは、使用されたプラットフォームに関わらず、将来の暗号解読技術の進展によって標的にされる可能性があります。

量子暗号解読は魔法ではありません。特定の問題に対して理論的な高速化を提供しますが、現在の暗号方式は十分な安全マージンを持っており、実際にはこれらの高速化が無効になる可能性があります。さらに、攻撃者はブロックチェーン全体を一括で復号することはできません。各アカウントは異なる暗号鍵を使用しているため、攻撃はアカウントごとに個別に実行する必要があります。ADAMANTアカウントは匿名であるため、攻撃者はまず、どのアカウントが標的に値するかを特定する必要があります。

実用的な量子暗号解読が実現するまでにはおそらく数十年かかり、その間に暗号技術に対する最大の脅威は量子コンピュータ以外のものになる可能性もあります。もし耐量子暗号アルゴリズムが必要になった場合、ADAMANTは他のメッセンジャーやプロトコルと同様に、暗号方式を適応させることができます。

運用セキュリティの観点から、ADAMANTはワンタイムまたは短期間の通信に用い、頻繁にアカウントを切り替えることが推奨されます。新しいアカウントの作成には約1秒しかかからないため、アイデンティティのローテーションが現実的になり、単一のアカウントが漏洩した場合のリスクを最小限に抑えることができます。