真の乱数と imKey Pro でのその応用についての話
序章
ブロックチェーンにある程度の知識がある人であれば、ほとんどの人が「非対称暗号化」や「ハッシュ アルゴリズム」などの暗号化用語を聞いたことがあるでしょう。しかし、これらの暗号化アルゴリズムの背後にある基礎が「乱数」であることを誰もが知っているわけではありません。
ウォレットの作成プロセス中に、ユーザーは暗号計算を通じてアドレスを計算するために使用される秘密キーを「ランダムに」取得できます。このアドレスを使用すると、ユーザーはデジタル通貨を受け取ることができ、秘密キーがこのアドレス上のデジタル資産を制御する唯一の手段となります。したがって、秘密鍵を所有する人は、ブロックチェーン上の対応するアドレス上の資産を所有することになります。
では、秘密鍵は最終的には枯渇してしまうのでしょうか?ブルートフォース攻撃で解読できるのでしょうか?
こうした懸念を解消するには、まず乱数について理解する必要があります。
I. 乱数の重要性
コンピュータ サイエンスでは、ランダム シーケンスは、コンピュータ シミュレーション、統計サンプリング、暗号化、ネットワーク ゲームなどの多くの分野で重要な役割を果たしています。ランダム シーケンスの品質に対する要件は分野ごとに異なります。たとえば、ネットワーク ゲームでは、クリティカル ヒット率の計算や抽選などのランダム イベントが多数あり、これらのシナリオでは通常、特定の擬似ランダム メカニズムを使用して、連続ヒットまたは非ヒットの確率を低減したり、常にヒットする戦略を実装したりします。 10回連続引き分けで勝利。これらはすべて、プレイヤーにより良いゲーム体験を提供するためのものです。しかし、攻撃と防御を基本とする情報セキュリティの本質的な分野では、「ランダム性」や「予測不可能性」の要件を満たさない乱数は、セキュリティシステムに修復不可能な脆弱性を引き起こす可能性があり、明らかに容認できません。
パスワード プロトコルの設計であっても、より基本的なパスワード アルゴリズムであっても、乱数は攻撃と戦うための中心的な依存関係です。 Kerckhoffs の原則によれば、パスワード システムのセキュリティは、システム設計の機密性ではなく、キーに完全に依存する必要があります。通常、キーはランダムに生成されたシーケンスから取得されるため、パスワード システムでは乱数の品質が非常に重要です。理想的な状況では、完全にランダムなキーはブルート フォース攻撃によってのみ解読できます。
乱数は、鍵の生成、デジタル署名、認証と識別などのアプリケーションだけでなく、次のような安全な通信に関連するさまざまなプロトコルでも広く使用されています。
- キー配布スキームでは、通常、ランダム シーケンスがリプレイ攻撃を防ぐためのハンドシェイク情報として使用されます。
- SSL/TLS プロトコル プロセスでは、ランダム シーケンスはリプレイ攻撃を防ぐために使用されるだけでなく、セッション キーを生成するための基本要素としても使用されます。
- 非対称鍵アルゴリズムの鍵生成および署名プロセスでは、公開されている数学的アルゴリズムとランダム シーケンスを使用して、セキュリティのためのエンジニアリング実装を提供します。
II.乱数ジェネレーター
一般に、乱数には次の 3 つの検証基準があります。
1. ランダム性 - ランダム シーケンスは、統計的バイアスがなく、完全にカオスなシーケンスである、良好な統計的特性を持っている必要があります。シーケンス内の乱数の分布は均一であり、出現頻度はほぼ等しい必要があります。これらの要件を満たす数値は、人間にとって一見すると「ランダム」です。
2. 予測不可能性 - ランダム シーケンスの一部とランダム アルゴリズムが与えられた場合、ランダム サンプルの他の部分を効果的に計算することは不可能であるはずです。
3. 再現性のなさ - ランダムシーケンス自体を保存しない限り、同じシーケンスを持つことは不可能です。

通常、条件 1 と 2 を満たす乱数発生器は擬似乱数発生器 (PRNG) と呼ばれ、3 つの条件をすべて満たす発生器は真の乱数発生器と呼ばれます。
擬似乱数生成器 (PRNG)
コンピュータでは、特定の初期条件が与えられたときに決定論的アルゴリズムを使用して乱数を生成します。生成された乱数は、サイクル内で常に特定のパターンに従います。つまり、乱数統計の特定の分布要件を満たしている場合でも、サイクルに到達した後も乱数が繰り返されます。これは、特定のサイクルでの結果が目に見えて予測可能であるためです。したがって、この方法で生成される乱数は「ランダム」ではなく、これを擬似乱数と呼び、対応する方法が擬似乱数生成器です。エンジニアリングの実装では、通常、サイクルを十分に長く (収集される可能性のある乱数の長さよりもはるかに長く) 設定する必要がありますが、実際には規則的であり、理論的には予測可能です。
真の乱数生成器 (TRNG)
真のランダム性を実現するには厳密な条件が必要です。与えられた境界条件の下では、物理的なノイズや温度変化などが観測できるため、古典力学で生成された乱数は擬似乱数とみなすことができます。ただし、実際のアプリケーションのニーズでは、境界条件が複雑で取得が難しい場合は、それらを真の乱数とみなすことができます。
では、コンピューターはどのようにして真の乱数を生成するのでしょうか?
通常、生成されるランダム シーケンスの周期性を大幅に低減するには、外部エントロピー ソースを導入する必要があります。 UNIX カーネルの乱数ジェネレータ (/Dev/Random) と Windows カーネルの RtlGenRandom は両方ともこの方法で実装されます。 UNIX はエントロピー プールを維持し、乱数を生成するためのシードとして非決定的なデバイス イベントを継続的に収集します。一方、Windows はプロセス、スレッド、時間、CPU 内部の高精度カウンター、その他の情報を内部エントロピー ソースとして収集します。
真の乱数は、暗号アルゴリズムのシードを提供することを目的として、非決定性データ (連続する数値文字列など) を生成するための、予測不可能な物理現象 (エントロピー ソースと呼ばれる) に基づく TRNG として説明できます。
真の乱数と擬似乱数を大量に生成して可視化すると、下図のように、真の乱数には規則性がないのに対し、擬似乱数はあるパターンに従って配置されていることが直感的にわかります。

Ⅲ.セキュリティ チップの真の乱数ジェネレーター (TRNG)
セキュリティ チップの TRNG は通常、エントロピー ソースと抽出またはサンプリング ユニットで構成されます。サンプリングされたデータは、品質管理のために後処理ユニットまたはパスワード調整ユニットによって処理される必要があります。生成される乱数の品質は、エントロピー ソースからの元のエントロピー出力に大きく依存します。通常、物理ノイズに基づいたシングルまたはマルチチャンネルのランダムソース回路が組み込まれています。各ランダムソース回路は独立してサンプリングし、アナログ信号が使用可能なデジタル形式に抽出された後、元の出力のバイアスを除去したり、信号を強調したりするために後処理ユニットによって処理されます。ここで得られる乱数は、は主に暗号化に使用されており、高品質の TRNG もセキュリティ チップの重要な機能です。
乱数発生器の信頼性を確保するために、セキュリティ チップは電源が投入されるたびに TRNG でセルフテストを実行し、通常はオンデマンド テストをサポートします。
(注: ノイズベースの TRNG の典型的なアーキテクチャ)
IV. TRNG テスト
TRNG の生成が真のランダム性の 3 つの基準 (ランダム性、予測不可能性、再現性) を満たしているかどうかを検証する認証機関や認証仕様が国内外にいくつか存在します。
例えば、NIST の SP 800-90 A/B/C 規格では対応するテストスイートが提供されており、FIPS 140-2 のセクション 4.9.2 では「Continuous Random Number Generator Testing」などが規定されており、テスト規格は SP 800-90B となっています。以下の図に示すように、標準です。
V. imKey Pro の TRNG 機能の使用方法
imKey Pro製品の中核となるのはインフィニオンのSLE78CLUFX5000PHで、包括的なエラー検出、デュアルCPUのセルフテスト、およびCPU内部暗号化計算を含むデジタルセキュリティソリューション「完全性保護」のための完全な暗号化データを提供します。
(注: RZH1532 は SLE78CLUFX5000PH チップの製造バッチ番号を表します)
このチップは一般規格 EAL6+ (Advanced) および EMVCo 認証を満たしています。
対応する証明書は CC 公式 Web サイトで見つけることができます。
https://www.commoncriteriaportal.org/files/epfiles/0879V4c_pdf.pdf
Public Security Target の文書では、チップの乱数モジュールが SP 800-90B 標準に合格していることが明記されています。詳細については、以下で確認できます。
https://www.commoncriteriaportal.org/files/epfiles/0879V4b_pdf.pdf
高品質の TRNG を得るには、エンジニアリングの実践で正しく使用することも必要です。 imKey Pro は、以下を含むがこれらに限定されない、製品ライフサイクル全体を通じて TRNG を使用します。
- デバイス固有の証明書キーペアの生成
- 接続認証コードの生成
- ウォレット作成時のエントロピーの生成
- 暗号化されたストレージキーの生成
- 256K1 署名の K 値など、署名プロセスで使用される乱数 (オプションで RFC 6979 も使用可能)
- デバイス管理用のSCP11Cセキュアチャネルの確立
出典: Feitian Chengxin 製品研究開発部