㈠ 分組密碼加密模式選擇有哪些
分組密碼工作模式的應用背景:多次使用相同的密鑰對多個分組加密,會引發許多安全問題。為了應對不同場合,因而需要開發出不同的工作模式來增強密碼演算法的安全性。ECB特別適合數據較少的情況,對於很長的信息或者具有特定結構的信息,其大量重復的信息或固定的字元開頭將給密碼分析者提供大量的已知明密文對。若明文不是完整的分組,ECB需要進行填充。CBC(Cipher Block Chaining)由於加密演算法的每次輸入和本明文組沒有固定的關系,因此就算有重復的明文組,加密後也看不出來了。為了配合演算法的需要,有一個初始向量(IV)。與ECB一樣有填充機制以保證完整的分組。CFB(Cipher Feedback)和OFB,CTR模式一樣,均可將分組密碼當做流密碼(實際是將分組大小任意縮減)使用。
㈡ 求簡單的對稱加密演算法!!!!!!!!
其實很簡單,所謂解密就是逆過程,你將加密演算法的結果設置為x,然後用你加密的公式求解,得到的計算公式就是解密演算法,看你用的演算法,你可以參考「仿射加密演算法」就行了
㈢ 什麼是加密技術
1.什麼是加密技術?
加密技術是電子商務採取的主要安全保密措施,是最常用的安全保密手段,利用技術手段把重要的數據變為亂碼(加密)傳送,到達目的地後再用相同或不同的手段還原(解密)。加密技術包括兩個元素:演算法和密鑰。演算法是將普通的文本(或者可以理解的信息)與一竄數字(密鑰)的結合,產生不可理解的密文的步驟,密鑰是用來對數據進行編碼和解碼的一種演算法。在安全保密中,可通過適當的密鑰加密技術和管理機制來保證網路的信息通訊安全。密鑰加密技術的密碼體制分為對稱密鑰體制和非對稱密鑰體制兩種。相應地,對數據加密的技術分為兩類,即對稱加密(私人密鑰加密)和非對稱加密(公開密鑰加密)。對稱加密以數據加密標准(DNS,Data Encryption Standard)演算法為典型代表,非對稱加密通常以RSA(Rivest Shamir Ad1eman)演算法為代表。對稱加密的加密密鑰和解密密鑰相同,而非對稱加密的加密密鑰和解密密鑰不同,加密密鑰可以公開而解密密鑰需要保密。
2.什麼是對稱加密技術?
對稱加密採用了對稱密碼編碼技術,它的特點是文件加密和解密使用相同的密鑰,即加密密鑰也可以用作解密密鑰,這種方法在密碼學中叫做對稱加密演算法,對稱加密演算法使用起來簡單快捷,密鑰較短,且破譯困難,除了數據加密標准(DNS),另一個對稱密鑰加密系統是國際數據加密演算法(IDEA),它比DNS的加密性好,而且對計算機功能要求也沒有那麼高。IDEA加密標准由PGP(Pretty Good Privacy)系統使用。
3.什麼是非對稱加密技術?
1976年,美國學者Dime和Henman為解決信息公開傳送和密鑰管理問題,提出一種新的密鑰交換協議,允許在不安全的媒體上的通訊雙方交換信息,安全地達成一致的密鑰,這就是「公開密鑰系統」。相對於「對稱加密演算法」這種方法也叫做「非對稱加密演算法」。與對稱加密演算法不同,非對稱加密演算法需要兩個密鑰:公開密鑰(publickey)和私有密 (privatekey)。公開密鑰與私有密鑰是一對,如果用公開密鑰對數據進行加密,只有用對應的私有密鑰才能解密;如果用私有密鑰對數據進行加密,那麼只有用對應的公開密鑰才能解密。因為加密和解密使用的是兩個不同的密鑰,所以這種演算法叫作非對稱加密演算法。
㈣ 十大常見密碼加密方式
一、密鑰散列
採用MD5或者SHA1等散列演算法,對明文進行加密。嚴格來說,MD5不算一種加密演算法,而是一種摘要演算法。無論多長的輸入,MD5都會輸出一個128位(16位元組)的散列值。而SHA1也是流行的消息摘要演算法,它可以生成一個被稱為消息摘要的160位(20位元組)散列值。MD5相對SHA1來說,安全性較低,但是速度快;SHA1和MD5相比安全性高,但是速度慢。
二、對稱加密
採用單鑰密碼系統的加密方法,同一個密鑰可以同時用作信息的加密和解密,這種加密方法稱為對稱加密。對稱加密演算法中常用的演算法有:DES、3DES、TDEA、Blowfish、RC2、RC4、RC5、IDEA、SKIPJACK等。
三、非對稱加密
非對稱加密演算法是一種密鑰的保密方法,它需要兩個密鑰來進行加密和解密,這兩個密鑰是公開密鑰和私有密鑰。公鑰與私鑰是一對,如果用公鑰對數據進行加密,只有用對應的私鑰才能解密。非對稱加密演算法有:RSA、Elgamal、背包演算法、Rabin、D-H、ECC(橢圓曲線加密演算法)。
四、數字簽名
數字簽名(又稱公鑰數字簽名)是只有信息的發送者才能產生的別人無法偽造的一段數字串,這段數字串同時也是對信息的發送者發送信息真實性的一個有效證明。它是一種類似寫在紙上的普通的物理簽名,但是在使用了公鑰加密領域的技術來實現的,用於鑒別數字信息的方法。
五、直接明文保存
早期很多這樣的做法,比如用戶設置的密碼是「123」,直接就將「123」保存到資料庫中,這種是最簡單的保存方式,也是最不安全的方式。但實際上不少互聯網公司,都可能採取的是這種方式。
六、使用MD5、SHA1等單向HASH演算法保護密碼
使用這些演算法後,無法通過計算還原出原始密碼,而且實現比較簡單,因此很多互聯網公司都採用這種方式保存用戶密碼,曾經這種方式也是比較安全的方式,但隨著彩虹表技術的興起,可以建立彩虹表進行查表破解,目前這種方式已經很不安全了。
七、特殊的單向HASH演算法
由於單向HASH演算法在保護密碼方面不再安全,於是有些公司在單向HASH演算法基礎上進行了加鹽、多次HASH等擴展,這些方式可以在一定程度上增加破解難度,對於加了「固定鹽」的HASH演算法,需要保護「鹽」不能泄露,這就會遇到「保護對稱密鑰」一樣的問題,一旦「鹽」泄露,根據「鹽」重新建立彩虹表可以進行破解,對於多次HASH,也只是增加了破解的時間,並沒有本質上的提升。
八、PBKDF2
該演算法原理大致相當於在HASH演算法基礎上增加隨機鹽,並進行多次HASH運算,隨機鹽使得彩虹表的建表難度大幅增加,而多次HASH也使得建表和破解的難度都大幅增加。
九、BCrypt
BCrypt 在1999年就產生了,並且在對抗 GPU/ASIC 方面要優於 PBKDF2,但是我還是不建議你在新系統中使用它,因為它在離線破解的威脅模型分析中表現並不突出。
十、SCrypt
SCrypt 在如今是一個更好的選擇:比 BCrypt設計得更好(尤其是關於內存方面)並且已經在該領域工作了 10 年。另一方面,它也被用於許多加密貨幣,並且我們有一些硬體(包括 FPGA 和 ASIC)能實現它。 盡管它們專門用於采礦,也可以將其重新用於破解。
㈤ 如何用VB實現RSA加密演算法,網上找到了一份代碼,沒有注釋看不懂,請大神解釋!!!
RSA演算法非常簡單,概述如下:
找兩素數p和q
取n=p*q
取t=(p-1)*(q-1)
取任何一個數e,要求滿足e<t並且e與t互素(就是最大公因數為1)
取d*e%t==1
這樣最終得到三個數: n d e
設消息為數M (M <n)
設c=(M**d)%n就得到了加密後的消息c
設m=(c**e)%n則 m == M,從而完成對c的解密。
註:**表示次方,上面兩式中的d和e可以互換。
在對稱加密中:
n d兩個數構成公鑰,可以告訴別人;
n e兩個數構成私鑰,e自己保留,不讓任何人知道。
給別人發送的信息使用e加密,只要別人能用d解開就證明信息是由你發送的,構成了簽名機制。
別人給你發送信息時使用d加密,這樣只有擁有e的你能夠對其解密。
rsa的安全性在於對於一個大數n,沒有有效的方法能夠將其分解
從而在已知n d的情況下無法獲得e;同樣在已知n e的情況下無法
求得d。
<二>實踐
接下來我們來一個實踐,看看實際的操作:
找兩個素數:
p=47
q=59
這樣
n=p*q=2773
t=(p-1)*(q-1)=2668
取e=63,滿足e<t並且e和t互素
用perl簡單窮舉可以獲得滿主 e*d%t ==1的數d:
C:\Temp>perl -e "foreach $i (1..9999){ print($i),last if $i*63%2668==1 }"
847
即d=847
最終我們獲得關鍵的
n=2773
d=847
e=63
取消息M=244我們看看
加密:
c=M**d%n = 244**847%2773
用perl的大數計算來算一下:
C:\Temp>perl -Mbigint -e "print 244**847%2773"
465
即用d對M加密後獲得加密信息c=465
解密:
我們可以用e來對加密後的c進行解密,還原M:
m=c**e%n=465**63%2773 :
C:\Temp>perl -Mbigint -e "print 465**63%2773"
244
即用e對c解密後獲得m=244 , 該值和原始信息M相等。
<三>字元串加密
把上面的過程集成一下我們就能實現一個對字元串加密解密的示例了。
每次取字元串中的一個字元的ascii值作為M進行計算,其輸出為加密後16進制
的數的字元串形式,按3位元組表示,如01F
代碼如下:
#!/usr/bin/perl -w
#RSA 計算過程學習程序編寫的測試程序
#watercloud 2003-8-12
#
use strict;
use Math::BigInt;
my %RSA_CORE = (n=>2773,e=>63,d=>847); #p=47,q=59
my $N=new Math::BigInt($RSA_CORE{n});
my $E=new Math::BigInt($RSA_CORE{e});
my $D=new Math::BigInt($RSA_CORE{d});
print "N=$N D=$D E=$E\n";
sub RSA_ENCRYPT
{
my $r_mess = shift @_;
my ($c,$i,$M,$C,$cmess);
for($i=0;$i < length($$r_mess);$i++)
{
$c=ord(substr($$r_mess,$i,1));
$M=Math::BigInt->new($c);
$C=$M->(); $C->bmodpow($D,$N);
$c=sprintf "%03X",$C;
$cmess.=$c;
}
return \$cmess;
}
sub RSA_DECRYPT
{
my $r_mess = shift @_;
my ($c,$i,$M,$C,$dmess);
for($i=0;$i < length($$r_mess);$i+=3)
{
$c=substr($$r_mess,$i,3);
$c=hex($c);
$M=Math::BigInt->new($c);
$C=$M->(); $C->bmodpow($E,$N);
$c=chr($C);
$dmess.=$c;
}
return \$dmess;
}
my $mess="RSA 娃哈哈哈~~~";
$mess=$ARGV[0] if @ARGV >= 1;
print "原始串:",$mess,"\n";
my $r_cmess = RSA_ENCRYPT(\$mess);
print "加密串:",$$r_cmess,"\n";
my $r_dmess = RSA_DECRYPT($r_cmess);
print "解密串:",$$r_dmess,"\n";
#EOF
測試一下:
C:\Temp>perl rsa-test.pl
N=2773 D=847 E=63
原始串:RSA 娃哈哈哈~~~
加密串:
解密串:RSA 娃哈哈哈~~~
C:\Temp>perl rsa-test.pl 安全焦點(xfocus)
N=2773 D=847 E=63
原始串:安全焦點(xfocus)
加密串:
解密串:安全焦點(xfocus)
㈥ 基於對稱密鑰的認證協議的安全性靠什麼來保證
為了保證企業信息的安全性,企業CIMS網至少應該採取以下幾項安全措施: (1)數據加密/解密 數據加密的目的是為了隱蔽和保護具有一定密級的信息,既可以用於信息存儲,也可以用於信息傳輸,使其不被非授權方識別。數據解密則是指將被加密的信息還原。通常,用於信息加密和解密的參數,分別稱之為加密密鑰和解密密鑰。對信息進行加密/解密有兩種體制,一種是單密鑰體制或對稱加密體制(如DES),另一種是雙密鑰體制或不對稱加密體制(如RSA)。在單密鑰體制中,加密密鑰和解密密鑰相同。系統的保密性主要取決於密鑰的安全性。雙密鑰體制又稱為公開密鑰體制,採用雙密鑰體制的每個用戶都有一對選定的密鑰,一個是公開的(可由所有人獲取),另一個是秘密的(僅由密鑰的擁有者知道)。公開密鑰體制的主要特點是將加密和解密能力分開,因而可以實現多個用戶加密的信息只能由一個用戶解讀,或者實現一個用戶加密的消息可以由多個用戶解讀。數據加密/解密技術是所有安全技術的基礎。 (2)數字簽名 數字簽名機制提供了一種鑒別方法,以解決偽造、抵賴、冒充等問題。它與手寫簽名不同,手寫簽名反映某個人的個性特徵是不變的;而數字簽名則隨被簽的對象而變化,數字簽名與被簽對象是不可分割的。數字簽名一般採用不對稱加密技術(如RSA): 通過對被簽對象(稱為明文)進行某種變換(如文摘),得到一個值,發送者使用自己的秘密密鑰對該值進行加密運算,形成簽名並附在明文之後傳遞給接收者;接收者使用發送者的公開密鑰對簽名進行解密運算,同時對明文實施相同的變換,如其值和解密結果一致,則簽名有效,證明本文確實由對應的發送者發送。當然,簽名也可以採用其它的方式,用於證實接收者確實收到了某份報文。 (3)身份認證 身份認證也稱身份鑒別,其目的是鑒別通信夥伴的身份,或者在對方聲稱自己的身份之後,能夠進行驗證。身份認證通常需要加密技術、密鑰管理技術、數字簽名技術,以及可信機構(鑒別服務站)的支持。可以支持身份認證的協議很多,如Needham-schroedar鑒別協議、X.509鑒別協議、Kerberos鑒別協議等。實施身份認證的基本思路是直接採用不對稱加密體制,由稱為鑒別服務站的可信機構負責用戶的密鑰分配和管理,通信夥伴通過聲明各自擁有的秘密密鑰來證明自己的身份。 (4)訪問控制 訪問控制的目的是保證網路資源不被未授權地訪問和使用。資源訪問控制通常採用網路資源矩陣來定義用戶對資源的訪問許可權;對於信息資源,還可以直接利用各種系統(如資料庫管理系統)內在的訪問控制能力,為不同的用戶定義不同的訪問許可權,有利於信息的有序控制。同樣,設備的使用也屬於訪問控制的范疇,網路中心,尤其是主機房應當加強管理,嚴禁外人進入。對於跨網的訪問控制,簽證(Visas)和防火牆是企業CIMS網路建設中可選擇的較好技術。 (5)防病毒系統 計算機病毒通常是一段程序或一組指令,其目的是要破壞用戶的計算機系統。因此,企業CIMS網必須加強防病毒措施,如安裝防病毒卡、駐留防毒軟體和定期清毒等,以避免不必要的損失。需要指出的是,病毒軟體也在不斷地升級,因此應當注意防毒/殺毒軟體的更新換代。 (6)加強人員管理 要保證企業CIMS網路的安全性,除了技術上的措施外,人的因素也很重要,因為人是各種安全技術的實施者。在CIMS網中,不管所採用的安全技術多麼先進,如果人為的泄密或破壞,那麼再先進的安全技術也是徒勞的。因此,在一個CIMS企業中,必須制定安全規則,加強人員管理,避免權力過度集中。這樣,才能確保CIMS網的安全。
㈦ 通過工行手機銀行轉賬,遇到「96300170,客戶密碼加密異常」,怎麼解決
通過手機銀行轉賬時,如遇「96300170,客戶密碼加密異常」提示,是由於電子密碼器出現異常,請到櫃台更換密碼器。
㈧ 對稱加密與非對稱加密的技術有什麼區別
對稱加密與非對稱加密
對稱加密,或專用密鑰(也稱做常規加密)由通信雙方共享一個秘密密鑰。
發送方在進行數學運算時使用密鑰將明文加密成密文。接受方使用相同的密
鑰將密文還原成明文。RSA
RC4演算法,數據加密標准(DES),國際數據加密
演算法(IDEA)以及Skipjack加密技術都屬於對稱加密方式。
非對稱加密,當發送信息時,
發送方使用接收方的公鑰對數據加密,而接收方則使用自己的私鑰解密,
這樣,信息就可以安全無誤地到達目的地了,即使被第三方截獲,由於沒有相應的私鑰,
也無法進行解密。通過數字的手段保證加密過程是一個不可逆過程,即只有用私有密鑰才能解密。
公用密鑰加密技術允許對信息進行數字簽名。數字簽名使用發送發送一方的
專用密鑰對所發送信息的某一部分進行加密。接受方收到該信息後,使用發
送方的公用密鑰解密數字簽名,驗證發送方身份。在對稱加密(或叫單密鑰
加密)中,只有一個密鑰用來加密和解密信息。盡管單密鑰加密是一個簡單
的過程,但是雙方都必須完全的相信對方,並都持有這個密鑰的備份。但要
達到這種信任的級別並不是想像中的那麼簡單。當雙方試圖建立信任關系時
可能一個安全破壞已經發生了。首先密鑰的傳輸就是一個重要問題,如果它
被截取,那麼這個密鑰以及相關的重要信息就沒有什麼安全可言了。非對稱
加密在加密的過程中使用一對密鑰,而不像對稱加密只使用一個單獨的密鑰
。一對密鑰中一個用於加密,另一個用來解密。重要的概念是在這對密鑰中一個密鑰用來公用
,另一個作為私有的密鑰;用來向外公布的叫做公鑰,另一半需要安全保護
的是私鑰。非對稱加密的一個缺點就是加密的速度非常慢,因為需要強烈的
數學運算程序。如果一個用戶需要使用非對稱加密,那麼即使比較少量的信
息可以也要花上幾個小時的時間。
非對稱加密的另一個名稱叫公鑰加密
。盡管私鑰和公鑰都有與數學相關的,但從公鑰中確定私鑰的值是非常困難
的並且也是非常耗時的。在互聯網上通信,非對稱加密的密鑰管理是容易的
因為公鑰可以任易的傳播,私鑰必須在用戶手中小心保護。
㈨ 最著名的對稱密碼是什麼
對稱加密系統
隨著大型企業管理軟體的發展,其應用越來越廣泛,企業數據平台涉及區域網、廣域網、Internet等,在各類系統中保存的企業關鍵數據量也越來越大,許多數據需要保存數十年以上,甚至是永久性保存。於是關鍵業務數據成了企業生存的命脈和寶貴的資源,數據安全性問題越來越突出。如何增強企業軟體系統的安全性、保密性、真實性、完整性,成為每一位軟體開發人員關注的焦點。
為了解決關鍵業務的數據安全問題,首先對數據系統進行全面、可靠、安全和多層次的備份是必不可少的,除此以外,各種安全產品,無論防火牆、防病毒、防黑客、防入侵等等,都或多或少地肩負著一些保護數據的責任。從保護數據的角度講,對數據安全這個廣義概念,可以細分為三部分:數據加密、數據傳輸安全和身份認證管理。
數據加密就是按照確定的密碼演算法將敏感的明文數據變換成難以識別的密文數據,通過使用不同的密鑰,可用同一加密演算法將同一明文加密成不同的密文。當需要時,可使用密鑰將密文數據還原成明文數據,稱為解密。這樣就可以實現數據的保密性。數據加密被公認為是保護數據傳輸安全惟一實用的方法和保護存儲數據安全的有效方法,它是數據保護在技術上最重要的防線。
數據傳輸安全是指數據在傳輸過程中必須要確保數據的安全性,完整性和不可篡改性。
身份認證的目的是確定系統和網路的訪問者是否是合法用戶。主要採用登錄密碼、代表用戶身份的物品(如智能卡、IC卡等)或反映用戶生理特徵的標識鑒別訪問者的身份。
數據加密
數據加密技術是最基本的安全技術,被譽為信息安全的核心,最初主要用於保證數據在存儲和傳輸過程中的保密性。它通過變換和置換等各種方法將被保護信息置換成密文,然後再進行信息的存儲或傳輸,即使加密信息在存儲或者傳輸過程為非授權人員所獲得,也可以保證這些信息不為其認知,從而達到保護信息的目的。該方法的保密性直接取決於所採用的密碼演算法和密鑰長度。
根據密鑰類型不同可以將現代密碼技術分為兩類:對稱加密演算法(私鑰密碼體系)和非對稱加密演算法(公鑰密碼體系)。在對稱加密演算法中,數據加密和解密採用的都是同一個密鑰,因而其安全性依賴於所持有密鑰的安全性。對稱加密演算法的主要優點是加密和解密速度快,加密強度高,且演算法公開,但其最大的缺點是實現密鑰的秘密分發困難,在大量用戶的情況下密鑰管理復雜,而且無法完成身份認證等功能,不便於應用在網路開放的環境中。目前最著名的對稱加密演算法有數據加密標准DES和歐洲數據加密標准IDEA等,目前加密強度最高的對稱加密演算法是高級加密標准AES。
對稱加密演算法、非對稱加密演算法和不可逆加密演算法可以分別應用於數據加密、身份認證和數據安全傳輸。
對稱加密演算法
對稱加密演算法是應用較早的加密演算法,技術成熟。在對稱加密演算法中,數據發信方將明文(原始數據)和加密密鑰一起經過特殊加密演算法處理後,使其變成復雜的加密密文發送出去。收信方收到密文後,若想解讀原文,則需要使用加密用過的密鑰及相同演算法的逆演算法對密文進行解密,才能使其恢復成可讀明文。在對稱加密演算法中,使用的密鑰只有一個,發收信雙方都使用這個密鑰對數據進行加密和解密,這就要求解密方事先必須知道加密密鑰。對稱加密演算法的特點是演算法公開、計算量小、加密速度快、加密效率高。不足之處是,交易雙方都使用同樣鑰匙,安全性得不到保證。此外,每對用戶每次使用對稱加密演算法時,都需要使用其他人不知道的惟一鑰匙,這會使得發收信雙方所擁有的鑰匙數量成幾何級數增長,密鑰管理成為用戶的負擔。對稱加密演算法在分布式網路系統上使用較為困難,主要是因為密鑰管理困難,使用成本較高。在計算機專網系統中廣泛使用的對稱加密演算法有DES、IDEA和AES。
傳統的DES由於只有56位的密鑰,因此已經不適應當今分布式開放網路對數據加密安全性的要求。1997年RSA數據安全公司發起了一項「DES挑戰賽」的活動,志願者四次分別用四個月、41天、56個小時和22個小時破解了其用56位密鑰DES演算法加密的密文。即DES加密演算法在計算機速度提升後的今天被認為是不安全的。
AES是美國聯邦政府採用的商業及政府數據加密標准,預計將在未來幾十年裡代替DES在各個領域中得到廣泛應用。AES提供128位密鑰,因此,128位AES的加密強度是56位DES加密強度的1021倍還多。假設可以製造一部可以在1秒內破解DES密碼的機器,那麼使用這台機器破解一個128位AES密碼需要大約149億萬年的時間。(更深一步比較而言,宇宙一般被認為存在了還不到200億年)因此可以預計,美國國家標准局倡導的AES即將作為新標准取代DES。
不對稱加密演算法
不對稱加密演算法使用兩把完全不同但又是完全匹配的一對鑰匙—公鑰和私鑰。在使用不對稱加密演算法加密文件時,只有使用匹配的一對公鑰和私鑰,才能完成對明文的加密和解密過程。加密明文時採用公鑰加密,解密密文時使用私鑰才能完成,而且發信方(加密者)知道收信方的公鑰,只有收信方(解密者)才是唯一知道自己私鑰的人。不對稱加密演算法的基本原理是,如果發信方想發送只有收信方才能解讀的加密信息,發信方必須首先知道收信方的公鑰,然後利用收信方的公鑰來加密原文;收信方收到加密密文後,使用自己的私鑰才能解密密文。顯然,採用不對稱加密演算法,收發信雙方在通信之前,收信方必須將自己早已隨機生成的公鑰送給發信方,而自己保留私鑰。由於不對稱演算法擁有兩個密鑰,因而特別適用於分布式系統中的數據加密。廣泛應用的不對稱加密演算法有RSA演算法和美國國家標准局提出的DSA。以不對稱加密演算法為基礎的加密技術應用非常廣泛。