Crypt(暗号)の概要
CTFでは主に暗号解読する問題が含まれます。暗号化された情報を解読することで、どのような処理をしているか理解することができます。「暗号」で出題される問題の大まかな分類は以下のようなものがあります。
エンコードの種類
エンコード方式 | 使用する文字 | 備考 |
Base16 | 0123456789ABCDEF | 16進数表記 |
Base26 | ABCDEFGHIJKLMNOPQRSTUVWXYZ | |
Base32 | 234567ABCDEFGHIJKLMNOPQRSTUVWXYZ | |
Base36 | 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ | |
Base52 | ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz | |
Base58 | 123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz | 仮想通貨のウォレットアドレスにも使用されている |
Base62 | 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz | JavaScript難読化ツール等で利用 |
Base64 | 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz+/ | 電子メールやBASIC認証で利用 |
デコード方法(Base64)
Base64はOS標準のコマンドでもデコードできます。
オンラインツールでは、以下のようなものがあります。
その他のエンコード方式としては以下のようなものがあります。
URLエンコード
URLのファイル名やクエリ文字列などに使用できない記号や文字を「%(文字コード)」の形式で表したものです。
デコード方法
オンラインツールでは以下のものが使えます。
uuencode (Unix to Unix ENCODE)
バイナリデータをテキストデータに変換するUNIX系OSで使われていたエンコード方式です。
デコード方法
暗号方式の種類
スキュタレー暗号
- 転置式暗号の一つです。
- スキュタレー(棒状のもの)に細い紙を巻きつけた状態でメッセージを書き、ほどいた状態を暗号文として使います。(下のようなもの)
復号方法
オンラインツールでは以下のようなものがあります。
シーザー暗号
- カエサル暗号、シフト暗号とも呼ばれます。
- 単一換字式暗号の一つです。
元の文章のアルファベットをある数だけずらして暗号化します。
復号方法
オンラインツールでは以下のようなものがあります。