暗号プリミティブ(Cryptographic Primitives)
暗号プリミティブは、すべての安全な暗号システムにおける基本的な構成要素となる、基本的な低レベルのアルゴリズムと関数です。
暗号プリミティブは、暗号プロトコルとシステムの基盤を形成する、不可欠で原子的な操作です。これらは数学的に健全で計算効率が高いように設計されており、正しく実装および使用された場合に既知の攻撃に対するセキュリティを提供します。主な例としては、次のものが挙げられます。
共通鍵暗号化: 暗号化と復号化に単一の秘密鍵を使用するAES(Advanced Encryption Standard)のようなアルゴリズム。
公開鍵暗号化: 鍵交換やデジタル署名などの操作に鍵のペア(公開鍵と秘密鍵)を使用するRSAやECC(Elliptic Curve Cryptography)のようなアルゴリズム。
暗号ハッシュ関数: SHA-256のような関数。任意の入力から一意の固定サイズのフィンガープリント(ハッシュ)を生成し、データの完全性検証に使用されます。
擬似乱数生成器(PRNG): ランダムに見える数値のシーケンスを生成するアルゴリズム。鍵やその他のセキュリティパラメータの生成に不可欠です。
* メッセージ認証コード(MAC): HMACのような技術。共有秘密鍵を使用してメッセージの完全性と真正性を保証します。
これらのプリミティブは厳密に検証され、NISTのような機関によって標準化されることが多く、そのセキュリティは特定の数学的問題の計算上の困難性に依存しています。
graph LR
Center["暗号プリミティブ(Cryptographic Primitives)"]:::main
Rel_cryptographic_hashing["cryptographic-hashing"]:::related -.-> Center
click Rel_cryptographic_hashing "/terms/cryptographic-hashing"
classDef main fill:#7c3aed,stroke:#8b5cf6,stroke-width:2px,color:white,font-weight:bold,rx:5,ry:5;
classDef pre fill:#0f172a,stroke:#3b82f6,color:#94a3b8,rx:5,ry:5;
classDef child fill:#0f172a,stroke:#10b981,color:#94a3b8,rx:5,ry:5;
classDef related fill:#0f172a,stroke:#8b5cf6,stroke-dasharray: 5 5,color:#94a3b8,rx:5,ry:5;
linkStyle default stroke:#4b5563,stroke-width:2px;
🧒 5歳でもわかるように説明
暗号プリミティブを、デジタルセキュリティツールキットにおける不可欠で壊れないツールと考えてください。物理的なセキュリティにおける鍵と鍵穴のように、これらのプリミティブ(暗号化アルゴリズムやハッシュ関数など)は、秘密メッセージの送信からデジタルIDの検証まで、安全なデジタルシステムを構築するために使用される、基本的で信頼性の高いコンポーネントです。
🤓 Expert Deep Dive
暗号プリミティブは、暗号構築の基礎となる、還元不可能な基本的なアルゴリズムです。それらのセキュリティは、特定の敵対モデルに対して正式に定義されており、しばしば(例えば、因数分解、離散対数)基盤となる数学的問題の計算上の困難性または情報理論的原則に依存します。主なカテゴリには以下が含まれます。
ブロック暗号/ストリーム暗号: AES(GCMなどのさまざまなモード)やChaCha20のような共通鍵プリミティブ。IND-CPAおよびIND-CCAのような特性について分析されています。
公開鍵暗号方式: RSA-OAEPやECIESのような公開鍵プリミティブ。機密性を提供します。
デジタル署名方式: RSA-PSS、ECDSA、EdDSAのような公開鍵プリミティブ。真正性と非否認性を提供します。
暗号ハッシュ関数: SHA-3のような関数。衝突耐性、原像耐性、第二原像耐性などの特性が必要です。
鍵導出関数(KDF): 共有秘密またはパスワードから暗号鍵を生成するために使用されるHKDFのようなアルゴリズム。
コミットメントスキーム: ある当事者が値にコミットし、後でそれを明らかにできるようにすることで、完全性を保証するプロトコル。
複雑な暗号システムのセキュリティ証明は、通常、還元引数によって確立され、システムへの攻撃が成功すると基盤となる困難な問題の解法が示唆されることを証明し、それによって攻撃者の優位性を制限します。