SM4 暗号ツール

SM4のECB/CBCモード、PKCSパディング、HEX/Base64形式、ランダムキー/IV生成に対応した無料ツールです。

設定

キーとIV設定

暗号化/復号

SM4の知識

SM4について

SM4は中国の国家標準のブロック暗号で、ブロック長 128ビット・鍵長 128ビット です。SM TLS/SSLWAPI(無線LANセキュリティ)、電子政府・金融分野など、国密標準のエコシステムで広く利用されています。

AESとの関係と違い

  • 共通点:
    • いずれも128ビットブロック暗号で、一般的なモード(ECB/CBC)や標準パディング(PKCS#5/7)をサポート。
    • 運用モデルは類似:キー(Key)と必要に応じてIVを用い、モード・パディングを選択して平文をブロック処理します。
  • 相違点:
    • 標準とエコシステム:AESは国際標準(FIPS 197)で世界的に普及、SM4は中国国家標準(GM/T)で国内のコンプライアンス要件に対応。
    • 鍵長:AESは128/192/256ビットをサポート、SM4は128ビット固定。
    • 性能とハードウェア:AESはCPU/GPUのハードウェアアクセラレーションが広く整備、SM4はプラットフォームによって整備状況が異なります。
    • コンプライアンス:国内/中国向けの業務ではSM4が求められる場面が多く、国際的なエコシステムではAESが主流です。

ECB と CBC の比較

項目 ECB CBC
IVの使用 なし あり(16バイト)
エラー伝播 なし あり(ブロック単位)
並列性 高い 低い(連鎖依存)
セキュリティ 低い(構造が露呈) 高い(推奨)
用途 ランダムデータ・テスト 実業務データ
  • ECB:16バイトごとに独立して暗号化するため、データの構造が露呈しやすく、構造化/繰り返しの多いデータには不向きです。
  • CBC:16バイトの乱数IV(使い回し不可)を用いてブロックを連鎖し、パターンを覆い隠すことで実業務に適した安全性を提供します。

パディングと整列

  • PKCS#5/PKCS#7:自動的に16バイト倍数へパディング、テキスト/バイナリデータに広く適用可能。
  • NoPadding:パディングなし。平文/暗号文の長さは16バイトの倍数である必要があり、整列済みデータや独自プロトコルに適します。

推奨事項

  1. モード選択:CBCを推奨、構造化データではECBを避ける。
  2. IV管理:CBCのIVは暗号論的に安全な乱数で、暗号化毎に一意であること。
  3. キー生成:安全な乱数で128ビット鍵を生成、弱い/予測可能な値を避ける。
  4. 出力形式:暗号文は HEX または Base64 を使用、システム間伝送には Base64 が推奨。
  5. コンプライアンス:国内/国密準拠が必要なシステムではSM4、国際的なエコシステムではAESが一般的です。