加密、解密基本概念
文章目錄
- 1 對(duì)稱密鑰加密技術(shù)
- 1.1 常用的對(duì)稱密鑰加密技術(shù)
- 2 公開密鑰加密技術(shù)
- 2.1 RSA簡(jiǎn)介
- 3 數(shù)字簽名
- 3.1 數(shù)字簽名的生成方式
1 對(duì)稱密鑰加密技術(shù)
1.1 常用的對(duì)稱密鑰加密技術(shù)
錯(cuò)開字符編碼的加密方式:
比如加密時(shí),將文本數(shù)據(jù)中每個(gè)字符所對(duì)應(yīng)的字符編碼一律向后錯(cuò)三個(gè),即給原字符編碼的值加上 3。解密時(shí),只要再將字符編碼向前挪三個(gè)就可以實(shí)現(xiàn)解密。
通過 XOR 運(yùn)算進(jìn)行加密和解密:
2 公開密鑰加密技術(shù)
2.1 RSA簡(jiǎn)介
目前廣泛應(yīng)用于互聯(lián)網(wǎng)中的 RSA 算法:RSA 這個(gè)名字是由三位發(fā)明者Ronald Rivest、Adi Shamir 和 Leonard Adleman 姓氏的首字母拼在一起組成的。
無論是公鑰還是私鑰都包含著兩個(gè)數(shù)值,兩個(gè)數(shù)值組成的數(shù)對(duì)兒才是一個(gè)完整的密鑰。使用 RSA 創(chuàng)建公鑰和私鑰的步驟如下圖所示:
乍一看會(huì)以為只要了解了 RSA 算法,就可以通過公鑰 c = 323、e = 11 推算出私鑰 c = 323,f = 131 了。但是為了求解私鑰中的 f,就不得不對(duì) c 進(jìn)行因子分解,分解為兩個(gè)素?cái)?shù) a、b。在本例中 c 的位數(shù)很短,而在實(shí)際應(yīng)用公開密鑰加密時(shí),建議將 c 的位數(shù)(用二進(jìn)制數(shù)表示時(shí))擴(kuò)充為 1024 位(相當(dāng)于 128 字節(jié))。要把這樣的天文數(shù)字分解為兩個(gè)素?cái)?shù),就算計(jì)算機(jī)的速度再快,也還是要花費(fèi)不可估量的時(shí)間,時(shí)間可能長(zhǎng)到不得不放棄解密的程度。
用公鑰加密,用私鑰解密:
3 數(shù)字簽名
3.1 數(shù)字簽名的生成方式
首先明確一個(gè)概念:“信息摘要”(Message Digest)可以理解為就是一個(gè)數(shù)值,通過對(duì)構(gòu)成明文的所有字符的編碼進(jìn)行某種運(yùn)算就能得出該數(shù)值。
計(jì)算MD的方式有很多種,我也只是簡(jiǎn)單了解,這里就不寫了。
參考資料:
總結(jié)
- 上一篇: X86与ARM
- 下一篇: C语言中的关键字概览