Cookie の使用について.本サイトでは、基本機能の提供に必要な必須 Cookie を使用しています。さらに、同意いただいた場合に限り、アクセス解析 Cookie を利用して利用状況を把握し、サービス改善に役立てます。詳しくは .
このツールは使いやすかったですか?
フィードバックは改善に役立ちます
基于Serpent算法的文本加密解密工具,支持多种密钥长度与操作模式。
128/192/256ビット鍵のブロック加解読を、Bouncy CastleのNESSIEベクトル9件で確認しました(2026-09-30)。限定した参照テストであり、安全性の監査ではありません。旧誤実装の暗号文は非互換の可能性があり、ECB/CBCは完全性を認証しません。 出典
内容を入力し、暗号化/復号ボタンをクリックしてください
概要
解決できる課題、処理の仕組み、データの範囲を確認できます。
Serpentは、入力を128ビット(16バイト)単位で処理する共通鍵ブロック暗号です。設計仕様では32ラウンドを行い、鍵長は128・192・256ビットから選びます。暗号化と復号には同じ鍵が必要です。ここでいう鍵長とブロック長は別の値で、256ビット鍵を選んでも処理ブロックが256ビットになるわけではありません。
| 設定 | 選択・入力 | 確認すること |
|---|---|---|
| 鍵長 | 128 / 192 / 256ビット | 鍵の復号後の長さは16 / 24 / 32バイト |
| 鍵の形式 | テキスト / Hex / Base64 | 文字数ではなく、形式から得られるバイト数で判定 |
| モード | ECB / CBC | CBCでは16バイトのIVが必要 |
| パディング | PKCS7 / Zero Padding | 入力を16バイト境界に合わせる方法 |
| 結果表現 | Base64 / Hex | 同じ暗号文バイト列を表す二つの形式 |
Serpentの仕様や用語を調べたい場合は、設計者による原仕様がブロック長、鍵長、ラウンド数の一次資料です。ページの入力欄ではテキストをUTF-8のバイト列として扱い、暗号文はBase64またはHexで表示します。これらの文字列表現は暗号方式そのものではなく、バイト列を保存・受け渡ししやすくする符号化です。
ECBは各ブロックを独立して処理します。同じ鍵で同じ平文ブロックを処理すると同じ暗号文ブロックになるため、入力に含まれる繰り返しの形が結果に残ることがあります。CBCは各平文ブロックを直前の暗号文ブロックと組み合わせ、最初のブロックにはIVを使います。モードの定義はNIST SP 800-38Aで確認できます。
CBCで自動生成を有効にして暗号化すると、処理ごとに新しいIVが使われ、画面に表示されます。IVは暗号文に自動で連結されないため、復号に備えて別に保存してください。復号時は暗号化時と同じ鍵、モード、パディング、IVを指定します。IVを含む設定が一つでも異なると、元のテキストに戻らないことがあります。
Serpentは16バイト単位で処理するため、入力長が境界に合わない場合はパディングで補います。PKCS7は追加したバイト数を末尾の各バイトに記録する方式です。Zero Paddingはゼロバイトで補い、復号時に末尾のゼロを取り除くため、元のデータ自体がゼロで終わる場合は区別できません。用途と元データに合わせて選び、復号側でも同じ方式を指定してください。
暗号化結果をHexで見ると、1バイトにつき2桁の16進数字で表示されます。Base64は同じバイト列を別の文字列に変換します。復号では、貼り付けた暗号文がどちらの表現かを選択します。Base64文字列をHexとして読み込むなど、形式の指定が合わないと正しいバイト列になりません。
使い方
手順に沿って操作し、例を使って入力と結果を確認します。
暗号化を選び、鍵長、ECBまたはCBC、パディングを設定します。初めて動作を確かめる場合は、秘密情報ではない短いテスト文を使います。
鍵をテキスト、Hex、Base64のいずれかで入力します。128ビットなら16バイト、192ビットなら24バイト、256ビットなら32バイトに一致させます。Hexでは1バイトが2文字なので、それぞれ32・48・64桁です。
CBCを選んだ場合は16バイトのIVが必要です。自動生成を使うと暗号化後にIVが表示されます。復号時に使えるよう、暗号文と一緒に記録してください。ECBではIVを使いません。
平文を入力して実行し、表示されたBase64またはHexの暗号文をコピーします。選んだ鍵長、モード、パディング、CBCのIVも併記します。
復号に切り替えて暗号文の入力形式を選び、記録した設定を再入力します。暗号文が欠けていないことも確認し、結果のテキストがテスト文と一致するか見ます。
活用例
仕事や日常の流れの中での活用方法を紹介します。
暗号の学習では、機密性のないサンプル文を使い、ECBとCBCで設定や出力がどう変わるかを確認できます。暗号文の見た目だけで安全性を判断せず、ブロックとIVの役割を学ぶ用途にとどめます。
実装同士を接続する前に、鍵のバイト列、モード、パディング、IV、暗号文形式を一覧にするための試験に使えます。Serpentという名称だけでなく、これらの条件を双方で一致させてから照合します。
開発者は、仕様や参照ベクトルに基づく入力と出力を用いて、暗号・復号の挙動を調べられます。画面内で往復できることと、別の暗号ライブラリーとの互換性確認は別の検証として扱います。
Q&A
よくある疑問や迷いやすい点をまとめて確認できます。
いいえ。判定するのは選んだ形式から得られるバイト数です。テキストの日本語や絵文字はUTF-8で複数バイトになるため、見た目の文字数だけでは鍵長を確認できません。
復号に同じIVが必要です。この画面の暗号文にはIVが自動で含まれないため、暗号文と別に保存して受け渡してください。IVは鍵と同じ秘密情報ではありませんが、暗号化時に使った値を正確に保つ必要があります。
CBCで自動生成IVを使うと、実行のたびにIVが変わるため、同じ平文と鍵でも暗号文が変わります。復号にはその回のIVが必要です。
それだけでは判断できません。ECB/CBCは暗号化のみで、改ざん検出用の認証情報を付けません。結果が読めることは、鍵の正しさや暗号文の完全性の証明にはなりません。
注意
利用範囲、結果の制限、必要な注意点を事前に確認します。
このページはSerpentのローカルなブロック暗号実験向けです。参照ベクトルでの照合は行われていますが、包括的な安全性監査を示すものではありません。重要な情報の保護や本番システムへの採用判断には、このページだけを根拠にしないでください。
関連
関連ツール、特集、利用可能なAPIを探せます。