コンテンツにスキップ
ニムチャットに戻る

知識ベース 人々と話す

耐量子暗号化

Nymchat ユーザー間のプライベート メッセージとグループ チャットは暗号化できるため、 たとえ量子コンピューターが到着したとしても、今日それらを記録しても、攻撃者は何も得られません。

それが解決する問題

通常の Nostr 暗号化 — NIP-44、 どれが何ですか プライベートメッセージ そして グループチャット 上に構築されています — 2 つの部分があります。その半分は 実際にテキストをスクランブルします (ChaCha20、HMAC-SHA256、HKDF) は量子に対して問題なく機能します コンピューター。キーに同意する半分は同意しません。

その重要な合意は、ビットコインが使用するのと同じ数学である、secp256k1 の楕円曲線ディフィー・ヘルマンです。 Shor のアルゴリズムはそれを完全に解決します。公開鍵に対して実行すると誰でも復元されます。 秘密鍵と、その鍵がこれまでに生成したすべての共有秘密が含まれます。

今すぐ収穫し、後で復号化します

これは、量子コンピューターが登場したときに始まる問題ではありません。十分な能力を持つ敵 ストレージは暗号化されたトラフィックを記録できます 今日、座って、数年後に復号化します。 今送信してもまだ重要なものは、すでに公開されています。それが具体的な この機能を攻撃すると無効になります。

仕組み

Nymchat は NIP-44 メッセージフォーマットを完全に独自に残します。すでに使用している主要な合意は未触れ、その周りに 2 つ目の独立したメッセージが追加されます。

  • 標準 secp256k1 ECDH、以前とまったく同じです。
  • ML-KEM-768、ポスト量子アルゴリズム NIST として標準化 FIPS 203。 そのセキュリティは格子問題に基づいていますが、Shor のアルゴリズムはこれに触れません。

この2つは 混合ではなく、混合メッセージは、いつものようにNIP-44で暗号化され、完成した暗号化テキストは、その後、次量子層(ChaCha20-Poly1305)の内側に2度密封され、ML-KEMの共有秘密から鍵付けられています。送信者のキー、受信者のキー、カプセル化の暗号化テキストと受信者のML-KEMキーは、文脈としてその由来に結びついているので、一つのレイヤーを一つの交換から取り出して別のものに再生することはできません。

X-Wing や Signal's PQXDH のような組み合わせは、代わりに両方の秘密を 1 つのキーに混合します。Nymchat はそうではありません、その理由は暗号化よりも実用的です: 混合には原料の ECDH 出力が必要であり、ブラウザ拡張子またはリモート署名器はそれを返すことはありません - それはキーを保持するための完全な暗号化テキストを返します。

重要な資産はどちらも同じです:結果は 最強の半分ほど強く、メッセージを読むことは、両層を通過することを意味します。グリッド暗号化が期待以上に弱くなった場合、ML-KEMを破ることは、外側の層を切断し、現在のNIP-44を下に残します。

すべてのメッセージは新しいポスト量子交換を取得するため、1 つのメッセージのキーを回復すると次のことが明らかになります。 他の人については何もありません。

ポスト量子の半分は独自の鍵を必要とし、その鍵がどこから来ているかは、全体が何か価値があるかどうかを決定するものです。 ない あなたの仕事から出た nsecクラシックの半分を破る量子コンピュータは、あなたの nsec あなたの公開鍵から、そしてそれから生じるすべてのものから nsec by a published formula comes out with it — two locks opened by one break. So Nymchat generates a separate ポスト量子コード for each account, once, from random bytes that no public value exposes. It reads as nympq1… あなたのそばに座る nsec それはパスワードではなく、2回目のログインではありません:それはあなたが保存できる重要な素材です。 nsec.

オンにするものは何もありません

これは設定ではありません。ポスト量子暗号化は、単に Nymchat が Nymchat と通信する方法です。 通常の暗号化が他のすべてのものと通信するのと同じように。自動的に適用されるのは、 すべてのプライベート メッセージと別の Nymchat ユーザーとのグループ チャット。

設定 › プライバシー&セキュリティは、アクティブかどうか、現在あなたの連絡先の数にアクセスしているかを示しますが、情報としてのみ - スイッチはありません。

これはあなたがログインする方法に関係なく機能します. ブラウザ拡張子(NIP-07)またはリモート署名者(NIP-46)のログインは、決してあなたのアイデンティティキーをアプリに送信しません、これは使用する全体のポイントです - それは必要ありません。 暗号化の2つの半分は別々に保管されます:あなたの署名者は常に行った部分を行い、アプリはあなたの回復コードで後の量子部分を行います。

あなたがすでに持っているものは何も影響を受けません。 あなたの履歴のすべてのメッセージは、あなたのすべてのデバイスで読み取ることができます。 nsec以前と同じように、そして、そのままの生活のアカウントです。 nympq1… 回復コードは、これから書かれた量子抵抗性の材料です:新しいメッセージ、そしてそれらと共に移動する同期設定とアーカイブ。

したがって、デバイスはそれらを開く前にそのコードを保持しなければなりませんし、デバイスを追加するには1つの追加のステップが必要です。 nympq1… すでに持っているデバイスからのコードです. それはデバイスごとに一度ではなく、ログインごとに一度です. そのステップは、我々が取り除くことができなかった摩擦ではありません:新しいデバイスに到着する可能性のあるコードは、単独で普通のメッセージの中でそこに移動しなければなりません,そしてそのメッセージは、この機能が存在する攻撃者が録画するのを止めるために正確に何です. ステップは、保護が現実である理由です.

アプリは、Generates the nympq1… コードはあなたのために、だから選べるものはないし、発明するものはない。それを見るには:あなたのニームをタップして開く View or Edit Nym's Details 詳細を見るその後 この nymのプライベートキーと回復コードを明らかにするIt sits directly below your nsec同じ表示ボタンとコピーボタンで、あなたは2つ目のデバイスを追加するまでそれについて考える必要はありません。

未リンクのデバイスはその間にロックされていません. それは古い暗号化で書かれたすべてのものを読み続け、正常に送信し続けます. あなたがそれをリンクすると、それは戻って来て、以前読めなかった量子抵抗メッセージを開きます. 遅くリンクすることによって何も失われません.

あなたの他のデバイス

第二のデバイスには、アプリの現在のバージョンと、 nympq1… 古いバージョンは動作し続けるが、現在のフォーマットは読めないので、アカウントに残っている間は、自分で保管するコピーは古いコピーに戻ります。 まだリンクされていない最新のデバイスは古い歴史を読み、コードを要求します。

誰とそれを手に入れるか

それぞれのNymchatクライアントは小さな署名された、期限切れの発表を発表し、それを持っているときにその後量子キーを含みます。誰かのための有効な発表を保持することは、アプリがそれらとより強力な交換を使用することを意味します。干渉する交渉はありません:キーが存在するか存在しないか、およびその著者によって署名されているため、代替キーは単に提供されるのではなく、偽造されなければなりません。

What an attacker who controls a relay リレーを制御する攻撃者 CAN do は、通知を保留するので、送信者は決してキーを見ず、通常の暗号化に戻ります. それは明確に述べる価値があります. それはそれらのメッセージのためのポスト量子保護にかかります; それは1つを読み取れないことができず、それはあなたがあなたのものではないキーを受け入れるようにすることはできません. クライアントはいくつかのリレーを要求し、それらすべてを抑制するためにコントロールをとる。

これらの発表は1週間続いており、アプリを使用している間に毎日更新されます。それ以上に長く滞在している場合は、あなたのメッセージが漏れ、あなたはしばらく普通のNostrクライアントとして読まれる:その間隔であなたに送信されたメッセージは、量子抵抗的な方法ではなく、通常の方法で暗号化されます。それらはまだ到着し、あなたはそれらを読み取ることができます - あなたが以前受け取った何も影響を受けません。

他の人は以前とまったく同じように働き続けます。 Bitchat ユーザーおよび当社の他のクライアントは、標準 NIP-17, unchanged. Nothing breaks when you message someone outside Nymchat. あなたがNymchat以外の誰かにメッセージを送信すると何も壊れることはありません。

ポスト量子メッセージ 置き換える 標準のものと一緒に送信されるのではなく、標準のものを使用します。 両方を送信しても無意味です。攻撃者は弱い方のコピーを破壊するだけです。

宛先のコピーは、 あなた 他のデバイスでも読み取れるものを入手してください。 その背後にあるアーカイブと同期された設定は、同じ方向に移動し、 会話リスト、グループキー、メッセージ履歴。それらのいずれかを古いものに残します 暗号化すると、保存したファイルは最も弱いものになり、破られた人は誰でも読み取れるようになります。 今日の暗号化では、メッセージ自体がどれほど注意深く封印されていたとしても。

Bitchat による読みやすさの維持

Bitchat は Nymchat のメッセージ形式を読み取ることができないため、歴史的に Nymchat は次のコピーを送信しました。 Bitchat 形式のすべてのメッセージを、それを使用している可能性のある人に送信します。 聞いたこともなかった、つまり全員のことだ。

上記の発表により、その推測は不要になります。誰かが出版した場合は、 Nymchat を実行しているため、Bitchat コピーは削除され、より強力なメッセージのみが送信されます。もし彼らが 何も変わっていません。何も変わっていません。以前とまったく同じように両方の形式を受信するため、何も変わりません。 アプリが誰かが使用しているクライアントを誤って推測したため、送信したメッセージが読めなくなる可能性があります。

暗号化自体と同様、これは自動であり、設定はありません。

なぜ公共の活動から推測しないのですか

Nymchat はパブリック チャネルのアクティビティから誰が何を実行しているかを推測でき、それを特定します。 人々はもっと早く。しかし、その推論は時として間違っていることがあり、ここで間違っているということは、 アプリを開けないメッセージを、エラーも再試行もなしで誰かに送信できます。出版された アナウンスメントは作成者によって署名されており、偽造できないため、代わりに使用されます。

グループチャットで

グループメッセージはメンバーごとにすでに暗号化されているため、グループは両方の種類を混在させることができます 自由に — クライアントが暗号化をサポートしているメンバーはより強力な暗号化を取得し、残りは暗号化を取得します。 標準的なものであり、グループはどちらの方法でも正常に動作します。

そのため、グループ メッセージは次の場合にのみ量子耐性としてマークされます。 メンバー そのように受け取った。 1 つのコピーでも標準交換を使用した場合、そのコピーは同じものを保持します。 したがって、メッセージ全体は、その最も弱いコピーと同じように保護されます。アプリは言う 切り上げではなく、「10 メンバー中 8 メンバーに対して耐量子性」。

グループチャットでも ワンタイムキーのローテーション、グループに誰がいるかを非表示にします リレーを見ている人から。この保護は影響を受けず、以前とまったく同じように機能します。

バッジを読む

すべてのプライベートメッセージとグループメッセージには、小さなメッセージが含まれています。 シールド パッドロックの隣で、両方のマークをタップすると、それが何を示しているのかを説明します。

マーク意味
南京錠誰が送信したか — 署名が主張されている作成者と一致するかどうか。
シールド両当事者はそれぞれ独自の量子後のコードを保持し、このメッセージのすべてのコピーにハイブリッド交換が使用された。
破線の盾Partly quantum-resistant — a group message only some members received a protected copy of. Because the others carry the same text, treat the message as conventionally encrypted overall. 一部のメンバーが保護されたコピーを受け取っただけのグループメッセージです。
Struck-through シールド標準 NIP-44 暗号化 - まだ端から端まで暗号化され、今日の参加者以外は誰にも読めない。
シールドなしPublic channel posts are readable on the relay by design, so no encryption mark applies. 暗号化されたメッセージではありません。

A missing mark would be ambiguous — it could equally mean “not quantum-resistant”, “this build is too old”, or “the indicator is broken” — and a security indicator that can't be distinguished from a broken one is not telling you anything. 欠けているマークは、同様に「量子抵抗ではない」、「このビルドはあまりにも古い」、または「指標は壊れている」、そして、壊れたものと区別できないセキュリティ指標は、あなたに何も言いません。

それは、二人が異なる質問に答えるため、それを置き換えるのではなく、パッドロックの隣に座っており、メッセージは互いに無く、量子抵抗だが、未確認の送信者から来るか、または検証されたが、従来の暗号化によって暗号化されるかもしれない。

古いメッセージは永久にストックシールドを保持します。 両側が量子抵抗ビルドにいた前に送信されたものは、従来の交換で封印され、その暗号テキストはすでにリレーに存在しています - 事実の後に再封印することはできません。

できないこと

これにより、 コンテンツ あなたのメッセージの。すべての部分を作るわけではありません Nostr は量子証明されており、その違いを正確に把握する価値があります。

  • 署名は引き続き secp256k1 です。 Nostr のアイデンティティは、Schnorr と署名します。 同じ曲線。すでに動作する量子コンピュータを持っている敵は、 リアルタイムで誰かに署名してなりすますことができます。ハイブリッド交換が停止するのは読み取りです 記録されたトラフィック — 認証ではなく機密性。
  • 前向きな秘密はない。 両方のキーは長持ちします: NIP-44 はあなたのキーからそのキーを引き出します。 nsec, and the post-quantum layer encapsulates to the ML-KEM key behind your nympq1… すべてのメッセージは新鮮なカプセル化を受け、あるメッセージのキーが次のキーを開くことはありません - しかし、その長期キーを保持するようになった人は、これまで記録したすべてのものを読み取ることができます。 メッセージ expiration 削減するため、この機能は、取り上げられるキーではなく、後で収穫を解読することを目的としています。
  • メタデータは変更されません。 リレーは依然としてイベントが宛先であることを認識します キーとおおよその時期。それを扱うのは、 ギフト包装とワンタイムキーではなく、 これ。
  • Bluetoothメッシュはカバーされていません。 A message carried over メッシュ ノイズXXセッションの内部を移動し、それは強力な、現在の暗号化ですが、古典的なキー交換 - したがって、それは2人のNymchatユーザー間でさえ、ポスト量子層を運ぶことはありません。バッジはこれを反映しています:メッセージは網の上に配信され、量子抵抗がマークされていません。それに加えると、両方の同僚が同時にしなければならないハンドシェイク自体を変更することを意味します。
  • あなたの回復コードは、保つべき2番目のものです。 It begins with nympq1 あなたはそれを見つけるでしょう in 「Your Nym」の詳細あなたと同じパネルで、 nsec — tap your nym, then “Reveal this nym's private key and recovery code”. あなたの nsec 単独では、あなたのポスト量子キーを再構築しません - それが正確にそれが働く理由です - だから、デバイスがそのコードを保持し、あなたがそれをコピーを持っていない場合、それに封印されたものは再び開くことはできません。 nsec.
  • 相手の行為を守ることはできません。 受信者は引き続きスクリーンショットを撮ることができます。 メッセージをコピーまたは保存してください。

これは、Signal が独自の量子後アップグレードでとる立場と同じです。鍵交換を修正します。 これは、攻撃者が遡及的に操作できる部分であり、署名を 標準が追いついた場合には別の問題が発生します。

作業の確認

ML-KEMの実装は、公式に対しテストされています。 テスト ベクトル NIST Publishes のために FIPS 203ウェブアプリとモバイルアプリはまた、テストベクターの共有セットに保管されており、これは1人の書いたメッセージが他者によって読めることを保証するものです。

両方とも OPEN SOURCE AGPL-3.0の下で、ウェブアプリのビルドは再生可能である。 ビルドの検証.

もっと深く: Post-Quantum Key Agreement in Nymchat(ニムチャット) — ML-KEM キーがディレクトリなしでどのように配布されているか、両方のキー交換を組み合わせた正確な構造、および拒否されたデザインに関する技術的な白書。