1. 銀行的加密演算法有幾種、有哪幾種、主要詳情是什麼
6種,DES、AES、MD5、RSA、雙鑰加密、非對稱加密。
DES演算法
DES(Data Encryption Standard)是一種經典的對稱演算法。其數據分組長度為64位,使用的密鑰為64位,有效密鑰長度為56位(有8位用於奇偶校驗)。它由IBM公司在70年代開發,經過政府的加密標准篩選後,於1976年11月被美國政府採用,隨後被美國國家標准局和美國國家標准協會(American National Standard Institute, ANSI) 承認。
AES演算法
1997年1月美國國家標准和技術研究所(NIST)宣布徵集新的加密演算法。2000年10月2日,由比利時設計者Joan Daemen和Vincent Rijmen設計的Rijndael演算法以其優秀的性能和抗攻擊能力,最終贏得了勝利,成為新一代的加密標准AES(Advanced Encryption Standard)。
MD5
md5的全稱是message-digest algorithm 5(信息-摘要演算法),在90年代初由mit laboratory for computer science和rsa data security inc的ronald l. rivest開發出來,經md2、md3和md4發展而來。它的作用是讓大容量信息在用數字簽名軟體簽署私人密匙前被"壓縮"成一種保密的格式(就是把一個任意長度的位元組串變換成一定長的大整數)。不管是md2、md4還是md5,它們都需要獲得一個隨機長度的信息並產生一個128位的信息摘要。雖然這些演算法的結構或多或少有些相似,但md2的設計與md4和md5完全不同,那是因為md2是為8位機器做過設計優化的,而md4和md5卻是面向32位的電腦。這三個演算法的描述和c語言源代碼在internet rfcs 1321中有詳細的描述
RSA
RSA演算法是一種非對稱密碼演算法,所謂非對稱,就是指該演算法需要一對密鑰,使用其中一個加密,則需要用另一個才能解密。
RSA的演算法涉及三個參數,n、e1、e2。
其中,n是兩個大質數p、q的積,n的二進製表示時所佔用的位數,就是所謂的密鑰長度。
e1和e2是一對相關的值,e1可以任意取,但要求e1與(p-1)*(q-1)互質;再選擇e2,要求(e2*e1)mod((p-1)*(q-1))=1。
(n及e1),(n及e2)就是密鑰對。
RSA加解密的演算法完全相同,設A為明文,B為密文,則:A=B^e1 mod n;B=A^e2 mod n;
e1和e2可以互換使用,即:
A=B^e2 mod n;B=A^e1 mod n;
雙鑰加密
雙鑰技術就是公共密鑰加密PKE(Public Key Encryption)技術,它使用兩把密鑰,一把公共密鑰(Public Key)和一把專用密鑰(Private Key),前者用於加密,後者用於解密。這種方法也稱為「非對稱式」加密方法,它解決了傳統加密方法的根本性問題,極大地簡化了密鑰分發的工作量。它與傳統加密方法相結合,還可以進一步增強傳統加密方法的可靠性。更為突出的是,利用公共密鑰加密技術可以實現數字簽名。
什麼是非對稱加密技術
1976年,美國學者Dime和Henman為解決信息公開傳送和密鑰管理問題,提出一種新的密鑰交換協議,允許在不安全的媒體上的通訊雙方交換信息,安全地達成一致的密鑰,這就是「公開密鑰系統」。相對於「對稱加密演算法」這種方法也叫做「非對稱加密演算法」。
2. 什麼是FSTC
美國金融服務技術聯合會 FSTC
Financial Services Technology Consortium
目前,在電子支付中主要的電子支票系統有:
FSTC,NetBill,E-check和NetCheque.
一,FSTC電子支票系統
美國金融服務技術聯合會FSTC(Financial Services Technology Consortium)是由美國一些銀行,研究機構,公司於1993年組成的一個集團,它的初衷是幫助美國金融服務業提高其競爭能力.目前已有60多個成員加入該集團,其中包括美洲銀行,大通化學銀行,花旗銀行,IBM,微軟,SUN等.
電子支票和電子轉帳在電子支付領域,FSTC集團的主要任務是要確定一個新的框架來支持所有形式的電子商務,也包括電子支票.FSTC的目的是既要以新的支付和商務形式來適應當今的變化,又要盡可能地運用已存在的基礎設施,以減少投資,減少混亂.
⒈FSTC電子支票概念
在FSTC中,所有個人和獨立單位在簽發電子支票時要配備一個電子支票薄安全設備,這個安全設備用於安全存儲私鑰,憑證並登記已簽發和背書的支票.產生購貨發票及支票加密的數位信封.安全設備可以是智能卡.
收款者確認接收此支票後就可背書並用自己的安全設備將其傳送到自己的開戶行.一旦安全抵達收款者銀,FSTC就與現存的支票處理方法相銜接.亦即,資金從付款銀行帳戶向商戶銀行帳戶的傳送沿用傳統的ACH(傳統的銀行自動清算所)和EFT(電子資金轉帳)方法.
…… ……
3. 電子商務非對稱密鑰密碼體制有那些特點
密碼體制分為私用密鑰加密技術(對稱加密)和公開密鑰加密技術(非對稱加密)。
(一)、對稱密碼體制
對稱密碼體制是一種傳統密碼體制,也稱為私鑰密碼體制。在對稱加密系統中,加密和解密採用相同的密鑰。因為加解密密鑰相同,需要通信的雙方必須選擇和保存他們共同的密鑰,各方必須信任對方不會將密鑰泄密出去,這樣就可以實現數據的機密性和完整性。比較典型的演算法有DES(Data Encryption Standard數據加密標准)演算法及其變形Triple DES(三重DES),GDES(廣義DES);歐洲的IDEA;日本的FEAL N、RC5等。DES標准由美國國家標准局提出,主要應用於銀行業的電子資金轉帳(EFT)領域。DES的密鑰長度為56bit。Triple DES使用兩個獨立的56bit密鑰對交換的信息進行3次加密,從而使其有效長度達到112bit。RC2和RC4方法是RSA數據安全公司的對稱加密專利演算法,它們採用可變密鑰長度的演算法。通過規定不同的密鑰長度,,C2和RC4能夠提高或降低安全的程度。
對稱密碼演算法的優點是計算開銷小,演算法簡單,加密速度快,是目前用於信息加密的主要演算法。盡管對稱密碼術有一些很好的特性,但它也存在著明顯的缺陷,包括: l)進行安全通信前需要以安全方式進行密鑰交換。這一步驟,在某種情況下是可行的,但在某些情況下會非常困難,甚至無法實現。例如,某一貿易方有幾個貿易關系,他就要維護幾個專用密鑰。它也沒法鑒別貿易發起方或貿易最終方,因為貿易的雙方的密鑰相同。另外,由於對稱加密系統僅能用於對數據進行加解密處理,提供數據的機密性,不能用於數字簽名。因而人們迫切需要尋找新的密碼體制。2)規模復雜。
(二)、非對稱密碼體制
非對稱密碼體制也叫公鑰加密技術,該技術就是針對私鑰密碼體制的缺陷被提出來的。在公鑰加密系統中,加密和解密是相對獨立的,加密和解密會使用兩把不同的密鑰,加密密鑰(公開密鑰)向公眾公開,誰都可以使用,解密密鑰(秘密密鑰)只有解密人自己知道,非法使用者根據公開的加密密鑰無法推算出解密密鑰,顧其可稱為公鑰密碼體制。公鑰密碼體制的演算法中最著名的代表是RSA系統,此外還有:背包密碼、McEliece密碼、Diffe_Hellman、Rabin、零知識證明、橢圓曲線、EIGamal演算法等。
非對稱密碼體制的優點在於:首先,在多人之間進行保密信息傳輸所需的密鑰組和數量很小;第二,密鑰的發布不成問題;第三,公開密鑰系統可實現數字簽名。缺點:公開密鑰加密比私有密鑰加密在加密/解密時的速度慢。
從上述對對稱密鑰演算法和非對稱密鑰演算法的描述中可看出,對稱密鑰加解密使用的同一個密鑰,或者能從加密密鑰很容易推出解密密鑰;②對稱密鑰演算法具有加密處理簡單,加解密速度快,密鑰較短,發展歷史悠久等特點,非對稱密鑰演算法具有加解密速度慢的特點,密鑰尺寸大,發展歷史較短等特點。
4. 公鑰和私鑰技術的區別
(一)對稱加密(Symmetric Cryptography)
對稱加密是最快速、最簡單的一種加密方式,加密(encryption)與解密(decryption)用的是同樣的密鑰(secret key),這種方法在密碼學中叫做對稱加密演算法。對稱加密有很多種演算法,由於它效率很高,所以被廣泛使用在很多加密協議的核心當中。
對稱加密通常使用的是相對較小的密鑰,一般小於256 bit。因為密鑰越大,加密越強,但加密與解密的過程越慢。如果你只用1 bit來做這個密鑰,那黑客們可以先試著用0來解密,不行的話就再用1解;但如果你的密鑰有1 MB大,黑客們可能永遠也無法破解,但加密和解密的過程要花費很長的時間。密鑰的大小既要照顧到安全性,也要照顧到效率,是一個trade-off。
2000年10月2日,美國國家標准與技術研究所(NIST--American National Institute of Standards and Technology)選擇了Rijndael演算法作為新的高級加密標准(AES--Advanced Encryption Standard)。.NET中包含了Rijndael演算法,類名叫RijndaelManaged,下面舉個例子。
加密過程:
private string myData = "hello";
private string myPassword = "OpenSesame";
private byte[] cipherText;
private byte[] salt = { 0x0, 0x1, 0x2, 0x3, 0x4, 0x5, 0x6, 0x5, 0x4, 0x3, 0x2, 0x1, 0x0 };
private void mnuSymmetricEncryption_Click(object sender, RoutedEventArgs e)
{
var key = new Rfc2898DeriveBytes(myPassword, salt);
// Encrypt the data.
var algorithm = new RijndaelManaged();
algorithm.Key = key.GetBytes(16);
algorithm.IV = key.GetBytes(16);
var sourceBytes = new System.Text.UnicodeEncoding().GetBytes(myData);
using (var sourceStream = new MemoryStream(sourceBytes))
using (var destinationStream = new MemoryStream())
using (var crypto = new CryptoStream(sourceStream, algorithm.CreateEncryptor(), CryptoStreamMode.Read))
{
moveBytes(crypto, destinationStream);
cipherText = destinationStream.ToArray();
}
MessageBox.Show(String.Format("Data:{0}{1}Encrypted and Encoded:{2}", myData, Environment.NewLine, Convert.ToBase64String(cipherText)));
}
private void moveBytes(Stream source, Stream dest)
{
byte[] bytes = new byte[2048];
var count = source.Read(bytes, 0, bytes.Length);
while (0 != count)
{
dest.Write(bytes, 0, count);
count = source.Read(bytes, 0, bytes.Length);
}
}
解密過程:
private void mnuSymmetricDecryption_Click(object sender, RoutedEventArgs e)
{
if (cipherText == null)
{
MessageBox.Show("Encrypt Data First!");
return;
}
var key = new Rfc2898DeriveBytes(myPassword, salt);
// Try to decrypt, thus showing it can be round-tripped.
var algorithm = new RijndaelManaged();
algorithm.Key = key.GetBytes(16);
algorithm.IV = key.GetBytes(16);
using (var sourceStream = new MemoryStream(cipherText))
using (var destinationStream = new MemoryStream())
using (var crypto = new CryptoStream(sourceStream, algorithm.CreateDecryptor(), CryptoStreamMode.Read))
{
moveBytes(crypto, destinationStream);
var decryptedBytes = destinationStream.ToArray();
var decryptedMessage = new UnicodeEncoding().GetString(
decryptedBytes);
MessageBox.Show(decryptedMessage);
}
}
對稱加密的一大缺點是密鑰的管理與分配,換句話說,如何把密鑰發送到需要解密你的消息的人的手裡是一個問題。在發送密鑰的過程中,密鑰有很大的風險會被黑客們攔截。現實中通常的做法是將對稱加密的密鑰進行非對稱加密,然後傳送給需要它的人。
(二)非對稱加密(Asymmetric Cryptography)
1976年,美國學者Dime和Henman為解決信息公開傳送和密鑰管理問題,提出一種新的密鑰交換協議,允許在不安全的媒體上的通訊雙方交換信息,安全地達成一致的密鑰,這就是「公開密鑰系統」。相對於「對稱加密演算法」這種方法也叫做「非對稱加密演算法」。
非對稱加密為數據的加密與解密提供了一個非常安全的方法,它使用了一對密鑰,公鑰(public key)和私鑰(private key)。私鑰只能由一方安全保管,不能外泄,而公鑰則可以發給任何請求它的人。非對稱加密使用這對密鑰中的一個進行加密,而解密則需要另一個密鑰。比如,你向銀行請求公鑰,銀行將公鑰發給你,你使用公鑰對消息加密,那麼只有私鑰的持有人--銀行才能對你的消息解密。與對稱加密不同的是,銀行不需要將私鑰通過網路發送出去,因此安全性大大提高。
目前最常用的非對稱加密演算法是RSA演算法,是Rivest, Shamir, 和Adleman於1978年發明,他們那時都是在MIT。.NET中也有RSA演算法,請看下面的例子:
加密過程:
private byte[] rsaCipherText;
private void mnuAsymmetricEncryption_Click(object sender, RoutedEventArgs e)
{
var rsa = 1;
// Encrypt the data.
var cspParms = new CspParameters(rsa);
cspParms.Flags = CspProviderFlags.UseMachineKeyStore;
cspParms.KeyContainerName = "My Keys";
var algorithm = new RSACryptoServiceProvider(cspParms);
var sourceBytes = new UnicodeEncoding().GetBytes(myData);
rsaCipherText = algorithm.Encrypt(sourceBytes, true);
MessageBox.Show(String.Format("Data: {0}{1}Encrypted and Encoded: {2}",
myData, Environment.NewLine,
Convert.ToBase64String(rsaCipherText)));
}
解密過程:
private void mnuAsymmetricDecryption_Click(object sender, RoutedEventArgs e)
{
if(rsaCipherText==null)
{
MessageBox.Show("Encrypt First!");
return;
}
var rsa = 1;
// decrypt the data.
var cspParms = new CspParameters(rsa);
cspParms.Flags = CspProviderFlags.UseMachineKeyStore;
cspParms.KeyContainerName = "My Keys";
var algorithm = new RSACryptoServiceProvider(cspParms);
var unencrypted = algorithm.Decrypt(rsaCipherText, true);
MessageBox.Show(new UnicodeEncoding().GetString(unencrypted));
}
雖然非對稱加密很安全,但是和對稱加密比起來,它非常的慢,所以我們還是要用對稱加密來傳送消息,但對稱加密所使用的密鑰我們可以通過非對稱加密的方式發送出去。為了解釋這個過程,請看下面的例子:
(1) Alice需要在銀行的網站做一筆交易,她的瀏覽器首先生成了一個隨機數作為對稱密鑰。
(2) Alice的瀏覽器向銀行的網站請求公鑰。
(3) 銀行將公鑰發送給Alice。
(4) Alice的瀏覽器使用銀行的公鑰將自己的對稱密鑰加密。
(5) Alice的瀏覽器將加密後的對稱密鑰發送給銀行。
(6) 銀行使用私鑰解密得到Alice瀏覽器的對稱密鑰。
(7) Alice與銀行可以使用對稱密鑰來對溝通的內容進行加密與解密了。
(三)總結
(1) 對稱加密加密與解密使用的是同樣的密鑰,所以速度快,但由於需要將密鑰在網路傳輸,所以安全性不高。
(2) 非對稱加密使用了一對密鑰,公鑰與私鑰,所以安全性高,但加密與解密速度慢。
(3) 解決的辦法是將對稱加密的密鑰使用非對稱加密的公鑰進行加密,然後發送出去,接收方使用私鑰進行解密得到對稱加密的密鑰,然後雙方可以使用對稱加密來進行溝通。
5. 銀行數字證書是否絕對的安全,在世界上有沒有被破譯過
應該說還沒有被破譯過,因為幾率太小了,可以看做是不可能。當然,如果有人盜用了你的數字證書,銀行卡號和登陸密碼,那就沒辦法了。下面介紹一下數字證書。
1.什麼是數字證書?
數字證書就是網路通訊中標志通訊各方身份信息的一系列數據,其作用類似於現實生活中的身份證。它是由一個權威機構發行的,人們可以在交往中用它來識別對方的身份。
最簡單的證書包含一個公開密鑰、名稱以及證書授權中心的
數字簽名。一般情況下證書中還包括密鑰的有效時間,發證機關(證書授權中心)的名稱,該證書的序列號等信息,證書的格式遵循ITUT X.509國際標准。
一個標準的X.509數字證書包含以下一些內容:
證書的版本信息;
證書的序列號,每個證書都有一個唯一的證書序列號;
證書所使用的簽名演算法;
證書的發行機構名稱,命名規則一般採用X.500格式;
證書的有效期,現在通用的證書一般採用UTC時間格式,它的計時范圍為1950-2049;
證書所有人的名稱,命名規則一般採用X.500格式;
證書所有人的公開密鑰;
證書發行者對證書的簽名。
使用數字證書,通過運用對稱和非對稱密碼體制等密碼技術建立起一套嚴密的身份認證系統,從而保證:信息除發送方和接收方外不被其它人竊取;信息在傳輸過程中不被篡改;發送方能夠通過數字證書來確認接收方的身份;發送方對於自己的信息不能抵賴。
2.為什麼要使用數字證書?
由於Internet網電子商務系統技術使在網上購物的顧客能夠極其方便輕松地獲得商家和企業的信息,但同時也增加了對某些敏感或有價值的數據被濫用的風險。買方和賣方都必須保證在網際網路上進行的一切金融交易運作都是真實可靠的,並且要使顧客、商家和企業等交易各方都具有絕對的信心,因而網際網路電子商務系統必須保證具有十分可靠的安全保密技術,也就是說,必須保證網路安全的四大要素,即信息傳輸的保密性、數據交換的完整性、發送信息的不可否認性、交易者身份的確定性。
信息的保密性
交易中的商務信息均有保密的要求,如信用卡的帳號和用戶名被人知悉,就可能被盜用,訂貨和付款的信息被競爭對手獲悉,就可能喪失商機。因此在電子商務的信息傳播中一般均有加密的要求。
交易者身份的確定性
網上交易的雙方很可能素昧平生,相隔千里。要使交易成功首先要能確認對方的身份,商家要考慮客戶端是不是騙子,而客戶也會擔心網上的商店不是一個玩弄欺詐的黑店。因此能方便而可靠地確認對方身份是交易的前提。對於為顧客或用戶開展服務的銀行、信用卡公司和銷售商店,為了做到安全、保密、可靠地開展服務活動,都要進行身份認證的工作。對有關的銷售商店來說,他們對顧客所用的信用卡的號碼是不知道的,商店只能把信用卡的確認工作完全交給銀行來完成。銀行和信用卡公司可以採用各種保密與識別方法,確認顧客的身份是否合法,同時還要防止發生拒付款問題以及確認訂貨和訂貨收據信息等。
不可否認性
由於商情的千變萬化,交易一旦達成是不能被否認的。否則必然會損害一方的利益。例如訂購黃金,訂貨時金價較低,但收到訂單後,金價上漲了,如收單方能否認受到訂單的實際時間,甚至否認收到訂單的事實,則訂貨方就會蒙受損失。因此電子交易通信過程的各個環節都必須是不可否認的。
不可修改性
由於商情的千變萬化,交易一旦達成應該是不能被否認的。否則必然會損害一方的利益。例如訂購黃金,訂貨時金價較低,但收到訂單後,金價上漲了,如收單方能否認收到訂單的實際時間,甚至否認收到訂單的事實,則訂貨方就會蒙受損失。因此電子交易通信過程的各個環節都必須是不可否認的。
數字安全證書提供了一種在網上驗證身份的方式。安全證書體制主要採用了公開密鑰體制,其它還包括對稱密鑰加密、數字簽名、數字信封等技術。
我們可以使用數字證書,通過運用對稱和非對稱密碼體制等密碼技術建立起一套嚴密的身份認證系統,從而保證:信息除發送方和接收方外不被其它人竊取;信息在傳輸過程中不被篡改;發送方能夠通過數字證書來確認接收方的身份;發送方對於自己的信息不能抵賴。
3.數字認證原理
數字證書採用公鑰體制,即利用一對互相匹配的密鑰進行加密、解密。每個用戶自己設定一把特定的僅為本人所知的私有密鑰(私鑰),用它進行解密和簽名;同時設定一把公共密鑰(公鑰)並由本人公開,為一組用戶所共享,用於加密和驗證簽名。當發送一份保密文件時,發送方使用接收方的公鑰對數據加密,而接收方則使用自己的私鑰解密,這樣信息就可以安全無誤地到達目的地了。通過數字的手段保證加密過程是一個不可逆過程,即只有用私有密鑰才能解密。
在公開密鑰密碼體制中,常用的一種是RSA體制。其數學原理是將一個大數分解成兩個質數的乘積,加密和解密用的是兩個不同的密鑰。即使已知明文、密文和加密密鑰(公開密鑰),想要推導出解密密鑰(私密密鑰),在計算上是不可能的。按現在的計算機技術水平,要破解目前採用的1024位RSA密鑰,需要上千年的計算時間。公開密鑰技術解決了密鑰發布的管理問題,商戶可以公開其公開密鑰,而保留其私有密鑰。購物者可以用人人皆知的公開密鑰對發送的信息進行加密,安全地傳送以商戶,然後由商戶用自己的私有密鑰進行解密。
如果用戶需要發送加密數據,發送方需要使用接收方的數字證書(公開密鑰)對數據進行加密,而接收方則使用自己的私有密鑰進行解密,從而保證數據的安全保密性。
另外,用戶可以通過數字簽名實現數據的完整性和有效性,只需採用私有密鑰對數據進行加密處理,由於私有密鑰僅為用戶個人擁有,從而能夠簽名文件的唯一性,即保證:數據由簽名者自己簽名發送,簽名者不能否認或難以否認;數據自簽發到接收這段過程中未曾作過任何修改,簽發的文件是真實的。
[page]
4.數字證書是如何頒發的?
數字證書是由認證中心頒發的。根證書是認證中心與用戶建立信任關系的基礎。在用戶使用數字證書之前必須首先下載和安裝。
認證中心是一家能向用戶簽發數字證書以確認用戶身份的管理機構。為了防止數字憑證的偽造,認證中心的公共密鑰必須是可靠的,認證中心必須公布其公共密鑰或由更高級別的認證中心提供一個電子憑證來證明其公共密鑰的有效性,後一種方法導致了多級別認證中心的出現。
數字證書頒發過程如下:用戶產生了自己的密鑰對,並將公共密鑰及部分個人身份信息傳送給一家認證中心。認證中心在核實身份後,將執行一些必要的步驟,以確信請求確實由用戶發送而來,然後,認證中心將發給用戶一個數字證書,該證書內附了用戶和他的密鑰等信息,同時還附有對認證中心公共密鑰加以確認的數字證書。當用戶想證明其公開密鑰的合法性時,就可以提供這一數字證書。
5.加密技術
由於數據在傳輸過程中有可能遭到侵犯者的竊聽而失去保密信息,加密技術是電子商務採取的主要保密安全措施,是最常用的保密安全手段。加密技術也就是利用技術手段把重要的數據變為亂碼(加密)傳送,到達目的地後再用相同或不同的手段還原(解密)。
加密包括兩個元素:演算法和密鑰。一個加密演算法是將普通的文本(或者可以理解的信息)與一竄數字(密鑰)的結合,產生不可理解的密文的步驟。密鑰和演算法對加密同等重要。
密鑰是用來對數據進行編碼和解碼的一種演算法。在安全保密中,可通過適當的密鑰加密技術和管理機制,來保證網路的信息通訊安全。密鑰加密技術的密碼體制分為對稱密鑰體制和非對稱密鑰體制兩種。
相應地,對數據加密的技術分為兩類,即對稱加密(私人密鑰加密)和非對稱加密(公開密鑰加密)。對稱加密以數據加密標准(DNS,Data Encryption Standard)演算法為典型代表,非對稱加密通常以RSA(Rivest Shamir Ad1eman)演算法為代表。對稱加密的加密密鑰和解密密鑰相同,而非對稱加密的加密密鑰和解密密鑰不同,加密密鑰可以公開而解密密鑰需要保密。
6.對稱加密技術
對稱加密採用了對稱密碼編碼技術,它的特點是文件加密和解密使用相同的密鑰,即加密密鑰也可以用作解密密鑰。這種方法在密碼學中叫做對稱加密演算法,對稱加密演算法使用起來簡單快捷,密鑰較短,且破譯困難,除了數據加密標准(DNS),另一個對稱密鑰加密系統系統是國際數據加密演算法(IDEA),它比DNS的加密性好,而且對計算機功能要求也沒有那麼高。IDEA加密標准由PGP(Pretty Good Privacy)系統使用。
對稱加密演算法在電子商務交易過程中存在幾個問題:
(1)要求提供一條安全的渠道使通訊雙方在首次通訊時協商一個共同的密鑰。直接的面對面協商可能是不現實而且難於實施的,所以雙方可能需要藉助於郵件和電話等其它相對不夠安全的手段來進行協商;
(2)密鑰的數目難於管理。因為對於每一個合作者都需要使用不同的密鑰,很難適應開放社會中大量的信息交流;
(3)對稱加密演算法一般不能提供信息完整性的鑒別。它無法驗證發送者和接受者的身份;
(4)對稱密鑰的管理和分發工作是一件具有潛在危險的和煩瑣的過程。對稱加密是基於共同保守秘密來實現的,採用對稱加密技術的貿易雙方必須保證採用的是相同的密鑰,保證彼此密鑰的交換是安全可靠的,同時還要設定防止密鑰泄密和更改密鑰的程序。
7.非對稱加密技術
1976年,美國學者Dime和Henman為解決信息公開傳送和密鑰管理問題,提出一種新的密鑰交換協議,允許在不安全的媒體上的通訊雙方交換信息,安全地達成一致的密鑰,這就是「公開密鑰系統」。相對於「對稱加密演算法」這種方法也叫做「非對稱加密演算法」。
與對稱加密演算法不同,非對稱加密演算法需要兩個密鑰:公開密鑰(publickey)和私有密鑰(privatekey)。公開密鑰與私有密鑰是一對,如果用公開密鑰對數據進行加密,只有用對應的私有密鑰才能解密;如果用私有密鑰對數據進行加密,那麼只有用對應的公開密鑰才能解密。因為加密和解密使用的是兩個不同的密鑰,所以這種演算法叫作非對稱加密演算法。
貿易方利用該非對稱加密演算法實現機密信息交換的基本過程是:貿易方甲生成一對密鑰並將其中的一把作為公用密鑰向其他貿易方公開;得到該公用密鑰的貿易方乙使用該密鑰對機密信息進行加密後再發送給貿易方甲;貿易方甲再用自己保存的另一把專用密鑰對加密後的信息進行解密。貿易方甲只能用其專用密鑰解密由其公用密鑰加密後的任何信息。
非對稱加密演算法的保密性比較好,它消除了最終用戶交換密鑰的需要,但加密和解密花費時間長、速度慢,它不適合於對文件加密而只適用於對少量數據進行加密。
在微軟的Window NT的安全性體系結構中,公開密鑰系統主要用於對私有密鑰的加密過程。每個用戶如果想要對數據進行加密,都需要生成一對自己的密鑰對(keypair)。密鑰對中的公開密鑰和非對稱加密解密演算法是公開的,但私有密鑰則應該由密鑰的主人妥善保管。
使用公開密鑰對文件進行加密傳輸的實際過程包括四步:
(1)發送方生成一個自己的私有密鑰並用接收方的公開密鑰對自己的私有密鑰進行加密,然後通過網路傳輸到接收方;
(2)發送方對需要傳輸的文件用自己的私有密鑰進行加密,然後通過網路把加密後的文件傳輸到接收方;
(3)接收方用自己的公開密鑰進行解密後得到發送方的私有密鑰;
(4)接受方用發送方的私有密鑰對文件進行解密得到文件的明文形式。
因為只有接收方才擁有自己的公開密鑰,所以即使其他人得到了經過加密的發送方的私有密鑰,也因為無法進行解密而保證了私有密鑰的安全性,從而也保證了傳輸文件的安全性。實際上,上述在文件傳輸過程中實現了兩個加密解密過程:文件本身的加密和解密與私有密鑰的加密解密,這分別通過私有密鑰和公開密鑰來實現。
8.數字簽名技術
對文件進行加密只解決了傳送信息的保密問題,而防止他人對傳輸的文件進行破壞,以及如何確定發信人的身份還需要採取其它的手段,這一手段就是數字簽名。在電子商務安全保密系統中,數字簽名技術有著特別重要的地位,在電子商務安全服務中的源鑒別、完整性服務、不可否認服務中,都要用到數字簽名技術。在電子商務中,完善的數字簽名應具備簽字方不能抵賴、他人不能偽造、在公證人面前能夠驗證真偽的能力。
實現數字簽名有很多方法,目前數字簽名採用較多的是公鑰加密技術,如基於RSA Date Security公司的PKCS(Public Key Cryptography Standards)、Digital Signature Algorithm、x.509、PGP(Pretty Good Privacy)。1994年美國標准與技術協會公布了數字簽名標准而使公鑰加密技術廣泛應用。公鑰加密系統採用的是非對稱加密演算法。
目前的數字簽名是建立在公共密鑰體制基礎上,它是公用密鑰加密技術的另一類應用。它的主要方式是,報文的發送方從報文文本中生成一個128位的散列值(或報文摘要)。發送方用自己的私人密鑰對這個散列值進行加密來形成發送方的數字簽名。然後,這個數字簽名將作為報文的附件和報文一起發送給報文的接收方。報文的接收方首先從接收到的原始報文中計算出128位的散列值(或報文摘要),接著再用發送方的公用密鑰來對報文附加的數字簽名進行解密。如果兩個散列值相同、那麼接收方就能確認該數字簽名是發送方的。通過數字簽名能夠實現對原始報文的鑒別。
在書面文件上簽名是確認文件的一種手段,其作用有兩點:第一,因為自己的簽名難以否認,從而確認了文件已簽署這一事實;第二,因為簽名不易仿冒,從而確定了文件是真的這一事實。
數字簽名與書面文件簽名有相同之處,採用數字簽名,也能確認以下兩點:第一,信息是由簽名者發送的;第二,信息自簽發後到收到為止未曾作過任何修改。這樣數字簽名就可用來防止電子信息因易被修改而有人作偽,或冒用別人名義發送信息。或發出(收到)信件後又加以否認等情況發生。
應用廣泛的數字簽名方法主要有三種,即:RSA簽名、DSS簽名和Hash簽名。這三種演算法可單獨使用,也可綜合在一起使用。數字簽名是通過密碼演算法對數據進行加、解密變換實現的,用DES算去、RSA演算法都可實現數字簽名。但三種技術或多或少都有缺陷,或者沒有成熟的標准。
用RSA或其它公開密鑰密碼演算法的最大方便是沒有密鑰分配問題(網路越復雜、網路用戶越多,其優點越明顯)。因為公開密鑰加密使用兩個不同的密鑰,其中有一個是公開的,另一個是保密的。公開密鑰可以保存在系統目錄內、未加密的電子郵件信息中、電話黃頁(商業電話)上或公告牌里,網上的任何用戶都可獲得公開密鑰。而私有密鑰是用戶專用的,由用戶本身持有,它可以對由公開密鑰加密信息進行解密。
RSA演算法中數字簽名技術實際上是通過一個哈希函數來實現的。數字簽名的特點是它代表了文件的特徵,文件如果發生改變,數字簽名的值也將發生變化。不同的文件將得到不同的數字簽名。一個最簡單的哈希函數是把文件的二進制碼相累加,取最後的若干位。哈希函數對發送數據的雙方都是公開的。
DSS數字簽名是由美國國家標准化研究院和國家安全局共同開發的。由於它是由美國政府頒布實施的,主要用於與美國政府做生意的公司,其他公司則較少使用,它只是一個簽名系統,而且美國政府不提倡使用任何削弱政府竊聽能力的加密軟體,認為這才符合美國的國家利益。
[page]
Hash簽名是最主要的數字簽名方法,也稱之為數字摘要法(Digital Digest)或數字指紋法(Digital Finger Print)。它與RSA數字簽名是單獨的簽名不同,該數字簽名方法是將數字簽名與要發送的信息緊密聯系在一起,它更適合於電子商務活動。將一個商務合同的個體內容與簽名結合在一起,比合同和簽名分開傳遞,更增加了可信度和安全性。數字摘要(Digital Digest)加密方法亦稱安全Hash編碼法(SHA:Secure Hash Algorithm)或MD5(MD Standard For Message Digest),由RonRivest所設計。該編碼法採用單向Hash函數將需加密的明文「摘要」成一串128bit的密文,這一串密文亦稱為數字指紋(Finger Print),它有固定的長度,且不同的明文摘要必定一致。這樣這串摘要使可成為驗證明文是否是「真身」的「指紋」了。
只有加入數字簽名及驗證才能真正實現在公開網路上的安全傳輸。加入數字簽名和驗證的文件傳輸過程如下:
(1)發送方首先用哈希函數從原文得到數字簽名,然後採用公開密鑰體系用發達方的私有密鑰對數字簽名進行加密,並把加密後的數字簽名附加在要發送的原文後面;
(2)發送一方選擇一個秘密密鑰對文件進行加密,並把加密後的文件通過網路傳輸到接收方;
(3)發送方用接收方的公開密鑰對密秘密鑰進行加密,並通過網路把加密後的秘密密鑰傳輸到接收方;
(4)接受方使用自己的私有密鑰對密鑰信息進行解密,得到秘密密鑰的明文;
(5)接收方用秘密密鑰對文件進行解密,得到經過加密的數字簽名;
(6)接收方用發送方的公開密鑰對數字簽名進行解密,得到數字簽名的明文;
(7)接收方用得到的明文和哈希函數重新計算數字簽名,並與解密後的數字簽名進行對比。如果兩個數字簽名是相同的,說明文件在傳輸過程中沒有被破壞。
如果第三方冒充發送方發出了一個文件,因為接收方在對數字簽名進行解密時使用的是發送方的公開密鑰,只要第三方不知道發送方的私有密鑰,解密出來的數字簽名和經過計算的數字簽名必然是不相同的。這就提供了一個安全的確認發送方身份的方法。
安全的數字簽名使接收方可以得到保證:文件確實來自聲稱的發送方。鑒於簽名私鑰只有發送方自己保存,他人無法做一樣的數字簽名,因此他不能否認他參與了交易。
數字簽名的加密解密過程和私有密鑰的加密解密過程雖然都使用公開密鑰體系,但實現的過程正好相反,使用的密鑰對也不同。數字簽名使用的是發送方的密鑰對,發送方用自己的私有密鑰進行加密,接收方用發送方的公開密鑰進行解密。這是一個一對多的關系:任何擁有發送方公開密鑰的人都可以驗證數字簽名的正確性,而私有密鑰的加密解密則使用的是接收方的密鑰對,這是多對一的關系:任何知道接收方公開密鑰的人都可以向接收方發送加密信息,只有唯一擁有接收方私有密鑰的人才能對信息解密。在實用過程中,通常一個用戶擁有兩個密鑰對,一個密鑰對用來對數字簽名進行加密解密,一個密鑰對用來對私有密鑰進行加密解密。這種方式提供了更高的安全性。
9.數字時間戳技術
在電子商務的發展過程中,數字簽名技術也有所發展。數字時間戳技術就是數字簽名技術一種變種的應用。
在電子商務交易文件中,時間是十分重要的信息。在書面合同中,文件簽署的日期和簽名一樣均是十分重要的防止文件被偽造和篡改的關鍵性內容。數字時間戳服務(DTS:digita1 time stamp service)是網上電子商務安全服務項目之一,能提供電子文件的日期和時間信息的安全保護,由專門的機構提供。
如果在簽名時加上一個時間標記,即是有數字時間戳(digital time stamp)的數字簽名。
時間戳(time-stamp)是一個經加密後形成的憑證文檔,它包括三個部分:
(1)需加時間戳的文件的摘要(digest);
(2)DTS收到文件的日期和時間;
(3)DTS的數字簽名。
一般來說,時間戳產生的過程為:用戶首先將需要加時間戳的文件用Hash編碼加密形成摘要,然後將該摘要發送到DTS,DTS在加入了收到文件摘要的日期和時間信息後再對該文件加密(數字簽名),然後送回用戶。
書面簽署文件的時間是由簽署人自己寫上的,而數字時間戳則不然,它是由認證單位DTS來加的,以DTS收到文件的時間為依據。
10. SSL安全協議
SSL安全協議最初是由Netscape Communication公司設計開發的,又叫「安全套接層(Secure Sockets Layer)協議」,主要用於提高應用程序之間的數據的安全系數。SSL協議的整個概念可以被總結為:一個保證任何安裝了安全套接字的客戶和伺服器間事務安全的協議,它涉及所有TC/IP應用程序。
SSL安全協議主要提供三方面的服務:
用戶和伺服器的合法性認證
認證用戶和伺服器的合法性,使得它們能夠確信數據將被發送到正確的客戶機和伺服器上。客戶機和伺服器都是有各自的識別號,這些識別號由公開密鑰進行編號,為了驗證用戶是否合法,安全套接層協議要求在握手交換數據進行數字認證,以此來確保用戶的合法性。
加密數據以隱藏被傳送的數據
安全套接層協議所採用的加密技術既有對稱密鑰技術,也有公開密鑰技術。在客戶機與伺服器進行數據交換之前,交換SSL初始握手信息,在SSL握手情息中採用了各種加密技術對其加密,以保證其機密性和數據的完整性,並且用數字證書進行鑒別。這樣就可以防止非法用戶進行破譯。
護數據的完整性
安全套接層協議採用Hash函數和機密共享的方法來提供信息的完整性服務,建立客戶機與伺服器之間的安全通道,使所有經過安全套接層協議處理的業務在傳輸過程中能全部完整准確無誤地到達目的地。
要說明的是,安全套接層協議是一個保證計算機通信安全的協議,對通信對話過程進行安全保護。例如,一台客戶機與一台主機連接上了,首先是要初始化握手協議,然後就建立了一個SSL。對話進段。直到對話結束,安全套接層協議都會對整個通信過程加密,並且檢查其完整性。這樣一個對話時段算一次握手。而HTTP協議中的每一次連接就是一次握手,因此,與HTTP相比。安全套接層協議的通信效率會高一些。
(1)接通階段:客戶通過網路向服務商打招呼,服務商回應;
(2)密碼交換階段:客戶與伺服器之間交換雙方認可的密碼,一般選用RSA密碼演算法,也有的選用Diffie-Hellmanf和Fortezza-KEA密碼演算法;
(3)會談密碼階段:客戶與服務商間產生彼此交談的會談密碼;
(4)檢驗階段:檢驗服務商取得的密碼;
(5)客戶認證階段:驗證客戶的可信度;
(6)結束階段,客戶與服務商之間相互交換結束的信息。
當上述動作完成之後,兩者間的資料傳送就會加密,另外一方收到資料後,再將編碼資料還原。即使盜竊者在網路上取得編碼後的資料,如果沒有原先編制的密碼演算法,也不能獲得可讀的有用資料。
發送時信息用對稱密鑰加密,對稱密鑰用非對稱演算法加密,再把兩個包綁在一起傳送過去。
接收的過程與發送正好相反,先打開有對稱密鑰的加密包,再用對稱密鑰解密。
在電子商務交易過程中,由於有銀行參與,按照SSL協議,客戶的購買信息首先發往商家,商家再將信息轉發銀行,銀行驗證客戶信息的合法性後,通知商家付款成功,商家再通知客戶購買成功,並將商品寄送客戶。
SSL安全協議是國際上最早應用於電子商務的一種網路安全協議,至今仍然有很多網上商店使用。在傳統的郵購活動中,客戶首先尋找商品信息,然後匯款給商家,商家將商品寄給客戶。這里,商家是可以信賴的,所以客戶先付款給商家。在電子商務的開始階段,商家也是擔心客戶購買後不付款,或使用過期的信用卡,因而希望銀行給予認證。SSL安全協議正是在這種背景下產生的。
SSL協議運行的基點是商家對客戶信息保密的承諾。但在上述流程中我們也可以注意到,SSL協議有利於商家而不利於客戶。客戶的信息首先傳到商家,商家閱讀後再傳至(銀行,這樣,客戶資料的安全性便受到威脅。商家認證客戶是必要的,但整個過程中,缺少了客戶對商家的認證。在電子商務的開始階段,由於參與電子商務的公司大都是一些大公司,信譽較高,這個問題沒有引起人們的重視。隨著電子商務參與的廠商迅速增加,對廠商的認證問題越來越突出,SSL協議的缺點完全暴露出來。SSL協議將逐漸被新的電子商務協議(例如SET)所取代。
[page]
11. SET安全協議
在開放的網際網路上處理電子商務,保證買賣雙方傳輸數據的安全成為電子商務的重要的問題。為了克服SSL安全協議的缺點,滿足電子交易持續不斷地增加的安全要求,為了達到交易安全及合乎成本效益的市場要求,VISA國際組織及其它公司如Master Card、Micro Soft、IBM等共同制定了安全電子交易(SET:Secure Electronic Transactions)公告。這是一個為在線交易而設立的一個開放的、以電子貨幣為基礎的電子付款系統規范。SET在保留對客戶信用卡認證的前提下,又增加了對商家身份的認證,這對於需要支付貨幣的交易來講是至關重要的。由於設計合理,SET協議得到了許多大公司和消費者的支持,己成為全球網路的工業標准,其交易形態將成為未來「電子商務」的規范。
安全電子交易規范,為在網際網路上進行安全的電子商務提供了一個開放的標准。SET主要使用電子認證技術,其認證過程使用RS
6. 對稱加密和非對稱加密的 優缺點
密碼學中兩種常見的密碼演算法為對稱密碼演算法(單鑰密碼演算法)和非對稱密碼演算法(公鑰密碼演算法)。
對稱密碼演算法有時又叫傳統密碼演算法,就是加密密鑰能夠從解密密鑰中推算出來,反過來也成立。在大多數對稱演算法中,加密解密密鑰是相同的。這些演算法也叫秘密密鑰演算法或單密鑰演算法,它要求發送者和接收者在安全通信之前,商定一個密鑰。對稱演算法的安全性依賴於密鑰,泄漏密鑰就意味著任何人都能對消息進行加密解密。只要通信需要保密,密鑰就必須保密。對稱演算法的加密和解密表示為:
Ek(M)=C
Dk(C)=M
對稱演算法可分為兩類。一次只對明文中的單個位(有時對位元組)運算的演算法稱為序列演算法或序列密碼。另一類演算法是對明文的一組位進行運算,這些位組稱為分組,相應的演算法稱為分組演算法或分組密碼。現代計算機密碼演算法的典型分組長度為64位――這個長度大到足以防止分析破譯,但又小到足以方便作用。
這種演算法具有如下的特性:
Dk(Ek(M))=M
常用的採用對稱密碼術的加密方案有5個組成部分(如圖所示)
l)明文:原始信息。
2)加密演算法:以密鑰為參數,對明文進行多種置換和轉換的規則和步驟,變換結果為密文。
3)密鑰:加密與解密演算法的參數,直接影響對明文進行變換的結果。
4)密文:對明文進行變換的結果。
5)解密演算法:加密演算法的逆變換,以密文為輸入、密鑰為參數,變換結果為明文。
對稱密碼術的優點在於效率高(加/解密速度能達到數十兆/秒或更多),演算法簡單,系統開銷小,適合加密大量數據。
盡管對稱密碼術有一些很好的特性,但它也存在著明顯的缺陷,包括:
l)進行安全通信前需要以安全方式進行密鑰交換。這一步驟,在某種情況下是可行的,但在某些情況下會非常困難,甚至無法實現。
2)規模復雜。舉例來說,A與B兩人之間的密鑰必須不同於A和C兩人之間的密鑰,否則給B的消息的安全性就會受到威脅。在有1000個用戶的團體中,A需要保持至少999個密鑰(更確切的說是1000個,如果她需要留一個密鑰給他自己加密數據)。對於該團體中的其它用戶,此種倩況同樣存在。這樣,這個團體一共需要將近50萬個不同的密鑰!推而廣之,n個用戶的團體需要N2/2個不同的密鑰。
通過應用基於對稱密碼的中心服務結構,上述問題有所緩解。在這個體系中,團體中的任何一個用戶與中心伺服器(通常稱作密鑰分配中心)共享一個密鑰。因而,需要存儲的密鑰數量基本上和團體的人數差不多,而且中心伺服器也可以為以前互相不認識的用戶充當「介紹人」。但是,這個與安全密切相關的中心伺服器必須隨時都是在線的,因為只要伺服器一掉線,用戶間的通信將不可能進行。這就意味著中心伺服器是整個通信成敗的關鍵和受攻擊的焦點,也意味著它還是一個龐大組織通信服務的「瓶頸」
非對稱密鑰演算法是指一個加密演算法的加密密鑰和解密密鑰是不一樣的,或者說不能由其中一個密鑰推導出另一個密鑰。1、加解密時採用的密鑰的差異:從上述對對稱密鑰演算法和非對稱密鑰演算法的描述中可看出,對稱密鑰加解密使用的同一個密鑰,或者能從加密密鑰很容易推出解密密鑰;②對稱密鑰演算法具有加密處理簡單,加解密速度快,密鑰較短,發展歷史悠久等特點,非對稱密鑰演算法具有加解密速度慢的特點,密鑰尺寸大,發展歷史較短等特點。
7. 秘鑰、公鑰匙、認證之間的關系 DES、RSA、AES 數據加密傳輸
對稱加密是最快速、最簡單的一種加密方式,加密(encryption)與解密(decryption)用的是同樣的密鑰(secret key)。對稱加密有很多種演算法,由於它效率很高,所以被廣泛使用在很多加密協議的核心當中。
對稱加密通常使用的是相對較小的密鑰,一般小於256 bit。因為密鑰越大,加密越強,但加密與解密的過程越慢。如果你只用1 bit來做這個密鑰,那黑客們可以先試著用0來解密,不行的話就再用1解;但如果你的密鑰有1 MB大,黑客們可能永遠也無法破解,但加密和解密的過程要花費很長的時間。密鑰的大小既要照顧到安全性,也要照顧到效率,是一個trade-off。
對稱加密的一大缺點是密鑰的管理與分配,換句話說,如何把密鑰發送到需要解密你的消息的人的手裡是一個問題。在發送密鑰的過程中,密鑰有很大的風險會被黑客們攔截。現實中通常的做法是將對稱加密的密鑰進行非對稱加密,然後傳送給需要它的人。
常用的有:DES、AES
非對稱加密為數據的加密與解密提供了一個非常安全的方法,它使用了一對密鑰,公鑰(public key)和私鑰(private key)。私鑰只能由一方安全保管,不能外泄,而公鑰則可以發給任何請求它的人。非對稱加密使用這對密鑰中的一個進行加密,而解密則需要另一個密鑰。比如,你向銀行請求公鑰,銀行將公鑰發給你,你使用公鑰對消息加密,那麼只有私鑰的持有人--銀行才能對你的消息解密。與對稱加密不同的是,銀行不需要將私鑰通過網路發送出去,因此安全性大大提高。
常用的有:RSA
(1) 對稱加密加密與解密使用的是同樣的密鑰,所以速度快,但由於需要將密鑰在網路傳輸,所以安全性不高。
(2) 非對稱加密使用了一對密鑰,公鑰與私鑰,所以安全性高,但加密與解密速度慢。
(3) 解決的辦法是將對稱加密的密鑰使用非對稱加密的公鑰進行加密,然後發送出去,接收方使用私鑰進行解密得到對稱加密的密鑰,然後雙方可以使用對稱加密來進行溝通。
在現代密碼體制中加密和解密是採用不同的密鑰(公開密鑰),也就是非對稱密鑰密碼系統,每個通信方均需要兩個密鑰,即公鑰和私鑰,這兩把密鑰可以互為加解密。公鑰是公開的,不需要保密,而私鑰是由個人自己持有,並且必須妥善保管和注意保密。
公鑰私鑰的原則:
非對稱密鑰密碼的主要應用就是公鑰加密和公鑰認證,而公鑰加密的過程和公鑰認證的過程是不一樣的,下面我就詳細講解一下兩者的區別。
比如有兩個用戶Alice和Bob,Alice想把一段明文通過雙鑰加密的技術發送給Bob,Bob有一對公鑰和私鑰,那麼加密解密的過程如下:
上面的過程可以用下圖表示,Alice使用Bob的公鑰進行加密,Bob用自己的私鑰進行解密。
身份認證和加密就不同了,主要用戶鑒別用戶的真偽。這里我們只要能夠鑒別一個用戶的私鑰是正確的,就可以鑒別這個用戶的真偽。
還是Alice和Bob這兩個用戶,Alice想讓Bob知道自己是真實的Alice,而不是假冒的,因此Alice只要使用公鑰密碼學對文件簽名發送 給Bob,Bob使用Alice的公鑰對文件進行解密,如果可以解密成功,則證明Alice的私鑰是正確的,因而就完成了對Alice的身份鑒別。整個身 份認證的過程如下:
上面的過程可以用下圖表示,Alice使用自己的私鑰加密,Bob用Alice的公鑰進行解密。
DES是Data Encryption Standard(數據加密標准)的縮寫,DES演算法為密碼體制中的對稱密碼體制。它是由IBM公司研製的一種加密演算法,美國國家標准局於1977年公布把它作為非機要部門使用的數據加密標准,二十年來,它一直活躍在國際保密通信的舞台上,扮演了十分重要的角色。
DES是一個分組加密演算法,他以64位為分組對數據加密。同時DES也是一個對稱演算法:加密和解密用的是同一個演算法。它的密匙長度是56位(因為每個第8位都用作奇偶校驗),密匙可以是任意的56位的數,而且可以任意時候改變。其中有極少量的數被認為是弱密匙,但是很容易避開他們。所以保密性依賴於密鑰。
特點:分組比較短、密鑰太短、密碼生命周期短、運算速度較慢。 DES演算法具有極高安全性,到目前為止,除了用窮舉搜索法對DES演算法進行攻擊外,還沒有發現更有效的辦法。而56位長的密鑰的窮舉空間為256,這意味著如果一台計算機的速度是每一秒種檢測一百萬個密鑰,則它搜索完全部密鑰就需要將近2285年的時間。
DES現在已經不視為一種安全的加密演算法,因為它使用的56位秘鑰過短,以現代計算能力,24小時內即可能被破解。也有一些分析報告提出了該演算法的理論上的弱點,雖然實際情況未必出現。該標准在最近已經被 高級加密標准 (AES)所取代。
高級加密標准(Advanced Encryption Standard,AES),又稱Rijndael加密法,是美國聯邦政府採用的一種區塊加密標准。這個標准用來替代原先的 DES ,已經被多方分析且廣為全世界所使用。經過五年的甄選流程,高級加密標准由美國國家標准與技術研究院(NIST)於2001年11月26日發布於FIPS PUB 197,並在2002年5月26日成為有效的標准。2006年,高級加密標准已然成為對稱密鑰加密中最流行的演算法之一。
AES的區塊長度固定為128 位元 ,密鑰長度則可以是128,192或256位元。
RSA加密演算法是一種 非對稱加密演算法 。在 公鑰加密標准 和 電子商業 中RSA被廣泛使用。RSA是 1977年 由 羅納德·李維斯特 (Ron Rivest)、 阿迪·薩莫爾 (Adi Shamir)和 倫納德·阿德曼 (Leonard Adleman)一起提出的。當時他們三人都在 麻省理工學院 工作。RSA就是他們三人姓氏開頭字母拼在一起組成的。
RSA演算法利用兩個很大的質數相乘所產生的乘積來加密。這兩個質數無論哪一個先與原文件編碼相乘,對文件加密,均可由另一個質數再相乘來解密。但要用一個 質數來求出另一個質數,則是十分困難的。因此將這一對質數稱為密鑰對(Key Pair)。在加密應用時,某個用戶總是將一個密鑰公開,讓需發信的人員將信息用其公共密鑰加密後發給該用戶,而一旦信息加密後,只有用該用戶一個人知道 的私用密鑰才能解密。具有數字憑證身份的人員的公共密鑰可在網上查到,亦可在請對方發信息時主動將公共密鑰傳給對方,這樣保證在Internet上傳輸信 息的保密和安全。
開發中:
客戶端發送的敏感數據時需要加密處理,客戶端數據採用公鑰加密,伺服器用對應的秘鑰解密,客戶端保存公鑰,伺服器保存秘鑰
伺服器發送的數據也要加密時,伺服器端數據採用秘鑰加密,客戶端數據用對應的公鑰加密,客戶端保存公鑰,伺服器保存秘鑰
伺服器要認證客戶端時,客戶端數據採用秘鑰加密,伺服器用對應的公鑰解密,客戶端保留秘鑰,伺服器保留公鑰
常用加解密方案:
如果想要更加安全一點,可以在仿照微信的通信,每次都在傳輸數據上加上一個32為隨機數和並將數據按照一定的規則生成一個校驗sign
8. 銀行卡的密碼為什麼是六位數被破譯的幾率太大ma
銀行卡我們都會用,但是有沒有人想過,為什麼密碼只用六位,而且全用數字呢?如果被別人破譯了怎麼辦?要明白其中的道理,首先我們來看一個法則,即「7±2法則」,它是由美國認知心理學家喬治·A·米,於1956年發表在《心理學評論》上的一篇重要論文。該論文指出,年輕人的記憶廣度大約為7個單位(阿拉伯數字、字母、單詞或其他單位,稱為組塊),也就是說,如果達到7個及以上大部分人就很難對其短時記憶(如果是年齡稍大的就很難說了),因此從記憶力上來說6位是最符合短時記憶的。
最後說明一下,不管安全措施如何完善,懂得安全知識才是最安全的,為此,給出以下建議。為了確保您的資金安全,建議您在日常生活和使用各類網路服務過程中,都要注意以下情況,謹防被別有用心的詐騙分子利用:
1)、預留的手機號碼是核實您身份的重要工具。切勿將在銀行辦理業務時預留的手機號碼設成他人的手機號碼;
2)、切勿輕易將自己的Key盾、Key令交給他人使用,也不要將Key令的動態口令、銀行發送的簡訊動態驗證碼透露給他人;
3)、切勿輕易向他人透露自己的身份信息和銀行信息:包括銀行賬號、證件號碼、網銀/手機銀行登錄名、綁定銀行卡或網銀的手機號碼、銀行卡背後的三位數字、信用卡有效期等;
4)、切勿輕易向他人透露自己的各類密碼,包括銀行卡密碼、存摺密碼、網銀密碼、手機銀行密碼等;
5)、如果有人通過電話、通訊軟體服務(例如QQ、微信、旺旺、微博私信、論壇簡訊等)向您索要上述信息或安全認證工具,或將他人手機號碼設置為您在銀行辦理業務時綁定的手機號碼,請務必慎防詐騙,需妥善保管好個人資料,嚴防泄露;
6)、如遇到有人通過電話、通訊軟體服務向您推薦所謂「內部關系辦理信用卡」、「內部關系辦理貸款」或各種優惠條件特別誘惑的業務等不正常的銀行服務,請不要辦理。如需辦理信用卡、貸款等銀行業務,請移步到銀行網點或聯系客服熱線咨詢辦理;
7)、如有人通過電話或其他方式要求您將錢轉到或存入陌生來電指定的賬戶,需提高警惕,可能是詐騙圈套。
9. 什麼是比特幣
比特幣(BitCoin)是一種P2P形式的數字貨幣,最初由中本聰在2009年提出概念、設計思路、完成開源軟體的發布,並建構了相應的P2P網路,其點對點的傳輸意味著它是一個去中心化的支付系統。 比特幣經濟使用整個P2P網路中眾多節點構成的分布式資料庫來確認並記錄所有的交易行為,並使用密碼學的設計來確保貨幣流通各個環節安全性。該貨幣系統曾在4年內只有不超過1050萬個,之後的總數量將被永久限制在2100萬個。 比特幣可以用來兌現大多數國家的貨幣,可以用來購買虛擬物品,也可以購買現實物品。[1][2]2010年,1枚比特幣價值0.25美分。2014年2月26日,喬·曼欽(Joe Manchin)要求美國聯邦政府全面封殺比特幣。2017年1月24日中午12:00起,中國三大比特幣平台正式開始收取交易費,2017年底,比特幣價格突破2萬美元。[3][4]2018年11月21日,比特幣報價跌破4100美元,創下了13個月以來的新低。
10. 請提供關於密鑰和公鑰的相關知識
公鑰基礎設施PKI
作者:xxx123123 文章來源:本站原創 點擊數:29 更新時間:2005-8-29
一、 PKI概述
企業生意成功與否在很大程度上取決於該企業是否擁有一個安全可靠的網路系統。目前大多數企業的IT管理人員都為其企業的網路系統採取了某種形式的加密和認證方案。許多企業的網路管理人員正在利用Web向企業提供安全的Internet商務、虛擬專用網路(VPN)以及遠程認證服務,以使其遠地雇員擁有對企業網路的存取能力。然而,當前的大多數安全技術(例如用戶名和口令、一次性口令以及雙向鑒別)並不適合企業的安全需求,而且這些傳統的技術通常需要互不相同的維護與管理措施。
目前,越來越多的企業需要利用網路與其分布在世界各地的分支機構及遠地雇員相連,因此它們需要採取最有效的安全手段以保護企業資源。然而安全防範措施的加強同時也引發了更多額外的管理工作。值得慶幸的是,公共密鑰基礎設施(PKI)可幫助企業解決這一難題,它可幫助企業建立一個安全可靠的網路管理系統。PKI是一種易於管理的、集中化的網路安全方案。它可支持多種形式的數字認證: 數據加密、數字簽字、不可否認、身份鑒別、密鑰管理以及交叉認證等。PKI可通過一個基於認證的框架處理所有的數據加密和數字簽字工作。PKI標准與協議的開發迄今已有15年的歷史,目前的PKI已完全可以向企業網路提供有效的安全保障。
在運行機理上,有近50種有關PKI的標准在過去的15年中得以統一,供應商們的不懈努力較好地解決了其後端資料庫的互操作能力。一個PKI由眾多部件組成,這些部件共同完成兩個主要功能:為數據加密和創建數字認證。伺服器(即後端)產品是這一系統的核心,這些資料庫管理著數字認證、公共密鑰及專用密鑰(分別用於數據的加密和解密)。CA(Certificate Authority,認證權威)資料庫負責發布、廢除和修改X.509數字認證信息,它裝有用戶的公共密鑰、證書有效期以及認證功能(例如對數據的加密或對數字簽字的驗證)。為了防止對數據簽字的篡改,CA在把每一數字簽字發送給發出請求的客戶機之前,需對每一個數字簽字進行認證。一旦數字認證得以創建,它將會被自動存儲於X.500目錄中,X.500目錄為樹形結構。LDAP(Lightweight Directory Access Protocol)協議將響應那些要求提交所存儲的公共密鑰認證的請求。CA為每一用戶或伺服器生成兩對獨立的公共和專用密鑰。其中一對用於信息的加密和解密, 另一對由客戶機應用程序使用,用於文檔或信息傳輸中數字簽字的創建。
大多數PKI均支持證書分布,這是一個把已發布過的或續延生命期的證書加以存儲的過程。這一過程使用了一個公共查詢機制,X.500目錄可自動完成這一存儲過程。影響企業普遍接受PKI的一大障礙是不同CA之間的交叉認證。假設有兩家公司,每一家企業分別使用來自不同供應商的CA,現在它們希望相互託管一段時間。如果其後援資料庫支持交叉認證,則這兩家企業顯然可以互相託管它們的CA,因而它們所託管的所有用戶均可由兩家企業的CA所託管。
二、 PKI體系的基本組成
PKI是一種遵循標準的密鑰管理平台,它能夠為所有網路應用透明地提供採用加密和數字簽名等密碼服務所必需的密鑰和證書管理。PKI必須具有認證機關( CA)、證書庫、密鑰備份及恢復系統、證書作廢處理系統、客戶端證書處理系統等基本成分,構建PKI也將圍繞著這五大系統來構建。
* 認證機關
CA是證書的簽發機構,它是PKI的核心。眾所周知,構建密碼服務系統的核心內容是如何實現密鑰管理,公鑰體制涉及到一對密鑰,即私鑰和公鑰, 私鑰只由持有者秘密掌握,無須在網上傳送,而公鑰是公開的,需要在網上傳送,故公鑰體制的密鑰管理主要是公鑰的管理問題,目前較好的解決方案是引進證書(certificate)機制。
證書是公開密鑰體制的一種密鑰管理媒介。它是一種權威性的電子文檔,形同網路計算環境中的一種身份證,用於證明某一主體(如人、伺服器等)的身份以及其公開密鑰的合法性。在使用公鑰體制的網路環境中, 必須向公鑰的使用者證明公鑰的真實合法性。因此,在公鑰體制環境中,必須有一個可信的機構來對任何一個主體的公鑰進行公證,證明主體的身份以及他與公鑰的匹配關系。CA正是這樣的機構,它的職責歸納起來有:
1、驗證並標識證書申請者的身份;
2、確保CA用於簽名證書的非對稱密鑰的質量;
3、確保整個簽證過程的安全性,確保簽名私鑰的安全性;
4、證書材料信息(包括公鑰證書序列號、CA標識等)的管理;
5、確定並檢查證書的有效期限;
6、確保證書主體標識的唯一性,防止重名;
7、發布並維護作廢證書表;
8、對整個證書簽發過程做日誌記錄;
9、向申請人發通知。
其中最為重要的是CA自己的一對密鑰的管理,它必須確保其高度的機密性,防止他方偽造證書。CA的公鑰在網上公開,整個網路系統必須保證完整性。
* 證書庫
證書庫是證書的集中存放地,它與網上"白頁」類似,是網上的一種公共信息庫,用戶可以從此處獲得其他用戶的證書和公鑰。
構造證書庫的最佳方法是採用支持LDAP協議的目錄系統,用戶或相關的應用通過LDAP來訪問證書庫。系統必須確保證書庫的完整性,防止偽造、篡改證書。
* 密鑰備份及恢復系統
如果用戶丟失了用於解密數據的密鑰,則密文數據將無法被解密,造成數據丟失。為避免這種情況的出現,PKI應該提供備份與恢復解密密鑰的機制。密鑰的備份與恢復應該由可信的機構來完成,例如CA可以充當這一角色。值得強調的是,密鑰備份與恢復只能針對脫密密鑰,簽名私鑰不能夠作備份。
* 證書作廢處理系統
證書作廢處理系統是PKI的一個重要組件。同日常生活中的各種證件一樣,證書在CA為其簽署的有效期以內也可能需要作廢,例如,A公司的職員a辭職離開公司,這就需要終止a證書的生命期。為實現這一,PKI必須提供作廢證書的一系列機制。作廢證書有如下三種策略:
1、作廢一個或多個主體的證書;
2、作廢由某一對密鑰簽發的所有證書;
3、作廢由某CA簽發的所有證書。
作廢證書一般通過將證書列入作廢證書表(CRL)來完成。通常,系統中由CA負責創建並維護一張及時更新的CRL,而由用戶在驗證證書時負責檢查該證書是否在CRL之列。CRL一般存放在目錄系統中。證書的作廢處理必須在安全及可驗證的情況下進行,系統還必須保證CRL的完整性。
* PKI應用介面系統
PKI的價值在於使用戶能夠方便地使用加密、數字簽名等安全服務,因此一個完整的PKI必須提供良好的應用介面系統,使得各種各樣的應用能夠以安全、一致、可信的方式與PKI交互,確保所建立起來的網路環境的可信性,同時降低管理維護成本。最後,PKI應用介面系統應該是跨平台的。
三、 PKI的功能 歸納起來,PKI應該為應用提供如下的安全支持 :
* 證書與CA,PKI應實現CA以及證書庫、CRL等基本的證書管理功能。
* 密鑰備份及恢復證書。
* 密鑰對的自動更換證書、密鑰都有一定的生命期限。當用戶的私鑰泄露時,必須更換密鑰對;另外,隨著計算機速度日益提高,密鑰長度也必須相應地長。因此,PKI應該提供完全自動(無須用戶干預)的密鑰更換以及新的分發工作。
* 交叉驗證
每個CA只可能覆蓋一定的作用范圍,即CA的域,例如,不同的企業往往有各自的CA,它們頒發的證書都只在企業范圍內有效。當隸屬於不同CA的用戶需要交換信息時,就需要引入交叉證書和交叉驗證,這也是PKI必須完成的工作。
* 加密密鑰和簽名密鑰的分隔
如前所述,加密和簽名密鑰的密鑰管理需求是相互抵觸的,因此PKI應該支持加密和簽名密鑰的分隔使用。
* 支持對數字簽名的不可抵賴
任何類型的電子商務都離不開數字簽名,因此PKI必須支持數字簽名的不可抵賴性,而數字簽名的不可抵賴性依賴於簽名私鑰的唯一性和機密性,為確保這一點,PKI必須保證簽名密鑰與加密密鑰的分隔使用。
* 密鑰歷史的管理
每次更新加密密鑰後,相應的解密密鑰都應該存檔,以便將來恢復用舊密鑰加密的數據。每次更新簽名密鑰後,舊的簽名私鑰應該妥善銷毀,防止破壞其唯一性;相應的舊驗證公鑰應該進行存檔,以便將來用於驗證舊的簽名。這些工作都應該是PKI自動完成的。
四、 PKI體系的發展前景
如上所述,PKI對企業生意的成功與否至關重要,它可使企業擁有一個公共的安全基礎結構——一個所有安全的應用賴以存在的基礎結構。企業中的許多安全電子郵件、Internet商務應用、VPN以及單簽字功能的安全都將依賴於X.509的認證。PKI對數據加密、數字簽字、反否認、數字完整性以及甄別所需的密鑰和認證實施了統一的集中化管理。
每一企業均可受益於PKI結構化的管理方案。然而令人遺憾的是,迄今為止,僅有少數行業(包括銀行業、金融、健康保險)採用了這一系統。一些敢於嘗試新生事物的企業, 例如Automotive Network Exchange(由美國幾家最大的汽車製造商組成)已開始受益於這一安全技術。
預計,當企業的生意變得更依賴於Web時,為了確保它們對客戶信息的安全處理,更多的企業將會不斷轉向PKI。然而,迄今為止,採用PKI的企業仍寥寥無幾。PKI本身存在的問題是限制用戶廣泛採用它的主要原因。統一標準的缺乏,將許多美國企業拒之於PKI方案的大門之外。事實上,對於開發PKI產品來說,目前已有相當成熟的標准可依。缺乏良好的互操作性,也是PKI廣泛被採用的主要障礙之一。在PKI供應商能夠支持所有標准之前,許多企業需要使用其客戶機上的專利工具包,這也會在很大程度上限制PKI的迅速流行。
然而,限制PKI被廣泛採用的最主要的障礙依然是其設計與實現上的復雜性。但據預計,隨著PKI供應商的逐步統一與合並,實現PKI的過程將會變得越來越簡單。如果復雜的實現令你望而卻步, 則可以把企業的系統外包給某個第三方供應商。
許多權威的認證方案供應商(例如VeriSign、Thawte以及GTE)目前都在提供外包的PKI。外包PKI最大的問題是,用戶必須把企業託管給某一服務提供商, 即讓出對網路安全的控制權。如果不願這樣做,則可建造一個專用的PKI。專用方案通常需把來自Entrust、Baltimore Technologies以及Xcert的多種伺服器產品與來自主流應用程序供應商(如Microsoft、Netscape以及Qualcomm)的產品組合在一起。專用PKI還要求企業在准備其基礎設施的過程中投入大量的財力與物力。
對那些高風險行業(如銀行、金融及保險)來說,今後10年,PKI對它們長期的安全需求將至關重要。隨著PKI技術的廣泛流行,PKI的實現將會更趨簡單, 成本也會逐步降低。由於PKI僅於最近才開始變成一種可行的安全方案,因此這一技術仍有待進一步完善。如果你的企業不能等待這一技術的成熟,那麼現在就採用它,因為其目前的功能已足可以滿足一般企業的大多數安全需求。