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