密碼算法在信息安全系統(tǒng)中的應(yīng)用

使用密碼技術(shù)從根本上來說是對(duì)密碼算法的使用。根據(jù)所使用的加密密鑰和解密密鑰是否相同,能否由加密過程推導(dǎo)出解密過程,或由解密過程推導(dǎo)出加密過程,可以分為對(duì)稱密碼算法和公開密鑰密碼算法。

公開密鑰密碼算法

如果一個(gè)算法的加密密鑰和解密密鑰不同,或者由其中一個(gè)推導(dǎo)不出另外一個(gè),則該算法就是公開密碼密碼算法,。典型的有:RSA、ECC、DSA、ELGa-mal、Diffie-Hellman(DH)密鑰交換算法。公鑰密碼能夠用于數(shù)據(jù)加密、密鑰分發(fā)、數(shù)字簽名、身份認(rèn)證信息的完整性認(rèn)證、信息的非否認(rèn)性認(rèn)證等。其中可以用于加密的算法有:RSA、ECC、ELGamal等;可以用于密鑰分發(fā)的算法有:RSA、ECC、DH等;可以用于數(shù)字簽名、身份認(rèn)證、信息的完整性認(rèn)證、信息的費(fèi)否認(rèn)性認(rèn)證的有RSA、ECC、DSA、ELGamal等。

對(duì)稱密碼算法

如果一個(gè)密碼算法的加密密鑰和解密密鑰相同,或由其中一個(gè)很容易推導(dǎo)出另外一個(gè),該算法就是對(duì)稱密碼算法。對(duì)稱密碼的特點(diǎn)是速度快、安全強(qiáng)度高,主要用作數(shù)據(jù)加密算法。
對(duì)稱密碼根據(jù)加密模式又可分為分組密碼和序列密碼。分組密碼的典型算法有:DES、3DES、IDEA、AES、SKIPJACK、Kam、RC2和RC5等,分組密碼是目前在商業(yè)領(lǐng)域比較重要、使用較多的密碼,廣泛用于信息的保密傳輸和加密存儲(chǔ);序列密碼的典型算法有:RC4、SEAL、A5等,序列密碼多用于流式數(shù)據(jù)的加密,特別是對(duì)實(shí)時(shí)性要求比較高的語音和視頻流的加密傳輸。

單向密碼算法

單向密碼算法是從明文到密文的不可逆函數(shù),也就是說只能加密不能還原。單向散列函數(shù)H作用于任意長(zhǎng)度的信息M,返回-固定長(zhǎng)度的散列值h=H(M)

好的單向散列函數(shù)必須具有以下特性:

1、計(jì)算的單向性:給定M和H,求h=H(M)容易,但返過來給定h和H,求M=H-1(H)在計(jì)算上則是不可行的。
2、弱碰撞自由:給定M,要尋找另一信息M’,滿足H(M’)=H(M)在算計(jì)上不可行。
3、強(qiáng)碰撞自由:要尋找不同的信息M和M’。滿足H(M’)=H(M)在計(jì)算上不可行。

單向散列函數(shù)的使用方法為:用散列函數(shù)對(duì)數(shù)據(jù)生成散列值并保存,以后每次使用時(shí)都對(duì)數(shù)據(jù)使用相同的散列函數(shù)進(jìn)行散列,如果得到的值與保存的散列值相等,則認(rèn)為數(shù)據(jù)未被修改。

典型的散列函數(shù)有:MD5、SHA-1、HMAC、GOST等。單向散列函數(shù)主要用在一些只需加密不需要解密的場(chǎng)合:如驗(yàn)證數(shù)據(jù)的完整性、口令表的加密、數(shù)字簽名、身份認(rèn)證等。

安全是目的,密碼算法則是安全的基礎(chǔ)和保障。因此,信息安全依賴于各種加密算法的正確高效地運(yùn)用。