SM4暗号化・復号ツール
中国の国家標準暗号SM4で、テキストを暗号化・復号します。
復号するときにも必要です。入力した内容がこのページの外に出ることはありません。
OpenSSLの既定値は10,000です。任意の回数を指定でき、多いほどパスワードの推測に時間がかかるようになります。復号には同じ回数が必要です。
OpenSSLで一般的な選択です。IVが必要で、ブロック単位にパディングします。
openssl enc -sm4-cbc -pbkdf2 -iter 10000 -a -AOpenSSLがパスワードを尋ねます。テキストを貼り付けるか、-inと-outでファイルを指定してください。
SM4(旧称SMS4)は、中国の国家標準ブロック暗号(GB/T 32907-2016)で、128ビットの鍵と16バイトのブロックを使います。2021年からはISO/IEC 18033-3にも含まれています。中国の商用暗号の規則に従うシステムでは、ほかならAESを使うところにSM4が使われており、銀行や行政のシステムなどがその例です。ここでは初期設定のCBCモードのほか、ECB・CTR・CFB・OFBで、openssl enc -pbkdf2形式のパスワードか、32桁のhexの鍵とIVを使ってSM4でテキストを暗号化・復号できます。SM4はブラウザ内で動作するため、テキストも鍵も端末の外に出ることはありません。無料で登録も不要です。
SM4でテキストを暗号化・復号する方法
- 「暗号化」か「復号」を選びます。暗号化するテキストを入力するか、復号するBase64またはhexのテキストを貼り付けます。形式は自動で判別されます。
- パスワードを入力するか(「生成」で強力なパスワードを作れます)、「鍵とIV(hex)」に切り替えて、32桁の鍵と32桁のIVを入力または生成します(ECBにはIVがありません)。
- モードを選びます。データが別のモードで作られていなければCBCです。PKCS#7パディングなしで暗号化されたデータの場合だけ、「パディングなし」をオンにします。
- 結果をコピーまたはダウンロードします。「OpenSSLで同じ処理」には、同じ処理をするopensslコマンドがパスワードを除いて表示されます。
主な機能
- 128ビット鍵のSM4(GB/T 32907-2016)
- CBC・ECB・CTR・CFB・OFBモード、PKCS#7パディングまたはパディングなし
- openssl enc -sm4-cbcで読める、openssl enc -pbkdf2形式のパスワード方式
- すべてのモードで、対応するopensslコマンドを表示
- 「鍵とIV」方式:32桁のhexの鍵とIVを入力または生成
- Base64・hexで入出力。結果はコピー、ダウンロード、入れ替えが可能
プライバシーは守られますか?
はい。SM4はブラウザ内のWebAssemblyで動作し、パスワードのストレッチングはブラウザのWeb Cryptoで行われます。テキスト、パスワード、鍵がアップロードや保存されることはありません。
よくある質問
SM4は安全ですか?
はい。32ラウンドすべてを行うSM4に対する実用的な攻撃は知られておらず、128ビットの鍵はAES-128とほぼ同じ安全性を持ちます。ここにあるほかの暗号と同じく、弱点はパスワードです。長くランダムなパスワードを使いましょう。
OpenSSLで復号できますか?
はい、OpenSSL 3ならできます。echo 'U2FsdGVkX1…' | openssl enc -d -sm4-cbc -pbkdf2 -iter 10000 -a -A を実行すると、OpenSSLがパスワードを尋ねます。ほかのモードには-sm4-ecb・-sm4-ctr・-sm4-cfb・-sm4-ofbを使い、「鍵とIV」方式では-pbkdf2 -iterの代わりに-K <32桁のhex> -iv <32桁のhex>を使います。opensslがsm4-cbcを受け付けない場合は、SM4なしでビルドされています。
SM4-GCMに対応していますか?
いいえ。SM4は、openssl encにあるモードのCBC・ECB・CTR・CFB・OFBで提供しており、どれもテキストの改ざんは検出しません。GCMはAESのページで使えます。
SM2やSM3も使えますか?
いいえ。SM2は公開鍵アルゴリズム、SM3はハッシュ関数で、このページが扱うのはSM4の共通鍵暗号だけです。ハッシュについては、「ハッシュ値計算」ツールがMD5とSHAファミリーに対応していますが、SM3には対応していません。