青青草国产成人av片免费/香港三级日本韩国三级专线/国内自拍在钱/天堂国产女人av

發表于 2023-12-12 14:52:42 江蘇| 2024-1-2 14:25編輯
[quote]吃了學院將近4年白食了,也該寫點有用的東西了[/quote

因為有人回了所以我提前在開頭聲明:請不要刷感謝分享,影響帖子觀感不說,我賭你肯定沒認真看帖子內容。以后有人再回感謝分享我一律拉黑
導言
首先我們要知道為什么會有密碼學。密碼學來源于人們對于信息傳遞過程中的追求。由古至今發展出了許許多多的密碼,人們將它們分為了古典密碼學和現代密碼學。密碼學(Crypto)一詞源于希臘語kryptós“隱藏的“,和gráphein“書寫“。古典密碼學通常依賴于創造力,作為一種實用性藝術存在,并沒有對于密碼學原理的清晰定義。而現代密碼學是計算機與數學的交叉學科。如果你是數論大佬的話,請您務必教導我在密碼學方面的學習,不勝感激。
言歸正傳,現代密碼學則起源于20世紀末出現的大量相關理論,這些理論使得現代密碼學成為了一種可以系統而嚴格地學習的科學。
我上了大學后加入了網安社團,主要進行密碼學方向的研究。本人水平依舊有限,如有謬誤,還請各方大佬斧正。也請大佬們積極補充,使本文更加翔實。
古典密碼部分學院已經有大量帖子講過了,我就不多加贅述了。
而我呢,正如上文所說,我依然是一個密碼學入門菜鳥,各位中肯定有人的天賦要遠遠高于我,我現在敢在這里講密碼學,只是因為我的水平高于一部分人(無惡意),所以還請大家多多給我提建議,我都會聽的。
本人無意寫一篇密碼大合集,本文只希望能幫助讀者建立基礎的密碼思想。如果想找一部密碼百科,還請移步別處。





219

272

分享

4 | 樓主| 發表于 2023-12-12 15:05:06 江蘇| 2023-12-17 23:24編輯
常見單表替換密碼

凱撒密碼
這個我不想,也覺得自己不應該在這上面花費時間。如果您是小白,確實不了解這種密碼,請靈活運用搜索引擎。
傳說凱撒大帝曾經用這種方式和他的將領們傳遞軍情。歷史證明這種方法在當時是安全的,而且要知道那會兒可沒有義務教育。
破解方法
爆破。

簡單密碼表替換
將字母表隨機替換成一個新的密碼表,形成一種新的對應關系。破解難度來源于其巨量的排列組合可能性(密鑰空間的數量為26!=26×25×…×2×1),使其難以暴力破解。
破解方法
字頻分析:我們知道,英語字母的出現頻率是不一樣的,比如最高的是e。那么將e替換之后,比如替換為x,那么x的字頻就是最高的。
1. 高頻與低頻字母均可成為線索
2. 擁有的密文數量越多越容易破解
3. 要進行適當猜測與推理
https://quipqiup.com/
這個網站我平時經常使用,簡單的替換類密碼都能爆。

Polybius密碼
也是簡單的替換,雖然沒有j,但是不影響明文的可讀性。

破解方法
字頻分析。

豬圈密碼
這個我看學院里也有大佬講的很詳細的 帖子 ,可以移步過去看看。
破解方法
這個密碼表似乎都是公開的吧……破解難度甚至低于凱撒…

培根密碼
培根密碼使用兩種不同的字體,代表 A 和 B,結合加密表進行加解密。我認為它本質上其實是一種隱寫術。

上面的是常用的加密表。還有另外的一種加密表,可認為是將 26 個字母從 0 到 25 排序,以二進制表示,A 代表 0,B 代表 1。
下面這一段內容就是明文 steganography 加密后的內容,正常字體是 A,粗體是 B:
To encode amessage each letter ofthe plaintext is replaced bya groupoffiveof the letters'A'or 'B'.
可以看到,培根密碼主要有以下特點
- 只有兩種類型的字符
- 每一段的長度為 5
- 加密內容會有特殊的字體之分,亦或者大小寫之分。
破解方法
在線網站:http://rumkin.com/tools/cipher/baconian.php當然,你非要爆破的話我也不攔你。

云影密碼
學院里我看也有人講過了, 那篇 講的很好。我就不寫了。不過還是忍不住想指出一個小錯誤,就是
引用
可知falg為WELLDONE
falg應該是flag,問就是打CTF打的。
破解方法
可以口算。
以下是解碼腳本,大家可以隨意取用。


def decrypt_cloud_shadow_code(encoded_message):   
# 將數字映射到字母(1 -> A,2 -> B,...,26 -> Z)   
num_to_letter = {i: chr(64 + i) for i in range(1, 27)}   

# 使用'0'作為分隔符將消息分成組   
groups = encoded_message.split('0')   

# 解密每個組   
decrypted_message = ''   
for group in groups:        
if group:  # 檢查組是否非空            
total = sum(int(digit) for digit in group)            
decrypted_message += num_to_letter.get(total, '?')  # 對于無效數字,使用'?'表示   
return decrypted_message

# 用戶輸入user_input = input("輸入加密的消息: ")
decrypted_message = decrypt_cloud_shadow_code(user_input)
print(f"解密后的消息: {decrypted_message}")

本帖子中包含更多圖片或附件資源

您需要 登錄 才可以下載或查看,沒有帳號?加入學院

3 | 樓主| 發表于 2023-12-12 16:32:50 江蘇| 2023-12-17 22:22編輯
占一樓,說不定未來有用
4 | 樓主| 發表于 2023-12-17 22:09:20 江蘇| 2023-12-18 16:23編輯
回來了,接著講,這兩天有點忙,承蒙大家錯愛了。你們不要給我點贊了,弄得我都良心不安了,所以這次的我要講的很細很細
仿射密碼 ——年輕人的第一種現代密碼
這個學院里也有人講過,我就直說了,不夠細致/明朗,至少我看完仍然是一頭霧水的。這個屬于現代密碼范圍,要求有一定的數學能力。但是大家不要害怕,這個還是很簡單的。我覺得我講的小學生都可以聽懂。如果你真的沒有聽懂,可以回帖詢問,雖然我現在不活躍了,但是每天還會來學院看一看,我會盡我最大能力講懂你。
好,言歸正傳,開課。
首先介紹一點密碼學的概念
在密碼學中,通常使用以下標記來表示不同的概念:
m(明文):表示原始消息或文本,即加密前的信息。
c(密文):表示經過加密后的消息或文本,即加密后的信息。
這是一種通用的標記約定,但并非所有加密算法都采用這種符號約定。在某些情況下,也可能使用其他符號或術語,具體取決于特定的加密方案或協議。

然后正式開講
仿射密碼通常會有形式為(a,b)的密鑰,在英文中其加密函數為C=(am+b)%26
c是密文,a和b是密鑰,26是字符集的大小,所以我上面的表述是“在英文中”。
如果拿俄文或者日文甚至是ASCII碼的話字符集的大小肯定會變化,解密的時候可能會出現這些情況。尤其是在CTF比賽中,遇到這種情況選手的做法一般是暴打出題人
說笑了,然后相對的,在英文中解密函數是m=a?1(c-b)%26。
這里a?1并不是a的倒數,在仿射密碼中a?1是a在模26下的逆元素, a?1通常滿足(a*a?1)%26=1,在仿射密碼的上下文中,我們通常要求a和26互質以確保a在26下有逆元素。
以上的26都是以英文為基礎確定的,26是字符集的大小,如果拿俄文或者日文甚至是ASCII碼的話字符集的大小肯定會變化


破解
我知道你們關心這個
我就這樣說吧,1.這種密碼依然是單表代換密碼,最后都會形成一個明文字母和密文字母一對一的關系。這意味著字頻分析仍然是一種行之有效的手段。
2.然而區別在于,仿射密碼的對應關系是由加密函數生成的,所以我們可以同樣可以通過給定一個已知的明文攻擊,求解出仿射方程式。
| 樓主| 發表于 2023-12-17 22:23:32 江蘇 發帖際遇
嗯,這兩天在復盤上次比賽的題目,如果有大佬也想做的話,可以私信我要題目,咱們可以交流一下
4 | 樓主| 發表于 2023-12-19 22:25:32 江蘇| 2025-2-3 23:18編輯
多表代換密碼
上面我們粗略接觸了單表代換密碼,你大概可以發現,字頻分析是一個屢試不爽的辦法,只要有一臺說得過去的設備,破譯班花傳給后排帥哥的紙條看起來就不像是一件不可能的事了。你摩拳擦掌興致勃勃,準備破解紙條內容再大刀闊斧的篡改一遍,給予帥哥一記迎頭痛擊,告訴他誰才是老大。但是你發現竟然不管用?沒關系,我來拯救你的戀情。接下來我們將講解一下幾種多表代換密碼和破解方法。

維吉尼亞密碼
維吉尼亞密碼可以看作一種加強版的凱撒密碼,具體加密方法學院里各路大佬已經講的很好了,我就不寫了。
之前的內容我刪了,講的不清楚,正好要給人培訓,做了份PPT,內容分享給大家。以下圖片同樣開源,可用于商用

倒數第二張圖片是最大公約數!寫錯了不想換源了
本帖子中包含更多圖片或附件資源

您需要 登錄 才可以下載或查看,沒有帳號?加入學院

2 | 樓主| 發表于 2023-12-26 23:06:04 江蘇
最近有點忙,就隨口聊聊密碼學吧。
現在的比賽密碼題,一般都是從現有的加密方法中選取出題,所以想要正確的做出題目就必須要識別出加密類型。而在其他地方出現的密碼題,比如學院密碼板塊,一般會出現自創的加密方法。這時候重要的是了解出作者的加密思路。
囧宅定理:一切密碼題都是可解的。
所有密碼題都必須且必然滿足這個定理。因為這是一道題目,作者必須在滿足難度的同時保證其可解性。不想讓人了解到明文的不叫題目,叫機密。所以自創的密碼都會有一段作者給出的提示,該提示是加密方法的指針。但是一旦知道了加密方法就必然可以進行解密(其實這么說是不嚴謹的,在非對稱加密中即使我把公鑰給你,你也解不出明文),作者要保證難度啊,所以他就化身謎語人,此時題目已經轉變成了對明文的雙層加密:第一層是通過作者自創的加密方法進行加密,第二層是對題目的加密。當然也有提示和密文互為提示的,唔,這么說好像有點奇怪。
3 | 發表于 2023-12-30 13:52:43 北京| 發自安卓客戶端
好東西,不過古典密碼基本沒啥抗攻擊力,編好程序破解很快。還是現代密碼更惡心
| 發表于 2024-1-2 12:18:57 四川| 發自安卓客戶端
感謝分享
| 發表于 2024-2-3 20:18:22 廣東| 來自小霸王手機
我認為,你破解密碼的方法,是基于假設很嚴謹,密文中無任何錯誤(認真編輯校核,教科書式)的情況下所做的分析。如果加密者所寫明文本身有錯誤,故意引入錯誤,或者在加密過程中引入錯誤,更或者將錯誤的明文用錯誤的加密方法所得結果,混入原密文中。類似在一鍋粥中加入老鼠屎,給你(破解者)吃。對此情況,你打算如何應對?反正我對破譯密碼不怎么感興趣,一點都沒有研究的必要。然而對加密方法還是需要的。所以當我無聊時,看到你寫的內容,就想把想說的寫出來,讓你知道。而你對此的看法是什么?會更加深入的研究破解之法嗎? 要是我,我會的偏執狂想癥。
返回版塊
123
尚未登錄
您需要登錄后才可以回帖 登錄 | 加入學院