「Qtの応用 - AES」の版間の差分

ナビゲーションに移動 検索に移動
81行目: 81行目:
<br><br>
<br><br>


== : CBCモード ==
== 初期化ベクトル ==
==== カウンタモード (CTR) ====
CTRモードでは、カウンタ値を初期化ベクトルとして使用する。<br>
各ブロックごとにカウンタをインクリメントすることにより、一意の値を生成する。<br>
<br>
==== GCMモード ====
GCMモード等では、ナンス (使い捨ての数値) とカウンタを組み合わせて初期化ベクトルを生成する。<br>
<br>
==== 初期化ベクトル生成時の注意点 ====
* 予測可能性
*: 自動生成されたIV (初期化ベクトル) が予測可能であってはいけない。
*: 例えば、単純なインクリメント方式は避けるべきである。
*: <br>
* 一意性
*: 同じキーで同じIV (初期化ベクトル) を再利用しないことが重要である。
*: 特にストリーム暗号的なモード (CTRモード, GCMモード) では致命的な脆弱性につながる。
*: <br>
* ランダム性
*: 可能な限り、暗号学的に安全な乱数生成器を使用してIV (初期化ベクトル) を生成すべきである。
*: <br>
* 通信
*: IV (初期化ベクトル) は、一般的に、暗号文と一緒に送信する必要がある。
*: 多くの場合、暗号文の先頭に付加される。
*: <br>
* 長さ
*: IV (初期化ベクトル) の長さは、使用する暗号化モードに応じて適切に設定する必要がある。
*: 多くの場合、ブロックサイズと同じである。
 
自動生成されたIVを使用することで、同じ平文でも毎回異なる暗号文が生成され、セキュリティが向上します。ただし、適切な生成方法と管理が重要です。
<br><br>
 
== サンプルコード: CBCモード ==
以下の例では、<code>QCrypto</code>クラスを使用して、CBCモードでの暗号化と復号を行っている。<br>
以下の例では、<code>QCrypto</code>クラスを使用して、CBCモードでの暗号化と復号を行っている。<br>
<br>
<br>

案内メニュー