WHITEPAPER

Arc Protocol v2.0 — Powered by libsignal

Arc Protocol

セキュリティホワイトペーパー

バージョン 2.0 — 2026年4月 · Atlas Associates Inc. · Public

Abstract

Arcは、Signal Protocol (libsignal-client v0.65.2) を基盤とし、メッセージごとのXEdDSAデジタル署名、クライアントサイド送信者匿名化 (Sealed Sender)、BLE Meshオフライン通信(Bridgefy SDK暗号化)を実現するプライバシーファーストのメッセンジャーです。

Arcは全プランでエンドツーエンド暗号化 (E2EE) を無料で提供します。セキュリティは有料の壁の裏に置きません。

1. 設計原則

全員にE2EEを

全プランで完全な暗号化。セキュリティのための有料壁なし。

ポスト量子対応

古典的暗号とPQCのハイブリッドで将来の量子コンピュータから保護。

ゼロトラストアーキテクチャ

サーバーは平文コンテンツを一切見ません。メタデータ漏洩も最小化。

バックドアなし

政府や内部の要求で暗号化を損なうことはできません。暗号設計により強制。

2. 暗号基盤

コンポーネントアルゴリズム標準鍵サイズ
Key Exchange (Classical)X25519 ECDHRFC 7748256-bit
Key Exchange (Post-Quantum)ML-KEM-1024 (via libsignal)FIPS 203Level 3
Message EncryptionAES-256-GCMNIST SP 800-38D256-bit
Message AuthenticationXEdDSA (libsignal)Signal XEdDSA spec256-bit
Key DerivationHKDF-SHA256RFC 5869256-bit output
Chain Key DerivationHMAC-SHA256RFC 2104256-bit
Protocol BaseSignal ProtocolOpen specification

ArcはSignal Messengerと同じライブラリであるlibsignal-client v0.65.2(Rust、FFI経由)をコアプロトコル操作に使用しています。

3. PQXDH: ハイブリッド鍵交換

X25519を破る量子コンピュータは10〜15年以内に出現する可能性があります。「今傍受して後で解読する」攻撃は、今日キャプチャされた暗号化データが将来解読される可能性を意味します。Arcは古典的なX25519とポスト量子ML-KEM-1024を組み合わせることで対処しています。これはSignalが2023年9月に先駆けたアプローチと同じです。

Alice → Bob:
1. Fetch Bob's PreKey Bundle (Identity + Signed PreKey + One-Time PreKey + PQ PreKey)
2. 4× X25519 DH computations
3. ML-KEM-1024.Encaps(Bob's PQ Public Key) → (pq_ciphertext, pq_shared_secret)
4. Root Key = HKDF-SHA256(DH1‖DH2‖DH3‖DH4‖pq_shared_secret)
5. Send: Alice's keys + PQ ciphertext (1,088 bytes) + encrypted message

攻撃者が鍵交換を破るには、X25519とML-KEM-1024の両方を突破する必要があります。

パラメータ
Public Key1,184 bytes
Secret Key2,400 bytes
Ciphertext1,088 bytes
Shared Secret32 bytes
NIST Security LevelLevel 3 (AES-192 equivalent)
NIST StandardFIPS 203 (August 2024)

4. Double Ratchet: 前方秘匿性

PQXDHによるセッション確立後、すべてのメッセージはDouble Ratchetアルゴリズムを使用します。前方秘匿性(現在の鍵が漏洩しても過去のメッセージを復号できない)と侵入回復(漏洩は数メッセージ後に自動的に修復される)を提供します。

DH Ratchet (direction change):
  New Root Key = HKDF-SHA256(current_root_key, X25519_DH_output)

Symmetric Ratchet (per-message):
  Message Key  = HMAC-SHA256(chain_key, 0x01)
  Next Chain   = HMAC-SHA256(chain_key, 0x02)

各メッセージは固有の独立した派生鍵を使用します。チェーン鍵は次の鍵を派生した直後に削除されます。セッションごとに最大1,000個のスキップされたメッセージ鍵をキャッシュ。

5. AES-256-GCM: メッセージ暗号化

各メッセージはDouble Ratchetから派生した固有のMessage Keyを使用し、AES-256-GCM認証付き暗号化で暗号化されます。

Ciphertext = AES-256-GCM.Encrypt(
  key:   message_key (32 bytes),
  nonce: random (12 bytes, never reused),
  aad:   ratchet_public_key ‖ prev_chain_length ‖ message_number,
  plaintext: message content
)

Per-message overhead: nonce (12B) + auth tag (16B) = 28 bytes

6. AEGIS: メッセージ認証

ARCの最大の差別化ポイント

AEGIS (Arc Enhanced Guard & Integrity System) はメッセージごとにEd25519デジタル署名を付与します。SignalもWhatsAppも個別のメッセージに署名はしていません。

特性説明
送信者認証特定のユーザーがメッセージを送信したことの暗号的証明
改ざん検知署名後のいかなる変更も検知される
否認防止送信者はメッセージの送信を否定できない
XEdDSA Signing (via libsignal):
  payload   = senderId ‖ "|" ‖ timestamp ‖ "|" ‖ content
  signature = XEdDSA.Sign(payload, X25519_private_key)
  → 64 bytes attached to message
  (Converts X25519 key to Ed25519 internally — no separate Ed25519 key needed)

Verification:
  XEdDSA.Verify(payload, signature, sender_X25519_public_key)
  → verified | failed | noSignature

7. Sealed Sender: 送信者匿名性

Sealed Senderはサーバーがメッセージの送信者を知ることを防ぎます。Signalの実装は送信者証明書とデリバリートークンシステムを使用します。Arcはサーバー側のトークン検証なしに、よりシンプルなエフェメラルX25519 ECDHエンベロープを使用します。

Sender:
1. Generate ephemeral X25519 keypair
2. DH = X25519(ephemeral_private, recipient_identity_public)
3. AES_Key = HKDF-SHA256(DH, info="Arc Sealed Sender v1")
4. Envelope = AES-256-GCM(senderId + "\0" + payload, AES_Key)

→ Sealed Message = ephemeral_pub(32B) ‖ nonce(12B) ‖ ciphertext ‖ mac(16B)

Intelligenceプランの両者による1:1チャットで利用可能。

8. グループ暗号化: Sender Keys

ArcはSignal ProtocolのSender Keyメカニズムを使用して効率的なグループ暗号化を実現します。各メンバーが個人のSender Keyを生成し、暗号化された1:1チャネル経由で配布します。メッセージは1回だけ暗号化されます(N人のメンバーに対してN回ではなく)。

Encryption (libsignal group_encrypt):
  Chain Key → Message Key → AES-256-GCM  (libsignal internal)
  HMAC signature                          (libsignal internal)
  → Output: SenderKeyMessage bytes

Decryption (libsignal group_decrypt):
  Signature verify → Replay detect → Decrypt (libsignal internal)

All crypto operations delegated to libsignal — no custom primitives.

9. 鍵管理

アルゴリズム有効期間ストレージ
Identity KeyX25519Account lifetimePlatform Secure Storage
Signing KeyXEdDSA (libsignal)90-day rotationPlatform Secure Storage
Signed PreKeyX25519Weekly rotationPlatform Secure Storage
One-Time PreKeyX25519Single usePlatform Secure Storage
PQ PreKeyML-KEM-1024Single usePlatform Secure Storage (via libsignal)

秘密鍵はiOS Keychain / Android EncryptedSharedPreferencesに保存されます。Hive、SharedPreferences、プレーンファイル、クラウドストレージには決して保存されません。

Elixir PreKey Server

PreKey bundles (Signed PreKey, One-Time PreKeys, PQ PreKeys) are managed by an Elixir-based PreKey server that handles bundle distribution, one-time key depletion tracking, and automatic replenishment signaling to clients.

10. Key Sync: マルチデバイス

Arcはデバイスごとに独立した鍵セットを使用します(プライマリ/リンクの階層なし)。新しいデバイスで元のデバイスのメッセージを復号するには、エフェメラルX25519公開鍵を含むQRコードをスキャンします。両デバイスがECDHを実行し、HKDFでAES-256-GCM鍵を派生して安全にID鍵を転送します。セッションTTL: 5分。

11. BLE Mesh: オフラインE2EE

ArcのBLE Meshネットワークは、Bridgefy SDKトランスポート暗号化によりインターネットなしでも安全な通信を可能にします — 主要メッセンジャーの中で唯一の機能です。BLE距離制限(10-30m)が物理的なセキュリティレイヤーとして機能し、Signal Protocolはこのユースケースでは不要です。自然災害、遠隔地、プライバシーが重要な環境に最適です。

12. 脅威モデル

攻撃者能力対策
Passive ObserverIntercepts all trafficE2EE: all content encrypted
Active MITMModifies trafficAES-GCM auth + XEdDSA signatures
Server CompromiseFull Firestore accessNo plaintext stored; keys client-only
Quantum ComputerBreaks X25519Hybrid PQXDH with ML-KEM-1024
Key CompromiseObtains session keyDouble Ratchet forward secrecy
Replay AttackResends messagesIteration tracking + unique nonces

Arcが保護できないもの

  • マルウェアに侵害された端末/root化された端末
  • 受信者によるスクリーンショット
  • サーバー側のメタデータ分析(Sealed Senderで軽減)
  • ソーシャルエンジニアリング

13. 標準準拠

標準ステータス
NIST FIPS 203 (ML-KEM)Implemented via libsignal-client
RFC 7748 (X25519)Implemented
XEdDSA (Signal spec)Implemented via libsignal-client
RFC 5869 (HKDF)Implemented
NIST SP 800-38D (AES-GCM)Implemented

14. Signal・WhatsAppとの比較

機能SignalWhatsAppArc
Protocol BaseSignal ProtocolSignal Protocol (licensed)Signal Protocol (libsignal)
Post-Quantum Key ExchangePQXDH (ML-KEM-1024, 2023)PQXDH (via Signal Protocol)PQXDH (ML-KEM-1024, via libsignal)
Post-Quantum RatchetSPQR Triple Ratchet (Oct 2025)Not confirmedPlanned
Per-Message SignaturesDH authentication onlyDH authentication onlyXEdDSA (libsignal) ✦
Sealed SenderCert + delivery tokenNot implementedEphemeral ECDH envelope ✦
Offline E2EENot supportedNot supportedBLE Mesh (Bridgefy SDK) ✦
Multi-DevicePrimary + LinkedPrimary + LinkedIndependent keys + Key Sync ✦
Key SeparationXEdDSA conversionXEdDSA conversionXEdDSA (same as Signal) — unified key pair ✦
Open SourceFully open sourcePartialWhitepaper published

透明性に関する注記: SignalはPQXDHを2023年9月に実装し、2025年10月にSPQR Triple Ratchetに進化させました。ArcのPQC機能はSignalのオープンソースlibsignalライブラリから継承されたものです。Arcの独自差別化ポイントには✦が付いています。

15. 結論

Arc Protocolは実績あるSignal Protocolを基盤とし、3つの独自セキュリティレイヤーで拡張しています:

XEdDSA (libsignal)

メッセージごとのEd25519署名が明示的な送信者認証、改ざん検知、否認防止を提供 — SignalとWhatsAppにはない機能です。

Client-Side Sealed Sender

エフェメラルECDHエンベロープによる送信者匿名性、完全にクライアントサイド。

BLE Mesh (Bridgefy SDK Transport Encryption)

Bridgefy SDK暗号化によるBluetooth経由のオフライン通信 — 主要メッセンジャーで唯一。

セキュリティ研究および責任ある脆弱性報告を歓迎します。

Download PDF

Enter your details to download the Arc Protocol Whitepaper.

バージョン 2.0 — 2026年4月 · Atlas Associates Inc.