有關金鑰私鑰那些玩意的總結

2021-08-25 09:34:37 字數 1676 閱讀 5835

這個世界有兩種東西就金鑰。這個是怎麼解釋的呢?所謂的鑰匙,其實就是一種演算法,你看那個鑰匙能夠開啟一扇門,那個演算法其實就體現在鑰匙上的凸凸凹凹上,門一看這個鑰匙所體現的演算法與自己的瑣其契合的,那麼當然就可以信任開門者了。但是呢,這個世界沒有什麼萬能|鑰匙的說法,當然你可以選擇拿個很大很大的鐵鎚把門砸碎了破門而入,那你還不如直接去炸計算機算了!那麼金鑰就是我們用這種演算法加工資料,其結果會符合預期,從而實現正確的身份驗證。

我們的計算機天才想出了兩種機制,乙個是對稱的公鑰加密,一種是非對稱的私鑰公鑰加密。

公鑰加密,用乙個金鑰去加密和解密資料。為什麼是對稱的呢?為什麼金鑰可以同時進行加密和解密呢?這不是胡扯嗎?其實是這樣的,金鑰加密是一種演算法,比如說是兩個素數的成績,那麼它的演算法就是這樣你難道想不出解密的演算法嗎?就只要找素數因子就行了。或者是通常的什麼a對應b,b對應c……然後z對應a。難道你不能倒推過來嗎?所以這個對稱就是你知道加密演算法那麼自然可以推導出解密演算法,原來是這個意思。這種演算法,有個好處就是快,效率高。但是呢,管理比較困難,為什麼呢,比如說甲要和乙通訊,則甲與乙之間需要有兩個金鑰,乙個是甲公布給乙的,乙個是乙公布給甲的。但是呢,如果乙個公司有一千個人,那麼他們直接愛呢都要通訊的話,我給你發資訊,我就要找出我們之間要用那種公鑰來加密。整個公司則需要1000*999個金鑰,這簡直就是噩夢啊!所以管理比較困難。你不要認為,你公布的金鑰可以所有的人共用,阿貓阿狗都用,那還加密個屁啊!公鑰也是要保密的。至於這裡面的演算法有3des演算法,blowfish演算法,rc5演算法。

那麼非對稱的呢?這裡有乙個公鑰也有乙個私鑰,非對稱金鑰的加密金鑰與解密金鑰完全不同,並且不可能從任何乙個金鑰推導出另乙個金鑰。當明文要通過加密後傳送給接收方時,先得到接收端的金鑰對產生器產生的一對金鑰中的加密公鑰,通過這個金鑰將明文轉變為密文,傳送給接收端,而接收端接收到密文後,使用一對金鑰中的解密金鑰,即私鑰,來將密文轉變為明文。一般情況下,我們用公鑰做為加密金鑰,用私鑰作為解密金鑰,這樣就可以實現多個傳送者向指定的接受者傳送資訊了。如果用私鑰加密,公鑰解密,就可以實現特定的傳送者向多個接收者傳送資訊了。這樣n個使用者進行通訊,只需要n對金鑰就可以了。這正是因為加密解密的不對稱引起的。常用的非對稱金鑰演算法包括rsa演算法、dsa演算法、pkcs演算法和pgp演算法。

這裡又有乙個數字簽名的概念。我們要傳一篇機密的資訊,比如說是「老婆們,我愛你」。按雙方約定的hash演算法如md5計算得到乙個固定位數的報文摘要。在數學上保證:只要改動報文中任何一位,重新計算出的報文摘要值就會與原先的值不相符。這樣就保證了報文的不可更改性。將該報文摘要值用傳送者的私人金鑰加密,然後連同原報文(「老婆們,我愛你」)一起傳送給接收者,而產生的報文即稱數字簽名。接收方收到數字簽名後,用同樣的hash演算法對報文(「老婆們,我愛你」)計算摘要值x,然後我們用傳送者的公開金鑰進行解密報文摘要得到了另一結果y。如xy相等則說明報文確實來自所稱的傳送者。這樣,當然可以保證我對她們發的資訊足夠保密。但是呢,其他人也可以說他是我啊。那怎麼辦呢?解決方案如下,因此公鑰必須向接受者(我的老婆們)信任的人(身份認證機構可以說是婚姻局)來註冊。註冊後身份認證機構給你發一數字證書。對檔案簽名後,你把此數字證書連同檔案及簽名一起發給接受者,接受者向身份認證機構求證是否真地是用我的金鑰簽發的檔案。 這裡,就涉及到第三方了,因為第三方是知道我的私鑰的,這就需要第三方有足夠的威信和保密性。這個私鑰我覺得就像我們的簽名一樣,因為各個人都有自己的筆跡的特點,這個是只有自己才會的,其他人是不會模仿的,雖然你能看到他的字,但是你不知道這到底是在怎麼寫出來的,這就是我的私鑰。當然真實的簽名機制和這裡的機制還是有許多不同的,我只是打個比方。

私鑰金鑰公鑰的理解

既然是加密,肯定是不希望別人知道我的訊息,所以只要我才能解密 所以得出,公鑰負責加密,私鑰負責解密,同理,既然是簽名,那肯定是不希望有人冒充我發訊息,只有我才能發布這個簽名,所以得出,私鑰負責簽名,公鑰負責驗證.從rsa公鑰加密體制 keygen 金鑰生成演算法 encrypt 加密演算法 decr...

elememtui 有關許可權的那些事

業務情景描述 現有乙個後台管理系統,共存在三種型別的人員,超級管理員 稱作1 組別管理員 2 普通使用者 3 每種型別的人看到的操作欄並不一樣,可以進行的操作也不盡相同,於是就需要程式處理一下各個許可權問題。迷茫的前期 1 讓後端返回關於許可權的json資料吧,但卻不太懂這樣的資料應該怎樣處理 2 ...

那些有關求解next陣列的演算法

next陣列的歷史 有關字串的模式匹配演算法中,比較容易寫出的是樸素的匹配演算法也就是一種暴力求解方式,但是由於其時間複雜度為子串長度和主串長度的乘積,例如strlen substr n,strlen mainstr m,則其時間複雜度為o mn 為了能夠得到更有效的匹配演算法,d.e.knuth與...