转轮机加密详解两种解题方法 -攻防世界
從19世紀(jì)20年代,人們開始發(fā)明各種機(jī)械加密設(shè)備對(duì)數(shù)據(jù)進(jìn)行加密處理,最為著名的是轉(zhuǎn)輪機(jī)和轉(zhuǎn)輪加密算法,轉(zhuǎn)輪密碼機(jī)在二戰(zhàn)期間使用極為廣泛。
轉(zhuǎn)輪密碼機(jī)是由一個(gè)輸入鍵盤和一組轉(zhuǎn)輪組成,每個(gè)轉(zhuǎn)輪上標(biāo)有有26個(gè)字母,字母的的順序隨意。轉(zhuǎn)輪之間由齒輪進(jìn)行連接,當(dāng)一個(gè)轉(zhuǎn)輪轉(zhuǎn)動(dòng)的時(shí)候,可以將一個(gè)字母轉(zhuǎn)化成另外一個(gè)字母。
題目特點(diǎn):加密表每一行都有 26 個(gè)不同的字母,密鑰的長(zhǎng)度、密文長(zhǎng)度、表格的行數(shù)都是 13,密文中字母是有重復(fù)字母的。
解題:方法一(手動(dòng))
把內(nèi)容按照 2,3,7,5,13…行按順序排列,
NACZDTRXMJQOYHGVSFUWIKPBEL
FHTEQGYXPLOCKBDMAIZVRNSJUW
QGWTHSPYBXIZULVKMRAFDCEONJ
KCPMNZQWXYIHFRLABEUOTSGJVD
SXCDERFVBGTYHNUMKILOPJZQAW
EIURYTASBKJDFHGLVNCMXZPQOW
VUBMCQWAOIKZGJXPLTDSRFHENY
OSFEZWAXJGDLUBVIQHKYPNTCRM
QNOZUTWDCVRJLXKISEFAPMYGHB
OWTGVRSCZQKELMXYIHPUDNAJFB
FCUKTEBSXQYIZMJWAORPLNDVHG
NBVCXZQWERTPOIUYALSKDJFHGM
PNYCJBFZDRUSLOQXVETAMKGHIW
第一列的內(nèi)容即為密文,按照列讀找flag,找到了 fireinthehole
方法二:腳本
import re sss='''1: < ZWAXJGDLUBVIQHKYPNTCRMOSFE < 2: < KPBELNACZDTRXMJQOYHGVSFUWI < 3: < BDMAIZVRNSJUWFHTEQGYXPLOCK < 4: < RPLNDVHGFCUKTEBSXQYIZMJWAO < 5: < IHFRLABEUOTSGJVDKCPMNZQWXY < 6: < AMKGHIWPNYCJBFZDRUSLOQXVET < 7: < GWTHSPYBXIZULVKMRAFDCEONJQ < 8: < NOZUTWDCVRJLXKISEFAPMYGHBQ < 9: < XPLTDSRFHENYVUBMCQWAOIKZGJ < 10: < UDNAJFBOWTGVRSCZQKELMXYIHP < 11 < MNBVCXZQWERTPOIUYALSKDJFHG < 12 < LVNCMXZPQOWEIURYTASBKJDFHG < 13 < JZQAWSXCDERFVBGTYHNUMKILOP < ''' m="NFQKSEVOQOFNP" content=re.findall(r'< (.*?) <',sss,re.S) iv=[2,3,7,5,13,12,9,1,8,10,4,11,6] vvv=[] ans="" for i in range(13):index=content[iv[i]-1].index(m[i])vvv.append(index) for i in range(0,26):flag=""for j in range(13):flag+=content[iv[j]-1][(vvv[j]+i)%26]print flag總結(jié)
以上是生活随笔為你收集整理的转轮机加密详解两种解题方法 -攻防世界的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 2014 ecb,_it’s_easy_
- 下一篇: Python正则表达式介绍 re.fi