当サイトの一部ページには、アフィリエイト・アドセンス・アソシエイト・プロモーション広告を掲載しています。

Amazonのアソシエイトとして、Security Akademeiaは適格販売により収入を得ています。

広告配信等の詳細については、プライバシーポリシーページに掲載しています。

消費者庁が、2023年10月1日から施行する景品表示法の規制対象(通称:ステマ規制)にならないよう、配慮して記事を作成しています。もし問題の表現がありましたら、問い合わせページよりご連絡ください。

参考:令和5年10月1日からステルスマーケティングは景品表示法違反となります。 | 消費者庁

DIGITAL CRYPTOGRAPHY PUZZLE 05【Cypher編】

はじめに

いつもブログをご覧いただきありがとうございます。

コーストFIRE中のIPUSIRONです😀

IPUSIRONのプロフィールを見る

問題文

1001011110110101

Round 1 key: YS
Round 2 key: BX

問題文では、暗号化の対象である平文と、各ラウンドで用いる鍵(2文字)が与えられています。

BES(Basic Encryption Standard)の暗号化の仕様が書かれているので、この手順に従い暗号化します。

ヒント

↓↓下にスクロール↓↓

↓↓下にスクロール↓↓

↓↓下にスクロール↓↓

↓↓下にスクロール↓↓

↓↓下にスクロール↓↓

↓↓下にスクロール↓↓

↓↓下にスクロール↓↓

↓↓下にスクロール↓↓

↓↓下にスクロール↓↓

↓↓下にスクロール↓↓

↓↓下にスクロール↓↓

↓↓下にスクロール↓↓

↓↓下にスクロール↓↓

↓↓下にスクロール↓↓

↓↓下にスクロール↓↓

↓↓下にスクロール↓↓

↓↓下にスクロール↓↓

↓↓下にスクロール↓↓

↓↓下にスクロール↓↓

↓↓下にスクロール↓↓

↓↓下にスクロール↓↓

↓↓下にスクロール↓↓

↓↓下にスクロール↓↓

↓↓下にスクロール↓↓

↓↓下にスクロール↓↓

↓↓下にスクロール↓↓

↓↓下にスクロール↓↓

↓↓下にスクロール↓↓

↓↓下にスクロール↓↓

↓↓下にスクロール↓↓

↓↓下にスクロール↓↓

The order of operations is important when decrypting.

解答への道

↓↓下にスクロール↓↓

↓↓下にスクロール↓↓

↓↓下にスクロール↓↓

↓↓下にスクロール↓↓

↓↓下にスクロール↓↓

↓↓下にスクロール↓↓

↓↓下にスクロール↓↓

↓↓下にスクロール↓↓

↓↓下にスクロール↓↓

↓↓下にスクロール↓↓

↓↓下にスクロール↓↓

↓↓下にスクロール↓↓

↓↓下にスクロール↓↓

↓↓下にスクロール↓↓

↓↓下にスクロール↓↓

↓↓下にスクロール↓↓

↓↓下にスクロール↓↓

↓↓下にスクロール↓↓

↓↓下にスクロール↓↓

↓↓下にスクロール↓↓

↓↓下にスクロール↓↓

↓↓下にスクロール↓↓

↓↓下にスクロール↓↓

↓↓下にスクロール↓↓

↓↓下にスクロール↓↓

↓↓下にスクロール↓↓

↓↓下にスクロール↓↓

↓↓下にスクロール↓↓

↓↓下にスクロール↓↓

↓↓下にスクロール↓↓

↓↓下にスクロール↓↓

1:"Arrange text and key into 4×4 blocks."

テキストと鍵を並び替えて、それぞれ4×4のブロックにします。

1001 0111 1011 0101 ←テキスト(平文)
↓ブロック化
1001
0111
1011
0101

YS
↓ASCII文字から16進数値に変換
0x59 0x53
↓バイト列に変換
0101 1001 0101 0011
↓ブロック化
0101
1001
0101
0011

スペースの有効活用のために並べる
1001  0101
0111  1001
1011  0101
0101  0011

2:"Swap columns 1/2 and 3/4 of each block."

各ブロックにおいて1列目と2列目、3列目と4列目を入れ替えます。

1234  1234
----  ----
1001  0101
0111  1001
1011  0101
0101  0011

↓列の入れ替え

2143  2143
----  ----
0110  1010
1011  0110
0111  1010
1010  0011

3:"Substitute (XOR) text block using key block."

鍵ブロックを使って、テキストブロックをXORします。

※各行でXOR演算します。

0110 XOR 1010 -> 1100
1011 XOR 0110 -> 1101
0111 XOR 1010 -> 1101
1010 XOR 0011 -> 1001

4:"Shift rows of text block +0,+1,+2,+3."

テキストブロックの各行を右方向へシフトします。

ただし、シフトするビット数は、1行目が0、2行目が1、…になります。

1100 -(0bit right shift)-> 1100
1101 -(1bit right shift)-> 1110
1101 -(2bit right shift)-> 0111
1001 -(3bit right shift)-> 0011

以上で1ラウンドが終了になります。

得られた値は1100 1110 0111 0011になります。

5:引き続いて、次のラウンド処理を実行します。

テキストは前段のラウンドで得られた結果、鍵はラウンド2用の"BX"を用います。

アルゴリズムについては変わりません。

1. ブロック化
1100 1110 0111 0011 ←ラウンド1の結果
↓ブロック化
1100
1110
0111
0011

BX
↓ASCII文字から16進数値に変換
0x42 0x58
↓バイト列に変換
0100 0010 0101 1000
↓ブロック化
0100
0010
0101
1000

スペースの有効活用のために並べる
1234  1234
----  ----
1100  0100
1110  0010
0111  0101
0011  1000

2. 列の入れ替え
2143  2143
----  ----
1100  1000
1101  0001
1011  1010
0011  0100

3. XOR演算する
1100 XOR 1000 -> 0100
1101 XOR 0001 -> 1100
1011 XOR 1010 -> 0001
0011 XOR 0100 -> 0111

4. 右シフトする
0100 -(0bit right shift)-> 0100
1100 -(1bit right shift)-> 0110
0001 -(2bit right shift)-> 0100
0111 -(3bit right shift)-> 1110

5. 出力テキスト
0100 0110 0100 1110
↓
0x46 0x4E
↓
FN

最終的に得られた文字列は"FN"です。

今回は単純な変換問題でした。

解答

↓↓下にスクロール↓↓

↓↓下にスクロール↓↓

↓↓下にスクロール↓↓

↓↓下にスクロール↓↓

↓↓下にスクロール↓↓

↓↓下にスクロール↓↓

↓↓下にスクロール↓↓

↓↓下にスクロール↓↓

↓↓下にスクロール↓↓

↓↓下にスクロール↓↓

↓↓下にスクロール↓↓

↓↓下にスクロール↓↓

↓↓下にスクロール↓↓

↓↓下にスクロール↓↓

↓↓下にスクロール↓↓

↓↓下にスクロール↓↓

↓↓下にスクロール↓↓

↓↓下にスクロール↓↓

↓↓下にスクロール↓↓

↓↓下にスクロール↓↓

↓↓下にスクロール↓↓

↓↓下にスクロール↓↓

↓↓下にスクロール↓↓

↓↓下にスクロール↓↓

↓↓下にスクロール↓↓

↓↓下にスクロール↓↓

↓↓下にスクロール↓↓

↓↓下にスクロール↓↓

↓↓下にスクロール↓↓

↓↓下にスクロール↓↓

↓↓下にスクロール↓↓

おわりに

以上で本ルームはすべてクリアしたことになります。

Cypher現代暗号

Posted by ipusiron