📢 Webサイト閉鎖と移転のお知らせ
このWebサイトは2026年9月に閉鎖いたします。
新しい記事は移転先で追加しております。(旧サイトでは記事を追加しておりません)
| (同じ利用者による、間の6版が非表示) | |||
| 61行目: | 61行目: | ||
CBCモードは、暗号化がランダムアクセスに適さないため、暗号化は先頭から順次行う必要がある。<br> | CBCモードは、暗号化がランダムアクセスに適さないため、暗号化は先頭から順次行う必要がある。<br> | ||
また、復号がランダムアクセスに適しており、復号はランダムに選択した着目ブロックに対して操作できる。(1つ前の暗号文ブロックは必要である)<br> | また、復号がランダムアクセスに適しており、復号はランダムに選択した着目ブロックに対して操作できる。(1つ前の暗号文ブロックは必要である)<br> | ||
<br> | |||
==== CFBモード ==== | |||
CFBモード (Cipher Feedback Mode) は、AES暗号化アルゴリズムで使用されるブロック暗号の運用モードの1つである。<br> | |||
このモードは、ストリーム暗号のように機能して、平文を任意のビット長で暗号化することができる。<br> | |||
<br> | |||
CFBモードの主な特徴は、暗号文の生成時に、前の暗号ブロックの一部を使用することである。<br> | |||
これにより、各ブロックの暗号化が前のブロックに依存するため、暗号文にパターンが現れにくくなる。<br> | |||
<br> | |||
動作の流れを以下に示す。<br> | |||
# まず、初期化ベクトル (IV) を暗号化する。<br>その結果の一部と平文の最初の部分をXOR演算して、最初の暗号文ブロックを生成する。 | |||
# 次に、この暗号文ブロックを暗号化して、その結果と次の平文部分をXOR演算して次の暗号文ブロックを作る。 | |||
# この過程を繰り返して、全ての平文を暗号化する。 | |||
<br> | |||
CFBモードのメリットは、エラーの伝播が限定的であることが挙げられる。<br> | |||
一部の暗号文が破損しても、その影響は限られた範囲にとどまる。<br> | |||
<br> | |||
また、復号時に平文の長さが事前にわからなくても、リアルタイムで復号を行えるという特徴がある。<br> | |||
<br> | |||
一方で、CFBモードにはいくつかの注意点もある。<br> | |||
例えば、初期化ベクトル (IV) の選択が重要で、同じ初期化ベクトル (IV) を再利用すると安全性が低下する可能性がある。<br> | |||
また、並列処理が困難であるため、大量のデータを高速に処理する必要がある場合には適していない。<br> | |||
<br> | |||
CFBモードは、ネットワーク通信やストリーミングデータの暗号化等、リアルタイム性が求められる場面で特に有効である。<br> | |||
<br> | |||
ただし、使用する場合は適切な初期化ベクトル (IV) の管理や必要に応じて認証機能の追加等のセキュリティ上の考慮が必要である。<br> | |||
<br> | <br> | ||
==== OFBモード ==== | ==== OFBモード ==== | ||
| 79行目: | 104行目: | ||
<br> | <br> | ||
カウンタモードであれば、安全性が若干損なう可能性があるが、暗号化も復号もランダムに行えて便利である。<br> | カウンタモードであれば、安全性が若干損なう可能性があるが、暗号化も復号もランダムに行えて便利である。<br> | ||
<br> | |||
==== CTRモード ==== | |||
CTRモード (Counter Mode) は、AES暗号化アルゴリズムで使用される別のブロック暗号の運用モードである。<br> | |||
このモードは、ブロック暗号をストリーム暗号のように機能させて、高速で並列処理が可能な暗号化を実現する。<br> | |||
<br> | |||
CTRモードの基本的な動作原理は、カウンタ値を暗号化して、その結果と平文をXOR演算することで暗号文を生成するというものである。 | |||
# まず、初期値 (ノンス) とカウンタ値を組み合わせた値を暗号化する。<br>この暗号化された値は、キーストリームと呼ばれる。 | |||
# 次に、このキーストリームと平文をXOR演算することで暗号文を生成する。<br>カウンタ値は各ブロックごとに増加して、これを繰り返して全ての平文を暗号化する。 | |||
<br> | |||
CTRモードの大きな特徴の1つは、暗号化と復号が同じ操作で行えることである。<br> | |||
つまり、暗号化アルゴリズムのみを実装するだけでよく、ハードウェア実装が容易になる。<br> | |||
また、各ブロックの暗号化が他のブロックに依存しないため、並列処理が可能であり、高速な暗号化・復号を実現できる。<br> | |||
<br> | |||
さらに、CTRモードはランダムアクセスが可能である。<br> | |||
つまり、暗号文の特定の部分だけを復号することができる。<br> | |||
これは大きなファイルの一部だけを復号する必要がある場合等に有効である。<br> | |||
<br> | |||
ただし、CTRモードにも注意点がある。<br> | |||
例えば、同じ鍵とノンスの組み合わせを再利用する場合、セキュリティが著しく低下する可能性がある。<br> | |||
また、暗号文の改竄が容易であるため、認証機能を別途追加する必要がある。<br> | |||
<br> | |||
CTRモードは、その高速性と並列処理の特性から、大量のデータを扱うディスク暗号化やネットワークプロトコルでの利用に適している。<br> | |||
例えば、IPsecやSSL / TLS等のセキュリティプロトコルで使用されている。<br> | |||
<br> | |||
CTRモードを安全に使用するためには、適切な鍵管理とノンスの生成が重要である。<br> | |||
また、必要に応じて、GCM (Galois / Counter Mode) モードのような認証付き暗号モードを使用することにより、機密性と完全性を同時に確保することができる。<br> | |||
<br> | |||
==== GCMモード ==== | |||
GCM (Galois / Counter Mode) は、AESで使用される高速で安全な認証付き暗号化モードの1つである。<br> | |||
このモードは、データの機密性と完全性を同時に提供する効率的な方法として広く採用されている。<br> | |||
<br> | |||
GCMモードの主な特徴は、暗号化と認証を同時に行えることである。<br> | |||
これにより、従来の方式に比べてパフォーマンスが向上して、実装も簡素化される。<br> | |||
<br> | |||
GCMの動作原理を以下に示す。<br> | |||
# まず、CTRモードでデータを暗号化する。 | |||
# その後、暗号文とAAD (追加認証データ) を使用して認証タグを生成する。<br>この過程でガロアフィールド上の乗算が利用されるため、ガロアの名前が付いている。 | |||
<br> | |||
セキュリティの観点から、GCMモードは非常に堅牢とされている。<br> | |||
ただし、使用する場合は1つのキーで大量のデータを暗号化しないこと、初期化ベクトル (IV) の再利用を避けることが重要である。<br> | |||
<br> | |||
GCMのメリットとして、並列処理が可能であることが挙げられる。<br> | |||
これにより、ハードウェア実装での高速化が容易になる。<br> | |||
また、パディングが不要なため、データの長さが変わらないという特徴もある。<br> | |||
<br> | |||
GCMモードにも課題はあり、例えば、実装が複雑になる可能性があることや一部の実装では副チャネル攻撃に対して脆弱性を持つ可能性があること等が挙げられる。<br> | |||
<br> | |||
GCMモードは多くの暗号プロトコルで採用されている。<br> | |||
例えば、TLS 1.2以降のバージョンでサポートされており、安全な通信に広く使用されている。<br> | |||
<br><br> | <br><br> | ||
| 1,048行目: | 1,122行目: | ||
そのため、Qtの実行バイナリまたはQtプロジェクトにおいて、Qt AESライブラリを同梱して配布してもよい。<br> | そのため、Qtの実行バイナリまたはQtプロジェクトにおいて、Qt AESライブラリを同梱して配布してもよい。<br> | ||
<br> | <br> | ||
==== Qt | ==== Qt AESライブラリとは ==== | ||
Qt向けのポータブルなAES暗号化クラスである。<br> | |||
<br> | |||
全ての鍵長 (128/192/256ビット) をサポートしている。<br> | |||
また、全ての鍵長に対応したECB、CBC、CFB、OFBモードおよび部分的なAES-NIをサポートしている。<br> | |||
<br> | |||
デフォルトのパディング方法はISOであるが、ZERO、PKCS7もサポートしている。<br> | |||
<br> | |||
==== Qt AESライブラリのインストール ==== | |||
Qt AESライブラリのビルドに必要なライブラリをインストールする。<br> | Qt AESライブラリのビルドに必要なライブラリをインストールする。<br> | ||
# SUSE | # SUSE | ||
| 1,124行目: | 1,206行目: | ||
<br><br> | <br><br> | ||
{{#seo: | |||
|title={{PAGENAME}} : Exploring Electronics and SUSE Linux | MochiuWiki | |||
|keywords=MochiuWiki,Mochiu,Wiki,Mochiu Wiki,Electric Circuit,Electric,pcb,Mathematics,AVR,TI,STMicro,AVR,ATmega,MSP430,STM,Arduino,Xilinx,FPGA,Verilog,HDL,PinePhone,Pine Phone,Raspberry,Raspberry Pi,C,C++,C#,Qt,Qml,MFC,Shell,Bash,Zsh,Fish,SUSE,SLE,Suse Enterprise,Suse Linux,openSUSE,open SUSE,Leap,Linux,uCLnux,Podman,電気回路,電子回路,基板,プリント基板 | |||
|description={{PAGENAME}} - 電子回路とSUSE Linuxに関する情報 | This page is {{PAGENAME}} in our wiki about electronic circuits and SUSE Linux | |||
|image=/resources/assets/MochiuLogo_Single_Blue.png | |||
}} | |||
__FORCETOC__ | __FORCETOC__ | ||
[[カテゴリ:Qt]] | [[カテゴリ:Qt]] | ||