❶ 什麼演算法是不可逆加密 像 MD5一樣的演算法。。。。。。 不過 有點抽象 能
一個數除以 另一個數再把余數丟掉,得到商,從最後得到的商沒有辦法算出被除數。
❷ 不可逆加密演算法的應用
不可逆加密演算法不存在密鑰保管和分發問題,非常適合在分布式網路系統上使用,但因加密計算復雜,工作量相當繁重,通常只在數據量有限的情形下使用,如廣泛應用在計算機系統中的口令加密,利用的就是不可逆加密演算法。近年來,隨著計算機系統性能的不斷提高,不可逆加密的應用領域正在逐漸增大。在計算機網路中應用較多不可逆加密演算法的有RSA公司發明的MD5演算法和由美國國家標准局建議的不可逆加密標准SHS(Secure Hash Standard:安全雜亂信息標准)等。
❸ 不可逆加密演算法有哪些
不可逆加密演算法的特徵是加密過程中不需要使用密鑰,輸入明文後由系統直接經過加密演算法處理成密文,這種加密後的數據是無法被解密的,只有重新輸入明文,並再次經過同樣不可逆的加密演算法處理,得到相同的加密密文並被系統重新識別後,才能真正解密
❹ 數據加密演算法可以分為幾大類型,個舉一例說明
分為三類:
1、對稱加密;
2、不對稱加密;
3、不可逆加密。
對稱加密是指加密密鑰和解密密鑰相同;
不對稱加密演算法使用不同的加密密鑰和解密密鑰;
不可逆加密演算法的特徵是加密過程不需要密鑰,並且經過加密的數據無法被解密,只有同樣輸入的輸入數據經過同樣的不可逆演算法才能得到同樣的加密數據。
❺ 不可逆加密演算法的MD5演算法
MD5中有四個32位被稱作鏈接變數(Chaining Variable)的整數參數,他們分別為:A=0x01234567,B=0x89abcdef,C=0xfedcba98,D=0x76543210。
當設置好這四個鏈接變數後,就開始進入演算法的四輪循環運算。循環的次數是信息中512位信息分組的數目。
將上面四個鏈接變數復制到另外四個變數中:A到a,B到b,C到c,D到d。
主循環有四輪(MD4隻有三輪),每輪循環都很相似。第一輪進行16次操作。每次操作對a、b、c和d中的其中三個作一次非線性函數運算,然後將所得結果加上第四個變數,文本的一個子分組和一個常數。再將所得結果向右環移一個不定的數,並加上a、b、c或d中之一。最後用該結果取代a、b、c或d中之一。
以一下是每次操作中用到的四個非線性函數(每輪一個)。
F(X,Y,Z) =(X&Y)|((~X)&Z)
G(X,Y,Z) =(X&Z)|(Y&(~Z))
H(X,Y,Z) =X^Y^Z
I(X,Y,Z)=Y^(X|(~Z))
(&是與,|是或,~是非,^是異或)
這四個函數的說明:如果X、Y和Z的對應位是獨立和均勻的,那麼結果的每一位也應是獨立和均勻的。F是一個逐位運算的函數。即,如果X,那麼Y,否則Z。函數H是逐位奇偶操作符。
假設Mj表示消息的第j個子分組(從0到15),<<
FF(a,b,c,d,Mj,s,ti)表示a=b+((a+(F(b,c,d)+Mj+ti)<< GG(a,b,c,d,Mj,s,ti)表示a=b+((a+(G(b,c,d)+Mj+ti)<< HH(a,b,c,d,Mj,s,ti)表示a=b+((a+(H(b,c,d)+Mj+ti)<< II(a,b,c,d,Mj,s,ti)表示a=b+((a+(I(b,c,d)+Mj+ti)<<
這四輪(64步)是:
第一輪
FF(a,b,c,d,M0,7,0xd76aa478)
FF(d,a,b,c,M1,12,0xe8c7b756)
FF(c,d,a,b,M2,17,0x242070db)
FF(b,c,d,a,M3,22,0xc1bdceee)
FF(a,b,c,d,M4,7,0xf57c0faf)
FF(d,a,b,c,M5,12,0x4787c62a)
FF(c,d,a,b,M6,17,0xa8304613)
FF(b,c,d,a,M7,22,0xfd469501)
FF(a,b,c,d,M8,7,0x698098d8)
FF(d,a,b,c,M9,12,0x8b44f7af)
FF(c,d,a,b,M10,17,0xffff5bb1)
FF(b,c,d,a,M11,22,0x895cd7be)
FF(a,b,c,d,M12,7,0x6b901122)
FF(d,a,b,c,M13,12,0xfd987193)
FF(c,d,a,b,M14,17,0xa679438e)
FF(b,c,d,a,M15,22,0x49b40821)
第二輪
GG(a,b,c,d,M1,5,0xf61e2562)
GG(d,a,b,c,M6,9,0xc040b340)
GG(c,d,a,b,M11,14,0x265e5a51)
GG(b,c,d,a,M0,20,0xe9b6c7aa)
GG(a,b,c,d,M5,5,0xd62f105d)
GG(d,a,b,c,M10,9,0x02441453)
GG(c,d,a,b,M15,14,0xd8a1e681)
GG(b,c,d,a,M4,20,0xe7d3fbc8)
GG(a,b,c,d,M9,5,0x21e1cde6)
GG(d,a,b,c,M14,9,0xc33707d6)
GG(c,d,a,b,M3,14,0xf4d50d87)
GG(b,c,d,a,M8,20,0x455a14ed)
GG(a,b,c,d,M13,5,0xa9e3e905)
GG(d,a,b,c,M2,9,0xfcefa3f8)
GG(c,d,a,b,M7,14,0x676f02d9)
GG(b,c,d,a,M12,20,0x8d2a4c8a)
第三輪
HH(a,b,c,d,M5,4,0xfffa3942)
HH(d,a,b,c,M8,11,0x8771f681)
HH(c,d,a,b,M11,16,0x6d9d6122)
HH(b,c,d,a,M14,23,0xfde5380c)
HH(a,b,c,d,M1,4,0xa4beea44)
HH(d,a,b,c,M4,11,0x4bdecfa9)
HH(c,d,a,b,M7,16,0xf6bb4b60)
HH(b,c,d,a,M10,23,0xbebfbc70)
HH(a,b,c,d,M13,4,0x289b7ec6)
HH(d,a,b,c,M0,11,0xeaa127fa)
HH(c,d,a,b,M3,16,0xd4ef3085)
HH(b,c,d,a,M6,23,0x04881d05)
HH(a,b,c,d,M9,4,0xd9d4d039)
HH(d,a,b,c,M12,11,0xe6db99e5)
HH(c,d,a,b,M15,16,0x1fa27cf8)
HH(b,c,d,a,M2,23,0xc4ac5665)
第四輪
II(a,b,c,d,M0,6,0xf4292244)
II(d,a,b,c,M7,10,0x432aff97)
II(c,d,a,b,M14,15,0xab9423a7)
II(b,c,d,a,M5,21,0xfc93a039)
II(a,b,c,d,M12,6,0x655b59c3)
II(d,a,b,c,M3,10,0x8f0ccc92)
II(c,d,a,b,M10,15,0xffeff47d)
II(b,c,d,a,M1,21,0x85845dd1)
II(a,b,c,d,M8,6,0x6fa87e4f)
II(d,a,b,c,M15,10,0xfe2ce6e0)
II(c,d,a,b,M6,15,0xa3014314)
II(b,c,d,a,M13,21,0x4e0811a1)
II(a,b,c,d,M4,6,0xf7537e82)
II(d,a,b,c,M11,10,0xbd3af235)
II(c,d,a,b,M2,15,0x2ad7d2bb)
II(b,c,d,a,M9,21,0xeb86d391)
常數ti可以如下選擇:
在第i步中,ti是4294967296*abs(sin(i))的整數部分,i的單位是弧度。(4294967296等於2的32次方)
所有這些完成之後,將A、B、C、D分別加上a、b、c、d。然後用下一分組數據繼續運行演算法,最後的輸出是A、B、C和D的級聯。 一些黑客破獲這種密碼的方法是一種被稱為「跑字典」的方法。有兩種方法得到字典,一種是日常搜集的用做密碼的字元串表,另一種是用排列組合方法生成的,先用MD5程序計算出這些字典項的MD5值,然後再用目標的MD5值在這個字典中檢索。
即使假設密碼的最大長度為8,同時密碼只能是字母和數字,共26+26+10=62個字元,排列組合出的字典的項數則是P(62,1)+P (62,2)….+P(62,8),那也已經是一個很天文的數字了,存儲這個字典就需要TB級的磁碟組,而且這種方法還有一個前提,就是能獲得目標賬戶的密碼MD5值的情況下才可以。
❻ 不可逆的加密演算法
原型:
int WINAPI icePub_getMD5FromString(char *strData,char *strResult)
輸入:strData 待處理的文本串
輸出:strResult MD5結果串,32位元組
返回碼:
char buff[1024];
char buff2[1024];
strcpy(buff2,"Walk At Familiar Alley, Pursue Concordand's Footfall, Between Front And Back, What Course To Follow?");
typedef int (WINAPI ICEPUB_GETMD5FROMSTRING)(char *strData,char *strResult);
ICEPUB_GETMD5FROMSTRING *icePub_getMD5FromString = 0;
HINSTANCE hDLLDrv = LoadLibrary("icePubDll.dll");
if(hDLLDrv)
{
icePub_getMD5FromString=(ICEPUB_GETMD5FROMSTRING *)GetProcAddress(hDLLDrv,"icePub_getMD5FromString");
}
if(icePub_getMD5FromString)
icePub_getMD5FromString(buff2,buff);
if(hDLLDrv)
FreeLibrary(hDLLDrv);
AfxMessageBox(buff);
原型:
int WINAPI icePub_getMD5FromFile(char *strFilePath,char *strResult)
輸入:strFilePath 待MD5的文件名
輸出:strResult MD5結果串,32位元組
返回碼:
char buff[1024];
typedef int (WINAPI ICEPUB_GETMD5FROMFILE)(char *strFilePath,char *strResult);
ICEPUB_DESDECRYPTIONSTRING *icePub_getMD5FromFile = 0;
HINSTANCE hDLLDrv = LoadLibrary("icePubDll.dll");
if(hDLLDrv)
{
icePub_getMD5FromFile=(ICEPUB_DESDECRYPTIONSTRING *)GetProcAddress(hDLLDrv,"icePub_getMD5FromFile");
}
if(icePub_getMD5FromFile)
icePub_getMD5FromFile("D:\\icePubDLL.dll",buff);
if(hDLLDrv)
FreeLibrary(hDLLDrv);
AfxMessageBox(buff);
原型:
int WINAPI icePub_sha1FromString(char *strData,char *strResult)
輸入:strData 待處理的文本串
輸出:strResult SHA1結果串,40位元組
返回碼:
char buff[1024];
char buff2[1024];
strcpy(buff2,"Kiss Years's Scar, Strangeness Far Snivel, Between Hart And Head, Cloud And Mist Come And Go.");
typedef int (WINAPI ICEPUB_SHA1ROMSTRING)(char *strData,char *strResult);
ICEPUB_SHA1ROMSTRING *icePub_sha1FromString = 0;
HINSTANCE hDLLDrv = LoadLibrary("icePubDll.dll");
if(hDLLDrv)
{
icePub_sha1FromString=(ICEPUB_SHA1ROMSTRING *)GetProcAddress(hDLLDrv,"icePub_sha1FromString");
}
if(icePub_sha1FromString)
icePub_sha1FromString(buff2,buff);
if(hDLLDrv)
FreeLibrary(hDLLDrv);
AfxMessageBox(buff);
❼ 對稱加密,和不可逆演算法是什麼
加密演算法
加密技術是對信息進行編碼和解碼的技術,編碼是把原來可讀信息(又稱明文)譯成代碼形式(又稱密文),其逆過程就是解碼(解密)。加密技術的要點是加密演算法,加密演算法可以分為對稱加密、不對稱加密和不可逆加密三類演算法。
對稱加密演算法 對稱加密演算法是應用較早的加密演算法,技術成熟。在對稱加密演算法中,數據發信方將明文(原始數據)和加密密鑰一起經過特殊加密演算法處理後,使其變成復雜的加密密文發送出去。收信方收到密文後,若想解讀原文,則需要使用加密用過的密鑰及相同演算法的逆演算法對密文進行解密,才能使其恢復成可讀明文。在對稱加密演算法中,使用的密鑰只有一個,發收信雙方都使用這個密鑰對數據進行加密和解密,這就要求解密方事先必須知道加密密鑰。對稱加密演算法的特點是演算法公開、計算量小、加密速度快、加密效率高。不足之處是,交易雙方都使用同樣鑰匙,安全性得不到保證。此外,每對用戶每次使用對稱加密演算法時,都需要使用其他人不知道的惟一鑰匙,這會使得發收信雙方所擁有的鑰匙數量成幾何級數增長,密鑰管理成為用戶的負擔。對稱加密演算法在分布式網路系統上使用較為困難,主要是因為密鑰管理困難,使用成本較高。在計算機專網系統中廣泛使用的對稱加密演算法有DES和IDEA等。美國國家標准局倡導的AES即將作為新標准取代DES。
不對稱加密演算法不對稱加密演算法使用兩把完全不同但又是完全匹配的一對鑰匙—公鑰和私鑰。在使用不對稱加密演算法加密文件時,只有使用匹配的一對公鑰和私鑰,才能完成對明文的加密和解密過程。加密明文時採用公鑰加密,解密密文時使用私鑰才能完成,而且發信方(加密者)知道收信方的公鑰,只有收信方(解密者)才是唯一知道自己私鑰的人。不對稱加密演算法的基本原理是,如果發信方想發送只有收信方才能解讀的加密信息,發信方必須首先知道收信方的公鑰,然後利用收信方的公鑰來加密原文;收信方收到加密密文後,使用自己的私鑰才能解密密文。顯然,採用不對稱加密演算法,收發信雙方在通信之前,收信方必須將自己早已隨機生成的公鑰送給發信方,而自己保留私鑰。由於不對稱演算法擁有兩個密鑰,因而特別適用於分布式系統中的數據加密。廣泛應用的不對稱加密演算法有RSA演算法和美國國家標准局提出的DSA。以不對稱加密演算法為基礎的加密技術應用非常廣泛。
不可逆加密演算法 不可逆加密演算法的特徵是加密過程中不需要使用密鑰,輸入明文後由系統直接經過加密演算法處理成密文,這種加密後的數據是無法被解密的,只有重新輸入明文,並再次經過同樣不可逆的加密演算法處理,得到相同的加密密文並被系統重新識別後,才能真正解密。顯然,在這類加密過程中,加密是自己,解密還得是自己,而所謂解密,實際上就是重新加一次密,所應用的「密碼」也就是輸入的明文。不可逆加密演算法不存在密鑰保管和分發問題,非常適合在分布式網路系統上使用,但因加密計算復雜,工作量相當繁重,通常只在數據量有限的情形下使用,如廣泛應用在計算機系統中的口令加密,利用的就是不可逆加密演算法。近年來,隨著計算機系統性能的不斷提高,不可逆加密的應用領域正在逐漸增大。在計算機網路中應用較多不可逆加密演算法的有RSA公司發明的MD5演算法和由美國國家標准局建議的不可逆加密標准SHS(Secure Hash Standard:安全雜亂信息標准)等。
加密技術
加密演算法是加密技術的基礎,任何一種成熟的加密技術都是建立多種加密演算法組合,或者加密演算法和其他應用軟體有機結合的基礎之上的。下面我們介紹幾種在計算機網路應用領域廣泛應用的加密技術。
非否認(Non-repudiation)技術 該技術的核心是不對稱加密演算法的公鑰技術,通過產生一個與用戶認證數據有關的數字簽名來完成。當用戶執行某一交易時,這種簽名能夠保證用戶今後無法否認該交易發生的事實。由於非否認技術的操作過程簡單,而且直接包含在用戶的某類正常的電子交易中,因而成為當前用戶進行電子商務、取得商務信任的重要保證。
PGP(Pretty Good Privacy)技術 PGP技術是一個基於不對稱加密演算法RSA公鑰體系的郵件加密技術,也是一種操作簡單、使用方便、普及程度較高的加密軟體。PGP技術不但可以對電子郵件加密,防止非授權者閱讀信件;還能對電子郵件附加數字簽名,使收信人能明確了解發信人的真實身份;也可以在不需要通過任何保密渠道傳遞密鑰的情況下,使人們安全地進行保密通信。PGP技術創造性地把RSA不對稱加密演算法的方便性和傳統加密體系結合起來,在數字簽名和密鑰認證管理機制方面採用了無縫結合的巧妙設計,使其幾乎成為最為流行的公鑰加密軟體包。
數字簽名(Digital Signature)技術 數字簽名技術是不對稱加密演算法的典型應用。數字簽名的應用過程是,數據源發送方使用自己的私鑰對數據校驗和或其他與數據內容有關的變數進行加密處理,完成對數據的合法「簽名」,數據接收方則利用對方的公鑰來解讀收到的「數字簽名」,並將解讀結果用於對數據完整性的檢驗,以確認簽名的合法性。數字簽名技術是在網路系統虛擬環境中確認身份的重要技術,完全可以代替現實過程中的「親筆簽字」,在技術和法律上有保證。在公鑰與私鑰管理方面,數字簽名應用與加密郵件PGP技術正好相反。在數字簽名應用中,發送者的公鑰可以很方便地得到,但他的私鑰則需要嚴格保密。
PKI(Public Key Infrastructure)技術 PKI技術是一種以不對稱加密技術為核心、可以為網路提供安全服務的公鑰基礎設施。PKI技術最初主要應用在Internet環境中,為復雜的互聯網系統提供統一的身份認證、數據加密和完整性保障機制。由於PKI技術在網路安全領域所表現出的巨大優勢,因而受到銀行、證券、政府等核心應用系統的青睞。PKI技術既是信息安全技術的核心,也是電子商務的關鍵和基礎技術。由於通過網路進行的電子商務、電子政務等活動缺少物理接觸,因而使得利用電子方式驗證信任關系變得至關重要,PKI技術恰好能夠有效解決電子商務應用中的機密性、真實性、完整性、不可否認性和存取控制等安全問題。一個實用的PKI體系還必須充分考慮互操作性和可擴展性。PKI體系所包含的認證中心(CA)、注冊中心(RA)、策略管理、密鑰與證書管理、密鑰備份與恢復、撤銷系統等功能模塊應該有機地結合在一起。
加密的未來趨勢
盡管雙鑰密碼體制比單鑰密碼體制更為可靠,但由於計算過於復雜,雙鑰密碼體制在進行大信息量通信時,加密速率僅為單鑰體制的1/100,甚至是 1/1000。正是由於不同體制的加密演算法各有所長,所以在今後相當長的一段時期內,各類加密體制將會共同發展。而在由IBM等公司於1996年聯合推出的用於電子商務的協議標准SET(Secure Electronic Transaction)中和1992年由多國聯合開發的PGP技術中,均採用了包含單鑰密碼、雙鑰密碼、單向雜湊演算法和隨機數生成演算法在內的混合密碼系統的動向來看,這似乎從一個側面展示了今後密碼技術應用的未來。
在單鑰密碼領域,一次一密被認為是最為可靠的機制,但是由於流密碼體制中的密鑰流生成器在演算法上未能突破有限循環,故一直未被廣泛應用。如果找到一個在演算法上接近無限循環的密鑰流生成器,該體制將會有一個質的飛躍。近年來,混沌學理論的研究給在這一方向產生突破帶來了曙光。此外,充滿生氣的量子密碼被認為是一個潛在的發展方向,因為它是基於光學和量子力學理論的。該理論對於在光纖通信中加強信息安全、對付擁有量子計算能力的破譯無疑是一種理想的解決方法。
由於電子商務等民用系統的應用需求,認證加密演算法也將有較大發展。此外,在傳統密碼體制中,還將會產生類似於IDEA這樣的新成員,新成員的一個主要特徵就是在演算法上有創新和突破,而不僅僅是對傳統演算法進行修正或改進。密碼學是一個正在不斷發展的年輕學科,任何未被認識的加/解密機制都有可能在其中佔有一席之地。
目前,對信息系統或電子郵件的安全問題,還沒有一個非常有效的解決方案,其主要原因是由於互聯網固有的異構性,沒有一個單一的信任機構可以滿足互聯網全程異構性的所有需要,也沒有一個單一的協議能夠適用於互聯網全程異構性的所有情況。解決的辦法只有依靠軟體代理了,即採用軟體代理來自動管理用戶所持有的證書(即用戶所屬的信任結構)以及用戶所有的行為。每當用戶要發送一則消息或一封電子郵件時,代理就會自動與對方的代理協商,找出一個共同信任的機構或一個通用協議來進行通信。在互聯網環境中,下一代的安全信息系統會自動為用戶發送加密郵件,同樣當用戶要向某人發送電子郵件時,用戶的本地代理首先將與對方的代理交互,協商一個適合雙方的認證機構。當然,電子郵件也需要不同的技術支持,因為電子郵件不是端到端的通信,而是通過多個中間機構把電子郵件分程傳遞到各自的通信機器上,最後到達目的地
❽ 關於不可逆演算法
MD5的不可逆是這樣的,通過明文可以得到密文,但知道密文不能得到明文。
比如,B已經知道了3(密文),這時候A發給B 123456(明文),B把123456通過加密演算法得到3,3與B原來的已知密文相同,就知道A所給的明文是正確的。
密文AB都知道,但是明文只有A知道。B可以通過密文驗證一個數字是不是正確的明文,但是沒有辦法通過密文把明文算出來
❾ 請問現在對密碼加密的方式有哪幾種有哪些是可逆的有哪些是不可逆的
M5D 加密是最常見的 加密演算法成千上萬 幾種 我看沒人能說得出來哈 不可逆的加密就不是加密啦 都讀不出來了 那些數據已經沒意義了。所以加密都是可逆的。
❿ 常用的加密演算法有哪些
對稱密鑰加密
對稱密鑰加密 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 又稱公鑰數字簽名是一種用來確保數字消息或文檔真實性的數學方案。一個有效的數字簽名需要給接收者充足的理由來信任消息的可靠來源,而發送者也無法否認這個簽名,並且這個消息在傳輸過程中確保沒有發生變動。
數字簽名的原理在於利用公鑰加密技術,簽名者將消息用私鑰加密,然後公布公鑰,驗證者就使用這個公鑰將加密信息解密並對比消息。一般而言,會使用消息的散列值來作為簽名對象。