mcrypt実際には、リストされているよりも多くのモードを実装しています。文字列名を使用してそれらにアクセスできます。
cbc–CBCモード_
cfb–8ビットCFBモード。
ncfb–ブロックサイズのCFBモード。
nofb– OFBモード(ではないofb);
ctr–CTRモード。
モードは実装の詳細が異なるため、それらの適合性はデータと環境によって異なります。
パディング:
初期化ベクトル:
CBCおよびCFBモードにはランダムIVが必要です(使用しないでくださいMCRYPT_RAND)。
OFBモードでは、一意のIVが必要です(たとえば、グローバルカウンター、行が変更または削除されない場合はデータベースの主キーなど)。
CTRでは、各カウンターブロックが一意である必要があります(最初のカウンターブロックであるメッセージのIVだけでなく、メッセージのブロックごとにカウンターブロックを1ずつインクリメントすることによって形成される残りのブロック)。
NISTの推奨事項の詳細。
暗号化または復号化を並列化できるかどうかや、ブロックごとに使用される暗号の反復回数(通常は1つですが、8ビットCFBモードでは16)など、PHPでは重要ではないパフォーマンスの違いがあります。
可鍛性には違いがありますが、 MACを適用するため重要ではありません。
また、セキュリティに違いがあるかもしれませんが、そのためには暗号学者に相談する必要があります。