公鑰加密算法/哈希算法

公鑰加密算法 也叫非對(duì)稱(chēng)加密,它在加密和解密時(shí)使用的是不同的密鑰,具有這樣的特征:

  • 有一對(duì)密鑰 ab ,滿足 a ≠ b

  • 用密鑰a加密的數(shù)據(jù)只能用b進(jìn)行解密,a自身無(wú)法解密,反之亦然

  • 只知道其中一個(gè)密鑰,無(wú)法推導(dǎo)出另一個(gè)

  • 把其中一個(gè)可以公開(kāi)的叫做公鑰,另一個(gè)不能公開(kāi)的叫做私鑰


    WechatIMG30.png

最常見(jiàn)的公鑰加密算法是RSA公鑰加密算法,也是簽名中普遍使用的算法。其數(shù)學(xué)原理如下:

  • 選定兩個(gè)超大的素?cái)?shù)p, q,并計(jì)算他們的乘積n = p * q
  • 計(jì)算歐拉函數(shù) φ(n) = φ(p) * φ(q) = (p-1) * (q-1)
  • 隨機(jī)選定一個(gè)數(shù)e,滿足1 < e < φ(n) ,且與φ(n)互質(zhì)
  • 根據(jù)擴(kuò)展歐幾里得算法計(jì)算e對(duì)于φ(n)的乘法逆元de * d = 1 mod φ(n)
  • {n, e}{n, d} 分別組成這個(gè)算法的一對(duì)密鑰
  • 對(duì)于給定明文p, 若使用{n, e} 作為加密密鑰,其密文計(jì)算方法為 c = p ^ e mod n
    這是一個(gè)單向函數(shù),已知{c, n, e} 無(wú)法計(jì)算出p
  • 相應(yīng)地需要使用{n, d}進(jìn)行解密, p = c * d mod n,這是上一步加密函數(shù)的逆函數(shù)
  • 兩組密鑰中n是相同的,那么如果已知了ed其中的一個(gè),想要計(jì)算另一個(gè),必須知道φ(n),也就是必須先將n分解質(zhì)因數(shù),得到pq,但由于n的值非常大,這樣的計(jì)算量基本上是不可能的,也就保障了算法的安全性.

理論上 {n, e}{n, d} 可以互換,任何一個(gè)都可以是公鑰或者私鑰,加密和解密的函數(shù)也可以互換。但實(shí)踐中,一般固定設(shè)置e=65537(0x10001),相當(dāng)于公開(kāi)的一個(gè)約定,這樣一來(lái){n, e}就只能作為公鑰使用。

哈希算法
也叫散列或者摘要算法,對(duì)一段任意長(zhǎng)度的數(shù)據(jù),通過(guò)一定的映射和計(jì)算,得到一個(gè)固定長(zhǎng)度的值,這個(gè)值就被稱(chēng)為這段數(shù)據(jù)的哈希值(hash)。給定一個(gè)哈希算法,它一定具有以下特征:

  • 哈希值不同的兩段數(shù)據(jù)絕對(duì)不同
  • 相同的數(shù)據(jù)計(jì)算出的哈希值絕對(duì)相同
  • 由于哈希值是固定長(zhǎng)度, 也就意味著哈希值的數(shù)量是有限的。而任意數(shù)據(jù)都可以計(jì)算出一個(gè)哈希值,計(jì)算哈希的過(guò)程,相當(dāng)于無(wú)限集到有限集的映射。因此哈希值相同,對(duì)應(yīng)的原始數(shù)據(jù)不一定相同,如果不同,則稱(chēng)這兩段數(shù)據(jù)存在哈希碰撞,實(shí)際應(yīng)用中認(rèn)為這是小概率事件(數(shù)學(xué)意義上的”不可能事件”),優(yōu)秀的哈希算法都是碰撞率極低的。
  • 哈希算法是單向算法,無(wú)法通過(guò)哈希值,計(jì)算出原始數(shù)據(jù),這一點(diǎn)非常重要!

常見(jiàn)的哈希算法有: md5, sha1, sha256等,其中sha1長(zhǎng)度為160bits,而sha256長(zhǎng)度為256bits,二者相比,sha256的取值范圍更大,因此碰撞和破解的概率更低,也就相對(duì)更安全。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容