Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Speaker Deck
PRO
Sign in
Sign up for free
No More Crypto Fails
Inndy
March 18, 2017
Technology
33
6.8k
No More Crypto Fails
2017/03/18 at SITCON 2017
Inndy
March 18, 2017
Tweet
Share
More Decks by Inndy
See All by Inndy
工程師一定要懂的 Text Encoding
inndy
0
240
資訊安全:麻瓜的黑魔法防禦術
inndy
3
2.5k
HackmeCTF 平台背後的心酸血淚史
inndy
2
660
COSCUP 2018 Lightning Talk - 審稿好難,所以我們來寫程式吧
inndy
0
300
逆向工程:從入門到放棄
inndy
7
3.2k
HITCON 2017 Zeroday 發表會
inndy
0
1.2k
你再共用密碼啊
inndy
1
630
CTF From Zero To One
inndy
5
4.1k
逆向工程基礎
inndy
4
1.4k
Other Decks in Technology
See All in Technology
Oracle Cloud Infrastructure:2023年1月度サービス・アップデート
oracle4engineer
PRO
0
170
クックパッドがRubyKaigiに20名以上の社員で参加するわけ
midorikawa
0
240
オブザーバビリティのベストプラクティスと弥生の現状 / best practices for observability and YAYOI’s current state
yayoi_dd
0
160
cdk deployに必要な権限ってなんだ?
kinyok
0
190
都市ARの作り方 PLATEAU ✖︎ Geospatial API
41h0_shiho
1
300
S3とCloudWatch Logsの見直しから始めるコスト削減 / Cost saving S3 and CloudWatch Logs
shonansurvivors
0
270
API連携に伴う規制と対応 / Regulations and responses to API linkage
moneyforward
0
170
OCI DevOps 概要 / OCI DevOps overview
oracle4engineer
PRO
0
510
ECテックカンファレンス2023 EC事業部のモバイル開発2023
tatsumi0000
0
340
re:Invent2022 前後の Amazon EventBridge のアップデートを踏まえつつ、情シスの仕事をより楽しくしたい話。 / EventBridge for Information Systems Department
_kensh
2
780
ラズパイとGASで加湿器の消し忘れをLINEでリマインド&操作
minako__ph
0
150
OpenShift.Run2023_create-aro-with-terraform
ishiitaiki20fixer
1
360
Featured
See All Featured
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
270
12k
How to Ace a Technical Interview
jacobian
270
21k
Art, The Web, and Tiny UX
lynnandtonic
284
18k
The Web Native Designer (August 2011)
paulrobertlloyd
76
2.2k
Become a Pro
speakerdeck
PRO
6
3.2k
Building Flexible Design Systems
yeseniaperezcruz
314
35k
StorybookのUI Testing Handbookを読んだ
zakiyama
8
3.2k
Designing for humans not robots
tammielis
245
24k
Building a Modern Day E-commerce SEO Strategy
aleyda
6
4.5k
Design by the Numbers
sachag
271
18k
Understanding Cognitive Biases in Performance Measurement
bluesmoon
2
410
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
6
850
Transcript
/P.PSF$SZQUP'BJMT 植➿㺙焺㷸Ⰵ *OOEZ!4*5$0/
"CPVU.F ˙ *OOEZBLB加啄 ˙ $5'1MBZFS ˙ 1ZUIPOHVZ ˙ "NBUFVSTFDVSJUZSFTFBSDIFS ˙
'PPMTUBDLFOHJOFFSBU4IBSFMJLF
㖈鸏㜥怵闍⚥ ˙ ➝稲管焺꧹廔⸈㺙僽➊랃 ˙ 雊㣐㹻㼩倴植➿㺙焺㷸涸䥰欽剤♧㹁玑䏞涸澗鍑 ˙ 䌢鋅涸㺙焺㷸ꐫ铐莅㉏겗
㥶卓⡹濼麥 ˙ #BTF ˙ 3BJOCPX5BCMF ˙ 1#,%' TDSZQU CDSZQU BSHPOⰦ⚥⛓♧
˙ #MPDL$JQIFS ˙ 13/( ˙ 1BEEJOH0SBDMF
须俲㋲⡙ ˙ ♧⦐✳鹎⡙侸㶶珖⡲♧⦐⡙⯋ CJU ˙ ˙ Ⰽ⦐⼧Ⱉ鹎⡙侸㶶珖⡲♧⦐⡙⯋穉 CZUF
˙ _Y_Y'' 5
9PS ˙ 9PS僽♧珏齅鱀麌皿 ˙ ? ˙ ? ˙ ? ˙
? ˙ 湱ず捀湱殯捀 6
9PS ˙ Ⰽ⦐侸㶶⨞YPS麌皿儘 ˙ ⟃✳鹎⡙⢵溏鷷⦐CJU⨞麌皿 ˙ 玑䒭⚥䌢欽?痘贫侸㷸♳䌢欽ͩ ˙ ?
? 7
俒㶶6OJDPEF管焺 㺙 Y#$ &"' 㶶 6OJDPEF 65'管焺 8
➊랃♶僽⸈㺙 ˙ ♶僽雊匌銯溏饱⢵♶♧垺㽠僽⸈㺙 &ODSZQU ˙ Ⰽ珏⫹僽⸈㺙涸匌銯 ˙ 管焺 &ODPEF
˙ ꧹廔 )BTI 9
管焺 &ODPEF ˙ ⫄鱒麕玑〫⯈鏪暶㹁涸㶶⯋꧌ $IBSTFU ˙ ⢿㥶傍劍涸&NBJM〫⯈鏪秫"4$** ˙ &NBJM酭剤㕬晚䧴Ⱖ➮꣡⟝䙦랃鳵
˙ 䪾须俲欽厥珏倰䒭管焺䧭"4$**㶶⯋꧌ 10
管焺 &ODPEF ˙ )FY⼧Ⱉ鹎⡙管焺 ˙ "#$̔FF ˙ CBTF ˙ "#$̔26+%.5*[/"
˙ Ⱖ➮刿㢵涸管焺锞溏笞㛇涰猰 11
#BTF ˙ ⟃CZUFT"4$**⢵邍爚CZUFT须俲 ˙ 䨾⟃须俲넓琎剚隶㣐⦔ ˙ 嫦⦐CBTF㶶⯋⺫わCJUT涸须俲 ˙ 籏Ⱏ剤⦐"4$**㶶⯋"; B[
˙ 㥶卓须俲♶僽涸⦔侸銴⢪欽㞅⯏ 12
管焺 &ODPEF ˙ 䭭⢵չ⸈㺙պ僈滚➃♧溏㽠濼麥 ˙ 㺙焺涸㉏겗䧮⦛瘞瘞ⱄ锓 13
꧹廔 )BTI ˙ 䪾⟤䠑Ꟁ䏞涸须俲㠺簮䧭㔿㹁Ꟁ䏞涸须俲 ˙ 鱒ⴀ须俲➿邍鱒Ⰵ涸䶰銴EJHFTU ˙ ず垺涸鱒Ⰵ剚䖤ⵌ♧垺涸穡卓 ˙ ♶ず涸IBTI⧩邍爚鱒Ⰵ须俲♶ず
14
꧹廔 )BTI # Python def my_hash(data): return sum(bytearray(data.encode())) % 256
// C int my_hash(char *data, size_t len) { int i, H = 0; for(i = 0; i < len; i++) H = (H + data[i]) % 256; return H; } 15
꧹廔 )BTI • my_hash("Hash") == 132 • my_hash("Inndy") == 2
• my_hash("SITCON") == 208 • my_hash("SITCON2017") == 154 16
꧹廔涸欽鸁 ˙ ꧹廔邍 )BTI5BCMF 须俲穡圓 ˙ 焷⥃须俲㸤侮䚍 ˙ ♴鯺㣐墂呪增叆IBTI⢵焷㹁墂呪尝剤䴦㡏 ˙
侸⡙砞畎 ˙ 笪畀盘椚㆞ㄤ㹐剪鿪濼麥⡹涸㺙焺 ˙ ⥃㶸⢪欽罏涸㺙焺儘䥰鑪⥃㶸㺙焺涸꧹廔⧩ 17
䌢鋅涸꧹廔 ˙ $3$ ˙ .% ˙ 4)" ˙ 4)" 18
꧹廔莅㸞 ˙ ꧹廔焥中 ˙ 侸⡙砞畎 ˙ 㺙焺⥃㶸 ˙ Ꟁ䏞䒂㾝余乹 -FOHUI&YUFOTJPO"UUBDL
19
꧹廔焥中 ˙ ⢵闍♧럊齅鱀 ˙ 蕰12 ˙ 蕰ꬌ2ꬌ1 ˙ 蕰ꬌ1ꬌ2̒鸏♶䧭用 ˙
蕰21̒鸏⛳♶䧭用 20
꧹廔焥中 ˙ 1徍宐2尝鳵岁ㄎ ˙ 㥶卓䧮徍宐䧮㽠尝鳵岁ㄎ ˙ 㥶卓䧮〳⟃ㄎ䧮㽠尝剤徍宐 ˙ 㥶卓䧮尝鳵岁ㄎ䧮㽠徍宐 ˙
铞♶㹁䧮뢙㝱ザ 21
꧹廔焥中 ˙ 1㺙焺鱒Ⰵ姻焷 ˙ 2) JOQVU 瘞倴 ˙ 㥶卓㺙焺鱒Ⰵ姻焷) JOQVU
瘞倴 ˙ 㥶卓) JOQVU ♶瘞倴㺙焺鱒Ⰵꐫ铐 ˙ 㥶卓) JOQVU 瘞倴㺙焺鱒Ⰵ姻焷 ˙ ꧹廔焥中 )BTI$PMMJTJPO 22
꧹廔焥中 ˙ 鱒ⰅꟀ䏞♶ꣳ⡎僽鱒ⴀ穡卓剤ꣳ ˙ 籏僽〳⟃䪪ⵌⰍ⦐鱒Ⰵ欴欰♧垺涸꧹廔⧩ 23
꧹廔焥中 • my_hash("cActo4ri5Hm3OZzB") == 123 • my_hash("ABCDEFGHIJKLMN9Y") == 123 •
my_hash("0123456789fkcecr") == 123 • my_hash("Collision_Yhpvah") == 123 • my_hash("I am Inndy_5pRRz") == 123 • my_hash("SITCON 2017_N4hx") == 123 24
꧹廔焥中 ˙ 곏搭䧮ⶍⶍ涮僈涸
[email protected]
湱殹腛䓳 ˙ /PODSZQUPHSBQIJDIBTIGVODUJPO ˙ 殹䪪ⵌ佪桧넞倴凐⸂灶鍑涸焥中倰岁 ˙ 䧮⦛㽠铞鸏⦐꧹廔倰岁鄄չ灶鍑պ✫ ˙
.%欽⦐➃ꨶ舡〳⟃㸤䧭 ˙ 4IBUUFSFE 4)"DPMMJTJPO CZ(PPHMFBOE$8* 25
侸⡙砞畎 ˙ 焷⥃鎝䜂尝剤鄄睕佖罜⚂♶僽⩝鸤涸 ˙ 䧮ㄤ⡹Ⱏ剤♧䪾㺙ꚤ尝剤痧♲⦐➃濼麥 ˙ $*"/4"ㄤ(PPHMF⛳♶濼麥 ˙ ⫄鷑鎝䜂⟃⿻)BTI 鎝䜂
Ⱏ❧㺙ꚤ ˙ 䱺佐鎝䜂涸儘⦬增叆)BTI 鎝䜂 Ⱏ❧㺙ꚤ ˙ 欽)."$䖕剚䲿ⵌ 26
㺙焺⥃㶸 ˙ 剪䲿⣘罏䙦랃⥃㶸⢪欽罏㺙焺 ˙ ⥃㶸㺙焺涸꧹廔⧩ ˙ 盘椚㆞ㄤ㹐剪㽠♶濼麥⡹涸㺙焺✫ 27
㺙焺⥃㶸 ˙ 笪畀鄄Ⰵ⡹涸㺙焺鼩僽尝剤➃濼麥㌨ ˙ 凐⸂灶鍑#SVUFGPSDF(16⸈鸠 ˙ 䕙赙邍3BJOCPX5BCMF ˙ 갸⯓鎙皿僈俒莅꧹廔⧩ ˙
㶶Ⱙ余乹 ˙ 欽䌢鋅涸㋲㶶欴欰〳腋涸穉ざ㺙焺 28
㺙焺⥃㶸 ˙ )."$锅⸈뛥,FZFE)BTI 4BMUFE)BTI ˙ IBTI 㺙焺 TBMU ˙
)."$僽겳⡂涸嚌䙂⡎僽剤暶㹁涸㻜⡲倰䒭 ˙ 湬䱺⢪欽㼠捀㺙焺鏤鎙涸꧹廔倰岁 ˙ "SHPO 1#,%' TDSZQU CDSZQU 29
Ꟁ䏞䒂㾝余乹 ˙ 䊺濼) LFZ EBUB ⟃⿻EBUB⡎♶濼麥LFZ ˙ 〳⟃皿ⴀ) LFZ EBUB
QBEEJOH FWJM ˙ 〳⟃㖈剤IBTI增叆涸朜屣♴幑⸈겙㢫须俲 ˙ .% 4)" 4)" 4)"鿪「ⵌ䕧갠 ˙ 䊨ⰨIBTIQVNQ ˙ ⢪欽)."$⽰〳鼚⯝ 30
➊랃僽⸈㺙 ˙ 麕玑銴㺙ꚤ ,FZ ˙ ♶濼麥㺙ꚤ㽠尝鳵岁鍑㺙 ˙ ⸈㺙怵皿岁Ⱇ⛳♶剚鸤䧭㺙俒鄄灶陼 ˙
♶搭㽠僽鸏⦐怵皿岁剤緄ꤴ䧴僽䖕 31
锓⸈㺙⛓ ˙ 㔔捀⸈㺙銴㺙ꚤ鸒䌢僽չꦑ堥欴欰պ ˙ 㣐鿈ⴕ玑䒭铃鎊䲿⣘涸✥侸僽չ⩝ꦑ堥侸պ ˙ ⢪欽⩝ꦑ堥侸⢵欴欰㺙ꚤ僽剤괐ꦖ涸 32
⩝ꦑ堥侸欴欰㐼 13/( ˙ ⯓歋♧⦐珏㶩 TFFE ⴲ㨥⻋✥侸朜䢀 TUBUF ˙ ⱄ竤歋暶㹁涸怵皿䌢欰ꦑ堥侸
˙ 製꧌㣁㢵涸✥侸䖕〳⟃凐⸂灶鍑䧴僽皿ⴀTFFE ˙ 䘎鎹ⴲ㨥⻋㽠㨥欽剚欴欰ⴀ♧垺涸ꦑ堥侸 ˙ 㣐㢵侸➃剚欽儘⢵殹⡲ⴲ㨥⻋侸 33
⩝ꦑ堥侸欴欰㐼 13/( ˙ HMJCD傍劍涸㻜⡲箁䚍ず긅 -$( ˙ SFUVSOTUBUF TUBUF YDFE
YG ˙ 濼麥♧⦐✥侸㽠〳⟃湬䱺皿ⴀ⛓䖕涸䨾剤✥侸 ˙ ⛳㽠僽〳⟃갸庠劢⢵涸✥侸 ˙ 歋倴TUBUF剤ꣳ䨾⟃✥侸剚鹋劍䚍涸ꅾ醳 34
㺙ꚤ欴欰莅13/( ˙ TSBOE UJNF /6-- $ ˙ 䧮㥶卓濼麥⡹欽涸僽➊랃13/( ˙ ⿶濼麥㺙ꚤ欴欰涸儘㣐嚌僽➊랃儘⦬
35
㺙ꚤ欴欰 ˙ 欴欰⸈㺙㺙ꚤ涸儘⦬銴⢪欽04䲿⣘涸㸞✥侸 ˙ 䖰炽넓製꧌涸须鎝✥䏞 FOUSPQZ 嫲鯱넞 ˙ 㼩倴㸞銴宠溫涸䖎넞欩荛剚⢪欽㼠涸炽넓 ˙
製꧌㢫歲涸暟椚꧹鎝⟃㟞⸈✥䏞 ˙ EFWVSBOEPNGPS6/*9 ˙ $SZQU(FO3BOEPNGPS8JOEPXT 36
⸈㺙禺窡ⴕ겳 ˙ 呏亙⸈㺙禺窡涸麌⡲倰䒭ⴕ䧭♲珏 ˙ 㼩珖䒭 ˙ ⴕ穉⸈㺙 #MPDL$JQIFS ˙
⚮崩⸈㺙 4USFBN$JQIFS ˙ ꬌ㼩珖 ˙ Ⱇꆄꚤ禺窡 1VCMJD,FZ&ODSZQUJPO 37
⚮崩⸈㺙 ˙ 㛇倴YPS涸⸈㺙倰䒭 ˙ 1YPS,$ $YPS,1 ˙ 䪾LFZ깐鹎⛓䖕皿ⴀLFZTUSFBN ˙ 僈俒㺙俒YPSLFZTUSFBN㽠㸤䧭⸈鍑㺙
˙ 㛇劥♳㽠僽⦐13/(♶麕䗳갭銴⨞ⵌꨈ⟃갸庠 38
⚮崩⸈㺙 ˙ 㺙ꚤ♶〳⟃ꅾ醳⢪欽 ˙ & 9 , 邍爚⟃㺙ꚤ,⸈㺙须俲9 ˙ &
9 , 9?13/( , ˙ & " , ?& # , "?L ? #?L "?# ˙ 㼩倴僈俒剤㣁㢵涸澗鍑㽠〳⟃灶㺙 39
⚮崩⸈㺙 ˙ 㔔捀劥颶♳僽13/(䨾⟃TUSFBNLFZ剚䗅橇 ˙ ⸈㺙须俲Ꟁ䏞馄麕TUSFBNLFZ涸鹋劍銴㼭䗱 ˙ 䊺濼僈俒涸鑨〳⟃睕佖须俲 ˙
[email protected]
㺙俒?僈俒 ˙
銴)."$⢵焷⥃须俲㸤侮䚍 40
ⴕ穉⸈㺙 ˙ 㛇劥穡圓僽♧⦐〳鷠ⴅ侸 ˙ 剤ꣳ涸㹁纏㚖ㄤ剤ꣳ涸⧩㚖 ˙ 鱒Ⰵㄤ鱒ⴀ涸须俲Ꟁ䏞㔿㹁 ˙ ⢿㥶嫦妄㼟CZUFT僈俒⸈㺙䧭CZUFT㺙俒 ˙
$& 1 , % $ , 1 ˙ 1僈俒$㺙俒,㺙ꚤ&⸈㺙%鍑㺙 41
ⴕ穉⸈㺙 ˙ 㥶卓僈俒馄麕♧⦐CMPDL涸㣐㼭 ˙ 銴䪾麕Ꟁ涸僈俒㺙俒ⴕ䧭㢵㝆ⴕ妄贖椚 ˙ 㥶卓僈俒♶ⵌ♧⦐CMPDL涸㣐㼭 ˙ 銴㞅⯏ QBEEJOH
䪾Ꟁ䏞酢駈 ˙ 1,$41,$4 42
1,$4㞅⯏ ˙ ず垺涸僈俒莅㺙ꚤ⸈㺙ⴀ⢵剚䖤ⵌ湱ず涸穡卓 ˙ 䧮⦛䒸Ⰵ✫ⴲ㨥ぢꆀ *7 堥ⵖ⢵贖椚鸏⦐㉏겗 • n =
BLK_SZ - (len(data) % BLK_SZ) • padding = byte(n) * n • "0123456789AB\x05\x05\x05\x05\x05" ˙ 瘞瘞䧮⦛剚㔐⢵溏1,$4鸤䧭涸㉏겗 43
ⴕ穉⸈㺙 ˙ 䱰欽&$#垸䒭尝剤*7嫦⦐CMPDLぐ荈⸈㺙 ˙ 湱ず僈俒⸈㺙穡卓♧垺㸪錚⢵溏 44
ⴕ穉⸈㺙䊨⡲垸䒭 ˙ 㥶卓嫦⦐CMPDL鿪剤荈䊹涸*7须俲剚䧭ꟀⰍ⦔ ˙ ♧⦐CMPDL涸须俲㽠〳⟃䬄ⴀ⢵殹⡲*7欽 ˙ 剤ぐ珏♶ず涸幋ざ倰䒭 ˙ $#$ 0'#
$'# $53 ˙ 鸏酭䧮⦛ꆚ㼩$#$⨞铞僈 ˙ Ⱖ➮倰䒭㖈笞㛇涰猰剤湱ず涸㕬鍑 45
$#$垸䒭⸈㺙 Cipher Block Chaining (CBC) mode encryption block cipher encryption
Key Ciphertext Plaintext block cipher encryption Key Ciphertext Plaintext block cipher encryption Key Ciphertext Plaintext Initialization Vector (IV) 9PS *7<> *7<> *7<> 46
$#$垸䒭⸈㺙 ˙ ♴匌銯剚对㹁植㖈鸏㝆㺙俒涸Ⰹ㺂 ˙ 鸏♧㝆僈俒 ˙ 㺙ꚤ ˙ ♳♧㝆涸㺙俒䧴僽*7 ˙
$<>*7 ˙ $<O>& $<O>?1<O> , 47
Cipher Block Chaining (CBC) mode decryption block cipher decryption Key
Plaintext Ciphertext Initialization Vector (IV) block cipher decryption Key Plaintext Ciphertext block cipher decryption Key Plaintext Ciphertext $#$垸䒭鍑㺙 *7<> *7<> *7<> 48
$#$垸䒭鍑㺙 ˙ ♴匌銯剚对㹁植㖈鸏㝆僈俒鍑ⴀ⢵涸Ⰹ㺂 ˙ 鸏♧㝆㺙俒 ˙ 㺙ꚤ ˙ ♳♧㝆涸㺙俒䧴僽*7 ˙
$<>*7 ˙ 1<O>$<O>?% $<O> , 49
1BEEJOH0SBDMF"UUBDL ˙ 䎃痧♧妄鄄䲿ⴀ⢵ ˙ 3BJMT "41/&5 +BWB瘞㣐ꆀ笪畀「ⵌ䕧갠 ˙ $#$垸䒭⸈♳1,$4㞅⯏倰䒭 ˙
㥶卓䧮⥜佖✫㺙俒灶㡏✫㞅⯏⧩ ˙ ⡹欽涸⸈㺙玑䒭䏨〳腋剚UISPXFSSPS ˙ 尝剤DBUDI涸鑨⢪欽罏剚溏ⵌ ˙ 㼬荞〳⟃㖈劢濼㺙ꚤ涸䞕屣♴鍑㺙⥜佖Ⰹ㺂 50
˙ ➊랃⯋稇剚䕧갠僈俒 ˙ $JQIFSUFYU ˙ ,FZ ˙ *7䧴♳♧㝆㺙俒 ˙ 䖰齡酭♴䩛嫲鯱㺂僒
˙ 齡䎙⦐僽䧮⦛濼麥罜⚂〳⟃䱾ⵖ涸 1BEEJOH0SBDMF"UUBDL Cipher Block Chain block cipher decryption Key Plaintext Ciphertext Initialization Vector (IV) Key 51
1BEEJOH0SBDMF"UUBDL ˙ 余乹㜥兞 ˙ 笪畀䪾须俲⸈㺙䖕㶸㖈$PPLJF酭 ˙ ⡹濼麥*7ㄤ㺙俒尝剤,FZㄤ僈俒 ˙ ⡹〳⟃⥜佖$PPLJF 52
1BEEJOH0SBDMF"UUBDL ˙ 灶㡏*7 ˙ 鑑衽⥜佖*7剓䖕♧⦐CZUF欴欰ⴀ穡㽵涸㞅⯏ ˙ 鸏儘⦬䧮⦛㽠〳⟃皿ⴀ剓䖕♧⦐CZUF涸僈俒 ˙ 䱺衽欴欰㽠〳⟃皿ⴀ剓䖕CZUFT僈俒 ˙
⟃姽겳䲀㽠〳⟃䗂⾲侮㝆僈俒 53
1BEEJOH0SBDMF"UUBDL • Plain = "AESXX" • Key = "
[email protected]
#
[email protected]
#$" •
P = 41 45 53 58 58 • IV = c8 76 30 94 87 • C = aa bb cc dd ee • c = 89 33 63 cc df 54 Cipher Block Chainin block cipher decryption Key Plaintext Ciphertext Initialization Vector (IV) Key $ 1 * 랱盳
1BEEJOH0SBDMF"UUBDL • IV = c8 76 30 94 87 •
c = 89 33 63 cc df • iv = 00 00 00 00 00 • iv = 00 00 00 00 01 • ... • iv = 00 00 00 00 de • 0xde ^ 0xdf = 0x01 • p = 89 33 63 cc 01 // 正確的填充 55 Cipher Block Chainin block cipher decryption Key Plaintext Ciphertext Initialization Vector (IV) Key D 1 * 랱盳
1BEEJOH0SBDMF"UUBDL • IV = c8 76 30 94 87 •
P = 41 45 53 58 58 • c = 89 33 63 cc df • iv = 00 00 00 00 de • p = 89 33 63 cc 01 填充正確解密成功! • last byte: 0xde ^ 0x01 ^ 0x87 = 0x58 • 接下來來做 02 02 結尾,解開倒數第⼆二 byte 56
1BEEJOH0SBDMF"UUBDL ˙ 灶鍑䧭劥䖰
[email protected]
[F隶䧭
[email protected]
[F ˙ CJUT$JQIFS 隶䧭 ˙ 1BEEJOH0SBDMF涸䗳銴哭⟝ ˙
1,$4㞅⯏ ˙ $#$垸䒭 ˙ 1BEEJOH&SSPS鄄⢪欽罏溏ⵌ 57
1BEEJOH0SBDMF"UUBDL ˙ 鍑对倰䒭 ˙ &ODSZQUUIFO."$ ˙ ♧傉Ⰹ㺂鄄睕佖㽠䬩穪鍑㺙 ˙ ꦡ询1BEEJOH&SSPS鎝䜂 ˙
⡎僽〳腋剤Ⱖ➮倰䒭䖤濼 &Y5JNJOH"UUBDL ˙ ♶銴欽$#$.PEF 58
ⴕ穉⸈㺙籏穡 ˙ *7涸欽䠑僽雊湱ず僈俒嫦妄⸈㺙涸穡卓♶ず ˙ 䗳⢪欽㸞✥侸⚛⚂嫦妄ꅾ倞欴欰 ˙ 〳⟃莅㺙俒♧饱㶸佞 ˙ 䌢䌢佞㖈㺙俒涸痧♧⦐CMPDL ˙
澗鍑ぐ珏ⴕ穉⸈㺙涸䊨⡲垸䒭 ˙ 鼚⯝悴㖈涸괐ꦖ 59
ꬌ㼩珖⸈㺙 ˙ 植➿㺙焺㷸剓ꅾ銴涸涮僈⛓♧ ˙ 34"剓䌢鋅⛳剓䌢⢪欽 ˙ 堬㕩刼箁㺙焺 &$$ ˙
欴欰LFZ剚欴ⴀ♧㼩Ⱇꚤ莅猙ꚤ ˙ Ⱇꚤ〳⟃Ⱇ窍Ⱖ➮➃ ˙ 猙ꚤ〫剤⡹荈䊹䭰剤 60
ꬌ㼩珖⸈㺙 ˙ Ⱇꚤ⸈㺙〫腋欽猙ꚤ鍑㺙 ˙ 猙ꚤ⸈㺙〫腋欽Ⱇꚤ鍑㺙 ˙ ⢪欽倰岁 ˙ 〳⟃焷⥃须俲僽歋厥⦐➃⫄鷑涸 ˙
〳⟃焷⥃须俲〫剤厥⦐➃〳⟃隡《 61
ꬌ㼩珖⸈㺙 ˙ 歋倴Ⱇꚤ禺窡涸麌皿鸠䏞鸒䌢嫲㼩珖⸈㺙䢩 ˙ 䌢欽涸倰岁僽⯓⟃㼩珖䒭涸倰岁⸈㺙须俲 ˙ ⱄ欽Ⱇꚤ禺窡⸈㺙㼩珖㺙焺涸㺙ꚤ ˙ 侸⡙砞畎僽⯓IBTI须俲ⱄ⟃Ⱇꚤ⸈㺙IBTI ˙
44-5-4)5514㽠僽㛇倴鸏珏倰岁䒊用涸 62
穡锸 ˙ )BTI ˙ ⮭㶸㺙焺欽BSHPO QCLEG TDSZQU CDSZQU ˙ 鼚⯝须俲鄄睕佖)BTI
)."$ ˙ 㼭䗱-FOHUI&YUFOTJPO"UUBDL ˙ .% 4)"♶銴欽 63
穡锸 ˙ 㼩珖⸈㺙 ˙ ♶銴欽&$#.PEF ˙ $#$.PEF 1,$4剚1BEEJOH0SBDMF ˙ 3$♶銴欽
˙ ꬌ㼩珖⸈㺙 ˙ 34"銴3BOEPN1BEEJOH 64
2" =䧴僽㣐㹻〳⟃鍑侕㉻