應(yīng)用于數(shù)據(jù)庫及數(shù)據(jù)庫加解密方面的RSA算法(一)

加密應(yīng)用

1.RSA算法

RSA算法是一種非對(duì)稱密碼算法,所謂非對(duì)稱,就是指該算法需要一對(duì)密鑰,使用其中一個(gè)加密,則需要用另一個(gè)才能解密。RS算法的加解密過程完全類同于公開密鑰密碼體制,所不同的且極具特點(diǎn)的是使用了指數(shù)表達(dá)式。

RSA是一個(gè)既能用于數(shù)據(jù)加密也能用于數(shù)字簽名的算法。它易于理解和操作,是一種特殊的可逆模指數(shù)運(yùn)算。據(jù)各自不同的需求,人們基于RSA算法開發(fā)了大量的加密方案與產(chǎn)品。像 Internet所采用的電子郵件安全協(xié)議PGP( Pretty Good Privacy)將RSA作為傳送會(huì)話密鑰和數(shù)字簽名的標(biāo)準(zhǔn)算法。

RSA算法的體制構(gòu)造是基于數(shù)論的歐拉定理,它是密鑰系統(tǒng)最安全的一種體制,其算法的安全性基于數(shù)論中大素?cái)?shù)分解的困難性。此算法利用了數(shù)論領(lǐng)域的一個(gè)事實(shí),那就是雖然將兩個(gè)大質(zhì)數(shù)相乘生成一個(gè)合數(shù)非常容易,但要把一個(gè)合數(shù)分解成兩個(gè)質(zhì)數(shù)卻十分困難。但近年來研究表明,位數(shù)較低的大數(shù)(512bit二進(jìn)制數(shù))已被成功分解,這就告訴人們,在使用Rs算法加密時(shí),密鑰蓄足夠長,就是模數(shù)n 必須選大一些。

2.RSA算法在數(shù)據(jù)庫加解密方面的應(yīng)用

數(shù)據(jù)庫加密系統(tǒng)分成兩個(gè)功能獨(dú)立的主要部件:加解密字典管理程序和數(shù)據(jù)庫加解密引擎。數(shù)據(jù)庫加密系統(tǒng)將用戶對(duì)數(shù)據(jù)庫信息具體的加密要求記載在加密字典中。加密字典是數(shù)據(jù)庫加密系統(tǒng)的基礎(chǔ)信息,加密字典管理程序是管理加密字典的實(shí)用程序,是數(shù)據(jù)庫管理員變更加密要求的工具,它通過數(shù)據(jù)庫加解密引擎實(shí)現(xiàn)對(duì)數(shù)據(jù)庫表的加密解密及數(shù)據(jù)轉(zhuǎn)換等功能。數(shù)據(jù)庫加解密引擎是數(shù)據(jù)庫加密系統(tǒng)的核心部件,負(fù)責(zé)在后臺(tái)完成數(shù)據(jù)庫信息的加解密處理,對(duì)應(yīng)用開發(fā)人員和操作人員是透明的。