最近一直在學習CTF密碼學相關(guān)問題 以下列舉幾道被惡心的不要不要的題目艺挪,順便分享一些思路和做法赴叹。
檢查符號
截取一段電波鸿染,一不小心全變成了泡泡。你能夠解密嗎乞巧?
"o00涨椒。o。o0oo绽媒。0o0o蚕冬。000。00是辕。o囤热。0。000获三。ooo0旁蔼。o。0o疙教。oo0棺聊。ooo。0o0o贞谓。0躺屁。oo0o"
答案格式:key{flag},flag是解密內(nèi)容
拿到此題经宏,觀察像是摩斯電碼加密犀暑,電波里句號是分隔符,讓它變成空格烁兰,然后o變. 0變-使用notepad++即可實現(xiàn)耐亏。摩斯電碼如下:
.-- . .-.. -.-. --- -- . - --- ...- . -. ..- ... -.-. - ..-.
解密網(wǎng)站
拿到字符串WELCOMETOVENUSCTF,不要急著提交沪斟,不然會提示你ERROR的广辰。。主之≡竦酰回過頭看看題目里的TIPS,檢查符號槽奕!大寫變小寫~好了這只是最溫柔的一個坑几睛。。粤攒。
第二道:
規(guī)則很公平
vv公司稱所森,他們給出了最為公平的游戲規(guī)則,你能猜到是什么嗎夯接?
規(guī)則:CGOCPMOFEBMLUNISEOZY.
附件:CULTREABDFGHIKMNOPQSVWXYZ.
答案的格式是key{xxxxx}焕济,所以答案是
首先Tips就是公平,你會發(fā)現(xiàn)Playfair這個東西盔几,做密碼表然后開始解密吧晴弃!
接下來就走上了非對稱算法:RSA的不歸路。逊拍。上鞠。
先簡單看一下什么是RSA吧:
RSA公鑰加密算法是1977年由羅納德·李維斯特(Ron Rivest)、阿迪·薩莫爾(Adi Shamir)和倫納德·阿德曼(Leonard Adleman)一起提出的顺献。1987年7月首次在美國公布旗国,當時他們?nèi)硕荚诼槭±砉W院工作實習。RSA就是他們?nèi)诵帐祥_頭字母拼在一起組成的注整。
RSA是目前最有影響力和最常用的公鑰加密算法能曾,它能夠抵抗到目前為止已知的絕大多數(shù)密碼攻擊,已被ISO推薦為公鑰數(shù)據(jù)加密標準肿轨。
今天只有短的RSA鑰匙才可能被強力方式解破寿冕。到2008年為止,世界上還沒有任何可靠的攻擊RSA算法的方式椒袍。只要其鑰匙的長度足夠長驼唱,用RSA加密的信息實際上是不能被解破的。但在分布式計算和量子計算機理論日趨成熟的今天驹暑,RSA加密安全性受到了挑戰(zhàn)和質(zhì)疑玫恳。
RSA算法基于一個十分簡單的數(shù)論事實:將兩個大質(zhì)數(shù)相乘十分容易辨赐,但是想要對其乘積進行因式分解卻極其困難,因此可以將乘積公開作為加密密鑰京办。
再來看一下具體的加解密算法:
RSA算法是一種非對稱密碼算法掀序,所謂非對稱,就是指該算法需要一對密鑰惭婿,使用其中一個加密不恭,則需要用另一個才能解密。RSA的算法涉及三個參數(shù)财饥,n换吧、e1、e2钥星。其中沾瓦,n是兩個大質(zhì)數(shù)p、****q的積打颤,n的二進制表示時所占用的位數(shù)暴拄,就是所謂的密鑰長度。
e1和e2是一對相關(guān)的值编饺,e1可以任意取乖篷,但要求e1與(p-1)*(q-1)互質(zhì);再選擇e2透且,要求(e2×e1)≡1(mod(p-1)×(q-1))撕蔼。
(n,e1),(n秽誊,e2)就是密鑰對鲸沮。其中(n,e1)為公鑰锅论,(n讼溺,e2)為私鑰。
RSA加解密的算法完全相同最易,設(shè)A為明文怒坯,B為密文,則:A≡B^e2( mod n)藻懒;B≡A^e1 (mod n)剔猿;(公鑰加密體制中,一般用公鑰加密嬉荆,私鑰解密)
e1和e2可以互換使用归敬,即:
A≡B^e1 (mod n);B≡A^e2( mod n);
那么開始肝題吧:
得到了公鑰,怎么才能解密呢汪茧?
tip分解n椅亚,答案格式ISG{flag}
RSA分解
在public.pem里是標準公鑰文件,使用Openssl對其進行提取陆爽,可以得到十六進制的大數(shù)n和模數(shù)e什往,本題的難點就在于分解n,將一個大數(shù)分解為兩個質(zhì)數(shù)的乘積慌闭。。