欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

數(shù)據(jù)庫管理裝置和加密/解密系統(tǒng)的制作方法

文檔序號:6441126閱讀:247來源:國知局
專利名稱:數(shù)據(jù)庫管理裝置和加密/解密系統(tǒng)的制作方法
技術(shù)領(lǐng)域
本發(fā)明涉及一用于執(zhí)行加密的數(shù)據(jù)通信系統(tǒng)中的加密/解密系統(tǒng),和一用于加密和管理數(shù)據(jù)庫的數(shù)據(jù)庫管理裝置。
例如在廣大一般用戶使用的計算機和網(wǎng)絡(luò)信息系統(tǒng)中,存在著一個嚴重的問題,即某些有預(yù)謀的用戶非法存取和修改信息。因此加密技術(shù)已經(jīng)被廣泛使用作為有效對策。公知的加密技術(shù)詳細披露在下述文獻。
見ACM通信2l卷2期(1978)P120,題目獲得數(shù)字簽名和公鑰密碼的系統(tǒng),麻省理工學(xué)院(MIT)計算機科學(xué)研究所和數(shù)學(xué)研究部作者R.L.Rivest,A.Shamir和L.Adleman。
公開在這份文獻中的加密方法普遍認為是一相當可靠的方法,涉及到一RSA(公開密鑰密碼系統(tǒng))方法,從該RSA推導(dǎo)的系統(tǒng)已經(jīng)研制成用于簽名的鑒別系統(tǒng),應(yīng)用于電子貿(mào)易系統(tǒng)中并且已實際投入使用。
該RSA方法基于分解素數(shù)的難度是一個公鑰(非對稱)加密系統(tǒng),通過將引發(fā)的數(shù)據(jù)除以大整數(shù)得到余數(shù)獲得密碼文件。RSA方法的特點是難于從兩個原始素數(shù)的乘積中找出兩個素數(shù)(p和q)。即使能查出兩個素數(shù)的乘積也難于找出p和q或難于估計該解碼操作。上述RSA方法當加密密鑰的數(shù)據(jù)位長足夠長時在某種意義上實用。為了保證可靠性通常用的加密密鑰數(shù)據(jù)為256位長。但在某種情況下,它還不夠長,實際細究起來需要512或1024位的數(shù)據(jù)長度。然而因為數(shù)據(jù)長度受計算機運算精度和運算速度限制,長的比特位是無形的。
也就是說用RSA方法和用從RSA推導(dǎo)出的加密方法存在著問題,這些方法的可靠性受計算機特性限制,另外,該方法用于基于加密密鑰位長變化的鑒別系統(tǒng)的可靠性等試驗時需要顯著變化。
此外,該數(shù)據(jù)庫管理裝置必須加密和必須管理存儲于其中的數(shù)據(jù)庫以保證數(shù)據(jù)的安全。
為了提高安全性可執(zhí)行更復(fù)雜的加密處理,但也需要長時間進行運算。
一個數(shù)據(jù)庫中包含大量數(shù)據(jù),在數(shù)據(jù)檢索過程中,相關(guān)于一特定項和與已知條件符合的數(shù)據(jù)從大量數(shù)據(jù)中選擇,而包含有與該條件符合的項數(shù)據(jù)的記錄(行數(shù)據(jù))被輸出。因此在處理大量數(shù)據(jù)的數(shù)據(jù)檢索系統(tǒng)中延長運算時間會造成系統(tǒng)特性降低。
如上所述含有機密數(shù)據(jù)的數(shù)據(jù)庫需要保證其安全性。為提高安全性,加密處理數(shù)據(jù)庫,該處理如出現(xiàn)問題會降低數(shù)據(jù)庫的可用性。
按慣例,當加密數(shù)據(jù)庫時,通常用例如用口令等產(chǎn)生的固定加密密鑰加密全部目標文件。
但如上所述,因為加密處理已經(jīng)根據(jù)慣用系統(tǒng)使用固定加密密鑰被執(zhí)行。每個數(shù)據(jù)項的安全級被平均。此外,當存在含有相同的數(shù)據(jù)的多個項目時,輸出相同的加密結(jié)果,由此產(chǎn)生了解密該加密密鑰的可能性。
本發(fā)明目的在于提供一加密/解密裝置,該裝置能夠在沒有精密運算的結(jié)果的情況下進行加密處理。且能實現(xiàn)一通用的加密/解密處理,該處理具有高可靠性和易于相加和變化一應(yīng)用。
本發(fā)明另一目的是提供一數(shù)據(jù)庫管理裝置,該裝置能夠保證數(shù)據(jù)庫安全并快速的檢索數(shù)據(jù)。
本發(fā)明又一目的是提供一數(shù)據(jù)庫管理裝置,能夠加密數(shù)據(jù)庫中的指定數(shù)據(jù)項使其具有比其他數(shù)據(jù)項更高的安全性。本發(fā)明的數(shù)據(jù)庫管理裝置加密檢索處理中的一列項數(shù)據(jù),該檢索過程使用了通常用在該列項的列密鑰和使用指定給每行的行密鑰加密其他列項。
本發(fā)明的加密設(shè)備包括原文件數(shù)據(jù)獲得單元,用于獲得將要加密的原文件數(shù)據(jù);向量產(chǎn)生單元,用于順序產(chǎn)生限定在n(n≥1)維空間封閉區(qū)中的向量;和一邏輯運算單元,用于通過邏輯運算產(chǎn)生加密的數(shù)據(jù),該運算是在由向量產(chǎn)生單元產(chǎn)生的向量元素和原文件獲得單元獲得的原文件數(shù)據(jù)基礎(chǔ)上進行的。另方面本發(fā)明的解密設(shè)備也包括向量產(chǎn)生單元,和逆邏輯運算單元,它使用密碼文件通過該邏輯運算的逆運算解碼原文件數(shù)據(jù)。
本發(fā)明的數(shù)據(jù)庫管理裝置,在加密處理時使用本發(fā)明的加密設(shè)備,而當把密碼文件數(shù)據(jù)解密為原文件數(shù)據(jù)時使用本發(fā)明的解密設(shè)備。
本發(fā)明的加密系統(tǒng)包括向量產(chǎn)生單元,用于由n(n≥1)維空間封閉區(qū)中定義的各向量元素和由參數(shù)組p確定的角Ωn產(chǎn)生向量rj,產(chǎn)生向量rj采用了這樣的方法,使非線性函數(shù)順序產(chǎn)生的各向量rj(j≥0)在n維空間互相不匹配,該非線性函數(shù)包括用于旋轉(zhuǎn)該向量的至少n維旋轉(zhuǎn)矩陣;和一個二進制運算單元,采用原文件數(shù)據(jù)和由向量產(chǎn)生單元產(chǎn)生的向量rj的二進制運算產(chǎn)生加密的數(shù)據(jù)。
本發(fā)明的解密系統(tǒng)包括向量產(chǎn)生單元,用于由n(n≥1)維空間封閉區(qū)中定義的各向量元素和由參數(shù)組p確定的角Ωn產(chǎn)生向量rj,產(chǎn)生向量rj采用了這樣的方法。使非線性函數(shù)產(chǎn)生順序的各向量rj(j≥0)在n維空間互相不匹配,該非線性函數(shù)包括用于旋轉(zhuǎn)該向量的至少n維旋轉(zhuǎn)矩陣Rn(Ωn);一逆二進制運算單元,用于接收原文件數(shù)據(jù)的二進制運算產(chǎn)生的加密數(shù)據(jù)和類似于向量產(chǎn)生單元的方法產(chǎn)生的向量rj元素,對應(yīng)于使用向量產(chǎn)生單元產(chǎn)生的向量rj和該加密的數(shù)據(jù)的二進制運算的逆運算按逆二進制運算解密該原文件。
按照上述配置,在n(n≥1)維空間封閉區(qū)中定義的向量順序地產(chǎn)生,并且按照將要加密的原文件數(shù)據(jù)和向量元素的一邏輯運算產(chǎn)生密碼文件數(shù)據(jù)。
由此,通過使用多維向量元素加密原文件數(shù)據(jù),在沒有經(jīng)過例如RSA方法的精密運算的情況下也能進行加密處理和實現(xiàn)一可靠通用的加密/解密處理,該處理容易相加和變化一應(yīng)用。
本發(fā)明數(shù)據(jù)管理裝置包括加密單元,用于使用列項中公用的列密鑰(column key)加密數(shù)據(jù)庫預(yù)定列項的數(shù)據(jù),和使用指定給各行(row)的列密鑰加密其它列數(shù)據(jù);還有一存儲單元,用于儲存加密單元加密的數(shù)據(jù)庫。
按照該配置,當加密數(shù)據(jù)庫時,通過向各行賦值不同的密鑰能提高安全性。當執(zhí)行檢索處理時,使用預(yù)定列項中公用的列密鑰加密檢索輸入數(shù)據(jù),將加密的檢索數(shù)據(jù)的項數(shù)據(jù)和加密的數(shù)據(jù)庫的數(shù)據(jù)相比較實現(xiàn)高速檢索處理。
此外,使用指定給各行的行密鑰和列項中公用的列密鑰的組合通過對列項的數(shù)據(jù)而不是檢索處理中用的列項進行加密能進一步提高安全性。
另外,數(shù)據(jù)庫可存儲在不同的位置以產(chǎn)生數(shù)據(jù)庫系統(tǒng)使請求的一檢索處理能通過一網(wǎng)絡(luò)從不同的信息終端發(fā)出。在這種情況下,預(yù)定列項的數(shù)據(jù)(用在檢索處理中的列項)使用列項中公用的列密鑰加密,和其他列項的數(shù)據(jù)使用指定給各行的行密鑰加密。當檢索數(shù)據(jù)庫的請求從另一信息終端發(fā)出時,使用列項中公用的列密鑰加密檢索的數(shù)據(jù),并通過網(wǎng)絡(luò)傳送加密的檢索數(shù)據(jù)。通過接收該檢索的數(shù)據(jù),檢索加密數(shù)據(jù)庫的處理能被執(zhí)行,且作為檢索結(jié)果獲得的加密數(shù)據(jù)通過網(wǎng)絡(luò)返回到信息終端。因此,數(shù)據(jù)在加密狀態(tài)下不斷傳送,數(shù)據(jù)庫的安全得到了保證。
當加密數(shù)據(jù)庫時,本發(fā)明的數(shù)據(jù)庫管理裝置用列項中公用的列密鑰加密檢索處理時用的列項數(shù)據(jù),用指定給各行的行密鑰與用行中公用的另外密鑰又加密的行密鑰加密要求高安全性的其他列項的數(shù)據(jù)。
實際上,本發(fā)明的數(shù)據(jù)庫管理裝置包括一第一加密單元,用列項中公用的列密鑰加密數(shù)據(jù)庫預(yù)定列項的數(shù)據(jù),和用指定給各行的行密鑰加密其他列項的數(shù)據(jù);一第二加密單元,用于加密該行密鑰,該行密鑰用于加密第一加密單元使用各行中公用的另外密鑰來加密的數(shù)據(jù)庫的其他列項數(shù)據(jù);和存儲單元,用于將由第一加密單元加密的數(shù)據(jù)庫與由第二加密單元加密的行密鑰一起儲存。
按照該配置,當加密數(shù)據(jù)庫時,列項的數(shù)據(jù)而非檢索處理中用的預(yù)定列項數(shù)據(jù)能使用相關(guān)于各行的不同密鑰加密,使得對于列項中相同值的數(shù)據(jù)能夠獲得不同值的加密結(jié)果,并且利用另外密鑰對該密鑰(行密鑰)進行再加密,然后對該密鑰進行復(fù)雜的解密可實現(xiàn)高安全性。該行密鑰用于加密該些列項。
而且當使用賦值給數(shù)據(jù)庫各行的行數(shù)和使該密鑰的加密更困難的隨機數(shù)產(chǎn)生行密鑰時,能成功地提高安全性。
此外一數(shù)據(jù)庫系統(tǒng)能由第一終端設(shè)備與第二終端設(shè)備構(gòu)成,第一終端設(shè)備用于管理數(shù)據(jù)庫;第二終端設(shè)備獨立于第一終端設(shè)備,用于檢索該數(shù)據(jù)庫。
在數(shù)據(jù)庫中,第一終端設(shè)備加密該數(shù)據(jù)庫,將已加密的數(shù)據(jù)庫存儲在存儲媒體中,并且分配存儲媒體,第二終端設(shè)備檢索儲存在分配媒體中已存儲的加密數(shù)據(jù)庫中的數(shù)據(jù),解密所獲得的數(shù)據(jù)作為該檢索結(jié)果,并顯示該結(jié)果數(shù)據(jù)。在此情況下,數(shù)據(jù)庫中預(yù)定列項的數(shù)據(jù)用列項中公用的列密鑰加密,其它列項的數(shù)據(jù)用指定給各行的行密鑰加密,而該行密鑰用列中公用的另外密鑰加密,由此將該數(shù)據(jù)庫存儲在存儲媒體中,并在安全得到成功保證下分配該儲存介質(zhì)。


圖1說明本發(fā)明第一實施例的數(shù)據(jù)庫管理裝置的配置;圖2是由該數(shù)據(jù)庫管理裝置執(zhí)行的數(shù)據(jù)庫加密處理操作的流程圖;圖3A和3B是由該數(shù)據(jù)庫管理裝置執(zhí)行的數(shù)據(jù)庫檢索處理的操作流程圖;圖4A和4B是圖18A步驟P13表示的檢索處理實際操作的流程圖;圖5是說明本發(fā)明數(shù)據(jù)庫管理裝置第一實施例的數(shù)據(jù)庫配置;圖5(a)說明加密前的該狀態(tài);圖5(b)說明加密后的該狀態(tài);和圖5(c)說明解密后的該狀態(tài)。
圖6說明本發(fā)明數(shù)據(jù)庫管理裝置第一實施例的列密鑰和行密鑰的配置;圖7說明本發(fā)明數(shù)據(jù)庫管理裝置第二實施例的數(shù)據(jù)庫配置;圖7(a)說明加密前的狀態(tài);圖7(b)說明加密后的狀態(tài);7(c)說明解密后的狀態(tài);圖8說明本發(fā)明數(shù)據(jù)庫管理裝置第二實施例的組合密鑰的配置;圖9是本發(fā)明數(shù)據(jù)庫管理裝置第三實施例的數(shù)據(jù)庫系統(tǒng)配置的方框圖;圖10說明本發(fā)明第四實施例的數(shù)據(jù)管理裝置;圖11是數(shù)據(jù)庫管理裝置功能配置方框圖;圖12說明數(shù)據(jù)庫管理裝置中用于設(shè)置一基本密鑰的對話的配置;圖13說明數(shù)據(jù)庫管理裝置中基本密鑰參數(shù)表的一個例子;圖14說明數(shù)據(jù)庫管理裝置中用于設(shè)定密鑰規(guī)范對話的配置;圖15說明數(shù)據(jù)庫管理裝置中密鑰規(guī)范表中條目(entry)的一個例子;圖16說明在數(shù)據(jù)管理裝置中加密和解密該數(shù)據(jù)庫時的數(shù)據(jù)流;圖17A和17B是由數(shù)據(jù)庫管理裝置執(zhí)行的數(shù)據(jù)庫加密處理的操作流程圖;圖18A和18B是由數(shù)據(jù)庫管理裝置執(zhí)行的數(shù)據(jù)庫檢索處理的操作流程圖;圖19A和19B是說明在圖18A中的步驟P13中檢索處理的實際操作流程圖;圖20說明數(shù)據(jù)庫管理裝置中數(shù)據(jù)庫的配置;圖20(a)說明加密前的狀態(tài);圖20(b)說明加密后的狀態(tài);圖20(c)說明解密后的狀態(tài);圖21是本發(fā)明數(shù)據(jù)管理裝置第五實施例的數(shù)據(jù)庫配置的方框圖;圖22說明數(shù)據(jù)庫系統(tǒng)中使用的存儲媒體的數(shù)據(jù)內(nèi)容;圖23說明根據(jù)本發(fā)明一實施例,用于完成被加密的數(shù)據(jù)通信的系統(tǒng)配置;圖24是在該系統(tǒng)中安全設(shè)備PC電路配置方框圖;圖25說明安全設(shè)備的數(shù)據(jù)庫配置;圖26是在該施例中當做出一用戶條目時PC和安全設(shè)備的處理操作流程圖;圖27是在該實施例中加密數(shù)據(jù)時PC和安全處理操作的流程圖;圖28A和28B是在該實施例中加密和解密處理操作的流程圖;圖29說明本發(fā)明使用多維向量的加密操作的方法;圖30說明用于表示本發(fā)明加密/解密系統(tǒng)原理的系統(tǒng)配置;圖31說明圖8中表示的設(shè)備110和112的內(nèi)部功能的一個例子;圖32是產(chǎn)生多維向量的處理流程圖;圖33是使用產(chǎn)生多維向量的該處理的加密/解密流程圖;圖34是本發(fā)明一實施例的解密處理的流程圖;圖35是本發(fā)明一實施例的產(chǎn)生了3維向量rj的處理的流程圖;圖36是本發(fā)明一實施例產(chǎn)生n維旋轉(zhuǎn)矩陣Rn(Ωn)的處理的流程圖
圖37A至37C說明本發(fā)明一實施例的三維向量的旋轉(zhuǎn)操作流程圖;以下參考附圖描述本發(fā)明的一實施例。
圖1說明本發(fā)明數(shù)據(jù)管理裝置的配置。
該裝置包括按行和列的矩陣形式的數(shù)據(jù)庫,該裝置具有以下功能加密和管理數(shù)據(jù)庫,加密輸入的檢索數(shù)據(jù),及根據(jù)加密的檢索數(shù)據(jù)檢索該數(shù)據(jù)庫。該裝置讀出存儲在例如磁盤等的存儲媒體中的一程序,并由該程序控制計算機操作完成。
如圖1所示,該裝置包括CPU311,顯示設(shè)備312,輸入設(shè)備313,程序存儲設(shè)備314,密鑰存儲設(shè)備315,和數(shù)據(jù)存儲設(shè)備316。
CPU311控制整個設(shè)備,讀出存儲在程序存儲設(shè)備314中的程序,根據(jù)該程序執(zhí)行各種處理。根據(jù)本實施例,CPU311執(zhí)行圖2所示的數(shù)據(jù)庫加密處理,及執(zhí)行圖3A到4B所示的數(shù)據(jù)庫檢索處理。
顯示設(shè)備312是用于顯示數(shù)據(jù)的設(shè)備,采用例如LCD(液晶顯示),CRT(陰極射線管)等。輸入設(shè)備313是用于輸入數(shù)據(jù)的設(shè)備,例如可以是鍵盤,鼠標等。
程序存儲設(shè)備314包括例如ROM,RAM等和存儲該裝置必須的程序,該裝置需要例如數(shù)據(jù)庫管理程序,加密程序等。
程序存儲設(shè)備314還可包括除半導(dǎo)體存儲器外的磁和光存儲媒體。存儲媒體包括便攜式媒體,例如CD-ROM等和固定媒體,例如硬盤等。儲存在存儲媒體中的全部或部分程序能夠從服務(wù)器的傳輸控制單元接收和通過例如網(wǎng)絡(luò)等的傳輸媒體等從客戶接收。存儲媒體可以是設(shè)置在網(wǎng)絡(luò)中的服務(wù)器的存儲媒體。而且在程序通過例如網(wǎng)絡(luò)電路等傳輸?shù)皆摲?wù)器和該客戶后,可以設(shè)計將該程序裝在服務(wù)器和客戶的設(shè)備上。
密鑰存儲設(shè)備315包括例如RAM等,當數(shù)據(jù)庫加密時用于存儲一密鑰(行密鑰和列密鑰)。
數(shù)據(jù)存儲設(shè)備316是用于存儲該裝置各種必須數(shù)據(jù)的設(shè)備,它包括例如RAM或外部存儲設(shè)備例如磁盤設(shè)備等。數(shù)據(jù)存儲設(shè)備316提供用于存儲數(shù)據(jù)庫的數(shù)據(jù)庫存儲區(qū)316a,用于存儲當存儲數(shù)據(jù)庫時由操作員設(shè)置的信息(將要檢索的項,非加密的項等)的加密設(shè)置信息存儲區(qū)316b,用于存儲當檢索數(shù)據(jù)庫時由操作員設(shè)置的信息(目標列項,檢索的字符串等)的檢索設(shè)置信息存儲區(qū)316c,當數(shù)據(jù)庫檢索時提供用于存儲比較字符串的一比較字符串存儲區(qū)316d。
在描述該裝置操作以前,首先描述該裝置使用的數(shù)據(jù)庫加密方法。
當加密數(shù)據(jù)庫時,如果把不同密鑰用于各行(記錄),解密一個密鑰就會變得更困難,由此提高安全性。但是,因為加密的數(shù)據(jù)必須使用相關(guān)于各行的密鑰解密或當檢索數(shù)據(jù)庫時輸入的檢索數(shù)據(jù)(關(guān)鍵詞)必須使用相關(guān)于各行的密鑰加密,這將花費長時間以獲得檢索結(jié)果,另一方面,如果數(shù)據(jù)庫使用相關(guān)于各列的不同密鑰加密,檢索數(shù)據(jù)只使用一個相應(yīng)于要檢索的列項的密鑰加密,由此能以高速檢索一數(shù)據(jù)庫。但是在相同列中存在相同數(shù)據(jù)時,會輸出相同的加密結(jié)果,這樣可能使該密鑰被解密。
本發(fā)明的特點在于,當加密數(shù)據(jù)庫時,使用公用列密鑰(commoncolumn key)加密檢索處理中頻繁使用的列項數(shù)據(jù),利用為各行賦值的不同密鑰加密其他列項的數(shù)據(jù)。也就是說把不同密鑰用于各行能提高安全性,并且通過使用一列密鑰加密輸入檢索項的數(shù)據(jù)以及將該加密結(jié)果與數(shù)據(jù)庫中加密的數(shù)據(jù)相比較能夠?qū)崿F(xiàn)高速檢索處理。
圖5示出本發(fā)明數(shù)據(jù)庫管理裝置第一實施例的配置;圖5(a)示出加密前的狀態(tài);圖5(b)示出加密后的狀態(tài);和圖5(c)示出解密后的狀態(tài)。圖6說明數(shù)據(jù)庫管理裝置第一實施例的列密鑰和行密鑰的配置。
如圖5(a)所示,該裝置具有一行和列組成的矩陣。圖5(a)示出作為數(shù)據(jù)庫的個人數(shù)據(jù)。該數(shù)據(jù)庫有一記錄包括了下列各項‘編號’‘姓名’‘體重’‘身高’‘年齡’和‘電話’。
該數(shù)據(jù)庫使用列密鑰和行密鑰加密。即,當檢索處理中頻繁使用的列項包括‘姓名’‘州’,和‘年齡’時,該列項各行數(shù)據(jù)使用列項中公用列密鑰例如‘蘋果’‘桔子’‘檸檬’等加密,如圖6所示,其他列項的各行數(shù)據(jù)‘體重’‘身高’和‘電話’使用指定給各行的密鑰加密。
假定‘編號’這行不加密。所使用的行密鑰有‘虎’,‘狗’,‘貓’,‘老鼠’,‘象’,‘母?!i’,‘兔’,‘獅子’等。
這些列密鑰和行密鑰確定了一預(yù)定的非線性函數(shù),加密(解密)處理通過該函數(shù)和用該函數(shù)產(chǎn)生的數(shù)學(xué)向量的二進制運算(逆二進制運算)進行。在此情況下,可按如下所述使用本發(fā)明的加密/解密系統(tǒng)。
圖5(b)說明使用列密鑰和行密鑰加密圖5(a)所示的數(shù)據(jù)庫形成的結(jié)果。數(shù)據(jù)存儲設(shè)備316的數(shù)據(jù)庫存儲區(qū)316a存儲了圖5(b)所示狀態(tài)的數(shù)據(jù)庫。
當檢索數(shù)據(jù)庫時,使用與檢索時所用的列項相對應(yīng)的列密鑰加密檢索的數(shù)據(jù),然后執(zhí)行檢索處理,例如當要檢索‘州’中的‘佛羅里達’數(shù)據(jù)時,使用‘州’中的列密鑰‘桔子’加密作為檢索數(shù)據(jù)輸入的‘佛羅里達’,于是獲得‘h*/fDD’。為h*/fDD的數(shù)據(jù)從‘州’的列中的各行中檢索出來。由此確定對應(yīng)于‘編號2’和‘編號8’ 該數(shù)據(jù)存在。
此外,當把加密的數(shù)據(jù)庫恢復(fù)為原始狀態(tài)時,使用加密處理時用過的列密鑰和行密鑰。如圖5(b)所示當使用數(shù)據(jù)庫加密處理時所用的列密鑰和行密鑰解密數(shù)據(jù)時,可獲得如圖5(c)所示的原始數(shù)據(jù)。
該裝置的操作描述如下。
加密數(shù)據(jù)庫的處理(a)和檢索數(shù)據(jù)庫的處理(b)將分別進行描述。用于實現(xiàn)圖2到4流程的各種功能的程序以CPU可讀程序代碼形式存儲在程序存儲設(shè)備314的存儲媒體。程序也能通過傳輸媒體,例如網(wǎng)絡(luò)電路,傳送。
(a)加密數(shù)據(jù)庫時圖2是該裝置執(zhí)行數(shù)據(jù)庫加密處理的流程圖。圖5(a)說明存儲在數(shù)據(jù)存儲設(shè)備316的數(shù)據(jù)庫存儲區(qū)316a中的數(shù)據(jù)庫的未加密狀態(tài)。
首先,在數(shù)據(jù)庫加密設(shè)定屏幕上,指定要加密的一個數(shù)據(jù)庫(步驟G11)。
然后,在數(shù)據(jù)庫的列項中設(shè)定檢索處理時所用的列項和不加密的列項(步驟G12)。在圖20(a)所示的舉例中,在檢索處理時所用的列項是‘姓名’,‘州’,和‘年齡’,不加密的列項是‘編號’。設(shè)定的信息存儲在數(shù)據(jù)存儲設(shè)備316的加密設(shè)定信息存儲區(qū)316b中。
然后確定加密數(shù)據(jù)庫時所用的行密鑰和列密鑰(步驟G13)。有關(guān)確定行密鑰和列密鑰的信息存儲在密鑰存儲設(shè)備315中。
當上述設(shè)定操作執(zhí)行后,順序指定數(shù)據(jù)庫中列項(步驟G14),根據(jù)設(shè)定信息確定用于該列項的加密系統(tǒng)(步驟15)。在此情況下,因為‘編號’列項在數(shù)據(jù)庫中設(shè)定為非加密,不執(zhí)行處理。即‘編號’項按照原來的數(shù)據(jù)不改變。
當指定的列項設(shè)定為檢索處理所用的列項時,存儲在密鑰存儲設(shè)備315中的該列項的公用列密鑰被讀出(步驟G15和G16),該列項的各行數(shù)據(jù)用該列密鑰加密(步驟G17)。即,數(shù)據(jù)庫中‘姓名’,‘州’和‘年齡’各項的各行用指定給各列的密鑰例如‘蘋果’,‘桔子’,‘檸檬’加密,如圖6所示。
當指定的列項沒有設(shè)定為檢索處理所用的列項,也就是作為其它列項時,存儲在密鑰存儲設(shè)備315中的與每行相應(yīng)的行密鑰被讀出(步驟G15和G18),該列項的各行數(shù)據(jù)用特定行密鑰加密(步驟G19和G20),即數(shù)據(jù)庫中“州”,“體重”,“身高”各列項的第1,2,3,4,5,6,7,8和9行數(shù)據(jù)分別用各自對應(yīng)的行密鑰‘老虎’,‘狗’,‘貓’,‘老鼠’,‘象’,‘母?!i’,‘兔’,和‘獅子’來加密,如圖6所示。
于是,對數(shù)據(jù)庫的每個列項重復(fù)進行加密處理。當在所有列項的各行完成數(shù)據(jù)加密處理時,在數(shù)據(jù)存儲設(shè)備316的數(shù)據(jù)庫存儲區(qū)316a改寫加密的數(shù)據(jù)庫。圖5(b)說明該狀態(tài)。
(b)檢索數(shù)據(jù)庫時圖3A和3B是由該裝置執(zhí)行的數(shù)據(jù)庫檢索處理操作的流程圖。
假設(shè)數(shù)據(jù)庫是在(a)所述的加密處理時加密的并且存儲在數(shù)據(jù)存儲設(shè)備316中。
首先如圖3A所示的流程圖所表示,在數(shù)據(jù)庫檢索設(shè)定屏幕上輸入檢索信息(步驟H11)。輸入的檢索信息涉及輸入要檢索的列項,和檢索字符串(關(guān)鍵詞)。輸入信息存儲在數(shù)據(jù)存儲設(shè)備316的檢索設(shè)定信息存儲區(qū)316c。當檢索信息通過輸入設(shè)備313輸入時,執(zhí)行預(yù)檢索處理(步驟H12)。
如圖3B所示的流程圖所表示在該預(yù)檢索處理中判定輸入檢索列項是否預(yù)檢索處理列項(步驟I11)。如果是(在步驟I11為yes),將檢索字符串用該列項的公用列密鑰加密(步驟I12)。
預(yù)定列項指在加密數(shù)據(jù)庫時設(shè)定的要檢索的項(用在檢索處理中的項),實際上就是對應(yīng)于‘姓名’,‘州’,和‘年齡’這些項的各項。有關(guān)于檢索項的信息存儲在數(shù)據(jù)存儲設(shè)備316的加密設(shè)定信息存儲區(qū)316b。因此,在步驟I11,通過參考設(shè)定在信息存儲區(qū)316b的加密來判定輸入的列項是否預(yù)定列項。該列項的公用列密鑰存儲在密鑰存儲設(shè)備315中。因此,在步驟I12,對應(yīng)于該列項的列密鑰從密鑰存儲設(shè)備315讀出,并且加密檢索字符串。例如,如果指定項是‘州’,將使用例如‘桔子’等加密檢索字符串。
如果輸入檢索列項不是預(yù)定列項(不在步驟I11),將不加密檢索字符串。
在上述預(yù)檢索處理后,檢索數(shù)據(jù)庫(參見圖4A)(步驟H13),作為檢索結(jié)果獲得的數(shù)據(jù)顯示在顯示設(shè)備312上(步驟H14)。
圖4A和4B說明數(shù)據(jù)庫檢索處理。
圖4A和4B是步驟H13檢索處理實際操作的流程圖。
首先,如圖4A所示的流程圖所表示一個檢索字符串作為要與數(shù)據(jù)庫比較的字符串在數(shù)據(jù)存儲設(shè)備的比較字符串存儲區(qū)316d中設(shè)定(步驟J11)。在此情況下,如上所述,如果輸入的檢索列項是預(yù)定的列項‘姓名’,‘州’,和‘年齡’,那么檢索字符串用對應(yīng)于該列項的列密鑰加密,并在預(yù)檢索處理的比較字符串存儲區(qū)中設(shè)定。如果輸入項不是預(yù)定的列項就不加密,保持不變,并在比較字符串存儲區(qū)316d中設(shè)定。
然后由數(shù)據(jù)存儲設(shè)備316的數(shù)據(jù)庫存儲區(qū)316a中存儲的加密數(shù)據(jù)庫的列編號(column number)確定加密系統(tǒng)(步驟J12)。于是當要檢索的項是用列密鑰加密的預(yù)定列項時,順序掃描目標列各行的數(shù)據(jù)(步驟J12和J13),并將包含在指定行的目標項數(shù)據(jù)的字符串與在比較字符串存儲區(qū)316d中設(shè)定的檢索字符串(加密字符串)比較(步驟J14)。
在比較處理中,如圖4B流程圖所示,從數(shù)據(jù)庫檢索的目標項數(shù)據(jù)的加密字符串與用在檢索處理中的加密字符串比較,并且確定他們是否匹配(步驟K11)。當他們互相匹配時(步驟K11為是),包含匹配項的記錄數(shù)據(jù)被提取作為數(shù)據(jù)庫檢索結(jié)果(步驟K12)。
該處理重復(fù)直到加密數(shù)據(jù)庫終止,相應(yīng)數(shù)據(jù)按順序提取(步驟J15),提取的數(shù)據(jù)作為檢索結(jié)果輸出(步驟J20)。
實際應(yīng)用中,在圖5(b)示出的加密數(shù)據(jù)庫的舉例中,例如,如果在項‘州’,中的佛羅里達等被指定用于檢索,接著使用該‘州’的列密鑰‘桔子’加密作為檢索數(shù)據(jù)輸入的‘佛羅里達’,由此獲得‘h*/fDD’。為h*/fDD的數(shù)據(jù)會從‘州’的列中檢索出來。于是便可確定對應(yīng)于‘編號2’和‘編號8’的數(shù)據(jù)存在。
另一方面,當檢索項對應(yīng)于用一個行密鑰加密的其他列項之一時,目標列各行數(shù)據(jù)順序被掃描(步驟J12,J16),包含在指定行目標項的數(shù)據(jù)使用指定給各行的行密鑰解密(步驟J17),然后該結(jié)果與在比較字符串存儲區(qū)316d中設(shè)定的檢索字符串(非加密字符串)比較(步驟J18)。
在比較處理中如圖4B流程圖所示,判定從數(shù)據(jù)庫檢索出的目標列中的數(shù)據(jù)的解密字符串是否與用在檢索處理中的未加密字符串匹配(步驟K11)。如他們互相匹配,那么將包含匹配項的記錄數(shù)據(jù)提取作為數(shù)據(jù)庫檢索結(jié)果(步驟K12)。
該處理重復(fù)進行到加密數(shù)據(jù)庫結(jié)束。相應(yīng)的數(shù)據(jù)順序提取出來(步驟J19),并將提取的數(shù)據(jù)作為檢索結(jié)果輸出。(步驟J20)。
實際應(yīng)用中,在圖5(b)所示加密的數(shù)據(jù)庫例子中,例如當項‘體重’中的‘63’數(shù)據(jù)指定要檢索時,‘體重’的行1數(shù)據(jù)使用行密鑰例如‘虎’等解密。類似地行2、3、4、5、6、7、8和9的數(shù)據(jù)分別使用對應(yīng)的行密鑰‘狗’,‘貓’,‘老鼠’,‘象’,‘母?!谩汀{子’解密,如圖6所示。然后基于作為檢索數(shù)據(jù)輸入的63,檢索‘州’或相應(yīng)數(shù)據(jù)列,于是判定對應(yīng)于‘編號3’和‘編號9’的數(shù)據(jù)存在。
由此,當加密數(shù)據(jù)庫時,用公用列密鑰加密檢索處理中采用的預(yù)定列項。在檢索處理中用公用列密鑰加密檢索數(shù)據(jù),并與數(shù)據(jù)庫中加密的數(shù)據(jù)比較,從而實現(xiàn)了高速檢索。另外,列項而不是預(yù)定列項相關(guān)于各行被賦予不同密鑰并且被加密以便提高安全性。在此情況下,當執(zhí)行檢索處理時,需要使用相關(guān)于各行的密鑰解密。因此,該檢索處理比預(yù)定列項的檢索處理花費的時間要長,但是這不是一個問題,因為在檢索處理中不會頻繁使用該項。
根據(jù)第一實施例,列項而非預(yù)定列項使用相關(guān)于各行的特定的行密鑰加密。然而根據(jù)第二實施例,使用了相關(guān)于各行的特定行密鑰和一相應(yīng)列項的公用列密鑰在加密處理中組合使用以進一步提高安全性。
圖7是根據(jù)第二實施例的數(shù)據(jù)庫配置示意圖;圖7(a)說明加密前狀態(tài);圖7(b)說明加密后狀態(tài);圖7(c)說明解密后狀態(tài)。圖8說明根據(jù)第二實施例的組合密鑰的配置。
如圖7(a)所示,該裝置具有行和列形式的矩陣。此處說明作為一數(shù)據(jù)庫的個人數(shù)據(jù)。該數(shù)據(jù)庫具有包含以下各項的一記錄‘編號’,‘姓名’,‘體重’,‘身高’,‘年齡’和‘電話’。
數(shù)據(jù)庫使用組合密鑰加密。即,當在檢索處理中頻繁使用的列項包括‘姓名’,‘州’,和‘年齡’時,使用例如‘蘋果’,‘桔子’,‘檸檬’等列項中公用列密鑰加密列項各行的數(shù)據(jù)。如圖8所示,其他的列項‘體重’,‘身高’和‘電話’的各行數(shù)據(jù)使用列密鑰和行密鑰的組合密鑰例如‘香蕉+1個行密鑰’,‘荔枝+1個行密鑰’,‘杏+1個行密鑰’等加密。
假定‘編號’行不加密?!ⅰ?,‘狗’,‘貓’,‘老鼠’,‘象’,‘母?!?,‘豬’,‘兔’,‘獅子’用作行密鑰。
該些列密鑰和行密鑰確定一預(yù)定非線性函數(shù),加密(解密)處理是用該函數(shù)和通過該函數(shù)產(chǎn)生的數(shù)學(xué)向量的二進制運算(逆二進制運算)進行的。在該情況下本發(fā)明采用的加密/解密系統(tǒng)將如下所述。
圖7(b)說明使用組合密鑰加密圖7(a)所示的數(shù)據(jù)庫的結(jié)果。數(shù)據(jù)存儲設(shè)備316的數(shù)據(jù)存儲區(qū)316a存儲圖7(b)狀態(tài)數(shù)據(jù)庫。
當檢索數(shù)據(jù)庫時,如以上第一實施例所述,檢索數(shù)據(jù)使用對應(yīng)于檢索時所用列項的公用列密鑰加密,然后執(zhí)行檢索處理。例如當要檢索項‘州’中的‘佛羅里達’數(shù)據(jù)時,作為檢索數(shù)據(jù)輸入的‘佛羅里達’使用‘州’的列密鑰‘桔子’加密,于是獲得‘h*/fDD’。為‘h*/fDD’的數(shù)據(jù)從‘州’列各行檢索出來。于是確定對應(yīng)于‘編號2’和‘編號8’的數(shù)據(jù)存在。
此外,當把加密的數(shù)據(jù)庫恢復(fù)為原來狀態(tài)時,使用加密處理時所用的組合密鑰。如圖7(b)所示當使用加密處理數(shù)據(jù)庫所用的組合密鑰解密數(shù)據(jù)時,原來數(shù)據(jù)能夠獲得,如圖7(c)所示。
因此加密數(shù)據(jù)庫或檢索加密數(shù)據(jù)庫時執(zhí)行的處理除了列項而不是預(yù)定列項的各行數(shù)據(jù)使用列密鑰和行密鑰的組合密鑰加密外都與上述第一實施例(圖2到4B)相同,此處省略對該處理的說明。
于是,檢索處理中頻繁使用的列項采用列項中公用列密鑰加密,由此實現(xiàn)如上述第一實施例所述的高速檢索。其他列項使用列密鑰和行密鑰的組合密鑰加密,因而進一步提高安全性。
根據(jù)第一和第二實施例,本發(fā)明設(shè)計為一獨立的裝置,但也能設(shè)計為一個數(shù)據(jù)庫系統(tǒng),用于通過網(wǎng)絡(luò)從具有存儲在不同位置的數(shù)據(jù)庫的另外信息終端請求一檢索處理。
上述所說的數(shù)據(jù)庫系統(tǒng)將描述如下。
圖9是本發(fā)明第三實施例的數(shù)據(jù)庫系統(tǒng)配置的方框圖。
該系統(tǒng)包括第一終端設(shè)備320和第二終端設(shè)備330。第一終端設(shè)備320通過網(wǎng)絡(luò)340連接到第二終端設(shè)備340。
第一終端設(shè)備320用作服務(wù)器用于提供數(shù)據(jù)庫服務(wù),它包括一檢索設(shè)備321,用于檢索一數(shù)據(jù)庫,和一數(shù)據(jù)存儲設(shè)備322,用于存儲數(shù)據(jù)庫。第二終端設(shè)備330用作客戶機,請求第一終端設(shè)備320檢索一數(shù)據(jù)庫,并從第一終端設(shè)備320接收檢索結(jié)果,第二終端設(shè)備包括一檢索請求設(shè)備331和一解密設(shè)備332。
按照該數(shù)據(jù)庫系統(tǒng),第一終端設(shè)備使用以上所述參考圖2中對應(yīng)列項中公用列項加密數(shù)據(jù)庫預(yù)定列項各行的數(shù)據(jù),使用指定給各行的行密鑰加密其他列項各行的數(shù)據(jù),并將結(jié)果存儲在存儲設(shè)備322中。
當?shù)诙K端330請求第一終端320檢索一數(shù)據(jù)庫時,第二終端設(shè)備330如圖3A所示執(zhí)行該處理直到預(yù)檢索處理。即,第二終端設(shè)備330的檢索請求設(shè)備331判定輸入檢索列項是否預(yù)定的列項,當輸入列項是預(yù)定列項時使用對應(yīng)列項中公用列密鑰加密一字符串(口令),當輸入列項不是預(yù)定列項時不請求加密處理。
預(yù)檢索處理后,第二終端設(shè)備330通過網(wǎng)絡(luò)340向第一終端設(shè)備320傳送檢索字符串。第一終端設(shè)備320如上所述參考圖4A和4B中通過接收該檢索字符串執(zhí)行該檢索處理。
即,第一終端設(shè)備320的檢索設(shè)備321判定檢索列項是否一預(yù)定列項,將從第二終端設(shè)備330獲得的檢索字符串(加密的字符串)與數(shù)據(jù)存儲設(shè)備322中加密數(shù)據(jù)庫對應(yīng)列項的各行數(shù)據(jù)相比較,如果該列項是預(yù)定列項,提取該對應(yīng)的數(shù)據(jù)。此外,如果要檢索的列項不是預(yù)定項,然后數(shù)據(jù)存儲設(shè)備322中加密數(shù)據(jù)庫對應(yīng)列項的數(shù)據(jù)使用各行的密鑰解密。從第二終端設(shè)備330獲得的檢索字符串(未加密字符串)與各行的解密數(shù)據(jù)比較,提取對應(yīng)的數(shù)據(jù)。
當能夠獲得檢索結(jié)果時,第一終端設(shè)備320通過該網(wǎng)絡(luò)340將與加密數(shù)據(jù)一樣的檢索結(jié)果返回到第二終端設(shè)備330。第二終端設(shè)備330與第一終端設(shè)備320共用一加密密鑰。因此當?shù)诙K端設(shè)備330接收來自第一終端設(shè)備320的檢索結(jié)果時,解密設(shè)備332能使用該加密密鑰解密該數(shù)據(jù)。在此情況下,因為加密的數(shù)據(jù)在第一終端設(shè)備320和第二終端設(shè)備330之間傳遞,故能保證數(shù)據(jù)庫的安全。
因此,即使數(shù)據(jù)庫系統(tǒng)在第一終端設(shè)備320具有一數(shù)據(jù)庫,通過來自第二終端設(shè)備330的訪問檢索數(shù)據(jù)庫,在檢索處理中頻繁使用的列項數(shù)據(jù)使用對應(yīng)列項中公用列密鑰加密,而其他列項數(shù)據(jù)使用指定給各行的行密鑰加密,由此提高安全性和實現(xiàn)高速檢索。
列項而非預(yù)定列項可使用組合密鑰加密,該組合密鑰包括指定給各行的行密鑰和對應(yīng)列項中公用列密鑰,正如前面第二實施例中所描述,因此進一步提高安全性。
根據(jù)本發(fā)明數(shù)據(jù)庫管理裝置的又一實施例將描述如下。
圖10說明本發(fā)明第四實施例的數(shù)據(jù)庫管理裝置配置示意圖。
該裝置加密和管理按行和列矩陣形式設(shè)置的數(shù)據(jù)庫。該裝置可通過計算機實現(xiàn)以便讀出例如存儲在磁盤等存儲媒體上的程序并且控制計算機的運行。
如圖10所示,該裝置包括CPU411,一顯示設(shè)備412一輸入設(shè)備413,一程序存儲設(shè)備414,一密鑰產(chǎn)生設(shè)備415,一數(shù)據(jù)存儲設(shè)備416,和一數(shù)據(jù)I/F417。
CPU控制整個裝置,讀出存儲在程序存儲設(shè)備414上的程序并根據(jù)該程序執(zhí)行各種操作。根據(jù)該實施例,CPU411如圖17A和17B所示執(zhí)行數(shù)據(jù)庫的加密處理和如圖18A到19所示執(zhí)行數(shù)據(jù)庫的檢索處理。
顯示設(shè)備412是一個用于顯示數(shù)據(jù)的設(shè)備,例如可以是一LCD(液晶顯示),一CRT(陰極射線管)等。輸入設(shè)備413是一輸入數(shù)據(jù)的設(shè)備,例如可以是一鍵盤,鼠標等。
程序存儲設(shè)備414包括如ROM或RAM等;存儲該裝置必需的程序,該裝置需要的程序可以是,數(shù)據(jù)庫加密程序,數(shù)據(jù)庫檢索程序等。
程序存儲設(shè)備414可以是除半導(dǎo)體存儲器外的磁和光存儲媒體。存儲媒體包括如便攜式媒體CD-ROM等和固定媒體如硬盤等。儲存在存儲媒體上的程序可設(shè)計成使部分或全部程序通過如網(wǎng)絡(luò)電路等的傳輸媒體從服務(wù)器或客戶傳送到傳輸控制單元。并且存儲媒體可以是網(wǎng)絡(luò)中提供的服務(wù)器的存儲媒體,而且程序可以通過如網(wǎng)絡(luò)電路等傳輸媒體傳輸?shù)椒?wù)器或客戶。
密鑰產(chǎn)生設(shè)備415是用以產(chǎn)生加密數(shù)據(jù)庫使用的加密密鑰的設(shè)備,在該實施例中它包括一基本密鑰產(chǎn)生單元415a,一行密鑰產(chǎn)生單元415b,一列密鑰產(chǎn)生單元415c,用于產(chǎn)生三個加密密鑰,即分別是基本密鑰,行密鑰和列密鑰。
數(shù)據(jù)存儲設(shè)備416存儲該裝置需要的各種數(shù)據(jù)和表格,它包括RAM,或例如磁盤設(shè)備等的外部存儲設(shè)備。數(shù)據(jù)存儲設(shè)備416包括基本密鑰參數(shù)表416a,基本密鑰存儲單元416b,密鑰規(guī)范表416c,加密數(shù)據(jù)存儲單元416d和檢索字符串存儲單元416e。
基本密鑰參數(shù)表416a是記錄基本密鑰參數(shù)值的表(參見圖13)?;久荑€存儲單元416b存儲操作員按指定操作獲得的基本密鑰參數(shù)值。密鑰規(guī)范表416c是存儲相關(guān)于數(shù)據(jù)庫(參考圖15)各列(字段)定義的加密系統(tǒng)類型(非加密,行密鑰,列密鑰)的表。加密數(shù)據(jù)存儲單元416d存儲加密的數(shù)據(jù)庫。檢索字符串存儲單元416e存儲檢索數(shù)據(jù)庫時由操作員指定的檢索字符串。
數(shù)據(jù)庫I/F417是一接口,用于向獨立于該裝置設(shè)置的外部數(shù)據(jù)庫存儲設(shè)備418傳送數(shù)據(jù)和從其接收數(shù)據(jù)。外部數(shù)據(jù)庫存儲設(shè)備418包含多個數(shù)據(jù)庫文件(原始數(shù)據(jù)),通過來自該裝置的訪問指定要選擇讀出的這些數(shù)據(jù)庫文件。
接著將描述將上述加密系統(tǒng)應(yīng)用于該裝置的數(shù)據(jù)庫的方法。
當加密數(shù)據(jù)庫時,如果將不同密鑰用于各行(記錄),會給解密密鑰造成困難。因而提高了安全性。但是因為加密的數(shù)據(jù)必須使用相關(guān)于各行的密鑰解密或當檢索數(shù)據(jù)庫時輸入的檢索數(shù)據(jù)必須使用相關(guān)于各行的密鑰加密,如果不同密鑰用于每一行,將花費長的時間獲得檢索結(jié)果。另方面,如果數(shù)據(jù)庫使用相關(guān)于各行(字段)的不同密鑰加密,檢索數(shù)據(jù)只使用對應(yīng)于要檢索的列項的密鑰加密,就會以高速檢索一數(shù)據(jù)庫。但是當在相同列中存在相同數(shù)據(jù)時,輸出相同加密結(jié)果,就可能解密該密鑰。
本發(fā)明的特點在于對檢索處理中頻繁使用的列項數(shù)據(jù)使用公用密鑰(列密鑰)加密,對其他列項的數(shù)據(jù)使用相關(guān)于各行的不同密鑰(行密鑰)加密,而不同于各行的密鑰(行密鑰)使用行中另外的公用密鑰(基本密鑰)加密。使用基本密鑰的加密處理(解密處理)可確定一預(yù)定的非線性函數(shù),并且加密(解密)處理是通過對該函數(shù)和用該函數(shù)產(chǎn)生的數(shù)學(xué)向量進行二進制運算(逆運算)執(zhí)行的。在該情況下的本發(fā)明加密/解密系統(tǒng)將在下面描述。
圖20說明一個實際舉例。
圖20說明本發(fā)明該裝置數(shù)據(jù)庫的配置;圖20(a)說明加密前的狀態(tài);圖20(b)說明加密后的狀態(tài);圖20(c)說明解密后的狀態(tài)。
如圖20(a)所示,該裝置加密按行和列矩陣形式設(shè)置的數(shù)據(jù)庫。在該例子中個人數(shù)據(jù)作為數(shù)據(jù)庫被處理。該數(shù)據(jù)庫包含的各列項(字段)為‘編號’,‘姓名’,‘州’,‘年齡’和‘電話’。
該數(shù)據(jù)庫使用列密鑰和行密鑰加密。即,當檢索處理中頻繁采用的列項包括‘州’和‘年齡’時,該列項各行數(shù)據(jù)(記錄)使用列項中公用列密鑰加密,而其他列項‘姓名’和‘電話’的各行數(shù)據(jù)使用相關(guān)于各行指定的行密鑰加密。這樣,該結(jié)果存儲在記錄文件中。此時,當對應(yīng)列項加密時采用的行密鑰使用基本密鑰加密,把加密的行密鑰加到各記錄,并存儲該結(jié)果。該列項‘編號’不加密。
圖20(b)說明使用列密鑰和行密鑰加密圖20(a)所示數(shù)據(jù)庫的結(jié)果。在此情況下例如‘線密鑰’(‘line key’)的列項被加入,并且行密鑰(9658,9143,8278,…)加入該列項。圖10所示的數(shù)據(jù)存儲設(shè)備416的加密數(shù)據(jù)存儲單元416(d)在圖20(b)所示狀態(tài)下存儲一數(shù)據(jù)庫。
當檢索數(shù)據(jù)庫時,檢索數(shù)據(jù)使用與檢索時使用的列項相對應(yīng)的列密鑰加密,然后執(zhí)行檢索處理。例如當檢索項‘州’中的‘佛羅里達’數(shù)據(jù)時,作為檢索數(shù)據(jù)輸入的‘佛羅里達’使用‘州’的列密鑰加密,由此得到‘h*/fDD’。為‘h*/fDD’的數(shù)據(jù)從‘州’列各行檢索出來。于是確定對應(yīng)于‘編號1002’和‘編號1008’的數(shù)據(jù)存在出現(xiàn)。
此外當把加密數(shù)據(jù)庫恢復(fù)為原來狀態(tài)時,使用加密處理中采用的列密鑰,行密鑰和基本密鑰。當如圖20(b)所示該數(shù)據(jù)使用數(shù)據(jù)庫加密處理中采用的列密鑰,行密鑰和基本密鑰解密時,如圖20(c)所示可獲得原來數(shù)據(jù)。
加密/解密數(shù)據(jù)庫的實際配置將描述如下。
圖11是本發(fā)明該裝置功能配置方框圖。
該裝置的輸入處理系統(tǒng)包括基本密鑰規(guī)范單元421,基本密鑰設(shè)定單元422,密鑰規(guī)范輸入單元423和密鑰規(guī)范設(shè)定單元424。該裝置加密處理系統(tǒng)包括數(shù)據(jù)讀取單元425,記錄輸入存儲器426,加密單元427,加密的記錄寫入存儲器428,和數(shù)據(jù)寫入單元429。該裝置的加密處理系統(tǒng)包括加密的記錄讀出存儲器430,解密單元431,記錄輸出存儲器432,和數(shù)據(jù)輸出單元433。此外,用到上述基本密鑰參數(shù)表416a,基本密鑰存儲單元416b,密鑰規(guī)范表416c和加密數(shù)據(jù)存儲單元416d?;久荑€參數(shù)表416a用于基本密鑰設(shè)定單元422?;久荑€存儲單元416b,密鑰規(guī)范表416c和加密數(shù)據(jù)存儲單元416d均用于加密單元427和解密單元431。
圖11所示的各類存儲器426,428,430和432是一寄存器組并設(shè)置在數(shù)據(jù)存儲設(shè)備416的預(yù)定區(qū)。
當使用該配置加密數(shù)據(jù)庫時,通過基本密鑰規(guī)范單元421按照操作員的操作指定基本密鑰?;久荑€設(shè)定單元422從基本密鑰參數(shù)表讀出由基本密鑰規(guī)范單元421規(guī)范的基本密鑰參數(shù)值,將它在基本密鑰存儲單元416b中設(shè)定。
實際上,如圖12所示通過基本密鑰設(shè)定對話規(guī)范該基本密鑰。該基本密鑰設(shè)定對話是一屏幕,用于由操作員選擇基本密鑰規(guī)范。在屏幕上設(shè)置基本密鑰規(guī)范按鈕單元441,OK按鈕442,取消按鈕443?;久荑€規(guī)范按鈕單元441包括多個按鈕。當操作員按壓這些按鈕中的一選擇按鈕時,基本密鑰參數(shù)值取決于按壓按鈕位置。OK按鈕442用于確?;久荑€的規(guī)范,而取消按鈕443用于取消該基本按鈕的規(guī)范。
例如,假定16個按鈕1到16從左到右順序地設(shè)置在基本密鑰規(guī)范按鈕單元441。如圖13所示基本按鈕參數(shù)值相應(yīng)于在基本密鑰參數(shù)表416a上這些按鈕的位置被定義。當操作員在基本密鑰規(guī)范按鈕單元441上按壓按鈕1時,根據(jù)基本密鑰參數(shù)表416a確定基本密鑰參數(shù)值為5。類似地,當按壓基本密鑰規(guī)范按鈕單元上的按鈕2時,確定基本密鑰參數(shù)值為7。
然后,外部數(shù)據(jù)庫存儲設(shè)備418被訪問,要加密的數(shù)據(jù)庫從存儲在外部數(shù)據(jù)庫存儲設(shè)備418中各種數(shù)據(jù)庫中指定。指定該數(shù)據(jù)庫后操作員通過密鑰規(guī)范輸入單元423為數(shù)據(jù)庫各數(shù)據(jù)項指定一密鑰規(guī)范。該密鑰規(guī)范設(shè)定單元424通過密鑰規(guī)范輸入單元423按照密鑰規(guī)范指定的操作輸入密鑰規(guī)范表416c中的密鑰規(guī)范信息。
實際上如圖14所示,密鑰規(guī)范通過密鑰規(guī)范設(shè)定對話輸入。密鑰規(guī)范設(shè)定對話是一屏幕,在其上操作員對數(shù)據(jù)庫各矩陣項(字段)選擇地指定加密系統(tǒng)(在加密時使用的密鑰類型)。在屏幕上設(shè)置有加密系統(tǒng)規(guī)范列451,OK按鈕452和一取消按鈕453。
作為一加密系統(tǒng),每行可用一密鑰(行密鑰),或可以用各列中的公用密鑰(行密鑰)。在該例中,一值能輸入到加密系統(tǒng)規(guī)范列451作為用于數(shù)據(jù)庫各列項的加密系統(tǒng)。該值可以是0(非加密),1(行密鑰),或2(列密鑰)。OK按鈕452用于設(shè)定密鑰規(guī)范。取消按鈕453用于取消設(shè)定的密鑰規(guī)范。當加密系統(tǒng)在密鑰規(guī)范設(shè)定對話中指定時,規(guī)范內(nèi)容作為用于各列項的密鑰規(guī)范信息輸入密鑰規(guī)范表416c。
圖15表示密鑰規(guī)范表416c中條目的舉例。
在該例中,數(shù)據(jù)庫列編號1的項設(shè)定為非加密,列編號2的項設(shè)定為行密鑰,列編號3的項設(shè)定為列密鑰,列編號4的項設(shè)定為列密鑰,列編號5的項設(shè)定為列密鑰。具有列編號1的項是‘編碼’。具有列編號2的項是‘姓名’,具有列編號3的項是‘州’,具有列編號4的項是‘年齡’,列編號為5的項是‘電話’。
當基本密鑰在基本密鑰存儲單元416b中設(shè)定,且當用于各列項的密鑰規(guī)范信息在密鑰規(guī)范信息表416c中設(shè)定時,根據(jù)該設(shè)定信息數(shù)據(jù)按下面步驟加密。
即,如圖11所示由外部數(shù)據(jù)庫存儲設(shè)備418指定的數(shù)據(jù)庫由數(shù)據(jù)讀單元425按行單元(記錄單元)讀出,并順序地存儲在記錄輸入存儲器426中。加密單元427利用基本密鑰參數(shù)表416a和基本密鑰存儲單元416b加密存儲在記錄輸入存儲器426中的記錄。
參考圖6將加密處理詳細描述如下。
由加密單元427加密一記錄后,將其存儲在加密記錄寫入存儲器428。通過數(shù)據(jù)寫入單元429寫入加密數(shù)據(jù)存儲單元416d。于是在加密數(shù)據(jù)存儲單元416d中產(chǎn)生加密數(shù)據(jù)庫。
按照逆步驟解密數(shù)據(jù)庫。
即,首先,將存儲在加密數(shù)據(jù)存儲單元416d中的加密數(shù)據(jù)庫按行單元(記錄單元)讀出,順序地存儲在加密記錄讀出存儲器430。解密單元431利用密鑰規(guī)范表416c和基本密鑰存儲單元416b解密存儲在加密記錄讀出存儲器430中的加密記錄。解密處理將參考圖16詳細描述。由解密單元431解密的記錄存儲在記錄輸出存儲器432,然后通過數(shù)據(jù)輸出單元433輸出到數(shù)據(jù)文件434。于是,在數(shù)據(jù)文件434中產(chǎn)生解密數(shù)據(jù)庫。如圖10所示數(shù)據(jù)文件設(shè)置在數(shù)據(jù)存儲設(shè)備416的預(yù)定區(qū)中。
圖16說明一實例。
圖16說明根據(jù)本發(fā)明的該裝置加密和解密數(shù)據(jù)庫時的流程。
假設(shè)指定要加密的數(shù)據(jù)庫行1的記錄由數(shù)據(jù)讀單元425讀出,并存儲在記錄輸入存儲器426中。在該情況,利用圖20(a)所示數(shù)據(jù)庫為例,數(shù)據(jù)含5項,即,‘1001’,‘約翰’,‘紐約’,‘22’,‘407-228-6611’,位于數(shù)據(jù)庫行1被順序存儲在記錄輸入存儲器426中。
加密單元427參照密鑰規(guī)范表416c加密相關(guān)于各項的5項記錄。例如圖15示出了在密鑰規(guī)范表416c中設(shè)定的內(nèi)容,相應(yīng)于列編號1記錄的第一項數(shù)據(jù)(‘編號’)不加密,照原樣寫到加密記錄寫存儲器428中。
此外,相應(yīng)于列編號2記錄的第二項數(shù)據(jù)(‘姓名’)用行密鑰加密并寫到加密記錄寫存儲器428。行密鑰利用行編號和隨機號隨機產(chǎn)生,并將不同值用于各行。相應(yīng)于列編號3記錄的第三項(‘州’),數(shù)據(jù)利用列密鑰加密。該列密鑰具有在列中的公用值。
類似地相應(yīng)于列編號4記錄的第4項(‘年齡’)數(shù)據(jù)利用列密鑰加密,相應(yīng)于列編號5記錄的第5項(‘電話’)數(shù)據(jù)利用行密鑰加密。然后將他們寫到加密記錄寫存儲器428。于是,在加密記錄寫存儲器428中產(chǎn)生1行加密數(shù)據(jù)為‘1001’,‘wjls’,‘noevjolc’,‘jh’,和‘jgdltytfhDSK’。
進一步,加密單元427利用在基本密鑰存儲單元416b設(shè)定的參數(shù)值和行中公用的基本密鑰加密加密記錄時用過的行密鑰,然后把加密后的行密鑰加到加密記錄寫存儲器428中。在圖16的該例中數(shù)據(jù)‘9658’是加密后的行密鑰。
上述處理在數(shù)據(jù)庫各行重復(fù)執(zhí)行,加密的數(shù)據(jù)庫存儲在加密數(shù)據(jù)存儲單元416d中,圖20(b)示出該狀態(tài)如下。
當執(zhí)行解密處理時執(zhí)行與加密處理相反的處理。
即,把存儲在加密數(shù)據(jù)存儲單元416d中的加密數(shù)據(jù)庫按記錄單元讀出到加密記錄讀出存儲器430。假定行1的加密記錄讀出到加密記錄讀存儲器430中。在上述例中,含有行密鑰的6項加密數(shù)據(jù)即‘1001’,‘wjls’,‘noevjolc’,‘jh’,‘jgdltytfhDSK’,和‘9658’順序存儲在加密記錄讀存儲器430中。
解密單元431參照密鑰規(guī)范表416c相應(yīng)于各項解密該6項數(shù)據(jù)記錄。在圖15的示例中,相應(yīng)于列編號1的第一項(‘編號’)數(shù)據(jù)為非加密,該數(shù)據(jù)照原樣寫到記錄輸出存儲器432中。
相應(yīng)于列編號2的第二項(‘姓名’)數(shù)據(jù)利用行密鑰解密,將其結(jié)果寫到記錄輸出存儲器432。因為行密鑰在加密處理時是利用基本密鑰加密的,該行密鑰利用該基本密鑰解密以便恢復(fù)為原來的數(shù)據(jù)。此外,相應(yīng)于列編號3的第三項(‘州’)數(shù)據(jù)利用列密鑰解密并寫到記錄輸出存儲器432。
類似地相應(yīng)于列編號4的第四項(‘年齡’)數(shù)據(jù)利用列密鑰解密,相應(yīng)于列編號5的第四項(‘年齡’)數(shù)據(jù)利用行密鑰解密。該些結(jié)果均寫到記錄輸出存儲器432。因而在記錄輸出存儲器432中產(chǎn)生1行解密數(shù)據(jù)(原始數(shù)據(jù)),即,‘1001’,‘約翰’,‘22’,‘州’,‘407-228-6611’。
上述處理在加密數(shù)據(jù)庫各行重復(fù)執(zhí)行,并將解密數(shù)據(jù)庫存儲在數(shù)據(jù)文件434中,圖20(c)說明了該狀態(tài)。
根據(jù)本發(fā)明該裝置的操作將參考流程圖描述如下。
在該例中,對加密數(shù)據(jù)庫時執(zhí)行的處理(a)和檢索數(shù)據(jù)庫時執(zhí)行的處理(b)分別進行描述。用于實現(xiàn)流程中各功能的程序是CPU可讀程序代碼儲存在程序存儲設(shè)備414的存儲媒體中。程序可作為程序代碼通過如網(wǎng)絡(luò)電路的傳輸媒體可進行傳輸。
(a)當加密數(shù)據(jù)庫時圖17A和17B是本發(fā)明的該裝置執(zhí)行數(shù)據(jù)庫加密處理操作的流程圖。假定非加密數(shù)據(jù)庫存儲在外部數(shù)據(jù)庫存儲設(shè)備418中。圖17A示出該狀態(tài)。
如圖17A(步驟N11)當加密數(shù)據(jù)庫時,首先設(shè)定基本密鑰。如上所述基本密鑰通過基本密鑰設(shè)定對話設(shè)定。
即,如圖17B流程圖所示,當加密數(shù)據(jù)庫時圖12所示基本密鑰設(shè)定對話顯示在顯示設(shè)備412上(步驟O11)。該基本密鑰設(shè)定對話用基本密鑰規(guī)范按鈕441提供,操作員在多個設(shè)置在基本密鑰規(guī)范按鈕單元441的按鈕中按壓選擇的按鈕用以指定一基本密鑰。在操作員按壓基本密鑰規(guī)范按鈕441中選擇的按鈕后,如果操作員按壓OK按鈕452就指定了一個基本密鑰(步驟O12),然后如圖13所示,從基本密鑰參數(shù)表416a讀出相應(yīng)于該按鈕位置的基本密鑰參數(shù)值,并在基本密鑰存儲單元416b中設(shè)定(步驟O13)。
然后,指定要加密的數(shù)據(jù)庫。根據(jù)本發(fā)明,與本裝置無關(guān)的外部數(shù)據(jù)庫存儲設(shè)備418存儲各種數(shù)據(jù)庫(原始數(shù)據(jù))。因此,當執(zhí)行加密處理時,外部數(shù)據(jù)庫存儲單元418通過數(shù)據(jù)庫I/F417被訪問,要加密的數(shù)據(jù)庫應(yīng)被指定。
指定要加密的數(shù)據(jù)庫后,設(shè)定該數(shù)據(jù)庫檢索處理用的列項和設(shè)定非加密列項(步驟N13)。并確定相關(guān)于各列項的加密密鑰(行密鑰和列密鑰)(步驟N14)。
如圖14所示通過密鑰規(guī)范設(shè)定對話執(zhí)行設(shè)定處理。該密鑰規(guī)范設(shè)定對話是一屏幕,由操作員在其上對于數(shù)據(jù)庫各列(字段)選擇地指定一加密系統(tǒng)(用在加密中的密鑰類型)。當指定要加密的數(shù)據(jù)庫時該屏幕顯示在顯示設(shè)備412上。在該例中,如圖13所示,可將一作為相關(guān)于數(shù)據(jù)庫各列項的加密系統(tǒng)的值輸入到密鑰規(guī)范設(shè)定對話的加密系統(tǒng)規(guī)范列451。該值可以是0(非加密),1(行密鑰),或2(列密鑰)。
在該情況下,圖20(a)所示的數(shù)據(jù)庫中,用在檢索處理的列項為列3是‘州’,列4是‘年齡’。并為該些列項指定為列密鑰,為其他的項列2的‘姓名’和列5的‘電話’指定行密鑰。非加密列項是列1‘編號’。
設(shè)定操作后加密數(shù)據(jù)庫操作如下所述。
即,如圖11所示,該數(shù)據(jù)庫各行數(shù)據(jù)順序地從第一行起讀到記錄輸入存儲器426(步驟N15)。此時由基于由密鑰產(chǎn)生設(shè)備415的行密鑰產(chǎn)生單元415b賦值各行的行數(shù)和隨機數(shù)隨機地產(chǎn)生行密鑰,并且將該行密鑰存儲在數(shù)據(jù)存儲設(shè)備416的預(yù)定區(qū)(步驟N16)。
讀到記錄輸入存儲器426的行數(shù)據(jù)的各列項順序地從第一列起被指定(步驟N17),并根據(jù)存儲在密鑰規(guī)范表416c中的密鑰規(guī)范信息確定相關(guān)于指定列項的加密系統(tǒng)(步驟N18),并利用一個行密鑰或1個列密鑰加密(步驟N19到N22)。
實際上,因為該數(shù)據(jù)庫第一列項‘編號’在圖15所示密鑰規(guī)范表416c上設(shè)定為非加密,不采取行動(步驟N18,N23)所以項‘編號’保持原數(shù)據(jù)。
因為相關(guān)于第二行中的項‘姓名’設(shè)定了1行密鑰,相應(yīng)于步驟N16產(chǎn)生的該行編號的該行密鑰(指定給各行),并從數(shù)據(jù)存儲設(shè)備416的預(yù)定區(qū)讀出(步驟N18,N21),然后利用該行密鑰加密第二列的數(shù)據(jù)(步驟N22)。
此外,因為相關(guān)于第三列項‘州’設(shè)定了一個列密鑰,相應(yīng)于該列編號的該列密鑰(列中公用密鑰)通過密鑰產(chǎn)生設(shè)備415的列密鑰產(chǎn)生單元415c產(chǎn)生(步驟N18和N19),并利用該列密鑰加密第三列中數(shù)據(jù)(步驟N20)。
類似地,第4列的項‘年齡’利用列密鑰加密,而第5列的項‘電話’利用行密鑰加密。
如圖11所示各列項加密數(shù)據(jù)存儲在加密記錄寫存儲器428。當加密最后項時,該行密鑰利用基本密鑰加密,該行密鑰是在行數(shù)據(jù)的第二和第三列進行加密時采用的行密鑰。并將其加到密鑰記錄寫存儲器428(步驟N25)。該基本密鑰由密鑰產(chǎn)生設(shè)備415的基本密鑰產(chǎn)生單元415a產(chǎn)生。該基本密鑰產(chǎn)生單元415a從基本密鑰存儲單元416b讀出如圖12所示的基本密鑰設(shè)定對話,由操作員設(shè)定參數(shù)值,并產(chǎn)生基于該參數(shù)值的一基本密鑰。
當通過利用基本密鑰加密行密鑰獲得的1行加密數(shù)據(jù)和數(shù)據(jù)存儲在加密記錄寫存儲器428時,該數(shù)據(jù)存儲在加密數(shù)據(jù)存儲單元416d(步驟N25)中。
上述加密處理在各行重復(fù)執(zhí)行(步驟N26到N15)。當所有行數(shù)據(jù)全加密時,加密數(shù)據(jù)庫的最終狀態(tài)如圖20(b)所示。在該加密數(shù)據(jù)庫中,利用基本密鑰加密行密鑰,并加到各行的最后項。
(b)當檢索數(shù)據(jù)庫時檢索加密數(shù)據(jù)庫的處理將描述如下。
圖18A和18B是本裝置執(zhí)行的數(shù)據(jù)庫檢索處理操作流程圖。假定數(shù)據(jù)庫在上述(a)所示加密處理中被加密,并存儲在基本密鑰存儲單元416b中。
首先,如圖18A的流程圖所示,檢索信息在圖18A未示出的數(shù)據(jù)庫檢索設(shè)定屏幕上輸入(步驟P11)。輸入的檢索信息指示輸入檢索列項和檢索字符串(關(guān)鍵詞)。輸入信息存儲在數(shù)據(jù)存儲設(shè)備416的預(yù)定區(qū)。當檢索信息通過輸入設(shè)備413輸入時,執(zhí)行預(yù)檢索處理(步驟P12)。
在預(yù)檢索處理時,如圖18B所示,判定輸入的檢索列項是否一預(yù)定列項(步驟Q11)。當判定輸入項是預(yù)定的列項時(步驟Q11為是),用列項中公用列密鑰加密檢索字符串(步驟Q12)。
預(yù)定列項指示一個在加密數(shù)據(jù)庫時設(shè)定的檢索項。實際上它指示‘州’和‘年齡’的各項。相關(guān)于檢索項設(shè)定一列項。因此,判定一輸入項是否一預(yù)定列項,該判定取決于參照密鑰規(guī)范表416c對相應(yīng)列項設(shè)定的密鑰類型。如果輸入項是預(yù)定列項,然后由密鑰產(chǎn)生設(shè)備415的列密鑰產(chǎn)生單元415c產(chǎn)生相應(yīng)于該列項的一列密鑰,并利用該列密鑰加密檢索字符串。
如果輸入的檢索列項不是預(yù)定列項(步驟Q11為否),然后如上所述檢索字符不加密。
在上述的預(yù)檢索處理后,檢索數(shù)據(jù)庫(參考圖19A和19B)(步驟P13),和作為檢索結(jié)果獲得的數(shù)據(jù)顯示在顯示設(shè)備412上(步驟P14) 。
圖19A和19B是步驟P13檢索處理實際操作的流程圖。
首先,如圖19A流程圖所示,將一檢索字符串設(shè)定為與數(shù)據(jù)存儲設(shè)備416的檢索字符串存儲單元416e中的數(shù)據(jù)庫相比較的字符串(步驟R11)。在該情況下,如果輸入項是檢索列項(‘州’,‘年齡’),然后將檢索字符串利用相應(yīng)于預(yù)檢索處理中列項的列密鑰加密和將該結(jié)果在檢索字符串存儲單元416e中設(shè)定。如果輸入項不是檢索列項,則不加密該輸入項,并照原樣將其設(shè)定在檢索字符串存儲單元416e中。
接著,基于該列編號確定存儲在數(shù)據(jù)存儲設(shè)備416的基本密鑰參數(shù)表416a中的加密系統(tǒng)(步驟R12)。如果檢索項是利用一個列密鑰加密的預(yù)定列項,順序掃描目標列中各行數(shù)據(jù)(步驟R12和R13),并將該行的加密字符串與設(shè)定在檢索字符串存儲單元的檢索字符串(加密字符串)相比較(步驟R14)。
在該比較處理中,將從數(shù)據(jù)庫檢索的行加密字符串與該加密的檢索字符串比較如圖19B流程圖所示,并判定他們是否匹配(步驟S11)。如果他們互相匹配(在步驟S11為是),則將包括匹配項的記錄數(shù)據(jù)提取出來作為數(shù)據(jù)庫檢索結(jié)果(步驟S12)。
重復(fù)該處理直到加密數(shù)據(jù)庫結(jié)束。相應(yīng)的數(shù)據(jù)順序地被提取(步驟R15),并將提取的數(shù)據(jù)作為檢索結(jié)果輸出(步驟R21)。
實際上,在如圖20(b)所示加密數(shù)據(jù)庫的示例中,當指定檢索‘州’項中數(shù)據(jù)‘佛羅里達’時把作為檢索數(shù)據(jù)輸入的‘佛羅里達’利用列3中‘州’的列密鑰加密,由此獲得‘h*/fDD’。數(shù)據(jù)‘h*/fDD’是從‘州’列中檢索出的。于是對應(yīng)于1001和1008的編號的數(shù)據(jù)出現(xiàn)。
當檢索項是利用行密鑰加密的列項時,順序掃描目標列行數(shù)據(jù)(步驟R12,R16)。因為當加密每個行數(shù)據(jù)時所用的每個行密鑰是用基本密鑰加密的,所以解密每個行密鑰時必須利用基本密鑰(步驟R17)。當利用基本密鑰解密各行密鑰時,各行加密字符串利用行密鑰解密(步驟R18),并將解密字符串與設(shè)定在檢索字符串存儲區(qū)416e中的檢索字符串(非加密字符串)相比較(步驟R19)。
在比較處理中,把從數(shù)據(jù)庫檢索的該行加密字符串與加密的檢索字符串相比較如圖19B流程圖所示,并判定他們是否匹配(步驟S11)。如果他們互相匹配(在步驟S11為是),則將包括該匹配項的記錄數(shù)據(jù)作為數(shù)據(jù)庫檢索結(jié)果提取出來(步驟S12)。
重復(fù)該處理直到加密數(shù)據(jù)庫結(jié)束。順序提取相應(yīng)的數(shù)據(jù)(步驟R20)。并把提取的數(shù)據(jù)作為檢索結(jié)果輸出(步驟R21)。
實際上如圖20(b)加密數(shù)據(jù)庫示例中,當指定檢索項‘姓名’中數(shù)據(jù)‘約翰’時,對應(yīng)于‘姓名’行1的行密鑰‘9658’(加密數(shù)據(jù))利用基本密鑰解密,并且行1的‘WJIS’利用行密鑰解密,由此獲得數(shù)據(jù)‘約翰’。類似地,對應(yīng)于各行的行密鑰(加密數(shù)據(jù))利用基本密鑰解密后,通過利用行密鑰解密各行數(shù)據(jù)獲得原始數(shù)據(jù)。如圖20(c)所示,利用各行密鑰解密項‘姓名’各行數(shù)據(jù)后,從解密數(shù)據(jù)檢索出作為與檢索數(shù)據(jù)輸入的‘約翰’符合的數(shù)據(jù)。于是確定對應(yīng)于‘1001’騙號的數(shù)據(jù)存在。
因而,當加密數(shù)據(jù)庫時,利用公用列密鑰來加密檢索處理中所用的預(yù)定列項以使檢索數(shù)據(jù)能利用檢索處理中的公用列密鑰加密,并與數(shù)據(jù)庫中的加密數(shù)據(jù)相比較,由此實現(xiàn)了高速的檢索處理。
根據(jù)該第四實施例,本發(fā)明數(shù)據(jù)庫被設(shè)計在設(shè)備單元,但可通過把終端分為數(shù)據(jù)庫管理的終端和數(shù)據(jù)庫檢索終端,將數(shù)據(jù)庫設(shè)計在終端單元。
根據(jù)本發(fā)明的第五實施例的數(shù)據(jù)庫系統(tǒng)將描述如下。
圖21是根據(jù)第五實施例的數(shù)據(jù)庫系統(tǒng)配置方框圖。
本系統(tǒng)包括服務(wù)設(shè)備1100和多個(本例中為3個終端)便攜終端1200a,1200b,1200c,…服務(wù)設(shè)備1100與各便攜終端1200a,1200b,1200c,…聯(lián)機通信,并且他們通過存儲媒體1400a,1400b,1400c,…傳遞數(shù)據(jù)。
服務(wù)設(shè)備1100用作服務(wù)器用于提供數(shù)據(jù)庫服務(wù),它包括分布數(shù)據(jù)收集設(shè)備1101,用于收集分布到各終端的數(shù)據(jù);一加密設(shè)備1102,用于加密一數(shù)據(jù)庫,一AP軟件存儲單元1103,用于存儲各種應(yīng)用軟件(AP);和一數(shù)據(jù)庫存儲單元1104,用于存儲各種數(shù)據(jù)庫。AP軟件存儲單元1103和數(shù)據(jù)庫存儲單元1104可以是象磁盤設(shè)備等的數(shù)據(jù)存儲設(shè)備。此外,該服務(wù)沒備1100也可包括通常為通用計算機提供的顯示設(shè)備和輸入設(shè)備等。(未在附圖中示出)。
另一方面,便攜終端1200a,1200b,1200c,…用作客戶機,用于接收來自服務(wù)設(shè)備的數(shù)據(jù)庫。
便攜終端1200a,包括解密設(shè)備1201a,用于解密加密的數(shù)據(jù)庫;數(shù)據(jù)庫檢索設(shè)備1202a,用于檢索數(shù)據(jù)庫。便攜終端1200b和1200c具有類似的配置,并分別包括解密設(shè)備1201b和1201c;數(shù)據(jù)庫檢索設(shè)備1202b和1202c。向便攜終端1200a,1200b,1200c,…提供媒體讀出的設(shè)備還有顯示設(shè)備,輸入設(shè)備等,雖然他們未在附圖中示出。該些便攜終端1200a,1200b,1200c…不具有聯(lián)機觀看數(shù)據(jù)的瀏覽功能。但通過存儲媒體1400a,,400b,1400c,…可與服務(wù)設(shè)備1100傳遞數(shù)據(jù)。
存儲媒體1400a,1400b,1400c,…是例如含有CF卡(致密閃速存儲器卡)的存儲媒體??ㄗx寫器1300是用于向存儲媒體1400a,1400b,1400c,…寫入數(shù)據(jù)和從其讀出數(shù)據(jù)的設(shè)備,并且它連到服務(wù)設(shè)備1100。
按該配置,服務(wù)設(shè)備1100讀出由操作員從數(shù)據(jù)庫存儲單元1104的各種數(shù)據(jù)庫中指定的數(shù)據(jù)庫,并通過加密設(shè)備1102加密。在該情況下,加密設(shè)備1102按照與第四實施例采用的方法相同的方法加密數(shù)據(jù)庫。即,在檢索處理中使用的預(yù)定列項用公用列密鑰加密,同時列項而非預(yù)定列項用相關(guān)于各行的不同密鑰加密,并且行密鑰用基本密鑰加密。
由加密設(shè)備1102加密的數(shù)據(jù)庫存儲在文件中,而加密的數(shù)據(jù)文件使用卡讀寫器1300存儲在存儲媒體1400a,1400b,1400c,…例如CF卡等中。在此情況下,當加密數(shù)據(jù)文件存儲在存儲媒體1400a,1400b,1400c,…時,如圖22所示,除了加密數(shù)據(jù)文件1402,密鑰規(guī)范表1403,基本密鑰參數(shù)表1404,和應(yīng)用程序1401也均被存儲。
密鑰規(guī)范表1403是用于儲存相關(guān)于數(shù)據(jù)庫各列(字段)限定的加密系統(tǒng)類型(非加密,行密鑰,列密鑰)的表。并且有類似于第四實施例(參考圖15)密鑰規(guī)范表416c配置的配置。基本密鑰參數(shù)表1404是輸入基本密鑰參數(shù)值的表,并具有與第五實施例基本密鑰參數(shù)表配置類似的配置(參考圖13)。密鑰規(guī)范表1403和基本密鑰參數(shù)表1404均存儲在加密設(shè)備1102中。應(yīng)用程序1401在數(shù)據(jù)庫檢索時使用,并存儲在應(yīng)用軟件存儲單元1103中。
存儲媒體1400a,1400b,1400c,…分別分布到便攜終端1200a,1200b,1200c,…,各用戶通過把分配的媒體1400a,1400b,1400c,…插入她或他自己的終端可檢索數(shù)據(jù)。
即,例如便攜終端1200a插入分布存儲媒體1400a并讀出存儲在存儲媒體1400a中的密鑰規(guī)范表1403和基本密鑰參數(shù)表1404,還有應(yīng)用程序1401和加密數(shù)據(jù)文件1402,用于數(shù)據(jù)檢索處理。然后用于數(shù)據(jù)檢索處理的應(yīng)用程序1401被啟動,指定一個預(yù)定列項,檢索加密的數(shù)據(jù)文件1402,并解密和顯示作為檢索結(jié)果獲得的數(shù)據(jù)。
數(shù)據(jù)檢索處理由提供在便攜終端1200a中的數(shù)據(jù)庫檢索設(shè)備1202a執(zhí)行。數(shù)據(jù)庫檢索設(shè)備1202a是根據(jù)應(yīng)用程序1401操作的。并類似于第四實施例的數(shù)據(jù)庫檢索設(shè)備。數(shù)據(jù)通過解密設(shè)備1201a解密。解密設(shè)備1201a參照基本密鑰參數(shù)表1404和密鑰規(guī)范表1403執(zhí)行如第四實施例中的處理的數(shù)據(jù)庫解密處理。
由此,如果數(shù)據(jù)庫系統(tǒng)由與數(shù)據(jù)庫檢索終端無關(guān)的數(shù)據(jù)庫管理終端設(shè)計,因而用戶管理的數(shù)據(jù)庫能被加密并存儲在存儲媒體,并分配給銷售的人。由此銷售人能利用另外終端檢索數(shù)據(jù)。在此情況下因為存儲在存儲媒體的數(shù)據(jù)庫是按上述方法加密的,所以數(shù)據(jù)的安全得到了保證。該存儲媒體不僅存儲加密數(shù)據(jù)文件而且存儲數(shù)據(jù)檢索應(yīng)用程序。因此沒有必要給便攜終端配置數(shù)據(jù)檢索應(yīng)用程序。該系統(tǒng)用簡單便攜終端能夠?qū)崿F(xiàn)。
依據(jù)該數(shù)據(jù)庫管理裝置,列項而不是預(yù)定列項數(shù)據(jù)在執(zhí)行檢索處理時被使用,該列項利用相關(guān)于各行的不同密鑰被加密,而加密該列項時使用的密鑰用另外密鑰加密,由此使密鑰的解密復(fù)雜并實現(xiàn)了高安全性。
用在數(shù)據(jù)庫管理裝置中的加密/解密系統(tǒng)將描述如下。
圖23說明加密數(shù)據(jù)通信系統(tǒng)配置原理,圖23中11a,11b是個人計算機(后面稱為PC),12a,12b是安全設(shè)備。在該例中,數(shù)據(jù)通信建立在用戶A的PC11a和用戶B的PC11b之間。
PC11a和PC11b是通用計算機,并且他們分別都連到安全設(shè)備12a和12b。安全設(shè)備12a和12b包括IC卡。當他們從工廠交付使用時,信息寫入了安全設(shè)備12a和12b中。該信息包括IC卡生產(chǎn)號,一組中各成員的用戶ID,和加密密鑰(私有密鑰P1,P2),該信息在一組成員中共用,但不公用。
圖24是PC11a電路和安全設(shè)備12a配置的方框圖。PC11b和安全設(shè)備12b具有與PC11a和安全設(shè)備12a相同的配置。
PC11a是通用計算機包括CPU21;并通過調(diào)用主程序處理數(shù)據(jù)。存儲設(shè)備22,RAM23,鍵盤24,顯示單元25和卡I/F(接口)26通過系統(tǒng)總線都連到CPU21。
存儲設(shè)備22包括例如硬盤設(shè)備,軟盤設(shè)備,CD-ROM設(shè)備等并存儲各種數(shù)據(jù)、程序等。該例中,它存儲要加密的原文數(shù)據(jù),后面將描述的鑒別文件等。另外存儲在存儲媒體(盤等)的程序安裝在存儲設(shè)備22中。CPU21讀出安裝在存儲設(shè)備22中的程序,并依據(jù)該程序執(zhí)行一處理。
RAM23用作本發(fā)明該裝置的主存儲器,并存儲該裝置執(zhí)行處理時需要的各種數(shù)據(jù)。鍵盤24是輸入設(shè)備,用于輸入數(shù)據(jù)和傳送各種功能的指令。顯示單元25例如包括CRT(陰極射線管),LCD(液晶顯示)等,是一個用于顯示數(shù)據(jù)的顯示設(shè)備。
卡I/F26通過連接器27連到安全設(shè)備12a,并控制輸入數(shù)據(jù)到安全設(shè)備12a和從安全設(shè)備12a輸出數(shù)據(jù)。
安全設(shè)備12a包括IC卡和CPU31,并通過調(diào)用二級程序處理數(shù)據(jù)。ROM32,RAM33和閃速存儲器36通過系統(tǒng)總線連到CPU31。
ROM32儲存用于實現(xiàn)安全設(shè)備12a功能的二級程序。RAM33儲存安全設(shè)備12a執(zhí)行處理需要的各種數(shù)據(jù),該例中它包括輸入緩沖器34用于臨時存儲從PC11a傳送的數(shù)據(jù),輸出緩沖器35用于臨時存儲向PC11a傳送的數(shù)據(jù)。
閃速存儲器36用作存儲設(shè)備,用于存儲圖25示出的數(shù)據(jù)庫41。如圖25所示,數(shù)據(jù)庫41包括成員中共用信息(非公用信息)和指定給各成員的信息(公用信息)。成員中共用信息(非公用信息)包括生產(chǎn)號,該組各成員用戶ID,和加密密鑰數(shù)據(jù)(私有密鑰P1,P2)指定給各成員的信息(公用信息)包括加密密鑰數(shù)據(jù)(公用密鑰P3,P4)和口令,口令用作部分公用密鑰。
連接器37用于電連接安全設(shè)備12a到PC11a,當加密數(shù)據(jù)通信設(shè)置在該系統(tǒng)時,其執(zhí)行的操作將簡述如下(圖23)。
首先,將用作IC卡的安全設(shè)備12a和12b傳送到一組中各成員。安全設(shè)備12a和12b具有事先輸入了生產(chǎn)號,一組每個成員的用戶ID,加密密鑰數(shù)據(jù)(私有密鑰P1、P2)的數(shù)據(jù)庫41。
各成員將加密密鑰(公用密鑰P3、P4)和口令寫到安全設(shè)備12a和12b。寫入的信息存儲在數(shù)據(jù)庫41公用部分。
當加密數(shù)據(jù)從PC11a傳送到PC11b時,各成員(用戶A和B)分別將安全設(shè)備12a和12b插入到PC11a和PC11b以執(zhí)行加密處理。在此情況下,依據(jù)本發(fā)明,加密算法依據(jù)下面描述的向量的產(chǎn)生。
此時,用于確定產(chǎn)生向量的非線性函數(shù)的參數(shù)(后面也稱為‘常數(shù)’)由加密密鑰(私有和公用密鑰)決定。加密文獻和公用密鑰一起傳送給通信者。在接收側(cè),利用接收的公用密鑰和接收機的私有密鑰,用相同的非線性函數(shù)產(chǎn)生的向量解密加密文獻。
下面描述該實施例的操作。在該實施例中,參照如圖23所示PC11a和安全設(shè)備12a,該處理操作用以下兩種模式分別描述(a)用戶條目和(b)數(shù)據(jù)加密。
(a)用戶條目首先,當用戶利用安全設(shè)備12a建立加密數(shù)據(jù)通信時用戶形成用戶條目。即,賦有安全設(shè)備12a(IC卡)值的成員把有關(guān)圖25示出的公用部分輸入他或她自己的PC11a。
圖26(a)和26(b)是當用戶進入完成時PC11a和安全設(shè)備執(zhí)行處理的操作流程圖。
用戶通過PC11a上的主程序輸入用戶鑒別數(shù)據(jù)到PC11a。在該情況下,用戶鑒別數(shù)據(jù)指示一用戶ID。主程序把輸入的用戶ID輸入給安全設(shè)備12a的輸入緩沖器34(步驟A12)。然后它傳送控制到安全設(shè)備12a的二級程序。
在安全設(shè)備12a側(cè)當程序確認儲存在輸入緩沖器34中的該數(shù)據(jù)時,讀出該數(shù)據(jù)(步驟B11)。然后二級程序訪問安全設(shè)備12a的閃速存儲器36,并檢查作為用戶鑒別數(shù)據(jù)輸入的用戶ID是否已輸入存儲在閃速存儲器36中的數(shù)據(jù)庫41。其結(jié)果是如果用戶ID還沒有輸入數(shù)據(jù)庫41(在步驟B12為否),則判定該用戶不是該組成員并處理結(jié)束(步驟B13)。
如果用戶ID已輸入數(shù)據(jù)庫41(在步驟B12為是),則判定該用戶是該組成員,并請求用戶通過PC11a輸入他或她的口令和加密密鑰(公用密鑰)(步驟14)。
為響應(yīng)該請求,用戶輸入他或她的口令和加密密鑰(公用密鑰)(步驟A13)。PC11a的主程序傳送輸入的口令和加密密鑰(公用密鑰)到安全設(shè)備12a的輸入緩沖器34(步驟A14)??诹钣米鞴妹荑€的一部分。
當從驗證為組成員的用戶輸入口令和加密密鑰(公用密鑰)時,安全設(shè)備12a的二級程序讀出該輸入的信息,需要時將它解密,并把該結(jié)果寫到儲存在閃速存儲器36中的數(shù)據(jù)庫41(步驟B15)。
此時,確定在加密處理中由用戶使用的非線性函數(shù)。用在該函數(shù)中的多個常數(shù)由密鑰確定。根據(jù)本發(fā)明的一實施例,多維向量產(chǎn)生函數(shù)用作非線性函數(shù),將在下面詳細描述。
在處理該信息后,二級程序產(chǎn)生一數(shù)據(jù)庫41報表(步驟B16),將它儲存在安全設(shè)備12a的輸出緩沖器35中,并向主程序傳送控制(步驟B17)。
當用戶驗證處理完成時,由主程序使用的加密數(shù)據(jù)寫到上述報表。在PC11a側(cè),主程序確認存儲在安全設(shè)備12a的輸出緩沖器35中的數(shù)據(jù),讀出該數(shù)據(jù),將它作為文件數(shù)據(jù)寫到存儲設(shè)備22(步驟A15)。寫入的文件數(shù)據(jù)作為驗證文件,當以后建立加密數(shù)據(jù)通信時,用于用戶的驗證檢驗(步驟A16)。
(b)數(shù)據(jù)加密數(shù)據(jù)加密實際上涉及加密文獻和傳送文獻。
圖27(a)和27(b)是當數(shù)據(jù)加密時由PC11a和安全設(shè)備12a執(zhí)行處理的操作流程圖,用戶使用插入PC11a的安全設(shè)備12a(IC卡)輸入他自己的用戶ID。通過輸入的用戶ID和口令,PC11a的用戶程序根據(jù)驗證文件,驗證用戶(步驟C12)。
作為驗證檢驗結(jié)果(步驟C121),如果用戶不是注冊的用戶(在步驟C121為否),主程序進入終止步驟(步驟C16)。如果用戶是注冊的用戶(在步驟C121為是),主程序傳送輸入的用戶ID和口令到安全設(shè)備12a(步驟C13)。
二級程序在安全設(shè)備12a上讀出用戶ID和口令(步驟D11)。然后二級程序把該信息與閃速存儲器36中數(shù)據(jù)庫41的內(nèi)容相比較,并驗證該用戶(步驟D12)。
作為用戶驗證檢驗的結(jié)果,二級程序產(chǎn)生驗證報表用以指示用戶是否已經(jīng)注冊到安全系統(tǒng),將該驗證報表傳送給安全設(shè)備12a,并將其送到PC11a的主程序(步驟D13)。
在PC11a側(cè),主程序讀出從安全設(shè)備12a傳送的驗證報表,并確認用戶已經(jīng)在安全設(shè)備側(cè)驗證(步驟C14)。
如果用戶在用戶驗證檢驗中遭拒絕,即如果驗證報表指示用戶不是注冊用戶(在步驟C15為否);PC11a的主程序?qū)⑺ㄖo用戶,并終止該處理(步驟C16)。
如果用戶在用戶驗證檢驗中確認為注冊用戶,即,如果驗證報表指示該用戶是注冊用戶(在步驟C15為是)。然后PC11a的主程序執(zhí)行下面的加密數(shù)據(jù)通信。
即,主程序從存儲設(shè)備22讀出要加密的原文數(shù)據(jù)(產(chǎn)生的文獻),并把它與附加給它的驗證報表傳送到安全設(shè)備12a的輸入緩沖器34,然后傳送控制到安全設(shè)備12a的二級程序(步驟C17)。
驗證報表附加到原文數(shù)據(jù)以使安全設(shè)備12a確認文獻已從安全設(shè)備12a驗證注冊的用戶接收。
在安全設(shè)備12a側(cè),二級程序讀出從PC11a傳送的原文數(shù)據(jù)(步驟D14)。如果沒有驗證報表加到原文數(shù)據(jù)(在步驟D15為否),則判定該文獻未從注冊用戶收到,由此終止該處理(步驟D16)。
另方面,如果驗證報表加到原文數(shù)據(jù)(在步驟D15為是),則判定文獻已從注冊用戶接收,二級程序通過使用多維向量的(后面描述)加密系統(tǒng)加密該原文數(shù)據(jù)(步驟D17)。然后二級程序存儲解密密鑰(公用密鑰)和加密數(shù)據(jù)(加密的文獻)將其存儲到安全設(shè)備12a的輸出緩沖器35并傳送他們到PC11a(步驟D18)。
PC11a的主程序接收該解密密鑰和該加密的數(shù)據(jù)(加密的文獻)(步驟C18),將它們作為文件輸入PC11a的存儲設(shè)備22中或傳送控制到例如電子郵件的通信軟件。并向外部傳送他們(到圖1示出的PC11b)(步驟C19)。
下面描述由安全設(shè)備12a執(zhí)行的加密處理的操作。
圖28A是加密操作的流程圖。
要加密的原文數(shù)據(jù)(報文數(shù)據(jù))定義為M(步驟E11),數(shù)據(jù)M是二進制數(shù)據(jù)。安全設(shè)備12a的二級程序首先將以位單元的加擾(scramble)1應(yīng)用于該數(shù)據(jù)M(步驟E12)。得到的數(shù)據(jù)定義為M(步驟E13)。
二級程序XORs(得到異或邏輯和)通過把數(shù)據(jù)M′加到數(shù)學(xué)上連續(xù)產(chǎn)生的隨機數(shù),然后執(zhí)行加密處理(步驟E14)。此時,多維向量r的生成函數(shù)用作隨機數(shù)生成函數(shù),在此情況下,用于生成多維向量r的函數(shù),或用于該函數(shù)的常數(shù)由加密密鑰確定(私有和公用密鑰)。
即,二級程序當執(zhí)行加密處理時從數(shù)據(jù)庫41讀出私有密鑰(P1,P2)和公用密鑰(P3,P4),依據(jù)使用加密密鑰作為參數(shù)常量的該函數(shù)生成多維向量r并執(zhí)行例如M′XORr的邏輯運算,由此執(zhí)行加密處理,因而,得到的加密數(shù)據(jù)定義為C(步驟E15)。
實際上如圖29所示假定r是三維向量(x,y,z),向量分量x,y,z的計算精度是16位。依據(jù)后面描述的方程(1),三維向量r(x,y,z)順序地產(chǎn)生r0,r1,r2,r3…。
當已知M數(shù)據(jù)為m0 m1 m2 m3 m4 m5 m6…的8位數(shù)據(jù)序列(各字符具有8位的一字符串),依據(jù)計算精度(16位),M分解為幾個2元素(8位)單元。如果三維向量是r0,則數(shù)據(jù)M和r0(x0,y0,z0)進行異或運算(作為異或邏輯和獲得),由此進行(x XORm0 ml)(Y XOR m2 m3)(z XOR m4 m5)的計算,作為計算結(jié)果可得到例如c0 c1 c2 c3 c4 c5…,加密數(shù)據(jù)C。
二級程序進一步將加擾(scramble)2按位單元應(yīng)用于上述獲得的數(shù)據(jù)C(步驟E16)。得出的數(shù)據(jù)定義為C′,并將其輸出作為最后的加密數(shù)據(jù)。
在上述處理中,通過重復(fù)執(zhí)行類似用定義C′為M′的加密處理能提高非法解密的難辨程度,如果多維向量r生成函數(shù)的格式改變,難辨程度還能進一步提高。
通過安全設(shè)備12a執(zhí)行的解密處理操作將在下面描述。
圖28B是解密處理操作的流程圖。
解密處理通過執(zhí)行與加密處理相反的處理能簡單地實現(xiàn)。即,假定加密數(shù)據(jù)定義為C′(步驟F11),二級程序首先應(yīng)用一逆加擾(inverse scramble)2,該逆加擾2相反于加密處理時按位單元應(yīng)用于數(shù)據(jù)C的加擾2(步驟F12)。由此,獲得C作為應(yīng)用加擾2前的數(shù)據(jù)(步驟F13)。
然后二級程序通過例如執(zhí)行C XORr等的計算處理解密數(shù)據(jù)C(步驟F14),由此得到執(zhí)行加密處理前的數(shù)據(jù)M′。(步驟F15)。
該二級程序應(yīng)用一逆加擾(inverse scramble)1,該逆加擾1相反于加密處理時按位單元應(yīng)用于數(shù)據(jù)M′的加擾1(步驟F12)。因而能獲得應(yīng)用加擾1以前的數(shù)據(jù),即能獲得原文數(shù)據(jù)M(步驟17)。
如果改變生成多維向量的函數(shù)的形式重復(fù)進行定義C′為M′的加密處理的過程己加入加密過程,則相應(yīng)于附加的處理執(zhí)行解密處理。
依據(jù)本發(fā)明,一組參數(shù)P(常量)分為兩部分,該參數(shù)P用于在由多維向量r執(zhí)行的加密處理中確定多維向量r的函數(shù),該P由下式表示。
P={Ps,Pp}其中Ps是私有參數(shù),且對應(yīng)于加密密鑰(私有密鑰P1,P2),該加密密鑰存儲在數(shù)據(jù)庫41的非公用部分,而Pp是公用參數(shù),且對應(yīng)于加密密鑰(公用密鑰P3,P4),該加密密鑰儲存在數(shù)據(jù)庫41的公用部分。Ps與Pp一起用在驗證用戶,加密及解密處理中。
依據(jù)本實施例,有兩個Ps和兩個Pp,但很明顯參數(shù)的數(shù)量不局限于本應(yīng)用中。
依據(jù)本發(fā)明的一實施例的加密系統(tǒng)將描述如下。
假定在n(n≥1)維空間的向量是r,從初始值r0順序產(chǎn)生新向量rj(j=0,1,2,3,…)的矩陣是R,此時,向量rj是由下列方程(1)的非線性函數(shù)表達的。rj=a*R(P,rj-1)rj-1+C (1)其中a是一適當?shù)某O禂?shù),P是用在矩陣中的常數(shù)集,并且使用儲存在數(shù)據(jù)庫41非公用部分的加密密鑰(私有密鑰P1,P2)和儲存在數(shù)據(jù)庫41公用部分的加密密鑰(公用密鑰P3,P4)。C是用于矢量空間轉(zhuǎn)換的一常向量。
在上述方程(1)中當適當?shù)南薅?例如|R|≤1)設(shè)置在矩陣時,該系數(shù)一集一條件(a sets a conditon)用于多維向量封閉空間區(qū)中的各向量。常向量C保證向量不收斂到無用點(例如一無意義點具有r=0)(明顯使c=0)。
在n維空間,向量r有n個分量(r=x1,x2,…xn),在計算時通常由位長精度表示一數(shù)字數(shù)據(jù)(例如8字節(jié)或64字節(jié))由編譯器決定。因此,如果按照連續(xù)向量產(chǎn)生方法在一瞬間用n×m的數(shù)據(jù)精度不能再生向量r,后續(xù)向量r不能正確地再生(或這樣定義矩陣R)。用向量r的初始值r0使向量產(chǎn)生保持正確。即,只有當用n×m的位置精度能再生初始值r0,后續(xù)向量r1,r2,r3能保證。
依據(jù)本發(fā)明實施例的該加密處理,設(shè)置了按上述方程(1)獲得向量r的一個或多個分量,該一或多個分量取決于定義的位長度并且具有相應(yīng)于總位長的字符串(每個字符串通常是8位)在每個位上進行異或運算(異或邏輯處理)這稱為第一加密處理,已經(jīng)在上述參考圖29的描述中描述。
該步驟作為針對解密的干擾可在雙處理中執(zhí)行。在該情況下上述方程(1)的矩陣R能再次改變用以產(chǎn)生新向量使另外的加密處理能按照與第一加密處理相同的方法執(zhí)行。這個另外的加密處理稱為第二加密處理。
在一實例中n等于2(n=2)。首先R定義為操作指令其中rj-1繞平面上設(shè)定的法線旋轉(zhuǎn)θ角度,該R是242矩陣可按下面表達為 在該情況下,θ是一種參數(shù)。即,已知該參數(shù)是rj-1的函數(shù),并可按下列方程表達。
θ(r)=f(P,r)(3)此時,由上述方程(2)表示的變換能正式由上述方程(1)表示。在該情況下非線性使向量產(chǎn)生過程復(fù)雜化。
在上述方程(3)中P定義為用在非線性函數(shù)f中的一組系數(shù)并且使用儲存在數(shù)據(jù)庫41非公用部分的加密密鑰(私有密鑰P1,P2)和儲存在數(shù)據(jù)庫41公用部分的加密密鑰(公用密鑰P3,P4)。
由此,在加密處理中通過使用在多維空間順序產(chǎn)生的向量r,該加密處理例如與RSA的加密處理相比較能夠在與計算機精度和特性無關(guān)的情況下進行。
此外,容易增加和修改一應(yīng)用。而且因為本實施例在解密處理中應(yīng)獲得常數(shù)a常數(shù)P(私有和公用密鑰)常向量c和向量的初始值r0所有這些數(shù)所以使解密處理不能成功進行。
例如,假定P含有三維向量的5個常數(shù),初始值r0給定的數(shù)值由下列方程可知。
1(A)+5(P)+3(r0)+3(C)=12如果向量中的每個向量是8位數(shù)字的實數(shù),則全部向量可再生的概率為10-96。概率幾乎等于0,因此,很難有可能成功解密。
并且在依據(jù)本發(fā)明的該方法中必須清楚指示確定旋轉(zhuǎn)矩陣R(θ)的函數(shù)f,由此進一步使非法解密復(fù)雜化。
另外,依據(jù)上述實施例,使用由限定的私有和公用密鑰確定的函數(shù)產(chǎn)生一向量,而且使用由限定的至少一個公用密鑰確定的函數(shù)也能產(chǎn)生一向量。
而且,采用常數(shù)時用于確定產(chǎn)生向量的函數(shù)的每個常數(shù)(a,p,c)是固定的,并且函數(shù)也固定。但是,用于確定一函數(shù)的常數(shù)可如下所述取決于一口令(用作部分公用密鑰的加密密鑰)。
有可能使用于確定一函數(shù)的各常數(shù)依賴于加密處理中的一口令,其中該函數(shù)可被確定,以使在n(n≥1)維空間封閉區(qū)中順序產(chǎn)生的向量彼此不匹配。該口令用作部分公用密鑰。該函數(shù)應(yīng)該固定。即,在上述方程(1)中。
a→a(k)p→p(k)c→c(k)其中a是一常系數(shù),p是一組常數(shù)(私有密鑰和公用密鑰)用在矩陣中,c是用于向量空間變換的一常向量,k是一口令。
口令k由用戶輸入,存儲在數(shù)據(jù)庫41的公用部分。二級程序從數(shù)據(jù)庫41中讀出口令,并依據(jù)口令k確定上述方程(1)中各常數(shù)(a,p,c)。然后,使用基于常數(shù)的該函數(shù)產(chǎn)生多維向量,并加密數(shù)據(jù)。
由此通過使確定函數(shù)的各常數(shù)與口令相關(guān),與固定各常數(shù)的情況相比,前者加密的安全性能夠改進。
也有可能在加密處理時順序產(chǎn)生n(n≥1)維空間封閉區(qū)中定義的向量,這樣設(shè)定一函數(shù)使產(chǎn)生的向量不能彼此匹配。用于確定函數(shù)的各常數(shù)可以取決于口令和實時??诹钣米鞑糠止妹荑€。該函數(shù)是固定的。即,在上述方程(1)中。
a→a(k,t)p→p(k,t)c→c(k,t)其中a是一常系數(shù),p是一組常數(shù)(私有和公用密鑰),用在矩陣中,c是用于向量空間變換的常向量,k是口令,和t是一實時。
口令k由用戶輸入并存儲在數(shù)據(jù)庫41的公用密鑰部分。該二級程序從數(shù)據(jù)庫41讀出口令k,并基于該口令k和實時t確定上述方程(1)各常數(shù)(a,p,c)。然后使用基于常數(shù)的函數(shù)產(chǎn)生多維向量和加密數(shù)據(jù)。
由此,通過使確定一函數(shù)的各常數(shù)依賴于一口令且使各常數(shù)依賴于實時,各常數(shù)不僅依賴于一口令而且還依賴于一實時,由此進一步提高了加密的安全性。
還有可能在加密處理中順序產(chǎn)生n(n≥1)維空間封閉區(qū)中定義的向量,設(shè)定一函數(shù)使產(chǎn)生的向量彼此不匹配。用于確定函數(shù)的各常數(shù)依賴于一口令和一實時相關(guān),另外矩陣函數(shù)的選擇依賴于一口令??诹钣米鞑糠止妹荑€。即,在上述方程(1)中。
a→a(k,t)p→p(k,t)c→c(k,t)和R→Rk其中a是一常系數(shù),p是一組常數(shù)(私有和公用密鑰)被用在矩陣中,c與一向量同時運動的常向量,k是口令,和t是實時,R是矩陣。
口令k由用戶輸入,存儲在數(shù)據(jù)庫41的公用部分。該二級程序從數(shù)據(jù)庫41讀出口令k;并基于該口令k和實時t確定上述方程(1)的各常數(shù)(a,p,c)。
二級程序依據(jù)口令k利用該些常數(shù)選擇矩陣R?;谶x擇的矩陣R產(chǎn)生多維向量,并加密數(shù)據(jù)。
由此,通過使確定函數(shù)的各常數(shù)依賴于口令,另外使各常數(shù)依賴于實時,及通過選擇依賴于口令的矩陣,各常數(shù)不僅依賴于一口令還依賴于一實時,并且利用該常數(shù)的函數(shù)也依賴于一口令被選擇,由此進一步改進了加密的安全性。
還有可能在加密處理時順序產(chǎn)生n(n≥1)維空間閉合區(qū)定義的向量,設(shè)定一函數(shù)以使產(chǎn)生的向量不能彼此匹配。用于確定該函數(shù)的各常數(shù)可由口令和實時而定。口令用作部分公用密鑰。
依據(jù)一口令和一實時,選擇函數(shù)類型。即上述方程(1)中,
a→a(k,t)p→p(k,t)c→c(k,t)和R→Rk其中a是一常系數(shù),p是一組常數(shù)(私有和公用密鑰)被用在矩陣中,c是用于向量空間變換的常向量,k是口令,t是實時,R是矩陣。
口令k由用戶輸入,并存儲在數(shù)據(jù)庫41的公用部分。二級程序從該數(shù)據(jù)庫41讀出口令,并基于口令k和實時t確定上述方程(1)各常數(shù)(a,p,c)。
二級程序使用與取決于口令k和實時t的該些常數(shù)選擇矩陣R。基于選擇的矩陣R,產(chǎn)生多維向量,并加密數(shù)據(jù)。
由此,使確定函數(shù)的各常數(shù)取決于口令,且使之取決于一實時,通過選擇取決于口令的矩陣,各常數(shù)不僅取決于口令,還取決于實時,利用該常數(shù)的函數(shù)也依賴于口令和實時選擇,由此進一步提高加密安全性。
還有可能在加密處理中順序產(chǎn)生n(n≥1)維空間閉合區(qū)定義的向量。和通過線性組合多個函數(shù)以使產(chǎn)生的向量互相不能匹配,用于確定該函數(shù)的一常數(shù)可與一口令和實時相關(guān)。口令用作部分公用密鑰。依據(jù)口令和實時選擇函數(shù)類型。并且,線性組合的系數(shù)與口令和實時相關(guān)。
假定在一n(n≥1)維空間內(nèi)從向量r的初始值r。產(chǎn)生一新向量rj(j=0,1,2,3,…)的矩陣是Rd(d=0,1,2,3,…),由下列方程可產(chǎn)生新向量。rj=ΣdWd(K,t){ad(K,t)Rd,K,t(Pj(K,t),rj-1+cj}······(4)]]>
上述方程(1)中,a是常系數(shù),p是一組常數(shù)(私有和公用密鑰)被用在矩陣中,c是用于向量空間變換的常向量,k是口令,R是矩陣,和w是線性組合系數(shù)。
口令k由用戶輸入,并存儲在數(shù)據(jù)庫41的公用部分。該二級程序從數(shù)據(jù)庫41中讀出口令k,和基于口令k和實時t確定上述方程(4)中的各常數(shù)(a,p,c)。通過線性組合多個矩陣二級程序選擇一個得出的矩陣R。
用在矩陣R中的線性組合系數(shù)Wd由口令k和實時t確定。依據(jù)選擇的非線性函數(shù)(4)產(chǎn)生多維向量來加密數(shù)據(jù)。
由此使用通過線性組合多個矩陣獲得的新矩陣,產(chǎn)生用于確定各矩陣的常數(shù),該常數(shù)取決于一口令和一實時,矩陣的選擇也依賴于一口令和一實時,線性組合的系數(shù)也取決于一口令和一實時,由此提高了加密數(shù)據(jù)的安全。
此外,在加密處理中,可這樣確定該函數(shù),使得在n(n≥1)維空間閉合區(qū)順序產(chǎn)生的向量不能互相匹配,由用戶選擇地定義函數(shù)的類型,當把函數(shù)應(yīng)用于主加密算法時可動態(tài)地與其他函數(shù)組合。
即,相對于順序產(chǎn)生的多維向量編譯的基本加密程序編譯用戶定義的函數(shù),當執(zhí)行全部程序時通過動態(tài)鏈接使用編譯結(jié)果。由此,有預(yù)謀的用戶例如黑客等幾乎能遭到全部拒絕。
如上所述在n(n≥1)維空間閉合區(qū)定義的向量能順序地產(chǎn)生,并且通過使用要加密的原文數(shù)據(jù)和向量分量的邏輯運算產(chǎn)生加密數(shù)據(jù)。因此,加密處理在沒有RSA方法需要的精度和特性情況下能夠?qū)崿F(xiàn)。此外,具有高可靠性和易于增加或修改應(yīng)用的加密處理能夠?qū)崿F(xiàn)。由此,通過把不同的密鑰應(yīng)用于方程1中的參數(shù)組p可定義一個選擇的加密數(shù)據(jù)通信系統(tǒng)。因此僅描述使用公用密鑰(私有密鑰)的加密/解密算法就足夠了。下面將詳細描述本發(fā)明一實施例的加密/解密系統(tǒng)。
圖30說明本發(fā)明一實施例的加密/解密系統(tǒng)的原理。
圖30中在設(shè)備110和112中的安全設(shè)備分別位于發(fā)送和接收側(cè),即,加密/解密機存儲公用密鑰(私有密鑰)。當從一設(shè)備110到另一設(shè)備112建立加密數(shù)據(jù)通信時,設(shè)備110的主程序傳送控制到專用硬件安全設(shè)備的二級程序。
在發(fā)送側(cè)用于執(zhí)行加密處理的安全設(shè)備使用一個隨對應(yīng)于一公用密鑰的一參數(shù)變化的函數(shù)。即,使用一個變換和旋轉(zhuǎn)在n維空間閉合區(qū)定義的n維向量的非線性函數(shù)不規(guī)則和順序地產(chǎn)生向量,并且通過在原文數(shù)據(jù)和產(chǎn)生的向量之間按位單元進行的邏輯運算產(chǎn)生加密數(shù)據(jù)。
在接收側(cè)用于執(zhí)行解密處理的安全設(shè)備產(chǎn)生與發(fā)射側(cè)相同的向量,在產(chǎn)生的向量上執(zhí)行一相反操作,容易把接收的加密數(shù)據(jù)解密為原文數(shù)據(jù)。
在本發(fā)明的加密/解密系統(tǒng)中,用于確定非線性函數(shù)的參數(shù)對第三方是保密的,該非線性函數(shù)用于產(chǎn)生上述多維向量。因此,依據(jù)本發(fā)明,通過至少定義的一公用密鑰確定n維向量的產(chǎn)生,由此使用非線性函數(shù)產(chǎn)生的n維向量能夠產(chǎn)生混沌以使產(chǎn)生的各n維向量不能互相匹配。
即,本發(fā)明包括向量產(chǎn)生單元,用于使用在n(n≥1)維空間閉合區(qū)定義的各向量分量和角Ωn產(chǎn)生一向量rj,該角Ωn由參數(shù)組p以這樣的方法確定,使利用包含至少用于該向量旋轉(zhuǎn)的n維旋轉(zhuǎn)矩陣Rn(Ωn)(相應(yīng)于方程1中的R)的非線性函數(shù)(相應(yīng)于方程(1))順序產(chǎn)生的各向量相關(guān)于向量旋轉(zhuǎn)在n維空間不能匹配;在加密處理中,一二進制運算單元,用于使用對原文數(shù)據(jù)和由向量產(chǎn)生單元產(chǎn)生的向量分量進行的一二進制運算產(chǎn)生加密數(shù)據(jù);在解密處理中,一逆二進制運算單元,用于在逆二進制運算中產(chǎn)生原文數(shù)據(jù),該二進制逆運算對應(yīng)于使用向量產(chǎn)生單元產(chǎn)生的向量rj和加密數(shù)據(jù)進行的二進制運算的相反的運算。
特別是,本發(fā)明包括一旋轉(zhuǎn)矩陣產(chǎn)生單元,用于使用在n(n≥1)維空間閉合區(qū)定義的一向量的分量和由參數(shù)組p確定角Ωn來產(chǎn)生n維旋轉(zhuǎn)矩陣Rn(Ωn)該n維旋轉(zhuǎn)矩陣用該(n-1)維旋轉(zhuǎn)矩陣Rn-1(Ωn- 1)作為(n-1)維小矩陣來旋轉(zhuǎn)該向量;一向量產(chǎn)生單元,用于產(chǎn)生向量rj,使包含至少該旋轉(zhuǎn)矩陣Rn(Ωn)的非線性函數(shù)順序產(chǎn)生的各向量rj(j≥0)在n維空間互相不能匹配;一個二進制運算單元,用于利用原文數(shù)據(jù)和由向量產(chǎn)生單元產(chǎn)生的向量分量的二進制運算產(chǎn)生加密數(shù)據(jù)。
本發(fā)明的加密/解密系統(tǒng)與當數(shù)據(jù)發(fā)送機和數(shù)據(jù)接收機使用通用安全設(shè)備(加密設(shè)備)建立數(shù)據(jù)通信時執(zhí)行的加密/處理有關(guān)。
依據(jù)本加密系統(tǒng),數(shù)據(jù)發(fā)送機(加密側(cè))基于預(yù)定公用密鑰,通過使用已產(chǎn)生原文數(shù)據(jù)報文的密鑰序列按位單元執(zhí)行預(yù)定邏輯運算(通常是異或邏輯和運算)產(chǎn)生密文。數(shù)據(jù)接收機(解密側(cè))基于預(yù)定公用密鑰,通過使用與加密側(cè)相同的密鑰序列按位單元執(zhí)行預(yù)定邏輯運算(與加密側(cè)相同的操作)獲得原始的原文。
在該加密系統(tǒng)中,多維向量產(chǎn)生設(shè)備用作隨機數(shù)產(chǎn)生設(shè)備以產(chǎn)生上述的密鑰序列。在該情況下,用于確定多維向量產(chǎn)生設(shè)備向量產(chǎn)生函數(shù)的不同參數(shù)和初始狀態(tài)作為公用密鑰提供。
圖30說明應(yīng)用本發(fā)明的加密系統(tǒng)的配置舉例。加密設(shè)備110包括多維向量產(chǎn)生函數(shù)單元101和邏輯操作處理函數(shù)單元102。
類似地,該解密設(shè)備包括多維向量產(chǎn)生函數(shù)單元121和邏輯運算操作函數(shù)單元122。
圖30位于加密側(cè)的加密設(shè)備110和位于解密側(cè)的解密設(shè)備112之間,例如使用IC卡來分配一公用密鑰。在保密狀態(tài),共享該公用密鑰,位于加密側(cè)的加密設(shè)備110基于由預(yù)定公用密鑰確定的函數(shù)產(chǎn)生多維向量,使用原文和作為隨機數(shù)序列的向量分量數(shù)據(jù)獲得異或邏輯和,以便將原文報文變換為密文并將該密文發(fā)送到該解密設(shè)備112。
接收到密文的解密設(shè)備112通過邏輯運算處理函數(shù)單元122從密文產(chǎn)生一向量,該邏輯運算處理函數(shù)單元122具有與加密設(shè)備110的多維向量產(chǎn)生函數(shù)單元101相同的函數(shù);獲得該向量和產(chǎn)生的隨機數(shù)序列的異或邏輯;及恢復(fù)該原始的原文報文。
此外,由于加密設(shè)備110和解密設(shè)備112執(zhí)行的處理實際上彼此相同,處理設(shè)備,例如計算機等,具有解密設(shè)備112和加密設(shè)備110二者的功能。
圖31說明加密設(shè)備110和解密設(shè)備112中的解密和加密程序的配置。
主程序131管理輸入和輸出數(shù)據(jù),確定數(shù)據(jù)是否加密或解密并管理整個加密解密處理。參數(shù)表生成庫儲存用IC卡分配的公用密鑰。加密/解密機133從參數(shù)表生成庫132接收作為參數(shù)的公用密鑰,基于由多維向量旋轉(zhuǎn)函數(shù)生成庫134確定的矩陣產(chǎn)生旋轉(zhuǎn)向量,利用向量分量加密原文或解密密文。
下面將詳細描述多維向量的產(chǎn)生。
就相關(guān)于在多維空間(n維空間)定義的向量rj-1的旋轉(zhuǎn)而論,一般旋轉(zhuǎn)角用Ωn表示,相應(yīng)于該旋轉(zhuǎn)的操作用Rn(Ωn)來表示為一n×n矩陣。即Rn(Ωn)作用于rj-1,并旋轉(zhuǎn)該向量方程,于是(1)可改寫為下列方程(5)即,旋轉(zhuǎn)向量的一般方程由此定義了一新的向量rj。
rj=αRn(Ωn)rj-1+c (5)其中a是一常數(shù)滿足|a|≤1,c是n維常向量。上述方程表示新向量rj是從rj-1通過旋轉(zhuǎn)和空間平移產(chǎn)生。
依據(jù)本發(fā)明,非線性序列能夠這樣產(chǎn)生,使產(chǎn)生的r向量序列可以不是混沌的,即,通過設(shè)置的旋轉(zhuǎn)角Ωn在閉合空間中的原始序列取決于r,即,Ωn可用參數(shù)p和向量r的函數(shù)正式表示如下列方程(6)所示(相應(yīng)于方程(3))。
Ωn=Ωn(P,rj-1)………(6)其中p指示一組用在Ωn的函數(shù)中的任意個參數(shù)。
P={Pi|i=1,2,3,…}……(7)例如在二維向量中,二維旋轉(zhuǎn)解Ωn用二維向量r=(x,y)的分量x和y表示如下式Ω2=p1x+p2y+p3其中參數(shù)p1,p2和p3選擇地給出。
參考圖32示出的流程圖描述圖30系統(tǒng)中由加密設(shè)備110和112處理上述二維向量時執(zhí)行的實際操作。
利用正交坐標系統(tǒng)的分量x和y由r=(x,y)表示二維向量r。相關(guān)于向量的角Ωn=θ的旋轉(zhuǎn)運行由二維矩陣表示如下。 假定用于旋轉(zhuǎn)向量的函數(shù)使用一函數(shù)θ=P1x+P2y+P3和獲得的旋轉(zhuǎn)角存儲在多維向量旋轉(zhuǎn)函數(shù)產(chǎn)生庫134(見圖13),和r0的初始值x0,y0以及p值,即,p1=1,p2=1,p3=1事先存儲在參數(shù)表產(chǎn)生庫132(見圖31)作為公用密鑰。參考圖32描述一舉例。
為了產(chǎn)生二維向量,初始值r0(包括分量數(shù)據(jù)x0,y0)和用于定義旋轉(zhuǎn)角θ函數(shù)的參數(shù)p1,p2,p3從參數(shù)表產(chǎn)生庫132(見圖31)讀出并存儲在設(shè)備(110,112)存儲器工作區(qū)(步驟21)。基于r0的值x0,y0計算θ=p1*xj-1+p2*y1-1+p3(θ=p1*x0*p2*y0+p3)。
然后為了確定旋轉(zhuǎn)矩陣R元素值,獲得cosθ和sinθ并作為cos_t和sin_t分別存儲(步驟23)。
接著由方程rj=aR2(Ω2)rj-1+c計算新向量rj(步驟24),即,執(zhí)行下列計算,以產(chǎn)生新向量rj(分量xj,yj)。xj=a*(“cos_t”*xj-1-“sin_t”*yj-1)+c_x;yj=a*(“sin_t”*xj-1+“cos_t”*yj-1)+c_x;然后,基于向量yj的分量獲得連續(xù)旋轉(zhuǎn)角θ(步驟22)以及重復(fù)上述步驟23和24,由此順序地產(chǎn)生向量。
依據(jù)本發(fā)明的加密/解密系統(tǒng),因為對旋轉(zhuǎn)引入三角函數(shù),使用三角函數(shù)的乘積,非線性比通常的無規(guī)則函數(shù)有更多改進,由此使解密更復(fù)雜化。
下面描述通過產(chǎn)生多維向量的加密數(shù)據(jù)處理。
如圖33所示n維旋轉(zhuǎn)矩陣Rn(Ωn)在加密處理中首先產(chǎn)生(步驟41)。產(chǎn)生矩陣的方法下面將詳細描述。
使用包含n維旋轉(zhuǎn)矩陣Rn(Ωn)的非線性函數(shù)產(chǎn)生向量(步驟42)。向量yj順序產(chǎn)生以使他們在n維空間互相不匹配。利用原文數(shù)據(jù)和由向量產(chǎn)生單元產(chǎn)生的向量分量執(zhí)行二進制運算,由此產(chǎn)生加密數(shù)據(jù)(步驟43)。然后加密數(shù)據(jù)傳輸?shù)浇邮諜C的接收設(shè)備(步驟44)。
下面描述步驟43的二進制運算。
假定每個順序產(chǎn)生的向量r用N位表示。例如當二維向量用分量x和y表示時,每個x和y的數(shù)據(jù)值用16位表示。x和y的數(shù)據(jù)按N位設(shè)置(例如32位)。
向量串rj(=1,2,3,…)在該步驟獲得和通過分割加密原文數(shù)據(jù)M的數(shù)據(jù)串Mj=(j=1,2,3,…)按N位單元表示將rj和Mj用作二進制操作數(shù)以便獲得異或邏輯和(XOR),和結(jié)果Cj(j=1,2,3,…)作為加密數(shù)據(jù)獲得。即,進行下列計算。Cj=rjop Mj(9)上述二進制運算符op通常是相關(guān)于每個的異或邏輯和(exclusivelogical sum)但由于異或邏輯和是可逆的,不適合將其作為加密運算符使用,為了補償異或邏輯和的這一缺陷,提出一種加擾Mj位的異或邏輯和運算作為二進制運算符,在該情況下出現(xiàn)下列方程。op=XOR*S(10)其中S指示一加擾(scrambling)運算用于加擾Mj位,而XOR指示作為接著的異或邏輯和運算的定義。然后加密數(shù)據(jù)由Cj=rjop Mj獲得。
解密處理參考圖33描述如下在解密處理中,如象加密處理,首先產(chǎn)生Ωn維閉合區(qū)定義的旋轉(zhuǎn)向量的旋轉(zhuǎn)矩陣Rn(Ωn)(步驟45)。向量rj以這種方式順序產(chǎn)生,即,使由包含旋轉(zhuǎn)矩陣Rn(Qn)的非線性函數(shù)產(chǎn)生的各向量在n維空間互相匹配(步驟46)。
然后,解密數(shù)據(jù)通過使用收到的加密數(shù)據(jù)與在向量產(chǎn)生步驟46產(chǎn)生的向量rj執(zhí)行逆二進制運算產(chǎn)生相應(yīng)于步43執(zhí)行的二進制運算的相反運算(步驟47和48)。
在解密處理中連續(xù)檢索接收的加密字符串Cj=j=1,2,3,…)以執(zhí)行一解密運算同時產(chǎn)生相應(yīng)于Cj的向量,該處理用參考圖34的流程圖進行說明。
解密處理由j=0開始(步驟51)在步驟52檢索加密數(shù)據(jù)Cj,在步驟53產(chǎn)生n維旋轉(zhuǎn)矩陣Rn(Ωn)和在步驟54產(chǎn)生向量rj。然后在步驟55執(zhí)行Mj=rjop-1Cj的運算以產(chǎn)生解密數(shù)據(jù)(原文Mj)如果加密數(shù)據(jù)還沒有完全處理,那么用j=j+1接著檢索下面的加密數(shù)據(jù)(步驟56和57)以產(chǎn)生Rn(Ωn),和重復(fù)產(chǎn)生連續(xù)向量rj的處理。執(zhí)行重復(fù)步驟52到56的處理直到加密數(shù)據(jù)全部處理。
此外,上述第一加密和解密實施例可以推廣到更實際的加密數(shù)據(jù)的步驟,第二實施例將在下面描述。
首先,執(zhí)行下列方程。C0=r0op M0(11)
然后計算相關(guān)于C0的檢驗和∑0。并且上述方程(9)可相關(guān)于j其中j≥1改寫為下列方程。Cj=(rjop ∑j-1)op Mj(12)檢驗和例如用包含在計算的C值內(nèi)的IS數(shù)表示如同二進制表示的位數(shù),該位數(shù)與rj位數(shù)相同。在該方程中,∑0從加密數(shù)據(jù)C0的值中獲得,∑1從C1中獲得和∑2從C2中獲得,按以下計算次序。 即,相關(guān)于M0的加密數(shù)據(jù)C0通過C0=r0op M0發(fā)射機獲得C0因而獲得C0的檢驗和∑0。相關(guān)于M1的加密數(shù)據(jù)C1是由C1=(r1op ∑0)op M1計算于是獲得C1的檢驗和∑1。連續(xù)的數(shù)據(jù)Mj用計及前面數(shù)據(jù)獲得的∑j-1通過Cj=(rjop ∑j-1)opM1加密。rj和∑j-1用相同數(shù)據(jù)寬度(位數(shù))計算。
用于解密的接收機接收C0,C1,C2,…,和計算M0=r0op-1C0,并且必須從接收的C0中獲得檢驗和∑0。以此類推M1相關(guān)于C1從下式計算。M1=(r1op ∑0)op-1C1(13)連續(xù)數(shù)據(jù)Mj利用相關(guān)于接收的Cj-1通過下列方程解密。Mj=(rjop ∑j-1)op-1Cj(14)上述步驟獲得的加密數(shù)據(jù)已經(jīng)用不同密鑰處理,假定針對使用假設(shè)密鑰解密該數(shù)據(jù)的企圖該數(shù)據(jù)是永久的。
如果在多維空間旋轉(zhuǎn)系統(tǒng)中維數(shù)變大,旋轉(zhuǎn)矩陣元素數(shù)變大,于是產(chǎn)生問題即,在加密/解密處理中的運算負擔加大。為解決該問題,在加密系統(tǒng)中計算多維空間旋轉(zhuǎn)矩陣的方法使用了具有小維數(shù)的偽空間旋轉(zhuǎn)矩陣的多維空間旋轉(zhuǎn)系統(tǒng)。
下面將說明相關(guān)于多維空間旋轉(zhuǎn)導(dǎo)出的旋轉(zhuǎn)矩陣Rn(Ωn)。
第一種方法是從(n-1)維旋轉(zhuǎn)矩陣Rn-1(Ωn-1)中產(chǎn)生n維旋轉(zhuǎn)矩陣Rn(Ωn)。因為相關(guān)于多維空間旋轉(zhuǎn)的方法計算復(fù)雜,例如采用兩維空間旋轉(zhuǎn)進行的說明描述如下。兩維空間向量r用正交坐標系統(tǒng)的分量x和y由下列方程表示。
r=(x,y)相關(guān)于向量的角Ωn=θ的旋轉(zhuǎn)運行用兩維矩陣表示為 其中左側(cè)下標2表示在兩維空間定義的運算。該運算滿足下列方程的條件。|R2(θ)|=1……(17)R2(-θ) =R2(θ)-1……(18)方程(17)保證在旋轉(zhuǎn)運行中旋轉(zhuǎn)向量大小保持不變,而方程(18)表示存在一個旋轉(zhuǎn)運行使旋轉(zhuǎn)向量恢復(fù)為原始狀態(tài)。
推廣到三維空間,方程(16)右側(cè)的描述簡化并正式由下列表示 其中α11=α22=cosθ和α21=-α12=sinθ。在三維旋轉(zhuǎn)情況下,使用三個正交軸中的每個作為旋轉(zhuǎn)軸開始旋轉(zhuǎn)是合理的,可以采用下列三個矩陣中任一個表示。 注意他們能通過加1獲得該1作為方程(19)的兩維空間旋轉(zhuǎn)運行的對角元素。此外,很明顯,運行中三維向量的旋轉(zhuǎn)在圖37A到37C中表示。
上述矩陣(20-1),(20-2),(20-3),是三維矩陣包括了表示二維空間旋轉(zhuǎn)運行的二維矩陣。通過從上述矩陣中檢索三個矩陣(矩陣能復(fù)制)和連續(xù)把矩陣彼此相乘能獲得廣義的三維旋轉(zhuǎn)。在三維空間廣義的旋轉(zhuǎn)角能用下列方程表示。
Ω3=(θ1,θ2,θ3)其中相關(guān)于三維向量的旋轉(zhuǎn)運行R3(Ω3)由下列方程表示。
R3(Ω3)=R3,i(θi)R3,j(θj)R3,k(θk)……(21)其中i,j和k可以是1,2和3中任一個。并且在相同軸上不繼續(xù)運行的條件基礎(chǔ)上通常能重復(fù)。i,j,k例如可以是1,2和3。
如果‘逆旋轉(zhuǎn)角’用-Ω3=(-θ1,-θ2,-θ3)表示,那么由(21)表示的旋轉(zhuǎn)運行的逆旋轉(zhuǎn)運行用計及有效的下列方程表示。R3(-Ω3)=R3,k(-θk)R3,j(-θj)R3,i(-θi)……(22)由方程(21)定義的旋轉(zhuǎn)運行通常得到下列形式
其中矩陣元素從方程(16),(19),(20-1),到(20-3)和(21)中唯一地確定。
相關(guān)于R3(Ω3),滿足下列條件。|R3(Ω3)|=1……(24)R3(-Ω3)=R3(Ω3)-1……(25)在實際的三維空間中向量的產(chǎn)生如下所述。
在三維空間中,向量rj能夠由存儲的旋轉(zhuǎn)矩陣相乘的排序產(chǎn)生。如果旋轉(zhuǎn)角由xj-1=x,,yj-1=y,zj-1=z表示相關(guān)于簡化說明的三維旋轉(zhuǎn)出現(xiàn)下列方程。
θ1=p11x+p12y+p13z+p14θ2=P21x+P22y+P23z+P24θ3=P31x+P32y+P33z+P34三維空間旋轉(zhuǎn)運行R3(Ω3)如方程(21)所示由下面三個旋轉(zhuǎn)矩陣的相乘表示即R3(Ω3)=R3,i(θi)R3,j(θj)R3,k(θk)其中整數(shù)i,j和k是1,2和3中任一個和通常能重復(fù)即,有R3 1(θ1),R3,2(θ2),R3,3(θ3)相乘的,3×2×2(=12)種方法取決于發(fā)射機的參數(shù)。在該加密處理中,向量rj在三維空間的產(chǎn)生過程如圖35所示。
即,R3(Ω3)可基于發(fā)送機參數(shù)指定的乘法排序制備。計算旋轉(zhuǎn)向量角θ1,θ2,θ3的函數(shù)的初始向量值r0及參數(shù)p11到p34都被存儲起來(步驟62)。然后,用r0(rj-1)的分量(x,y,z)執(zhí)行以下操作(步驟63)。
θ1=p11x+p12y+p13z+p14θ2=P21x+P22y+P23z+P24θ3=p31x+p32y+p33z+p34然后計算R3(Ω3),并由式(5)產(chǎn)生一新向量rj。與此同時,由上所述發(fā)送機的參數(shù)確定乘法的排序。例如,如發(fā)送機的職員數(shù)等。對于旋轉(zhuǎn)矩陣R3(Ω3),發(fā)送機)接收機不根據(jù)發(fā)送數(shù)據(jù)時指定的排序來計算它,但是事先12個存儲函數(shù),任何一函數(shù)均可指定。
以下描述將上述所述二維旋轉(zhuǎn)擴展到三維,從三維擴展到四維的應(yīng)用過程。
在該情況下,四個二維矩陣,即,R4,i(Ω3)(i=1,2,3,4),通過把1加入方程(23)該1作為對角元素,即獲得下列方程。
進而在四維空間旋轉(zhuǎn)角Ω4的旋轉(zhuǎn)運行由下式定義R4(Ω4)=R4,i(Ω3,i)R4,j(Ω3,j)R4,k(Ω3,k)R4,1(Ω3,1)……(27)Ω3,i=(i=1,2,3,4)是另外的三維旋轉(zhuǎn)角Ω3不同于上述定義的角。
通過重復(fù)進行定義,在n維空間相關(guān)于角Ωn的旋轉(zhuǎn)操作通常由下式表示 容易確認獲得的旋轉(zhuǎn)運行滿足方程(29)和(30)的特征通過估計方程(28)右側(cè)乘積的排序。|Rn(Ωn)|=1……(29)Rn(-Ωn)=Rn(Ωn-1)……(30)n維旋轉(zhuǎn)矩陣Rn(Ωn)通過執(zhí)行圖36流程的處理能夠產(chǎn)生。
即,首先設(shè)置k=2(步驟30),產(chǎn)生2維旋轉(zhuǎn)矩陣R2(Ω2)(步驟31)。然后判斷k值是否小于n(步驟32)。如果是,k值增1(步驟33),產(chǎn)生k維旋轉(zhuǎn)矩陣Rk(Ωk)以使它能包括(k-1)維旋轉(zhuǎn)矩陣Rk- 1(Ωk-1)作為(k-1)維小矩陣(步驟34)。
于是,k產(chǎn)生的k維旋轉(zhuǎn)矩陣Rkj1(θj1),Rkj2(θj2),…,Rkjk(θjk)的乘積獲得,從而獲得旋轉(zhuǎn)矩陣Rk(Ωk)(步驟35)。然后從k=2到k=n重復(fù)步驟34和步驟35,能產(chǎn)生n維旋轉(zhuǎn)矩陣Rn(Ωn)。
在下面說明的第二種方法中,通過設(shè)置多個小維數(shù)旋轉(zhuǎn)矩陣作為對角塊能獲得偽旋轉(zhuǎn)矩陣。該小維數(shù)旋轉(zhuǎn)矩陣具有設(shè)置為0的保留元素(remaining element)。第二種方法將詳細說明如下。在六維空間的旋轉(zhuǎn)矩陣R的元素由下列方程(37)表示顯示了大量計算。 另外,旋轉(zhuǎn)矩陣R用偽旋轉(zhuǎn)矩陣代替它計算。偽旋轉(zhuǎn)矩陣Q由設(shè)置多個小維數(shù)空間旋轉(zhuǎn)矩陣作為對角塊獲得,該小維數(shù)空間旋轉(zhuǎn)矩陣具有設(shè)置為0的保留元素。例如在六維空間偽旋轉(zhuǎn)矩陣Q用方程(38)表示。 其中A和B是三維旋轉(zhuǎn)矩陣。
當偽旋轉(zhuǎn)矩陣Q的元素與旋轉(zhuǎn)矩陣R的元素比較時,Q包含較多的零元素。由此需要少量計算。它的加密函數(shù)有效操作。通常多維空間旋轉(zhuǎn)矩陣Q能設(shè)置為下列方程(39)表示。 其中A1,A2,…Aj是多維空間旋轉(zhuǎn)矩陣由此計算量可顯著減少,通過用偽旋轉(zhuǎn)矩陣置換多維空間旋轉(zhuǎn)系統(tǒng)的旋轉(zhuǎn)矩陣可快速執(zhí)行加密和解密處理。該偽旋轉(zhuǎn)矩陣是通過設(shè)置多個作為對角塊(diagonal blocks) (具有設(shè)置為0的保留元素)的小維數(shù)旋轉(zhuǎn)矩陣獲得。
在又一方法中,把在通過下列方程(40)表示的小變換中獲得的P值用作一偽空間旋轉(zhuǎn)矩陣。P=S*Q*ST(40)在方程(40)中,q是上述偽矩陣,而s是置換矩陣。如下列方程(41)所示,它是具有各行和列并包含1作為元素的方程。 例如當偽旋轉(zhuǎn)矩陣Q用上述(六維空間)方程(38)表示時,偽空間旋轉(zhuǎn)矩陣p用下列方程(42)表示。 一實例由下列方程(43)表示 由此,通過用組合的置換矩陣(permutation matrice)獲得的偽旋轉(zhuǎn)矩陣代替多維空間旋轉(zhuǎn)系統(tǒng)的旋轉(zhuǎn)矩陣使計算處理復(fù)雜化,于是進一步增加了解密的難度。該置換矩陣具有多個設(shè)置為零的保留元素的作為對角塊設(shè)置的小維素旋轉(zhuǎn)矩陣。
本加密系統(tǒng)的特征是用增加空間維數(shù)增加解密加密數(shù)據(jù)的難度,但軟件處理能快速進行。由此不需要特殊硬件進行加密和解密處理,能精確指示分級特許(授權(quán))和用于個人,用于組等的解密。
因此,本發(fā)明的應(yīng)用包括個人或私有數(shù)據(jù)的管理,保密郵件的管理、廣播通訊數(shù)據(jù)等的管理,和各種其他領(lǐng)域。此外因為本發(fā)明能增強因特網(wǎng)環(huán)境服務(wù)器中數(shù)據(jù)的安全,所以系統(tǒng)管理人員和因特網(wǎng)服務(wù)的提供者可充分利用本發(fā)明。
此外,依據(jù)本發(fā)明參數(shù)p和常向量c可依賴于時間,并且p能由下列方程表示。P(t)={pi(t):i=1,2,3,……}(31)其中c可設(shè)置為c(t)。另外向量初始值r0也能依賴于t。
在實際加密處理中,向量初始值r0代替右側(cè)的rj-1(j=1)。獲得的新向量r1代替了方程(5)右側(cè)的rj-1。通過重復(fù)該處理,順序產(chǎn)生新向量。由方程(31)表示的時間依賴關(guān)系表示相同的加密數(shù)據(jù)不能獲得。即使在不同時間加密相同原始數(shù)據(jù)。
如果在方程(6)中仔細設(shè)置參數(shù)組和函數(shù),由方程(5)順序產(chǎn)生的向量rj能避免收斂到平衡解(balanced solution)。
如果密鑰是保密的,可以認為在不規(guī)則或隨機系統(tǒng)加密的數(shù)據(jù)是難于解密的。本發(fā)明的加密系統(tǒng)繼承了上述特點。本發(fā)明的特征是除了上述慣用加密系統(tǒng)要求的特征外,相關(guān)于下列幾種情況本發(fā)明能自由修改(定制)加密過程。
1.能選擇確定依據(jù)方程的旋轉(zhuǎn)矩陣Rn(Ωn)的表示。
2.在不分散函數(shù)值條件基礎(chǔ)上能選擇地設(shè)置方程(6)右側(cè)函數(shù)Ωn(p,rj-1)和參數(shù)p。
3.各“初始值”可選擇地設(shè)值。
4.由選擇向量的初始值開始,通過選擇地重復(fù)方程(5)的運行獲得的向量rj可再次設(shè)置為用在加密/保密處理中的向量的初始值。
5.當執(zhí)行具有浮點的運算時,操作結(jié)果取決于數(shù)字操作處理機和編譯器,因此解密處理需要的解密環(huán)境相同于加密環(huán)境。
依據(jù)本實施例的過程能夠用整數(shù)進行,在該情況下多維空間可由網(wǎng)絡(luò)分割,并且由離散網(wǎng)格點的坐標表示的向量根據(jù)旋轉(zhuǎn)和空間變換改變。
本加密系統(tǒng)的多維旋轉(zhuǎn)向量的加密過程包括許多選擇。例如多維向量旋轉(zhuǎn)運行不能簡單設(shè)置,并且試圖解密加密數(shù)據(jù)的人必須再生旋轉(zhuǎn)產(chǎn)生單元系統(tǒng),識別該函數(shù)系統(tǒng)以規(guī)定一個綜合的多維向量旋轉(zhuǎn)角,和正確地檢測該參數(shù)(密鑰)。
依據(jù)本發(fā)明再生向量rj的可能性極低,因為有大量設(shè)置非線性函數(shù)的方法從具有參數(shù)p(作為密鑰)的旋轉(zhuǎn)向量狀態(tài)獲得一旋轉(zhuǎn)角Ωn和大量確定旋轉(zhuǎn)矩陣的方法。
因為本加密系統(tǒng)從小于n維旋轉(zhuǎn)矩陣的維數(shù)的旋轉(zhuǎn)矩陣產(chǎn)生n維旋轉(zhuǎn)矩陣,并應(yīng)用于連續(xù)的處理。還因為依據(jù)本發(fā)明連續(xù)的非線性函數(shù)或向量無規(guī)則的產(chǎn)生是通過利用n維旋轉(zhuǎn)矩陣在n維空間閉合區(qū)定義的n維向量的空間變換和旋轉(zhuǎn)由實數(shù)定義的,用選擇或數(shù)字表示的數(shù)據(jù)執(zhí)行加密/解密處理。因此本發(fā)明可用在各種應(yīng)用中。
以下所述為本發(fā)明的加密、解密系統(tǒng)在以上所述數(shù)據(jù)庫管理裝置的實施例中的應(yīng)用。
依據(jù)本發(fā)明一種多維空間旋轉(zhuǎn)系統(tǒng)(多維空間向量系統(tǒng))用作數(shù)據(jù)庫加密算法。在多維空間旋轉(zhuǎn)系統(tǒng)中連續(xù)向量產(chǎn)生在基于預(yù)定函數(shù)的多維空間,向量分量是加密的密鑰流。在多維空間旋轉(zhuǎn)系統(tǒng)中采用具有低特性的各信息處理設(shè)備能完成計算。因此系統(tǒng)可應(yīng)用于便攜終端。即,在外部存取本發(fā)明數(shù)據(jù)庫的環(huán)境下要求加密系統(tǒng)處理數(shù)據(jù)要成功地保證數(shù)據(jù)的安全。此時,依據(jù)本實施例加密數(shù)據(jù)庫,列密鑰不同于行密鑰。因此預(yù)定函數(shù)的參數(shù)使用至少一個列密鑰和行密鑰確定,由此產(chǎn)生相關(guān)于加密的密鑰流,于是能產(chǎn)生每行和列的唯一密鑰流。
綜上所述,依據(jù)本發(fā)明的數(shù)據(jù)庫管理裝置,當加密數(shù)據(jù)庫時檢索處理中用的列項使用列項中公用密鑰加密,同時其他列項的數(shù)據(jù)使用各行唯一的行密鑰加密。因此相關(guān)于不同行使用不同密鑰能提高安全性。當執(zhí)行檢索處理時,相關(guān)于檢索輸入的數(shù)據(jù)使用預(yù)定列項中公用列密鑰加密,并且將加密的檢索數(shù)據(jù)與加密的數(shù)據(jù)庫比較,從而實現(xiàn)了高速的檢索處理。
權(quán)利要求
1.一種數(shù)據(jù)庫管理裝置,包括一加密密鑰規(guī)范單元,規(guī)定是用列項中公用的列密鑰還是用相關(guān)于各行的行密鑰來對數(shù)據(jù)庫中一列項數(shù)據(jù)進行加密;一加密單元,用所說的加密密鑰規(guī)范單元指定的密鑰加密數(shù)據(jù)庫的各列項;一存儲單元,將由所說的加密單元加密的數(shù)據(jù)庫存儲在存儲器中。
2.根據(jù)權(quán)利要求1的數(shù)據(jù)庫管理裝置,其中還包括一數(shù)據(jù)庫搜索單元,當檢索使用公用行密鑰加密的列項時,使用預(yù)定列項中公用行密鑰加密檢索輸入數(shù)據(jù),將加密的檢索數(shù)據(jù)與存儲在存儲器中加密數(shù)據(jù)庫的各項數(shù)據(jù)進行比較,執(zhí)行檢索處理。
3.根據(jù)權(quán)利要求1的數(shù)據(jù)庫管理裝置,其中所說的加密單元使用相關(guān)于各行指定的行密鑰和相應(yīng)列項中的公用列密鑰的組合加密一預(yù)定列項的數(shù)據(jù)。
4.根據(jù)權(quán)利要求1的數(shù)據(jù)庫管理裝置,其中所說加密單元基于預(yù)定函數(shù)在一多維空間產(chǎn)生順序的向量,使用作為加密系統(tǒng)函數(shù)常數(shù)的行密鑰和列密鑰加密一數(shù)據(jù)庫,該加密系統(tǒng)采用作為加密密鑰流的向量元素。
5.一種數(shù)據(jù)庫系統(tǒng),包括,第一信息終端,該第一信息終端包含一數(shù)據(jù)庫;和請求該第一信息終端搜索該數(shù)據(jù)庫的第二信息終端;并通過網(wǎng)絡(luò)連接該第一和第二信息終端,其中在該第一信息終端側(cè),該數(shù)據(jù)庫列項的第一類型數(shù)據(jù)使用列項中公用列密鑰加密,列項的第二類型數(shù)據(jù)使用相關(guān)于各行的行密鑰加密;當?shù)诙畔⒔K端請求搜索相關(guān)于列項的第一類型數(shù)據(jù)庫時,檢索輸入數(shù)據(jù)使用列項中公用列密鑰加密,加密的檢索數(shù)據(jù)通過網(wǎng)絡(luò)傳送到第一信息終端;和在第一信息終端側(cè),加密數(shù)據(jù)庫使用檢索數(shù)據(jù)搜索;作為搜索結(jié)果獲得的加密數(shù)據(jù)通過網(wǎng)絡(luò)返回到第二信息終端。
6.一種管理數(shù)據(jù)庫的數(shù)據(jù)庫管理裝置,其中數(shù)據(jù)使用預(yù)定列項中公用列密鑰被加密,該裝置包括一加密單元,當從預(yù)定列項檢索數(shù)據(jù)時使用列密鑰加密輸入檢索數(shù)據(jù);和檢索單元通過將加密的檢索數(shù)據(jù)與加密數(shù)據(jù)庫各項數(shù)據(jù)相比較進行數(shù)據(jù)的檢索。
7.根據(jù)權(quán)利要求1的數(shù)據(jù)庫管理裝置,其中包括一原文數(shù)據(jù)獲取單元,用于獲取要加密的原文;一向量產(chǎn)生單元,使用由至少該列密鑰或一行密鑰確定的一函數(shù)順序產(chǎn)生在n(n≥1)維空間閉合區(qū)定義的向量;和一邏輯運算單元,使用由所說原文數(shù)據(jù)獲取單元獲取的原文數(shù)據(jù)和由所說向量產(chǎn)生單元產(chǎn)生的向量元素按位單元進行一邏輯運算,產(chǎn)生加密數(shù)據(jù)。
8.一種計算機可讀存儲媒體,用于存儲控制計算機完成處理過程的程序,包括使用列項中公用密鑰來加密數(shù)據(jù)庫列項的第一類型數(shù)據(jù),和使用相關(guān)于各行指定的行密鑰來加密列項第二類型數(shù)據(jù);和搜索作為加密函數(shù)的結(jié)果獲得的加密數(shù)據(jù)庫。
9.一種計算機可讀存儲媒體,用于存儲控制計算機完成處理過程的程序,包括當從預(yù)定列項檢索數(shù)據(jù)時使用列密鑰來加密輸入檢索數(shù)據(jù);和通過將加密檢索數(shù)據(jù)與加密數(shù)據(jù)庫各項數(shù)據(jù)相比較檢索數(shù)據(jù)。
10.一種數(shù)據(jù)庫管理裝置,包括第一加密單元,使用列項中公用列密鑰加密數(shù)據(jù)庫列項第一類型數(shù)據(jù),和使用相關(guān)于各行的行密鑰加密列項第二類型數(shù)據(jù);第二加密單元,使用各行中另外的公用密鑰加密該行密鑰,該行密鑰是在由所說第一加密單元加密數(shù)據(jù)庫列項的第二類型數(shù)據(jù)中使用的;和存儲單元,將所說第一加密單元加密的數(shù)據(jù)庫和所第二加密單元加密的行密鑰存儲在存儲器中。
11.根據(jù)權(quán)利要求10的數(shù)據(jù)庫管理裝置,其中所說行密鑰由指定給所說數(shù)據(jù)庫各行的行數(shù)和一隨機數(shù)產(chǎn)生。
12.根據(jù)權(quán)利要求10的數(shù)據(jù)庫管理裝置,其中包括向量產(chǎn)生單元,使用由該數(shù)據(jù)庫管理裝置中各密鑰確定的函數(shù)順序產(chǎn)生在n(n≥1)維空間閉合區(qū)定義的向量;和邏輯運算單元,使用由所說原文數(shù)據(jù)獲取單元獲取的原文數(shù)據(jù)和由所說向量產(chǎn)生單元產(chǎn)生的向量分量按位單元進行邏輯運算,產(chǎn)生加密數(shù)據(jù)。
13.一種數(shù)據(jù)庫系統(tǒng),包括一第一終端單元,用于管理一數(shù)據(jù)庫;和一第二終端單元,它獨立于第一終端單元,用于搜索該數(shù)據(jù)庫,其中在該第一終端單元側(cè),該數(shù)據(jù)庫被加密并把加密數(shù)據(jù)庫存儲在便攜式存儲媒體中,而該存儲媒體是被分配的;和在該第二終端單元側(cè),使用所說被分配的存儲媒體搜索加密數(shù)據(jù)庫,解密及顯示作為搜索結(jié)果獲取的數(shù)據(jù)。
14.根據(jù)權(quán)利要求13的系統(tǒng),其中所說第一終端單元使用列項中公用列密鑰加密數(shù)據(jù)庫列項第一類型數(shù)據(jù),使用指定給各行的列密鑰加密列項的第二類型數(shù)據(jù),使用行中另一公用密鑰加密行密鑰;和所說加密數(shù)據(jù)庫與加密后的行密鑰存儲在存儲媒體中。
15.根據(jù)權(quán)利要求13的系統(tǒng),其中所說存儲媒體用于存儲在所說第一終端單元加密的數(shù)據(jù)庫,和存儲用于搜索加密數(shù)據(jù)庫的預(yù)定程序。
16.一種計算機可讀存儲媒體,用于存儲控制計算機完成處理過程的程序,包括使用列項中公用列密鑰來加密數(shù)據(jù)庫列項第一類型數(shù)據(jù),和使用相關(guān)于各行指定的行密鑰來加密列項第二類型數(shù)據(jù);和使用行中另外的公用密鑰加密行密鑰,該行密鑰是由所說第一加密函數(shù)在加密數(shù)據(jù)庫列項第二類型數(shù)據(jù)時使用的。
17.一種加密系統(tǒng),包括旋轉(zhuǎn)矩陣產(chǎn)生單元,使用一向量的各分量和取決于一參數(shù)組p的角Ωn產(chǎn)生用于旋轉(zhuǎn)在n(n≥1)維空間閉合區(qū)定義的該向量的n維旋轉(zhuǎn)矩陣Rn(Ωn),以使能包含(n-1)維旋轉(zhuǎn)矩陣Rn-1(Ωn-1)作為(n-1)維小矩陣;向量產(chǎn)生單元,用于產(chǎn)生一向量rj,使得用包含至少該旋轉(zhuǎn)矩陣Rn(Ωn)的非線性函數(shù)順序產(chǎn)生的向量rj(j≥0)在n維空間不互相匹配;二進制運算單元,通過使用原文數(shù)據(jù)和由所說向量產(chǎn)生單元產(chǎn)生的向量rj的各分量進行二進制運算產(chǎn)生加密數(shù)據(jù)。
18.根據(jù)權(quán)利要求17的系統(tǒng),其中所說向量產(chǎn)生單元的非線性函數(shù)是一個包含用于一旋轉(zhuǎn)向量的空間平移的固定向量的函數(shù),而所說向量產(chǎn)生單元順序產(chǎn)生向量以使產(chǎn)生的向量不能互相匹配。
19.根據(jù)權(quán)利要求17的系統(tǒng),其中所說向量產(chǎn)生單元使用的所說n維旋轉(zhuǎn)矩陣Rn(Ωn)是由n維旋轉(zhuǎn)矩陣的乘積產(chǎn)生的,該n維旋轉(zhuǎn)矩陣是通過改變相應(yīng)于(n-1)維旋轉(zhuǎn)矩陣Rn-1(Ωn-1)的(n-1)維小矩陣的引入位置變化而產(chǎn)生的。
20.根據(jù)權(quán)利要求17的系統(tǒng),其中所說二進制運算(op)指示在執(zhí)行一加擾運算S后執(zhí)行異或邏輯和運算(XOR),由下式表示op=XOR·S
21.根據(jù)權(quán)利要求17的系統(tǒng),其中加密數(shù)據(jù)Cj是通過對原文數(shù)據(jù)Mj和一向量進行的二進制運算產(chǎn)生的,該向量是通過由所說向量產(chǎn)生單元使用的非線性函數(shù)產(chǎn)生的第j個(j-th)向量rj和產(chǎn)生的第j-1個加密數(shù)據(jù)Cj-1的檢驗和∑j-1進行的二進制運算獲取的。
22.一解密系統(tǒng),包括一向量產(chǎn)生單元,用于產(chǎn)生向量rj以使由一非線性函數(shù)順序產(chǎn)生的向量rj在n維空間互相不匹配,該非線性函數(shù)包含至少一n維旋轉(zhuǎn)矩陣Rn(Ωn),該矩陣用一定義在n維空間閉合區(qū)的向量的各分量和取決于參數(shù)組p的角Ωn來旋轉(zhuǎn)該向量;一逆二進制運算單元,用于接收來自加密側(cè)的加密數(shù)據(jù),該加密數(shù)據(jù)是通過對原文數(shù)據(jù)和由與所說向量產(chǎn)生單元類似方法產(chǎn)生的向量rj的分量進行的二進制運算產(chǎn)生的;且通過使用所說向量產(chǎn)生單元產(chǎn)生的向量rj和該加密數(shù)據(jù),執(zhí)行相應(yīng)于該二進制運算相反運算的二進制逆運算來解密出原文數(shù)據(jù)。
23.根據(jù)權(quán)利要求21的系統(tǒng),其中所說旋轉(zhuǎn)矩陣Rn(Ωn)是由所說旋轉(zhuǎn)矩陣產(chǎn)生單元產(chǎn)生的。
24.根據(jù)權(quán)利要求21的系統(tǒng),其中由所說向量產(chǎn)生單元使用的非線性函數(shù)是包含用于旋轉(zhuǎn)向量的空間平移的固定向量的函數(shù),而所說向量產(chǎn)生單元順序產(chǎn)生向量,以使這些向量不互相匹配。
25.根據(jù)權(quán)利要求21的系統(tǒng),其中由所說向量產(chǎn)生單元使用的n維旋轉(zhuǎn)矩陣Rn(Ωn)是通過改變相應(yīng)于(n-1)維旋轉(zhuǎn)矩陣Rn-1(Ωn-1)的(n-1)維小矩陣的引入位置產(chǎn)生的n維旋轉(zhuǎn)矩陣的乘積產(chǎn)生的。
26.根據(jù)權(quán)利要求21的系統(tǒng),基中所說二進制運算(op)指示執(zhí)行一加擾運算S后執(zhí)行異或邏輯和運算(XOR),由下式表示op=XOR·S所說逆二進制運算(op-1)指示執(zhí)行異或邏輯和(XOR)運算后執(zhí)行相反于加擾運算S的逆運算S-1,由下式表示op-1=S-1XOR
27.根據(jù)權(quán)利要求26的系統(tǒng),其中生成第j-1個接收的加密數(shù)據(jù)Cj-1的檢驗和∑j-1,并且二進制運算是使用該生成結(jié)果和所說向量產(chǎn)生單元所用的非線性函數(shù)產(chǎn)生的向量rj來完成的,而逆二進制運算是使用該二進制運算產(chǎn)生的向量與接收的第j個加密數(shù)據(jù)Cj進行的,由此解密原文數(shù)據(jù)Mj。
28.一種向量產(chǎn)生系統(tǒng),用于數(shù)據(jù)庫管理裝置和加密/解密系統(tǒng)中,其中當產(chǎn)生用于以一定義在n維空間閉合區(qū)的一向量的各分量和取決于一參數(shù)組p的角來旋轉(zhuǎn)該向量的一n維旋轉(zhuǎn)矩陣R時,多個小維數(shù)旋轉(zhuǎn)矩陣作為對角塊(diagonalblock)設(shè)置,而作為零元素產(chǎn)生的偽旋轉(zhuǎn)矩陣Q用在其余部分。
29.根據(jù)權(quán)利要求28的系統(tǒng),其中當產(chǎn)生用于以一定義在n維空間閉合區(qū)的一向量的各分量和取決于一參數(shù)組p的角來旋轉(zhuǎn)該向量的一n維旋轉(zhuǎn)矩陣R時,多個小維數(shù)旋轉(zhuǎn)矩陣作為對角塊(diagonal block)設(shè)置,而將通過用置換矩陣S來對作為0元素生成的一偽旋轉(zhuǎn)矩陣進行式P=S·Q·ST所表示的類似的變換而形成的矩陣P用于其余的部分。
全文摘要
在一數(shù)據(jù)庫中,頻繁檢索的列項用公用密鑰加密,而其他列是使用指定的行密鑰加密的。由此檢索處理能以高速進行,并能提高安全性。另外,通過假定要加密的原文是位串,并用隨機位串執(zhí)行一二進制運算來加密數(shù)據(jù)庫的行和列。隨機位串的獲得是通過定義1個字和多個字的預(yù)定位長作為多維向量的分量,用非線性函數(shù)順序產(chǎn)生多維向量而獲得的。
文檔編號G06F21/62GK1303065SQ00134899
公開日2001年7月11日 申請日期2000年9月30日 優(yōu)先權(quán)日1999年9月30日
發(fā)明者佐藤誠, 竹田恒治, 森潤二, 黑澤和大 申請人:卡西歐計算機株式會社
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
楚雄市| 霍州市| 德格县| 辰溪县| 漠河县| 凤阳县| 徐州市| 东明县| 富蕴县| 浙江省| 西城区| 万盛区| 个旧市| 黄陵县| 仁布县| 永德县| 塔城市| 池州市| 峨山| 阿城市| 云林县| 廉江市| 饶河县| 托克逊县| 盐亭县| 九台市| 淳安县| 屏山县| 吐鲁番市| 灌南县| 江口县| 嘉峪关市| 调兵山市| 绥滨县| 深州市| 鹰潭市| 驻马店市| 荆门市| 德清县| 孟连| 枝江市|