国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

非對稱加密算法-RSA

gggggggbong / 2510人閱讀

摘要:非對稱加密,加密與解密使用的密鑰不是同一密鑰,對中一個對外公開,稱為公鑰,另一個只有所有者知道,稱為私鑰。對稱加密算法不能實現簽名,因此簽名只能非對稱算法。正因為,這種加密是單向的,所以被稱為非對稱加密算法。

非對稱加密,加密與解密使用的密鑰不是同一密鑰,對中一個對外公開,稱為公鑰,另一個只有所有者知道,稱為私鑰。用公鑰加密的信息只有私鑰才能解開,反之,用私鑰加密的信息只有公鑰才能解開(簽名驗簽)代表:RSA算法。速度慢,適合少量數據加密。對稱加密算法不能實現簽名,因此簽名只能非對稱算法。
非對稱加密是一種比對稱加密更加優秀的加密算法,當然算法有利有弊,對稱加密速度快但是安全性相對于非對稱加密來說低,為什么呢,你想啊,要想使用對稱加密,那么分享信息的各個個體之間都需要分享這個密鑰,比如你們1000個人之間都使用同一個密鑰進行密文傳輸,只要其中一個人密鑰被盜竊了,那么整體加密的信息將都被破解了。好了,那么我們開始說說非對稱加密。就從上面提到的這個對稱加密的缺點開始,怎么做到即時一個人的密鑰被盜竊了,最起碼保證你給其他人發送密文不被破解。于是,人們就想出了這么個辦法,首先,我們停止分享共同的密鑰,因為上面的bug就是來源于共享一個密鑰,那么怎么辦呢?每個人生成一個“私鑰-公鑰”對,這個私鑰需要每個人自行進行保護!公鑰可以隨便分享,后面詳細說,同時,生成的這個“私鑰-公鑰”對還有個強大的功能就是,使用私鑰加密的信息,只能由該私鑰對應的公鑰才能解密,使用公鑰加密的信息,只能由該公鑰對應的私鑰才能解密!好了,比如說張三生成了他自己的一個“私鑰-公鑰”對,叫做“張三私鑰-張三公鑰”,李四生成了他自己的一個“私鑰-公鑰”對,叫做“李四私鑰-李四公鑰”,之前我們說過私鑰要每個個體自己進行保存,公鑰可以隨便分享,目的是為什么呢?是為了加密信息!

比如,李四想給張三發送密文。
李四:“hi哥們,我想給你發個密文,把你的公鑰給我發過來用用。”
張三:“沒問題的,這是我的公鑰: d#8yHE8eU#hb*!neb,用這個公鑰加密你的信息后給我發過來吧”
李四:“這是我想對你說的話: *&#@uehuu(**#eehu&$##bfeu&&”

恩?你是不是有點疑問呢?咳咳,李四這是作死的節奏?為什么公開問公鑰?不怕被網警查水表?哈哈,非對稱解密算法的威力就在這里!無所謂!隨便誰截取!我們上面說了,公鑰可以隨意分發,所以即使別人截取了,也只是知道該公鑰而已,但是要是想解密使用該公鑰加密的密文!只有一個人可以辦得到!就是張三! 為什么?李四使用張三的公鑰加密的信息,只有張三的公鑰所對應的私鑰,這里就是“張三私鑰”,該私鑰才可以解密!所以,沒有張三私鑰的第三方即時截取了這些密文,也破解不了!或者更嚴格的說在有限時間內比如說幾千年內是暴力破解不出的!
我們來看看非對稱加密的官方定義:
公開密鑰加密(英語:public-key cryptography,又譯為公開密鑰加密),也稱為非對稱加密(asymmetric cryptography),一種密碼學算法類型,在這種密碼學方法中,需要一對密鑰(其實這里密鑰說法不好,就是“鑰”),一個是私人密鑰,另一個則是公開密鑰。這兩個密鑰是數學相關,用某用戶密鑰加密后所得的信息,只能用該用戶的解密密鑰才能解密。如果知道了其中一個,并不能計算出另外一個。因此如果公開了一對密鑰中的一個,并不會危害到另外一個的秘密性質。稱公開的密鑰為公鑰;不公開的密鑰為私鑰。這個定義有點繞,不過就是說,要想使用非對稱加密算法,首先要有一對key,一個被稱為private key私鑰,一個成為public key公鑰,然后可以把你的public key分發給想給你傳密文的用戶,然后用戶使用該public key加密過得密文,只有使用你的private key才能解密,也就是說,只要你自己保存好你的private key,就能確保,別人想給你發的密文不被破解,所以你不用擔心別人的密鑰被盜,沒關系。正因為,這種加密是單向的,所以被稱為非對稱加密算法。

這種加密算法應用非常廣泛,SSH, HTTPS, TLS,電子證書,電子簽名,電子身份證等等。

RSA算法非常簡單,概述如下:
找兩素數p和q
取n=p*q
取t=(p-1)*(q-1)
取任何一個數e,要求滿足e

1

鮑勃有兩把鑰匙,一把是公鑰,另一把是私鑰。

2

鮑勃把公鑰送給他的朋友們----帕蒂、道格、蘇珊----每人一把。

3

蘇珊給鮑勃寫信,寫完后用鮑勃的公鑰加密,達到保密的效果。
4

鮑勃收信后,用私鑰解密,看到信件內容。

5

鮑勃給蘇珊回信,寫完后用Hash函數,生成信件的摘要(digest)。

6

然后,鮑勃使用私鑰,對這個摘要加密,生成"數字簽名"(signature)。

7

鮑勃將這個簽名,附在信件下面,一起發給蘇珊。

8

蘇珊收信后,取下數字簽名,用鮑勃的公鑰解密,得到信件的摘要。由此證明,這封信確實是鮑勃發出的。

9

蘇珊再對信件本身使用Hash函數,將得到的結果,與上一步得到的摘要進行對比。如果兩者一致,就證明這封信未被修改過。
下面的圖你可以選擇不看,如果你感覺能理解的話就繼續看
10.

復雜的情況出現了。道格想欺騙蘇珊,他偷偷使用了蘇珊的電腦,用自己的公鑰換走了鮑勃的公鑰。因此,他就可以冒充鮑勃,寫信給蘇珊。

11.

蘇珊發現,自己無法確定公鑰是否真的屬于鮑勃。她想到了一個辦法,要求鮑勃去找"證書中心"(certificate authority,簡稱CA),為公鑰做認證。證書中心用自己的私鑰,對鮑勃的公鑰和一些相關信息一起加密,生成"數字證書"(Digital Certificate)。

12.

鮑勃拿到數字證書以后,就可以放心了。以后再給蘇珊寫信,只要在簽名的同時,再附上數字證書就行了。

13.

蘇珊收信后,用CA的公鑰解開數字證書,就可以拿到鮑勃真實的公鑰了,然后就能證明"數字簽名"是否真的是鮑勃簽的。

14.

下面,我們看一個應用"數字證書"的實例:https協議。這個協議主要用于網頁加密。

15.

首先,客戶端向服務器發出加密請求。

16.

服務器用自己的私鑰加密網頁以后,連同本身的數字證書,一起發送給客戶端。

17.

客戶端(瀏覽器)的"證書管理器",有"受信任的根證書頒發機構"列表。客戶端會根據這張列表,查看解開數字證書的公鑰是否在列表之內。

18.

如果數字證書記載的網址,與你正在瀏覽的網址不一致,就說明這張證書可能被冒用,瀏覽器會發出警告。

19.

如果這張數字證書不是由受信任的機構頒發的,瀏覽器會發出另一種警告。

20.

數字證書如果是可靠的,客戶端就可以使用證書中的服務器公鑰,對信息進行加密,然后與服務器交換加密信息。

在簽名的過程中,有一點很關鍵,收到數據的一方,需要自己保管好公鑰,但是要知道每一個發送方都有一個公鑰,那么接收數據的人需要保存非常多的公鑰,這根本就管理不過來。并且本地保存的公鑰有可能被篡改替換,無從發現。怎么解決這一問題了?由一個統一的證書管理機構來管理所有需要發送數據方的公鑰,對公鑰進行認證和加密。這個機構也就是我們常說的CA。認證加密后的公鑰,即是證書,又稱為CA證書,證書中包含了很多信息,最重要的是申請者的公鑰。
CA機構在給公鑰加密時,用的是一個統一的密鑰對,在加密公鑰時,用的是其中的私鑰。這樣,申請者拿到證書后,在發送數據時,用自己的私鑰生成簽名,將簽名、證書和發送內容一起發給對方,對方拿到了證書后,需要對證書解密以獲取到證書中的公鑰,解密需要用到CA機構的”統一密鑰對“中的公鑰,這個公鑰也就是我們常說的CA根證書,通常需要我們到證書頒發機構去下載并安裝到相應的收取數據的客戶端,如瀏覽器上面。這個公鑰只需要安裝一次。有了這個公鑰之后,就可以解密證書,拿到發送方的公鑰,然后解密發送方發過來的簽名,獲取摘要,重新計算摘要,作對比,以驗證數據內容的完整性。


總結:

(1)信息 + HASH = 摘要 摘要 + 私鑰 = 數字簽名(給收方做對比用的,驗證收發內容是否一致)
(2)公鑰 + 相關信息 + CA私鑰 = 數字證書(驗證發送者是否正確,是可信任的公鑰) 用于我發保密信息給你之前,你得讓我相信真的是“你”讓我“這么做”的。
(3)、非對稱加密算法

RSA:由 RSA 公司發明,是一個支持變長密鑰的公共密鑰算法,需要加密的文件塊的長度也是可變的;
DSA(Digital Signature Algorithm):數字簽名算法,是一種標準的 DSS(數字簽名標準);
ECC(Elliptic Curves Cryptography):橢圓曲線密碼編碼學。
ECC和RSA相比,在許多方面都有對絕對的優勢,主要體現在以下方面:
抗攻擊性強。相同的密鑰長度,其抗攻擊性要強很多倍。
計算量小,處理速度快。ECC總的速度比RSA、DSA要快得多。
存儲空間占用小。ECC的密鑰尺寸和系統參數與RSA、DSA相比要小得多,意味著它所占的存貯空間要小得多。這對于加密算法在IC卡上的應用具有特別重要的意義。
帶寬要求低。當對長消息進行加解密時,三類密碼系統有相同的帶寬要求,但應用于短消息時ECC帶寬要求卻低得多。帶寬要求低使ECC在無線網絡領域具有廣泛的應用前景。

1、每個用戶擁用一對密鑰加密:公鑰和私鑰。
2、公鑰加密,私鑰解密;私鑰加密,公鑰解密。
3、公鑰傳輸的過程不安全,易被竊取和替換。
4、由于公鑰使用的密鑰長度非常長,所以公鑰加密速度非常慢,一般不使用其去加密。
5、某一個用戶用其私鑰加密,其他用戶用其公鑰解密,實現數字簽名的作用。
6、公鑰加密的另一個作用是實現密鑰交換。
7、加密和簽名算法:RSA、ELGamal。
8、公鑰簽名算法:DSA。
9、加密工具:gpg、openssl

(4)、對稱加密算法

常用的算法包括:
DES(Data Encryption Standard):數據加密標準,速度較快,適用于加密大量數據的場合。
3DES(Triple DES):是基于DES,對一塊數據用三個不同的密鑰進行三次加密,強度更高。
AES(Advanced Encryption Standard):高級加密標準,是下一代的加密算法標準,速度快,安全級別高;

1、加密方和解密方使用同一個密鑰。
2、加密解密的速度比較快,適合數據比較長時的使用。
3、密鑰傳輸的過程不安全,且容易被破解,密鑰管理也比較麻煩。
4、加密算法:DES(Data Encryption Standard)、3DES、AES(Advanced Encryption Standard,支持128、192、256、512位密鑰的加密)、Blowfish。
5、加密工具:openssl、gpg(pgp工具)


由于非對稱加密算法的運行速度比對稱加密算法的速度慢很多,當我們需要加密大量的數據時,建議采用對稱加密算法,提高加解密速度。

對稱加密算法不能實現簽名,因此簽名只能非對稱算法。

由于對稱加密算法的密鑰管理是一個復雜的過程,密鑰的管理直接決定著他的安全性,因此當數據量很小時,我們可以考慮采用非對稱加密算法。
在實際的操作過程中,我們通常采用的方式是:采用非對稱加密算法管理對稱算法的密鑰,然后用對稱加密算法加密數據,這樣我們就集成了兩類加密算法的優點,既實現了加密速度快的優點,又實現了安全方便管理密鑰的優點。

(5)、單向加密(散列算法)

散列是信息的提煉,通常其長度要比信息小得多,且為一個固定長度。加密性強的散列一定是不可逆的,這就意味著通過散列結果,無法推出任何部分的原始信息。任何輸入信息的變化,哪怕僅一位,都將導致散列結果的明顯變化,這稱之為雪崩效應。散列還應該是防沖突的,即找不出具有相同散列結果的兩條信息。具有這些特性的散列結果就可以用于驗證信息是否被修改。
單向散列函數一般用于產生消息摘要,密鑰加密等,常見的有:
1、MD5(Message Digest Algorithm 5)
    是RSA數據安全公司開發的一種單向散列算法,非可逆,相同的明文產生相同的密文。
2、SHA(Secure Hash Algorithm)
    可以對任意長度的數據運算生成一個160位的數值;
SHA-1與MD5的比較
    因為二者均由MD4導出,SHA-1和MD5彼此很相似。相應的,他們的強度和其他特性也是相似,但還有以下幾點不同:
1、對強行供給的安全性:最顯著和最重要的區別是SHA-1摘要比MD5摘要長32 位。使用強行技術,產生任何一個報文使其摘要等于給定報摘要的難度對MD5是2128數量級的操作,而對SHA-1則是2160數量級的操作。這樣,SHA-1對強行攻擊有更大的強度。
2、對密碼分析的安全性:由于MD5的設計,易受密碼分析的攻擊,SHA-1顯得不易受這樣的攻擊。
3、速度:在相同的硬件上,SHA-1的運行速度比MD5慢。
4、特征:雪崩效應、定長輸出和不可逆。
5、作用是:確保數據的完整性。
6、加密算法:md5(標準密鑰長度128位)、sha1(標準密鑰長度160位)、md4、CRC-32
7、加密工具:md5sum、sha1sum、openssl dgst。
8、計算某個文件的hash值,例如:md5sum/shalsum FileName,openssl dgst –md5/-sha1










文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/70219.html

相關文章

  • 區塊鏈之對稱加密算法

    摘要:二如何理解公鑰和私鑰非對稱加密算法需要兩個密鑰公開密鑰和私有密鑰。因為加密和解密使用的是兩個不同的密鑰,所以這種算法叫作非對稱加密算法。三非對稱加密解密原理非對稱加密算法中,常用的就是算法了,以下就以算法為例來講解非對稱加密算法的實現原理。 非對稱加密,在現在網絡應用中,有這非常廣泛的場景,更是加密貨幣的基礎。本文主要介紹非對稱加密、解密的原理和過程,以及在區塊鏈中的使用。 一、非對稱...

    mcterry 評論0 收藏0
  • 慕課網_《Java實現對稱加密》學習總結

    摘要:時間年月日星期三說明本文部分內容均來自慕課網。秘密密鑰,生成一個分組的秘密密鑰。 時間:2017年4月12日星期三說明:本文部分內容均來自慕課網。@慕課網:http://www.imooc.com教學示例源碼:https://github.com/zccodere/s...個人學習源碼:https://github.com/zccodere/s... 第一章:概述 1-1 概述 非對稱...

    dailybird 評論0 收藏0
  • 對稱加密

    摘要:與對稱加密不同的是,非對稱加密和解密使用的是不同的密鑰,其中一個對外公開作為公鑰,另一個只有所有者擁有,稱為私鑰。中提供基于算法的擴展可實現對數據的非對稱加密。 與對稱加密不同的是,非對稱加密和解密使用的是不同的密鑰,其中一個對外公開作為公鑰,另一個只有所有者擁有,稱為私鑰。用私鑰加密的信息只有公鑰才能解開,或者反之用弓腰加密的信息只有私鑰才能解開。常用的非對稱加密有RSA算法,RSA...

    MobService 評論0 收藏0
  • 為你的PHP程序選擇合適的密碼庫(初稿)

    摘要:我們不會提及任何糟糕的密碼庫的。僅對而言如果你一定要安裝對稱密鑰加密,請使用上述的的密碼庫。的密碼庫為你提供了認證加密,而的實施并不會驗證密文。當前的最佳密碼庫之一是內建的。這種散列算法對的編程者或企業來說都是穩定有效的。 如果本文中的術語讓你感到疑惑,請先參閱密碼學術語及概念一文。 密碼學不是魔術。加密一個應用程序并不能保證它在襲擊下的安全(特別是在你沒有設置驗證密文的情況下)。但如...

    岳光 評論0 收藏0
  • 對稱加密技術- RSA算法數學原理分析

    摘要:本文首發于深入淺出區塊鏈社區原文鏈接非對稱加密技術算法數學原理分析原文已更新,請讀者前往原文閱讀非對稱加密技術,在現在網絡中,有非常廣泛應用。加密技術更是數字貨幣的基礎。 本文首發于深入淺出區塊鏈社區原文鏈接:非對稱加密技術 - RSA算法數學原理分析原文已更新,請讀者前往原文閱讀非對稱加密技術,在現在網絡中,有非常廣泛應用。加密技術更是數字貨幣的基礎。 所謂非對稱,就是指該算法需要一...

    maxmin 評論0 收藏0

發表評論

0條評論

gggggggbong

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<