C言語を勉強中の者です。大変図々しいと承知の上で質問させて頂きます。以下はシーザー暗号で平文を暗号化した物なのですが(CBCモード使用)どなたかこれを解読するプログラムを作って頂けない でしょうか?
よろしくお願い致します。
<初期化ベクトルの値>
161
<暗号化した結果 (16進数の列)>
0x6f, 0xbb, 0x87, 0x91, 0x90, 0x93, 0x6d, 0xbe, 0x81, 0x9d, 0xad, 0x75, 0x0
<暗号文の長さ (ヌル文字を含めた文字数)13
鍵、平文は分かりません。平文に含まれるのは、英単語のみです。
長々と申し訳ございませんでした。
どうかよろしくお願いします。
cbc暗号解読
Re: cbc暗号解読
質問させて頂いたミラーです。記述忘れがあったので追記させて頂きます。
自分は、シーザーが文字をずらして暗号化する事、ファイルに書き込む事、ファイルに関する命令を調べました。ですがどんなに考えても分からず、提出期限が近づいてしまった為、質問させて頂きました。どうかよろしくお願いします。
※平文はASCIIコードによる英単語です。
自分は、シーザーが文字をずらして暗号化する事、ファイルに書き込む事、ファイルに関する命令を調べました。ですがどんなに考えても分からず、提出期限が近づいてしまった為、質問させて頂きました。どうかよろしくお願いします。
※平文はASCIIコードによる英単語です。
Re: cbc暗号解読
256通りしか鍵がないので総当たりするだけですよ。
Re: cbc暗号解読
ここでの「英単語」とはなんですか?
1文字以上の英大文字または小文字のみからなる文字列全てですか?
それとも、「普通」の英語辞書に載っている単語ですか?
1文字以上の英大文字または小文字のみからなる文字列全てですか?
それとも、「普通」の英語辞書に載っている単語ですか?
複雑な問題?マシンの性能を上げてOpenMPで殴ればいい!(死亡フラグ)
Re: cbc暗号解読
CBCモードはわかっていますか?ミラー さんが書きました:自分は、シーザーが文字をずらして暗号化する事、ファイルに書き込む事、ファイルに関する命令を調べました。
http://www.triplefalcon.com/Lexicon/Enc ... Mode-1.htm
複雑な問題?マシンの性能を上げてOpenMPで殴ればいい!(死亡フラグ)
Re: cbc暗号解読
プログラムを作りました。
せっかくなので、同じCBCモードのシーザー暗号で暗号化したものを掲載します。
初期化ベクトルは181です。
最後のヌル文字は省略しています。
平文は、ASCII印字可能文字および改行コードのみを含んでいます。
【追記】一応、最初に提示されたフォーマットに合わせたデータも置いておきます。
せっかくなので、同じCBCモードのシーザー暗号で暗号化したものを掲載します。
初期化ベクトルは181です。
最後のヌル文字は省略しています。
平文は、ASCII印字可能文字および改行コードのみを含んでいます。
75 fb 74 f6 79 eb 6e ea a9 74 e6 71 f4 7c f2 bb
b2 6b 40 29 e5 ae 83 b2 bd b7 b5 a5 9f 9e d6 97
c6 92 c5 c4 86 d3 89 d8 8b cd 88 87 ce 8a d1 d0
93 d1 84 c4 c3 84 d5 99 d3 d2 80 d3 91 de 99 d7
84 bf 7e f6 77 e6 72 e5 aa 7f eb 69 e3 72 fd 77
2c 05 12 53 52 0f 4c 4b 52 44 43 59 47 46 5e 4d
4c 54 46 45 52 15 14 55 0f 0e 15 03 02 1a 5d 5c
1c 57 56 40 54 3d 16 25 28 2c 2c 3e 3a f9 69 f8
7c fe 76 ef 75 34 3c 31 37 22 2a 2a 25 e4 71 f3
6f fa 74 e5 a4 a1 b2 bc b0 6f eb 63 ed 5f 1d 52
15 14 57 1d 52 16 17 fc b5 79 52 37 f7 bc 7b ee
65 df de 92 d2 89 bf b1 a3 ad 6c df 99 d6 90 c3
8a 89 c5 82 81 d4 9b dd dc 90 d4 86 d4 94 d2 96
95 9e 90 79 39 3c 38 3d 33 3c 38 f7 9a be cf 67
12 39 45 e7 85 bc 7b 29 f8 a9 7c 2b fa a9 82 67
ed 62 f5 b4 b8 b8 b0 bd 74 fc 71 e4 a3 a1 b2 b4
b6 79 f9 70 f0 61 2a e9 67 f4 72 e3 97 a9 5f 5e
04 ed ac 6b f7 62 e2 75 fb 77 36 22 2b 37 3d 39
36 32 35 f4 76 fd 7b e8 a7 a9 ab b7 a3 a1 a5 9f
a3 ce 6a 03 23 56 fd 81 ab c9 70 0c 16 fb ba 79
e9 7c fc 67 ed 6d 2c 38 35 25 2b 2b 24 20 23 e2
60 e7 65 f6 b5 b0 b4 b6 b8 bb bd b8 c6 8a ce 9c
ce 8e c8 8c b6 d9 7b 14 32 45 ec 92 be de 65 17
0b e0 9f 9e d6 97 c2 c1 87 c8 80 d3 99 d7 9a a4
b1 b3 af ba b4 a5 64 38 f7 a6 7c 55 54 53 19 56
01 00 51 13 51 14 2a 25 1f 50 16 41 08 07 19 18
07 1b f0 af 6e e6 67 f2 b1 a2 a6 a6 a1 dd 9e ca
8b cc 88 d9 c1 aa 69 28 20 2d 38 f7 7b fd 63 37
1c 1b 1a 52 13 12 19 57 04 42 00 ff bd 5f 5e 4b
4a 15 48 47 13 3f 3b 39 36 2f e6 66 f3 73 e4 9e
8e b2 7d 3c fd b7 b2 6f 22 e1 a6 ae 9f d5 80 c8
88 c3 7b ec 68 ea 7d f1 62 2a ea b6 66 25 38 23
08 07 06 05 04 4c 01 47 12 5a 1a 55 e9 7e fa 78
eb 63 f0 af 72 31 e0 9f c2 9d 9c 8d 97 81 80 9b
9a d2 9b d1 84 cc 8c bf bf a8 ac ae b9 b5 a6 6e
2d 35 1e 1d 1c 1b 1a 5b 0a 57 1d 52 05 42 49 19
4c 07 41 12 3f f2 b1 72 06 54 14 52 16 0b 0a 0e
5c 5b 46 0e 3f 35 20 28 28 23 e2 73 f5 75 e0 6e
fb a4 d7 98 99 94 93 d1 82 c4 91 a9 78 04 0c 16
fb ba 79 38 f7 70 df 8c c4 89 dc 99 90 c2 95 d0
94 c5 96 99 98 99 cf 80 c8 9b d1 8f c2 c1 96 d2
90 c3 8b d8 d7 99 cb 97 c2 c1 82 c6 c5 83 cc cb
81 ce 99 db 9b dd 8e 8d ce 8a dd 89 cb 8d c2 c1
d0 cf 8d c2 85 84 95 7f 29 e6 99 d6 d3 d9 c1 aa
69 28 e7 a6 b3 b5 a0 b4 a5 aa 69 37 eb c0 bf 7e
e2 c7 c6 c5 c9 c2 c1 92 d6 96 d1 d0 83 ca 8e 8d
c3 8c db 8d d8 d7 dc d2 b7 76 35 21 28 20 2b 2d
ec a3 b0 b4 b4 af cf 82 c6 87 bf aa a1 60 3b fa
95 af c0 66 11 38 46 ea 8a b1 70 35 f2 b1 a1 a1
9f d0 95 9c 9d 97 ce cb c6 c5 c2 8f c9 87 c2 7c
fd 67 e0 65 df 8c 84 83 9d 7f 3e ee a6 65 fd d6
d5 d4 d3 d2 9e da 88 da 9a dc 98 a2 af a9 a7 a2
dc 8f c9 86 c0 93 da d0 da 66 25 f7 b6 a3 a5 a3
a6 d8 99 cb 8c c9 8b d8 c2 a7 66 25 37 1c 1b 1a
14 1d 1c 47 14 4c 4b 09 44 07 06 4c 08 50 02 01
0a 04 ed ac 6b ec 62 ef ae 65 ed 67 fd bc 60 1f
0e 14 13 57 11 47 46 59 58 49 5b 4c 56 55 1d 57
0d 05 0d 03 02 58 31 f0 af 6e 2d 23 2c 37 f6 65
f6 72 e3 69 e5 6f fb 83 cd 87 d3 7f fd 79 fb ba
66 25 2b 24 2c 37 3d 3b 36 48 1d 57 13 46 08 59
41 2a e9 a8 67 26 2e 1f 4a 49 09 47 08 36 33 35
49 1e 5e 11 57 12 11 0b 0a 1a 00 e9 a8 67 26 e5
6b e4 6f 2e 26 fc d5 d4 d3 d2 d1 96 d8 89 88 7f
f5 b4 68 27 f6 ac 6b e1 a0 7b 3a 27 21 1f 5a e4
67 e1 6e e8 7b f2 a8 67 ed a5 6d 23 e2 78 51 50
4f 4e 4d 4c 4b 0e 4a 08 46 01 43 06 38 34 30 22
30 30 36 32 48 00 3c fb a5 64 2b e2 6e ea 78 ea
6a ec 68 12 5a e6 a5 6d 2c fd a7 70 2f e1 a0 aa
ae b6 7e 3d f7 b6 63 35 e2 aa 69 16 15 44 15 4f
18 50 1e 4a 18 26 2a 2e 3c 2e 2e 28 2c f6 db da
d9 d8 d7 d6 d5 84 d5 8f d8 90 de 8a d8 66 ea 6e
fc 6e ee 68 ec ab 75 34 38 3c 2e 3c 3c 3a 3e 44
0c 30 ea bf 7e 3d fc bb 7a 39 2f 28 df 9a de 9c
d2 95 cf 8a b4 b8 bc ae bc bc ba be c4 8c b0 6f
2d ef ae 68 13 40 46 45 42 43 42 05 3f 3b 33 36
32 35 49 03 45 15 45 03 43 05 3d 33 4d 4c 4c 50
4f 47 fa 73 33 f2 b3 74 5d 5c 5b 5a 59 58 57 12
56 14 5a 1d 57 12 2c 20 24 36 24 24 22 26 5c 14
28 e7 a5 77 36 f0 8b de d8 d7 d0 d5 d4 db 9e da
98 d6 91 d3 96 a8 a4 a0 b2 a0 a0 a6 a2 d8 90 ac
6b 36 f5 a4 bb 68 37 f6 69 f4 b3 62 f9 ad a7 66
39 f8 7b fd 7d f1 74 f0 73 0b 45 ff 6b f7 75 f1
73 07 4d ef a5 6b 2a 30 19 18 17 16 15 14 13 12
11 1d 16 15 5a 14 59 53 f1 81 a1 c7 6d 2c 2e 25
23 30 30 32 25 1f 4c 4b 0e 4a 1d 57 13 46 02 45
44 4d 41 2a e9 a8 67 26 e5 a4 63 22 20 20 2d 51
12 56 e8 7d fb 76 fe 79 38 e4 a3 72 28 01 00 ff
be 7d 3c fb 65 4e 4d 4c 4b 4a 16 fb ba 79 38 f7
7d fa b9 70 f2 72 fb 83 c0 84 ba ab a9 a4 ac a7
6d 2c 36 1b 1a 19 18 17 16 15 19 12 11 5d 07 52
01 53 06 05 40 04 46 08 4b 0d 48 47 14 58 1c 4e
1c 5c 1a 5e 5d 56 58 31 f0 af 6e 2d ec ab ba a7
ad a2 b5 b2 79 3a f6 ba 76 3a f6 ba 76 3a f6 ba
79 f1 73 e9 a8 74 33 f5 70 0b 44 45 48 47 0b 4d
13 19 01 ea a9 68 27 e6 a5 64 e1 6d fe bd 74 fc
bb 65 24 f3 a7 66 ee ad 70 2f 3c 38 38 3b 43 0e
4a 03 43 16 5d 45 44 0c 06 0c 04 03 52 06 51 11
58 18 49 40 03 45 05 49 0c 48 0b 33 3d 37 23 2f
2d 29 2b 4f 05 37 fd a5 8e 8d 8c 8b 8a 89 88 d7
81 d4 96 dd 9b c8 bf 77 0a 43 43 49 51 3a f9 b8
77 36 2a ff be 7d df b4 73 32 1f 59 0c 58 09 46
45 54 4e 23 3d 16
► スポイラーを表示
複雑な問題?マシンの性能を上げてOpenMPで殴ればいい!(死亡フラグ)
Re: cbc暗号解読
何やらブロック単位で処理するらしいのですが
そのブロック長がいくつなの?っていう情報は要らないのでしょうか?
(特に断りがない場合は何バイトということにする,みたいな慣例というか決まりみたいなことがあるのかな?)
とりあえず 1ブロック=1byte ということにしてやってみたけど
アルファベットだけの文字列ってのが一個も出てこないです><
やってみた結果:(表示できる文字だけで構成された結果だけ) (左側の[81]とかいうのは鍵の値です. : の右側が復号結果.)
[追記]
コードわすれてた.
[コード修正]なんでわざわざunsigned intだよ,恥ずかしい…
そのブロック長がいくつなの?っていう情報は要らないのでしょうか?
(特に断りがない場合は何バイトということにする,みたいな慣例というか決まりみたいなことがあるのかな?)
とりあえず 1ブロック=1byte ということにしてやってみたけど
アルファベットだけの文字列ってのが一個も出てこないです><
やってみた結果:(表示できる文字だけで構成された結果だけ) (左側の[81]とかいうのは鍵の値です. : の右側が復号結果.)
[追記]
コードわすれてた.
typedef std::vector< unsigned char > Bytes; //バイト列
//シーザー暗号(CBCモードとやらで,ブロック長1byte)の復号可処理
void CaesarCipher_CBC_Decryption(
const Bytes &CipherBytes, //暗号文
unsigned char InitVec, //CBCの Init vector とかいうやつ
unsigned char key, //暗号の鍵(暗号化時に値をずらす量)
Bytes &rDst //結果受取
)
{
int N = (int)CipherBytes.size();
rDst.resize( N );
for( int i=N-1; i>=0; i-- )
{
//unsigned int v = (unsigned int)CipherBytes[i] + key;
//if( v >= 256 )v-=256;
//rDst[i] = (unsigned char)v ^ ( i>0 ? CipherBytes[i-1] : InitVec );
rDst[i] = (CipherBytes[i] + key) ^ ( i>0 ? CipherBytes[i-1] : InitVec );
}
}
Re: cbc暗号解読
質問させていただいたミラーです。
おかげさまで何とか提出することができました。教えていただいたコードを勉強してC言語の力を高めていきます。
大変ありがとうございました。
おかげさまで何とか提出することができました。教えていただいたコードを勉強してC言語の力を高めていきます。
大変ありがとうございました。