Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
43 changes: 29 additions & 14 deletions wolfSSL/src-ja/appendix07.md
Original file line number Diff line number Diff line change
Expand Up @@ -20,10 +20,24 @@ wolfSSLチームは以前、実験的なポスト量子暗号アルゴリズム
しかし、「あらかじめデータを収集、蓄積し、後に時間をかけて解読を進めていく」といった脅威モデルが存在します。
すなわち、暗号の復号に特化した量子コンピューターが出現するよりも早いうちに準備が必要です。

NISTが、量子コンピューターに対して脆弱になる公開鍵暗号アルゴリズムを置き換えるように設計された、新しいクラスのアルゴリズムの標準化を進めています。
この章の執筆時点で、NISTはすでにML-DSA、ML-KEM、SLH-DSAを標準化しています。
現在、標準化団体はOIDとコードポイントを記述する様々なドラフト文書を持っています。
NISTはこれらのアルゴリズムをCMVP規制フレームワークの下に置き、これらのアルゴリズムの実装のFIPS-140-3検証を可能にする作業を進めています。
NISTは量子コンピュータに対して脆弱になる公開鍵暗号アルゴリズムを置き換えるために設計された、新しいアルゴリズムの標準化を主導しています。
この文章の執筆時点において、NISTはすでにML-DSA、ML-KEM、SLH-DSAを標準化しました。

ML-KEM (Module Lattice Key Encapsulation Mechanism) は、NISTが標準化した格子ベースの耐量子アルゴリズムです。
Kyberをベースとして標準化されました。
2者間で鍵カプセル化メカニズムを使用して、安全でないチャネル上で共有鍵を確立します。
これにより、従来型および量子コンピュータを用いた攻撃者の両方から保護できます。

ML-DSA (Module Lattice Digital Signature Algorithm) は、同じくNISTが標準化した格子ベースの耐量子デジタル署名方式です。
Kyberをベースとして標準化されました。
これにより、送信者はメッセージの送信元と完全性を証明する検証可能な署名を生成できます。

ML-KEMとML-DSAはどちらも、暗号の復号に特化した量子コンピュータに耐性を持つように設計された公開鍵アルゴリズムです。
これらはNISTの耐量子暗号標準(FIPS 203およびFIPS 204)の一部です。
量子コンピューティング時代に備えるために、ほとんどのケースでハイブリッド形式にてすぐに導入できます。

現在、各標準化団体はOIDとコードポイントを示すさまざまなドラフト文書を有しています。
NISTはこれらのアルゴリズムをCMVP規制フレームワークの傘下に置き、実装に対するFIPS-140-3検証を可能にする取り組みを進めています。

### 私たちは自分自身をどのように守るのですか?

Expand Down Expand Up @@ -96,19 +110,19 @@ wolfSSLリポジトリの[INSTALLファイル](https://github.com/wolfSSL/wolfss
次のようにして、サーバーとクライアントを別々のターミナルで実行します。

```sh
$ examples/server/server -v 4 -l TLS_AES_256_GCM_SHA384 \
-A certs/mldsa87_root_cert.pem \
-c certs/mldsa44_entity_cert.pem \
-k certs/mldsa44_entity_key.pem \
--pqc P521_ML_KEM_1024
examples/server/server -v 4 -l TLS_AES_256_GCM_SHA384 \
-A ../osp/oqs/mldsa87_root_cert.pem \
-c ../osp/oqs/mldsa44_entity_cert.pem \
-k ../osp/oqs/mldsa44_entity_key.pem \
--pqc SecP521r1MLKEM1024
```

```sh
$ examples/client/client -v 4 -l TLS_AES_256_GCM_SHA384 \
-A certs/mldsa44_root_cert.pem \
-c certs/mldsa87_entity_cert.pem \
-k certs/mldsa87_entity_key.pem \
--pqc P521_ML_KEM_1024
examples/client/client -v 4 -l TLS_AES_256_GCM_SHA384 \
-A ../osp/oqs/mldsa44_root_cert.pem \
-c ../osp/oqs/mldsa87_entity_cert.pem \
-k ../osp/oqs/mldsa87_entity_key.pem \
--pqc SecP521r1MLKEM1024
```

これで、対称暗号化にAES-256、認証にML-DSA署名スキーム、鍵確立にECDHEとML-KEMをハイブリッド化した完全な量子安全なTLS 1.3接続を実現しました。
Expand Down Expand Up @@ -1253,4 +1267,5 @@ Benchmark complete
```

### 開発者ノート

* 「今収穫し、後で復号する」脅威モデルを阻止しようとしていて、相互運用性の一部を犠牲にしても構わない場合は、Supported Groups拡張機能で従来のアルゴリズムのサポートを広告したくないことと思います。選択したアルゴリズムで`wolfSSL_UseKeyShare()`と`wolfSSL_set_groups()`を必ず呼び出してください。`wolfSSL_UseKeyShare()`だけを呼び出すだけでは不十分です。なぜなら、それは量子的に脆弱なアルゴリズムのサポートを広告することになるからです。ピアがポスト量子アルゴリズムをサポートしていない場合、`HelloRetryRequest`を送信し、その結果として、従来のアルゴリズムとの接続が確立されます。
32 changes: 26 additions & 6 deletions wolfSSL/src-ja/chapter02.md
Original file line number Diff line number Diff line change
Expand Up @@ -680,6 +680,22 @@ Poly認証を設定するため、TLS v1.2でChacha20/Poly1305を使用する場

`./configure` を使用する場合、これは ChaCha20/Poly1305 でデフォルトで有効になりますが、`WOLFSSL_USER_SETTINGS` でビルドする場合は手動で定義する必要があります。

#### WOLFSSL_ASN_TEMPLATE

テンプレートベースのASN.1処理を使用する新しいバージョンのASN解析コードを有効にします。
この解析は標準的なASN.1ルールに準拠し、テンプレート構造を使用してエンコードとデコードを指示することで、パーサーコードがテンプレート間で汎用化できるようにします。
`./configure` を使用する場合これはデフォルトでオンになっていますが、`WOLFSSL_USER_SETTINGS` でビルドする場合は手動で定義する必要があります。

#### WOLFSSL_DEBUG_ASN_TEMPLATE

ASN.1テンプレートを使用する際のデバッグ出力を有効にします。
`WOLFSSL_ASN_TEMPLATE`と併用する場合にのみ関連します。

#### WOLFSSL_ASN_TEMPLATE_TYPE_CHECK

テスト用にコンパイラの型の問題をより適切にテストするためにASN関数を使用します。
`WOLFSSL_ASN_TEMPLATE`と併用する場合にのみ関連します。

### 機能の有効化 (デフォルトで無効)

#### WOLFSSL_CERT_GEN
Expand Down Expand Up @@ -2852,6 +2868,8 @@ LEAN TLS 1.2クライアントのみ(クライアント認証なし)、ECC25

公開鍵コールバックを有効にします。

このオプションを有効にすると公開鍵コールバックが有効になり、アプリケーションが独自のECC署名/検証・RSA署名/検証・暗号化/復号コールバックを登録できるようになります。

### `--enable-sniffer`

wolfSSL Snifferのサポートを有効にします。
Expand All @@ -2876,16 +2894,18 @@ AES-GCMサポートを有効にします。

このオプションを有効にすると公開鍵コールバックが有効になり、アプリケーションは独自のECC署名/検証とRSA署名/検証を許可し、コールバックを識別して暗号化/復号できます。

AES-GCMを有効にすると、これらの暗号スイートがwolfSSLに追加されます。
wolfSSLは、速度とメモリ消費のバランスを考慮した4つの異なるAES-GCM実装を提供しています。
利用可能な場合、wolfSSLは64ビットまたは32ビット演算を使用します。
組み込みアプリケーション向けには、RAMベースのルックアップテーブル(セッションごとに8KB)を使用する高速な8ビット版があり、これは64ビット版と同等の速度を持ちます。
また、追加のRAMを消費しない低速な8ビット版もあります。
`--enable-aesgcm configure`オプションは、`=word32`、`=table`、`=small`のオプションで変更できます。
例: `--enable-aesgcm=table`。

### `--enable-aesccm`

AES-CCMサポートを有効にします。

AES-CCMを有効にすると、以下の暗号スイートがwolfSSLに追加されます。
wolfSSLは、速度とメモリ消費のバランスを取った4つの異なるAES-GCM実装を提供しています。
利用可能な場合、wolfSSLは64ビットまたは32ビットの計算を使用します。
組み込みアプリケーションの場合、RAMベースのルックアップテーブル(セッションあたり8KB)を使用する高速な8ビットバージョン(64ビットバージョンと同程度の速度)と、追加のRAMを消費しないより遅い8ビットバージョンがあります。
--enable-aesgcm設定オプションは、`=word32`、`=table`、または`=small`などのオプションで変更できます(例:`--enable-aesgcm=table`)。

### `--disable-aescbc`

AES-CBCをコンパイルアウトするために[`--disable-aescbc`](#--disable-aescbc)で使用されていました。
Expand Down
2 changes: 1 addition & 1 deletion wolfSSL/src-ja/chapter03.md
Original file line number Diff line number Diff line change
Expand Up @@ -622,7 +622,7 @@ wolfSSLを使用したクライアントアプリケーションのサンプル
クライアントの説明については、本章の「クライアントアプリケーションでwolfSSLを使用する」節を参照してください。
より詳しい手順とサンプルコードは[第11章 SSLチュートリアル](chapter11.md#ssl-tutorial)に掲載しています。

1. 概ね上記のクライアントの手順と同様です。ただし、ステップ5のクライアントメソッド呼び出しをサーバーのものに変更します。例えば以下の行を、
1. 概ね上記のクライアントの手順と同様です。ただし、ステップ2のクライアントメソッド呼び出しをサーバーのものに変更します。例えば以下の行を、

```c
wolfSSL_CTX_new(wolfTLSv1_client_method());
Expand Down
Loading