I春秋—— Crypto Write up(一)
前言:密碼學(xué)涉及一系列的加密算法,雖然自己數(shù)學(xué)賊爛,但覺得加密這些算法還是蠻好玩的,就通過題來了解一些算法,話不多說,開始做題。
Substituted
方法:百度翻譯題目一下,Substituted(替換),替換加密中包含有簡單替換密碼,應(yīng)該就是簡單替換密碼,在線網(wǎng)站求解一波。
替換密碼解密
把頭部改成iceCTF即可得出flag。
做題總結(jié):通過這道題來了解一下簡單替換密碼
替換密碼屬于簡單對(duì)稱加密,即將字母表中一個(gè)字符替換成另一個(gè)字符,很好理解。
例如:明文 ABDDD替換規(guī)則:A->CB->TD->F密文 CTFFF而攻擊方式也有很多種
一、暴力破解
二、字母頻率分析
因?yàn)樘鎿Q密碼只不過是從一個(gè)字符換成另一個(gè)字符,我們只要將出現(xiàn)在密文的所有字符出現(xiàn)的頻率統(tǒng)計(jì)一下,看頻率最高的。由此我們可以推斷出,頻率高的肯定是英文語言中最常用的一個(gè)字母的替換字母。密文中字母的頻率分布與給定語言有著緊密的聯(lián)系,即使在相對(duì)較短的密文中也成立。
參考大佬的博客進(jìn)行學(xué)習(xí)關(guān)于替換密碼詳解
Alien Message
一張外星語言圖片
方法:谷歌識(shí)圖,查到對(duì)應(yīng)的表,手動(dòng)對(duì)照即可,但是flag格式有毒,大小寫格式問題
做題總結(jié): 一開始拿到這個(gè)題,以為是圖片會(huì)隱藏信息,用做雜項(xiàng)的方法嘗試了但都沒用,最后又學(xué)到了一招,百度識(shí)圖或谷歌識(shí)圖,有時(shí)也可以解決問題,也算了解了一種新的做題方法。
回旋13踢
方法:根據(jù)題目和提供的格式推斷出是ROT13(回旋13),在線解密即可得出flag
在線解密
做題總結(jié):一開始真的是一臉懵,完全沒有思路,只能查百度谷歌,查到了ROT13編碼,所以就通過這個(gè)題來了解一下ROT13加密。
ROT13(回轉(zhuǎn)13位)編碼是凱撒加密的一種變體,只對(duì)字母進(jìn)行編碼(對(duì)數(shù)字、空格等無影響),用當(dāng)前字母往前數(shù)的第13個(gè)字母替換當(dāng)前字母即可
例如:A->N,B->O,C->P等
除此之外,還有ROT5,ROT47
ROT5只對(duì)數(shù)字有效,用當(dāng)前數(shù)字往前數(shù)的第5個(gè)數(shù)字替換當(dāng)前數(shù)字即可。
ROT47:對(duì)數(shù)字、字母、常用符號(hào)進(jìn)行編碼,按照它們的ASCII值進(jìn)行位置替換,用當(dāng)前字符ASCII值往前數(shù)的第47位對(duì)應(yīng)字符替換當(dāng)前字符,例如:當(dāng)前為小寫字母z,編碼后變成大寫字母K,當(dāng)前為數(shù)字0,編碼后變成符號(hào)_ ,用于ROT47編碼的字符其ASCII值范圍是33-126。
接下來了解一下非對(duì)稱加密和對(duì)稱加密
①:非對(duì)稱加密,即加密和解密不是使用同一套規(guī)則,之前的對(duì)稱加密解密中,使用的都是同一個(gè)密匙,如果在傳輸中被攔截,破解的幾率會(huì)很高。
②:非對(duì)稱加密,加密和解密使用的不是同一個(gè)密匙,明文A通過公鑰B加密,加密后的明文和公鑰一起傳輸,接收方接收密文后用私鑰C(只有接收者才有)解密,這樣的加密解密的方式非常安全,即使公鑰和密文在傳輸過程中被攔截了,攔截者沒有私鑰,就算拿著公鑰和密文也無法破解出明文。因此相較于對(duì)稱加密,非對(duì)稱加密會(huì)更加安全。
了解完對(duì)稱加密和非對(duì)稱加密后,就來學(xué)習(xí)一下RSA算法
在了解RSA算法之前,要先了解一下質(zhì)數(shù)和互質(zhì)數(shù)等數(shù)學(xué)概念,方便更好的理解RSA算法。
質(zhì)數(shù):一個(gè)大于1的自然數(shù),除了1和它本身外,不能被其他自然數(shù)整除(除0以外)的數(shù)稱之為質(zhì)數(shù)(素?cái)?shù))。
互質(zhì)數(shù):公約數(shù)只有1的兩個(gè)數(shù)。
判斷互質(zhì)數(shù):
①任意兩個(gè)質(zhì)數(shù)一定構(gòu)成互質(zhì)數(shù)
②大數(shù)是質(zhì)數(shù)的兩個(gè)數(shù)一定是互質(zhì)數(shù)(如97與88)
歐拉函數(shù):任意給定正整數(shù)n,計(jì)算在小于等于n的正整數(shù)之中,有多少個(gè)與n構(gòu)成互質(zhì)關(guān)系?計(jì)算這個(gè)值的方法就叫做歐拉函數(shù),以φ(n)表示.(計(jì)算互為質(zhì)數(shù)的個(gè)數(shù))
例如: n為10,則與1、3、5、7、9互質(zhì),所以φ(n)=5 注意這里10不是質(zhì)數(shù),只算與其互質(zhì)的。在RSA算法中,歐拉函數(shù)對(duì)以下定理成立
除此之外,還需了解一下歐拉定理與模反元素
概念清楚過后,就來梳理一下生成密鑰對(duì)的流程
| 私鑰 | n:同公鑰n,d |
m為明文,c為密文
參考大佬博客學(xué)習(xí)了一波,真的是學(xué)到知識(shí)了。
黃映焜的博客園
一文搞懂 RSA 算法
RSA算法使用介紹
RSA算法流程
RSA練習(xí)
這次就先學(xué)習(xí)到這里,下次就開始練習(xí)RSA題目。
總結(jié)
以上是生活随笔為你收集整理的I春秋—— Crypto Write up(一)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 实验吧—部分MISC Write up
- 下一篇: 2019安恒七月月赛——MISC