概要
SaQura Library の仕組み
量子に強い暗号化を、あなた自身のソフトウェアの部品として——.NET・Kotlin・Swift・Python・JavaScript・C/C++ で。データがデバイスを離れることはありません。
概要
ひと段落で分かる課題
ほとんどのソフトウェアは暗号化(パスワード・メッセージ・データのデジタルな鍵)を使っています。現在広く使われている鍵(RSA・ECC)は、将来の量子コンピュータによって破られる可能性があります。ドイツの BSI や EU の NIS2 指令は、量子に強い方式への移行を求めています。攻撃者は今日のうちにデータを収集し、後で復号しようとします——だからこそ今が重要です。
これは何か
アプリの中で直接暗号化
SaQura Library は、開発者が自分のアプリに組み込む既製のソフトウェア部品(「SDK」)です。暗号化と復号はデバイス上で直接行われ、オンラインサービスと違ってデータがマシンを離れることはありません。機密性や規制が求められる場面に最適です。
// .NET / C#
var (pub, priv) = await Quantum.GenerateKeyPairAsync(QuantumStrength.Standard, QuantumGeneration.Gen8);
var (secret, cipher) = await "Hello".EncryptWithQuantumAsync(pub);
var plain = await cipher.DecryptWithQuantumAsync(priv, secret);簡略化した例です——正確な構文はドキュメントをご覧ください。
事実
アルゴリズム・標準・プラットフォーム
6 つの SDK すべてで同じアルゴリズムと同じデータ形式——あるプラットフォームで暗号化したものは、他のどのプラットフォームでも復号できます。表はライブラリに含まれるものと対応範囲を示します。
| アルゴリズム | 標準 | 対応 |
|---|---|---|
| X25519 + ML-KEM (Gen8, hybrid) | RFC 7748 + FIPS 203 | 6 SDK すべて |
| ML-KEM-512 / 768 / 1024 | FIPS 203 | 6 SDK すべて |
| ML-DSA-44 / 65 / 87 | FIPS 204 | 6 SDK すべて |
| SLH-DSA-SHA2-128f / 192f / 256f | FIPS 205 | 6 SDK すべて |
| FrodoKEM-640 / 976 / 1344 (Gen4, Gen6) | BSI TR-02102-1(976 と 1344 が対象) | 6 SDK すべて |
| Classic McEliece 6688128 / 6960119 / 8192128 (Gen2, Gen5) | BSI TR-02102-1(6688128 と 8192128 が対象) | 6 SDK すべて |
| RSA-4096 + FrodoKEM (Gen7, hybrid) | PKCS #1 v2.2 + FrodoKEM | 6 SDK すべて |
| AES-256-GCM | FIPS 197 · SP 800-38D | .NET・Kotlin・Swift・Python(JS と C は世代内および SQS1 内) |
| ChaCha20-Poly1305 | RFC 8439 | ストリーミング(SQS1): .NET・Kotlin・Swift・JS・C |
| RSA-4096 (OAEP, PSS) | PKCS #1 v2.2 | .NET・Kotlin・Swift・Python(JS と C は Gen7 内) |
| PBKDF2-HMAC-SHA512 | SP 800-132 | .NET, Kotlin, Swift, Python |
ストリーミング:一定メモリで大きなファイルを(SQS1)
ファイルやデータストリームをセグメント(既定 1 MiB)単位で AES-256-GCM または ChaCha20-Poly1305 で暗号化します。メモリ使用量はファイルサイズに関係なく一定です(3 GiB で検証済み)。各セグメントはカウンタと終端マークを持ち、途中で切れたストリームは検出されます。ストリーム鍵はポスト量子エンベロープ(Gen8/ML-KEM、Gen5、Gen6)で包めます。ストリーミングは .NET・Kotlin・Swift・JS・C、エンベロープは .NET・Kotlin・Swift・C で利用できます。
セッションプロトコル:ハイブリッド・ポスト量子鍵交換を備えた MLS(RFC 9420)
グループおよび 1 対 1 のセッションに、SaQura は RFC 9420 の MLS を採用しています——PQXDH や Double Ratchet ではありません。標準スイート(P-256、AES-128-GCM)は OpenMLS と相互運用でき、RFC 9420 の公式テストベクタで検証済みです。加えて、鍵交換をハイブリッド X25519 + ML-KEM-768 に置き換えた SaQura スイートがあります。署名は ECDSA P-256 のままで、このスイートは意図的に外部スタックと相互運用しません。MLS は Swift と Kotlin で利用でき、SaQura Messenger が使用しています。
パッケージ: NuGet · SaQura 1.0.15 · Maven Central · jp.co.kyototech:saqura:1.2.2 · npm · saqura 0.1.0 · SwiftPM · 1.2.0 · PyPI · saqura 1.0.10 · C/C++ · 1.0.1
対象
どんなときに適しているか
暗号化を自分のソフトウェアに組み込むチーム向け——特に、プライバシーやコンプライアンス上の理由でデータをローカルに保つ必要がある場合に。
はじめ方
始める
パッケージマネージャーでライブラリを追加し、無料で試し、ライセンスで本番導入します。インストールと言語別の例はドキュメントにあります。
次のステップ