⑴ 什麼是sm演算法
國產密碼演算法(國密演算法)是指國家密碼局認定的國產商用密碼演算法,目前主要使用公開的SM2、SM3、SM4三類演算法,分別是非對稱演算法、哈希演算法和對稱演算法。
1.SM2演算法:SM2橢圓曲線公鑰密碼演算法是我國自主設計的公鑰密碼演算法,包括SM2-1橢圓曲線數字簽名演算法,SM2-2橢圓曲線密鑰交換協議,SM2-3橢圓曲線公鑰加密演算法,分別用於實現數字簽名密鑰協商和數據加密等功能。SM2演算法與RSA演算法不同的是,SM2演算法是基於橢圓曲線上點群離散對數難題,相對於RSA演算法,256位的SM2密碼強度已經比2048位的RSA密碼強度要高。橢圓曲線參數並沒有給出推薦的曲線,曲線參數的產生需要利用一定的演算法產生。但在實際使用中,國密局推薦使用素數域256 位橢圓曲線,其曲線方程為y^2= x^3+ax+b(其中p是大於3的一個大素數,n是基點G的階,Gx、Gy 分別是基點G的x與y值,a、b是隨圓曲線方程y^2= x^3+ax+b的系數)。
2.SM3演算法:SM3雜湊演算法是我國自主設計的密碼雜湊演算法,適用於商用密碼應用中的數字簽名和驗證消息認證碼的生成與驗證以及隨機數的生成,可滿足多種密碼應用的安全需求。為了保證雜湊演算法的安全性,其產生的雜湊值的長度不應太短,例如MD5輸出128比特雜湊值,輸出長度太短,影響其安全性SHA-1演算法的輸出長度為160比特,SM3演算法的輸出長度為256比特,因此SM3演算法的安全性要高於MD5演算法和SHA-1演算法。
3.SM4演算法:SM4分組密碼演算法是我國自主設計的分組對稱密碼演算法,用於實現數據的加密/解密運算,以保證數據和信息的機密性。要保證一個對稱密碼演算法的安全性的基本條件是其具備足夠的密鑰長度,SM4演算法與AES演算法具有相同的密鑰長度分組長度128比特,因此在安全性上高於3DES演算法。
⑵ 首次將橢圓曲線用於密碼學,建立公開密鑰加密的演演算法是在那一年
橢圓曲線密碼學(英語:Elliptic curve cryptography,縮寫為 ECC),一種建立公開密鑰加密的演算法,基於橢圓曲線數學。
橢圓曲線在密碼學中的使用是在1985年由Neal Koblitz和Victor Miller分別獨立提出的。
橢圓曲線密碼學:
橢圓曲線密碼學(英語:Elliptic curve cryptography,縮寫為ECC),一種建立公開密鑰加密的演算法,基於橢圓曲線數學。橢圓曲線在密碼學中的使用是在1985年由Neal Koblitz和Victor Miller分別獨立提出的。
ECC的主要優勢是在某些情況下它比其他的方法使用更小的密鑰——比如RSA加密演算法——提供相當的或更高等級的安全。ECC的另一個優勢是可以定義群之間的雙線性映射。
基於Weil對或是Tate對;雙線性映射已經在密碼學中發現了大量的應用,例如基於身份的加密。其缺點是同長度密鑰下加密和解密操作的實現比其他機制花費的時間長。
但由於可以使用更短的密鑰達到同級的安全程度,所以同級安全程度下速度相對更快。一般認為160比特的橢圓曲線密鑰提供的安全強度與1024比特RSA密鑰相當。
⑶ 公鑰密碼體制的原理
自從1976年公鑰密碼的思想提出以來,國際上已經提出了許多種公鑰密碼體制。用抽象的觀點來看,公鑰密碼就是一種陷門單向函數。
我們說一個函數f是單向函數,即若對它的定義域中的任意x都易於計算f(x),而對f的值域中的幾乎所有的y,即使當f為已知時要計算f-l(y)在計算上也是不可行的。若當給定某些輔助信息(陷門信息)時則易於計算f-l(y),就稱單向函數f是一個陷門單向函數。公鑰密碼體制就是基於這一原理而設計的,將輔助信息(陷門信息)作為秘密密鑰。這類密碼的安全強度取決於它所依據的問題的計算復雜度。
目前比較流行的公鑰密碼體制主要有兩類:一類是基於大整數因子分解問題的,其中最典型的代表是RSA體制。另一類是基於離散對數問題的,如ElGamal公鑰密碼體制和影響比較大的橢圓曲線公鑰密碼體制。
公鑰密碼
一般要求:
1、加密解密演算法相同,但使用不同的密鑰
2、發送方擁有加密或解密密鑰,而接收方擁有另一個密鑰
安全性要求:
1、兩個密鑰之一必須保密
2、無解密密鑰,解密不可行
3、知道演算法和其中一個密鑰以及若干密文不能確定另一個密鑰
⑷ 誰能最簡單的詳解橢圓曲線演算法,secp256k1 是如何生成公鑰和私鑰的
最簡單的描述,K=kG作者重新定義了橢圓曲線的加法和乘法。並且保證不可逆。之後通過一系列復雜的計算算出了公鑰和加密演算法。比如y^2=Ax^3+Bx^2+Cx+D然後Alice計算出來一個參數(x1,y1) 告訴A,B,C,D到Bob,Bob對應的計算出來(x2,y2)然後雙方通訊,就可以使用公鑰私鑰對進行加解密了。PS:對不起。具體細節我把書送給老師了。手頭沒有資料可以查PS:開始了解這個演算法的時候我也看了ECC加密演算法入門介紹。到現在都不懂。我也不是數學系的。PS:我很後悔當時沒有把這個書上的東西記下來。現在只有一點皮毛的。那本書是《深入淺出密碼學――常用加密技術原理與應用(安全技術經典譯叢)》(美)帕爾,(美)佩爾茨爾著,馬小婷譯PS:最後我很討厭很簡單的東西說的很復雜。在上面這本書大概幾面紙加上最基礎不超過兩位數的算例就解決的問題,上面硬是講的超級復雜。
⑸ 什麼是公鑰密碼體制
自從1976年公鑰密碼的思想提出以來,國際上已經提出了許多種公鑰密碼體制。用抽象的觀點來看,公鑰密碼就是一種陷門單向函數。
我們說一個函數f是單向函數,即若對它的定義域中的任意x都易於計算f(x),而對f的值域中的幾乎所有的y,即使當f為已知時要計算f-l(y)在計算上也是不可行的。若當給定某些輔助信息(陷門信息)時則易於計算f-l(y),就稱單向函數f是一個陷門單向函數。公鑰密碼體制就是基於這一原理而設計的,將輔助信息(陷門信息)作為秘密密鑰。這類密碼的安全強度取決於它所依據的問題的計算復雜度。
目前比較流行的公鑰密碼體制主要有兩類:一類是基於大整數因子分解問題的,其中最典型的代表是RSA體制。另一類是基於離散對數問題的,如ElGamal公鑰密碼體制和影響比較大的橢圓曲線公鑰密碼體制。
公鑰密碼
一般要求:
1、加密解密演算法相同,但使用不同的密鑰
2、發送方擁有加密或解密密鑰,而接收方擁有另一個密鑰
安全性要求:
1、兩個密鑰之一必須保密
2、無解密密鑰,解密不可行
3、知道演算法和其中一個密鑰以及若干密文不能確定另一個密鑰
⑹ 橢圓加密演算法的方程
橢圓曲線密碼體制來源於對橢圓曲線的研究,所謂橢圓曲線指的是由韋爾斯特拉斯(Weierstrass)方程:
y2+a1xy+a3y=x3+a2x2+a4x+a6 (1)
所確定的平面曲線。其中系數ai(I=1,2,…,6)定義在某個域上,可以是有理數域、實數域、復數域,還可以是有限域GF(pr),橢圓曲線密碼體制中用到的橢圓曲線都是定義在有限域上的。
橢圓曲線上所有的點外加一個叫做無窮遠點的特殊點構成的集合連同一個定義的加法運算構成一個Abel群。在等式
mP=P+P+…+P=Q (2)
中,已知m和點P求點Q比較容易,反之已知點Q和點P求m卻是相當困難的,這個問題稱為橢圓曲線上點群的離散對數問題。橢圓曲線密碼體制正是利用這個困難問題設計而來。橢圓曲線應用到密碼學上最早是由Neal Koblitz 和Victor Miller在1985年分別獨立提出的。
橢圓曲線密碼體制是目前已知的公鑰體制中,對每比特所提供加密強度最高的一種體制。解橢圓曲線上的離散對數問題的最好演算法是Pollard rho方法,其時間復雜度為,是完全指數階的。其中n為等式(2)中m的二進製表示的位數。當n=234, 約為2117,需要1.6x1023 MIPS 年的時間。而我們熟知的RSA所利用的是大整數分解的困難問題,目前對於一般情況下的因數分解的最好演算法的時間復雜度是子指數階的,當n=2048時,需要2x1020MIPS年的時間。也就是說當RSA的密鑰使用2048位時,ECC的密鑰使用234位所獲得的安全強度還高出許多。它們之間的密鑰長度卻相差達9倍,當ECC的密鑰更大時它們之間差距將更大。更ECC密鑰短的優點是非常明顯的,隨加密強度的提高,密鑰長度變化不大。
德國、日本、法國、美國、加拿大等國的很多密碼學研究小組及一些公司實現了橢圓曲線密碼體制,我國也有一些密碼學者
做了這方面的工作。許多標准化組織已經或正在制定關於橢圓曲線的標准,同時也有許多的廠商已經或正在開發基於橢圓曲線的產品。對於橢圓曲線密碼的研究也是方興未艾,從ASIACRYPTO』98上專門開辟了ECC的欄目可見一斑。
在橢圓曲線密碼體制的標准化方面,IEEE、ANSI、ISO、IETF、ATM等都作了大量的工作,它們所開發的橢圓曲線標準的文檔有:IEEE P1363 P1363a、ANSI X9.62 X9.63、 ISO/IEC14888等。
2003年5月12日中國頒布的無線區域網國家標准 GB15629.11 中,包含了全新的WAPI(WLAN Authentication and Privacy Infrastructure)安全機制,能為用戶的WLAN系統提供全面的安全保護。這種安全機制由 WAI和WPI兩部分組成,分別實現對用戶身份的鑒別和對傳輸的數據加密。WAI採用公開密鑰密碼體制,利用證書來對WLAN系統中的用戶和AP進行認證。證書裡麵包含有證書頒發者(ASU)的公鑰和簽名以及證書持有者的公鑰和簽名,這里的簽名採用的就是橢圓曲線ECC演算法。
加拿大Certicom公司是國際上最著名的ECC密碼技術公司,已授權300多家企業使用ECC密碼技術,包括Cisco 系統有限公司、摩托羅拉、Palm等企業。Microsoft將Certicom公司的VPN嵌入微軟視窗移動2003系統中。
以下資料摘自:http://www.hids.com.cn/data.asp
⑺ 什麼是公鑰密碼演算法公鑰的將密鑰完全公開嗎
公鑰密碼演算法
公鑰密碼演算法中的密鑰依性質劃分,可分為公鑰和私鑰兩種。
用戶或系統產生一對密鑰,將其中的一個公開,稱為公鑰;另一個自己保留,稱為私鑰。
任何獲悉用戶公鑰的人都可用用戶的公鑰對信息進行加密與用戶實現安全信息交互。
由於公鑰與私鑰之間存在的依存關系,只有用戶本身才能解密該信息,任何未受授權用戶甚至信息的發送者都無法將此信息解密。
在近代公鑰密碼系統的研究中, 其安全性都是基於難解的可計算問題的。
如:
(1)大數分解問題;
(2)計算有限域的離散對數問題;
(3)平方剩餘問題;
(4)橢圓曲線的對數問題等。基於這些問題, 於是就有了各種公鑰密碼體制。
關於公鑰密碼有眾多的研究, 主要集中在以下的幾個方面:
(1)RSA 公鑰體制的研究;
(2)橢圓曲線密碼體制的研究;
(3)各種公鑰密碼體制的研究;
(4)數字簽名研究。
公鑰加密體制具有以下優點:
(1)密鑰分配簡單;
(2)密鑰的保存量少;
(3)可以滿足互不相識的人之間進行私人談話時的保密性要求;
(4)可以完成數字簽名和數字鑒別。
答案補充
SHA-1演算法
SHA-1雜湊演算法[4]起初是針對DSA演算法而設計的,其設計原理與Ron Rivest提出的MD2,MD4,尤其是MD5雜湊函數的設計原理類似。當輸入長度<264bit的消息時,輸出160bit的摘要,其演算法分為5步:
(1)填充消息使其長度為512的倍數減去64,填充的方法是添一個「1」在消息後,然後添加「0」直至達到要求的長度,要求至少1位,至多512位填充位;
(2)完成第1步後,在新得到的消息後附加上64bit填充前的消息長度值;
(3)初始化緩存,SHA-1用5字的緩存,每個字均是32bit;
(4)進入消息處理主循環,一次循環處理512bit,主循環有4輪,每輪20次操作;
(5)循環結束後,得到的輸出值即為所求。
⑻ 橢圓曲線演算法的比較
橢圓曲線演算法與RSA演算法的比較
橢圓曲線公鑰系統是代替RSA的強有力的競爭者。橢圓曲線加密方法與RSA方法相比,有以下的優點:
(1)安全性能更高 如160位ECC與1024位RSA、DSA有相同的安全強度。
(2)計算量小,處理速度快 在私鑰的處理速度上(解密和簽名),ECC遠 比RSA、DSA快得多。
(3)存儲空間佔用小 ECC的密鑰尺寸和系統參數與RSA、DSA相比要小得多, 所以佔用的存儲空間小得多。
(4)帶寬要求低使得ECC具有廣泛的應用前景。
ECC的這些特點使它必將取代RSA,成為通用的公鑰加密演算法。比如SET協議的制定者已把它作為下一代SET協議中預設的公鑰密碼演算法。
⑼ 常用的加密演算法有哪些
對稱密鑰加密
對稱密鑰加密 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 又稱公鑰數字簽名是一種用來確保數字消息或文檔真實性的數學方案。一個有效的數字簽名需要給接收者充足的理由來信任消息的可靠來源,而發送者也無法否認這個簽名,並且這個消息在傳輸過程中確保沒有發生變動。
數字簽名的原理在於利用公鑰加密技術,簽名者將消息用私鑰加密,然後公布公鑰,驗證者就使用這個公鑰將加密信息解密並對比消息。一般而言,會使用消息的散列值來作為簽名對象。