『壹』 明文,密鑰,和密文是什麼意思
明文、密鑰和密文的意思分別是:
1、明文:
明文,是指沒有加密的文字(或者字元串),一般人都能看懂的意思,屬於密碼學術語。在通信系統中它可能是比特流,如文本、點陣圖、數字化的語音或者數字化的視頻圖像等。
2、密鑰:
密鑰是一種參數,它是在明文轉換為密文或將密文轉換為明文的演算法中輸入的參數。密鑰分為對稱密鑰與非對稱密鑰。
3、密文:
密文是加了密的的文字,明文是加密之前的文字。加密這個詞有時指密文,但通常用來指加密的方法。對明文施加某種偽裝或變換後的輸出。也可理解為不可直接理解的字元或比特集。但可通過演算法還原的被打亂的消息,與明文相對。
(1)非等長加密擴展閱讀:
信息發送者用公開密鑰去加密,而信息接收者則用私用密鑰去解密。公鑰機制靈活,但加密和解密速度卻比對稱密鑰加密慢得多。
所以在實際的應用中,人們通常將兩者結合在一起使用,例如,對稱密鑰加密系統用於存儲大量數據信息,而公開密鑰加密系統則用於加密密鑰。
對於普通的對稱密碼學,加密運算與解密運算使用同樣的密鑰。通常,使用的對稱加密演算法比較簡便高效,密鑰簡短,破譯極其困難,由於系統的保密性主要取決於密鑰的安全性。
所以,在公開的計算機網路上安全地傳送和保管密鑰是一個嚴峻的問題。正是由於對稱密碼學中雙方都使用相同的密鑰,因此無法實現數據簽名和不可否認性等功能。
『貳』 php純數字加密為可逆的定長密文
echosubstr(md5(1),8,16);//16位MD5加密
echomd5(1);//32位MD5加密
『叄』 求密文長度與明文長度等長的非對稱密碼系統
通信中編碼的辦法基礎上進行更改
『肆』 什麼是非對稱加密體制如何用它們實現郵件加密與郵件簽名
你說的是RAS演算法吧。用一對密鑰來加密解密。數據發送方使用一個公開的密鑰加密明文成密文,數據解密方使用私鑰解密密文為明文。
1978年就出現了這種演算法,它是第一個既能用於數據加密 也能用於數字簽名的演算法。它易於理解和操作,也很流行。算 法的名字以發明者的名字命名:Ron Rivest, AdiShamir 和 Leonard Adleman。但RSA的安全性一直未能得到理論上的證明。
RSA的安全性依賴於大數分解。公鑰和私鑰都是兩個大素數 (大於 100個十進制位)的函數。據猜測,從一個密鑰和密文 推斷出明文的難度等同於分解兩個大素數的積。
密鑰對的產生:選擇兩個大素數,p 和q 。計算:n = p * q
然後隨機選擇加密密鑰e,要求 e 和 ( p - 1 ) * ( q - 1 )
互質.
最後,利用Euclid 演算法計算解密密鑰d, 滿足
e * d = 1 ( mod ( p - 1 ) * ( q - 1 ) )
其中n和d也要互質。數e和 n是公鑰,d是私鑰。
兩個素數p和q不再需要,應該丟棄,不要讓任何人知道。
加密信息 m(二進製表示)時,首先把m分成等長數據 塊 m1 ,m2,..., mi ,塊長s,其中 2^s <= n, s 盡可能的大。
對 應的密文是:
ci = mi^e ( mod n ) ( a )
解密時作如下計算:
mi = ci^d ( mod n ) ( b )
RSA 可用於數字簽名,方案是用 ( a ) 式簽名, ( b ) 式驗證。
具體操作時考慮到安全性和 m信息量較大等因素,一般是先作HASH 運算。
RSA 的安全性。
RSA的安全性依賴於大數分解,但是否等同於大數分解一直未能得到理
論上的證明,因為沒有證明破解RSA就一定需要作大數分解。假設存在
一種無須分解大數的演算法,那它肯定可以修改成為大數分解演算法。目前, RSA的一些變種演算法已被證明等價於大數分解。不管怎樣,分解n是最顯 然的攻擊方法。現在,人們已能分解140多個十進制位的大素數。因此, 模數n必須選大一些,因具體適用情況而定。
RSA的速度:
由於進行的都是大數計算,使得RSA最快的情況也比DES慢上100倍,無論是軟體還是硬體實現。速度一直是RSA的缺陷。一般來說只用於少量據加密。
RSA的選擇密文攻擊:
RSA在選擇密文攻擊面前很脆弱。一般攻擊者是將某一信息作一下偽裝
(Blind),讓擁有私鑰的實體簽署。然後,經過計算就可得到它所想要的信息。實際上,攻擊利用的都是同一個弱點,即存在這樣一個事實:乘冪保 留了輸入的乘法結構:
( XM )^d = X^d *M^d mod n
前面已經提到,這個固有的問題來自於公鑰密碼系統的最有用的特徵 --每個人都能使用公鑰。但從演算法上無法解決這一問題,主要措施有兩條:一條是採用好的公鑰協議,保證工作過程中實體不對其他實體
任意產生的信息解密,不對自己一無所知的信息簽名;另一條是決不
對陌生人送來的隨機文檔簽名,簽名時首先使用One-Way HashFunction
對文檔作HASH處理,或同時使用不同的簽名演算法。在中提到了幾種不
同類型的攻擊方法。
RSA的公共模數攻擊。
若系統中共有一個模數,只是不同的人擁有不同的e和d,系統將是危險
的。最普遍的情況是同一信息用不同的公鑰加密,這些公鑰共模而且互
質,那末該信息無需私鑰就可得到恢復。設P為信息明文,兩個加密密鑰
為e1和e2,公共模數是n,則:
C1 = P^e1 mod n
C2 = P^e2 mod n
密碼分析者知道n、e1、e2、C1和C2,就能得到P。
因為e1和e2互質,故用Euclidean演算法能找到r和s,滿足:
r * e1 + s * e2 = 1
假設r為負數,需再用Euclidean演算法計算C1^(-1),則
( C1^(-1) )^(-r) * C2^s = P mod n
另外,還有其它幾種利用公共模數攻擊的方法。總之,如果知道給定模數的一對e和d,一是有利於攻擊者分解模數,一是有利於攻擊者計算出其它成對的e』和d』,而無需分解模數。解決辦法只有一個,那就是不要共享模數n。
RSA的小指數攻擊。 有一種提高RSA速度的建議是使公鑰e取較小的值,這樣會使加密變得易於實現,速度有所提高。但這樣作是不安全的,對付辦法就是e和d都取較大的值。
RSA演算法是第一個能同時用於加密和數字簽名的演算法,也易於理解和操作。RSA是被研究得最廣泛的公鑰演算法,從提出到現在已近二十年,經歷了各 種攻擊的考驗,逐漸為人們接受,普遍認為是目前最優秀的公鑰方案之一。
RSA的安全性依賴於大數的因子分解,但並沒有從理論上證明破譯RSA的難 度與大數分解難度等價。即RSA的重大缺陷是無法從理論上把握它的保密性 能如何,而且密碼學界多數人士傾向於因子分解不是NPC問題。
RSA的缺點主要有:
A)產生密鑰很麻煩,受到素數產生技術的限制,因而難以做到一次 一密。
B)分組長度太大,為保證安全性,n 至少也要 600 bits 以上,使運算代價很高,尤其是速度較慢,較對稱密碼演算法慢幾個數量級;
且隨著大數分解技術的發展,這個長度還在增加,不利於數據格式的標准化。
目前,SET(Secure Electronic Transaction)協議中要求CA採用2048比特長的密鑰,其他實體使用1024比特的密鑰。
『伍』 什麼是對稱密碼和非對密碼,分析這兩種密碼體系的特點和應用領域
一、對稱密碼
1、定義:採用單鑰密碼系統的加密方法,同一個密鑰可以同時用作信息的加密和解密,這種加密方法稱為對稱加密,也稱為單密鑰加密。
2、特點:演算法公開、計算量小、加密速度快、加密效率高。
3、應用領域:由於其速度快,對稱性加密通常在消息發送方需要加密大量數據時使用。
二、非對密碼
1、定義:非對稱密碼指的是非對稱密碼體制中使用的密碼。
2、特點:
(1)是加密密鑰和解密密鑰不同 ,並且難以互推 。
(2)是有一個密鑰是公開的 ,即公鑰 ,而另一個密鑰是保密的 ,即私鑰。
3、應用領域:很好的解決了密鑰的分發和管理的問題 ,並且它還能夠實現數字簽名。
(5)非等長加密擴展閱讀
對稱加密演算法特徵
1、加密方和解密方使用同一個密鑰;
2、加密解密的速度比較快,適合數據比較長時的使用;
3、密鑰傳輸的過程不安全,且容易被破解,密鑰管理也比較麻煩
『陸』 常用的加密演算法有哪些
對稱密鑰加密
對稱密鑰加密 Symmetric Key Algorithm 又稱為對稱加密、私鑰加密、共享密鑰加密:這類演算法在加密和解密時使用相同的密鑰,或是使用兩個可以簡單的相互推算的密鑰,對稱加密的速度一般都很快。
分組密碼
分組密碼 Block Cipher 又稱為「分塊加密」或「塊加密」,將明文分成多個等長的模塊,使用確定的演算法和對稱密鑰對每組分別加密解密。這也就意味著分組密碼的一個優點在於可以實現同步加密,因為各分組間可以相對獨立。
與此相對應的是流密碼:利用密鑰由密鑰流發生器產生密鑰流,對明文串進行加密。與分組密碼的不同之處在於加密輸出的結果不僅與單獨明文相關,而是與一組明文相關。
DES、3DES
數據加密標准 DES Data Encryption Standard 是由IBM在美國國家安全局NSA授權下研製的一種使用56位密鑰的分組密碼演算法,並於1977年被美國國家標准局NBS公布成為美國商用加密標准。但是因為DES固定的密鑰長度,漸漸不再符合在開放式網路中的安全要求,已經於1998年被移出商用加密標准,被更安全的AES標准替代。
DES使用的Feistel Network網路屬於對稱的密碼結構,對信息的加密和解密的過程極為相似或趨同,使得相應的編碼量和線路傳輸的要求也減半。
DES是塊加密演算法,將消息分成64位,即16個十六進制數為一組進行加密,加密後返回相同大小的密碼塊,這樣,從數學上來說,64位0或1組合,就有2^64種可能排列。DES密鑰的長度同樣為64位,但在加密演算法中,每逢第8位,相應位會被用於奇偶校驗而被演算法丟棄,所以DES的密鑰強度實為56位。
3DES Triple DES,使用不同Key重復三次DES加密,加密強度更高,當然速度也就相應的降低。
AES
高級加密標准 AES Advanced Encryption Standard 為新一代數據加密標准,速度快,安全級別高。由美國國家標准技術研究所NIST選取Rijndael於2000年成為新一代的數據加密標准。
AES的區塊長度固定為128位,密鑰長度可以是128位、192位或256位。AES演算法基於Substitution Permutation Network代換置列網路,將明文塊和密鑰塊作為輸入,並通過交錯的若干輪代換"Substitution"和置換"Permutation"操作產生密文塊。
AES加密過程是在一個4*4的位元組矩陣(或稱為體State)上運作,初始值為一個明文區塊,其中一個元素大小就是明文區塊中的一個Byte,加密時,基本上各輪加密循環均包含這四個步驟:
ECC
ECC即 Elliptic Curve Cryptography 橢圓曲線密碼學,是基於橢圓曲線數學建立公開密鑰加密的演算法。ECC的主要優勢是在提供相當的安全等級情況下,密鑰長度更小。
ECC的原理是根據有限域上的橢圓曲線上的點群中的離散對數問題ECDLP,而ECDLP是比因式分解問題更難的問題,是指數級的難度。而ECDLP定義為:給定素數p和橢圓曲線E,對Q=kP,在已知P,Q 的情況下求出小於p的正整數k。可以證明由k和P計算Q比較容易,而由Q和P計算k則比較困難。
數字簽名
數字簽名 Digital Signature 又稱公鑰數字簽名是一種用來確保數字消息或文檔真實性的數學方案。一個有效的數字簽名需要給接收者充足的理由來信任消息的可靠來源,而發送者也無法否認這個簽名,並且這個消息在傳輸過程中確保沒有發生變動。
數字簽名的原理在於利用公鑰加密技術,簽名者將消息用私鑰加密,然後公布公鑰,驗證者就使用這個公鑰將加密信息解密並對比消息。一般而言,會使用消息的散列值來作為簽名對象。
『柒』 現代的信息加密方式是怎樣的
首先題主提到的小說里說Enigma採用迴旋加密能夠做到永遠無法暴力破解,這是嚴重錯誤的,因為從密碼學理論上說,不會存在一個絕對安全無法破解的加密演算法。一個真正理想的安全加密方案是一次一密(one-time pad),也就是使用隨機的和明文等長的密鑰進行抑或操作生成密文,密鑰使用一次之後即作廢。這個方案雖然很安全,但是因為在密鑰的生成和分發上存在較大的困難,所以在實際應用中並不是很廣泛。這也就催生了研究密碼學演算法的必要性。現在密碼演算法的設計都遵從了Kerckhoff加密原則,即加密系統的保密性不依賴於對加密體制或演算法的保密,而依賴於密鑰,這一原則現也被普遍承認為傳統密碼與現代密碼的分界線。依據密碼體制的不同原理,分成對稱(單鑰)密碼體制和非對稱(公鑰)密碼體制兩大類。DES(Data Encryption Standard)的產生,是現代密碼的第一個標志,它在1977年被美國政府正式採納為數據加密的標准,密鑰長度為64位,但在1997年的一次破譯挑戰中被人用96天(以1999年超級計算機的計算能力,破解只用22小時)破解之後,逐漸開始被廢棄。代替DES的是AES(Advanced Encryption Standard),其密鑰長度可選擇128位、192位、256位,該標准依舊是對稱密鑰加密中最流行的演算法。非對稱加密的思想非常有趣,它主要依賴了單向函數的計算特性,也就是正向求解很容易而逆向求解卻會非常困難。生活中的例子,比如覆水難收、破鏡難圓都可以看做單向函數,你把鏡子打碎很容易,但是把碎片重新恢復成圓鏡卻不現實;在數學中這樣的函數也有很多,比如大數因子分解(RSA演算法的原理基礎)、橢圓曲線離散對數問題(ECC演算法原理基礎)。相比較對稱加密體制,非對稱加密的主要優點是密鑰的分發比較方便。單鑰密碼體制在進行加密前,要求通信雙方必須擁有相同的密鑰,並且這個密鑰不能被第三方知曉,這就常常需要藉助不可信的網路環境以外的其它方式(如人工方式)進行密鑰傳遞,代價比較大。而非對稱加密體制卻不存在這個問題,通信的接收方可以將其公鑰(PK)在網路上公開,任何一個想和他通信的發送方都可以用他的公鑰將信息加密後發送給他,而不必擔心被他人截獲之後破解,因為只有接收方的私鑰(SK)才能將其解密(其中公鑰和私鑰的選擇是可以對換的,也就是兩個密鑰任何一個做公鑰或私鑰都可以)。既然非對稱密鑰如此方便,是否意味著使用非對稱體制完全代替對稱體制就好了?答案肯定不是,非對稱體制也有自身的缺點,最大的缺點比如加解密的效率非常低,以至於可能會影響正常通信的體驗。所以在加密通信的實踐中,經常使用數字信封技術將二者的優點結合使用,即用非對稱加密傳遞對稱加密的密鑰,然後再在實際的通信過程中使用對稱加密的密鑰加密真正要發送的信息。除此之外,非對稱加密的另一大類應用是數字簽名,所謂簽名,就是要讓人確信這個消息真的是你產生的,而不是別人偽造的,具體操作和加密傳遞會話信息的過程恰好相反,首先消息的產生者用自己的私鑰對要簽名的信息進行加密,然後發送給接收者,接收者用消息產生者的公鑰進行解密,若得到正確的信息,則證明是真實的,因為只有消息產生者私鑰加密的信息才能唯一被消息產生者的公鑰解密。
『捌』 對稱加密與非對稱加密是如何加密的
RSA演算法
RSA的安全性依賴於大數分解。公鑰和私鑰都是兩個大素數( 大於 100個十進制位)的函數。據猜測,從一個密鑰和密文推斷出明文的難度等同於分解兩個大素數的積。
密鑰對的產生。選擇兩個大素數,p 和q 。計算:
n = p * q
然後隨機選擇加密密鑰e,要求 e 和 ( p - 1 ) * ( q - 1 ) 互質。最後,利用Euclid 演算法計算解密密鑰d, 滿足
e * d = 1 ( mod ( p - 1 ) * ( q - 1 ) )
其中n和d也要互質。數e和n是公鑰,d是私鑰。兩個素數p和q不再需要,應該丟棄,不要讓任何人知道。
加密信息 m(二進製表示)時,首先把m分成等長數據塊 m1 ,m2,..., mi ,塊長s,其中 2^s <= n, s 盡可能的大。對應的密文是:
ci = mi^e ( mod n ) ( a )
解密時作如下計算:
mi = ci^d ( mod n ) ( b )
RSA 可用於數字簽名,方案是用 ( a ) 式簽名, ( b )式驗證。具體操作時考慮到安全性和 m信息量較大等因素,一般是先作 HASH 運算。
『玖』 經典加密方法主要使用了哪些加密技術
單項選擇題
經典加密方法所使用的加密技術不包括
(54)
。
A)
替換加密
B)
換位加密
C)
一次性填充
D)
DES
.
.
.
.
參考答案:D
[解析]
所謂經典加密方法主要是使用了3種加密技術:
(1)替換加密:用一個字母替換另一個字母。這種方法保留了明文的順序,可根據自然語言的統計特性(例如字母出現的頻率)破譯。
(2)換位加密(trAnsposition):按照一定的規律重排字母的順序,
(3)一次性填充:把明文變為比特串(例如用ASCII編碼),選擇一個等長的隨機比特串作為密鑰,對二者進行按位異或,得到密文。
『拾』 傳統密碼和非對稱密碼各自的優勢
密碼演算法可以看作是一個復雜的函數變換,C = F M, Key ),C代表密文,即加密後得到的字元序列,M代表明文即待加密的字元序列,Key表示密鑰,是秘密選定的一個字元序列。密碼學的一個原則是「一切秘密寓於密鑰之中」,演算法可以公開。當加密完成後,可以將密文通過不安全渠道送給收信人,只有擁有解密密鑰的收信人可以對密文進行解密即反變換得到明文,密鑰的傳遞必須通過安全渠道。目前流行的密碼演算法主要有DES,RSA,IDEA,DSA等,還有新近的Liu氏演算法,是由華人劉尊全發明的。密碼演算法可分為傳統密碼演算法和現代密碼演算法,傳統密碼演算法的特點是加密和解密必須是同一密鑰,如DES和IDEA等;現代密碼演算法將加密密鑰與解密密鑰區分開來,且由加密密鑰事實上求不出解密密鑰。這樣一個實體只需公開其加密密鑰(稱公鑰,解密密鑰稱私鑰)即可,實體之間就可以進行秘密通信,而不象傳統密碼演算法似的在通信之前先得秘密傳遞密鑰,其中妙處一想便知。因此傳統密碼演算法又稱對稱密碼演算法(Symmetric Cryptographic Algorithms ),現代密碼演算法稱非對稱密碼演算法或公鑰密碼演算法( Public-Key Cryptographic Algorithms ),是由Diffie 和Hellman首先在1976年的美國國家計算機會議上提出這一概念的。按照加密時對明文的處理方式,密碼演算法又可分為分組密碼演算法和序列密碼演算法。分組密碼演算法是把密文分成等長的組分別加密,序列密碼演算法是一個比特一個比特地處理,用已知的密鑰隨機序列與明文按位異或。當然當分組長度為1時,二者混為一談。