專利名稱::一種數(shù)據(jù)加密、解密系統(tǒng)和方法
技術(shù)領(lǐng)域:
:本發(fā)明涉及一種數(shù)據(jù)加密、解密系統(tǒng)和方法,尤其涉及一種通過互聯(lián)網(wǎng)自動完成數(shù)據(jù)文件加密和解密的系統(tǒng)和方法。
背景技術(shù):
:目前的數(shù)據(jù)加密方法主要分為兩類不對稱和對稱加密,其中前者又稱之為公鑰加密。廣為人知的標(biāo)準(zhǔn)化加密算法例子分別是RSA公鑰不對稱加密和AES/DES對稱加密。一個不對稱的公鑰加密系統(tǒng)有一對公、私鑰。私鑰只為用戶自己掌握,而公鑰對其他人公開。假設(shè)私鑰所有人為用戶A,其公、私鑰分別為Xa和Ya,其中符號X和Y表示公鑰和私鑰,下標(biāo)a表示屬于用戶A。如果用戶B欲加密其發(fā)送給A的數(shù)據(jù)T,則B利用Xa對T加密獲取密文Ta,并把Ta發(fā)給A,收到來自B的密文Ta后,A用其私鑰Ya對Ta進(jìn)行解密運算獲取原文T。因為不對稱的公鑰加密系統(tǒng)加、解密的運算復(fù)雜度較大,在實際應(yīng)用中,RSA通常并不直接用于對數(shù)據(jù)進(jìn)行加密,而與AES/DES等對稱加密技術(shù)相結(jié)合形成一個運算復(fù)雜度較小的混合加密方案。例如,用戶B首先用A的RSA公鑰Xa對AES子系統(tǒng)使用的密碼K進(jìn)行加密為Ka,并用AES的密碼K把T加密為T,,然后把Ka和T,一起發(fā)送給A。收到來自于B的密文Ka和T'后,A用其私鑰Ya解密Ka獲取K,再用K解密T'獲取T。在以上用戶B向A發(fā)送密文的典型傳統(tǒng)應(yīng)用例子中,用戶B需要通過某種途徑獲取A的公鑰Xa以將明文加密為密文,而用戶A需要向系統(tǒng)提供其私鑰Xa以將密文解密為明文。如何獲取一個用戶的公、私鑰,是該類應(yīng)用中一個很關(guān)鍵的問題,直接影響該類應(yīng)用的使用方便性。文件加密是一種重要的加密應(yīng)用。然而,現(xiàn)行的文件加密系統(tǒng),需要用戶提供一個密碼用于文件的加密和解密。根據(jù)該密碼,系統(tǒng)可以通過有限步驟的運算后,獲取一個用于對目標(biāo)數(shù)據(jù)進(jìn)行加、解密的最終密碼。比如,在以上例子中,Xa和Ya分別為加、解密過程的初始密碼,而K為最終密碼。目前比較通行的管理初始密碼的方法,是由用戶自己保存,并通過USB盤等隨身攜帶,以在有需要時使用
發(fā)明內(nèi)容為了解決以上文件加密應(yīng)用中使用不便的缺點,我們在本發(fā)明中把文件加、解密和初始密碼的管理通過互聯(lián)網(wǎng)技術(shù)結(jié)合,方便聯(lián)網(wǎng)用戶隨時隨地使用文件加、解密。本發(fā)明的目的在于把傳統(tǒng)數(shù)據(jù)文件加密應(yīng)用中由用戶在本地提供的公、私鑰管理功能,改為通過互聯(lián)網(wǎng)由遠(yuǎn)端系統(tǒng)自動提供。這樣,利用一個較短的身份驗證碼登錄我們的系統(tǒng),用戶就可以方便的使用原本過程非常繁復(fù)的數(shù)據(jù)加密應(yīng)用。特別地,本發(fā)明通過互聯(lián)網(wǎng)來對公私鑰在遠(yuǎn)端服務(wù)器系統(tǒng)的存儲進(jìn)行管理,并在密文中嵌入用一個或多個授權(quán)讀者的公鑰加密后的對稱密鑰。在用戶通過互聯(lián)網(wǎng)登錄服務(wù)器系統(tǒng)后,系統(tǒng)即可用一個或多個文件授權(quán)讀者的公鑰自動生成包含各讀者解密所需數(shù)據(jù)的加密文件,以及用各獲授權(quán)讀者的私鑰從密文自動恢復(fù)明文。一種數(shù)據(jù)加密、解密系統(tǒng),它包括一個接受用戶指令對文件進(jìn)行加密和解密、以及進(jìn)行公/私鑰管理的客戶端子系統(tǒng)和一個從客戶端子系統(tǒng)處接受作業(yè)請求、執(zhí)行作業(yè)并返回作業(yè)結(jié)果的服務(wù)器子系統(tǒng),客戶端子系統(tǒng)和服務(wù)器子系統(tǒng)通過互聯(lián)網(wǎng)進(jìn)行數(shù)據(jù)通訊。服務(wù)器子系統(tǒng)執(zhí)行的作業(yè)包括公/私鑰的生成、存儲、發(fā)布和管理,所述公鑰的發(fā)布信息的査閱,服務(wù)器還可以根據(jù)用戶的預(yù)先設(shè)置對來不同用戶的查閱請求作出權(quán)限控制;根據(jù)用戶在服務(wù)器中所存儲的公鑰對作業(yè)中提交的數(shù)據(jù)進(jìn)行加密;根據(jù)用戶在服務(wù)器中所存儲的私鑰對作業(yè)中提交的數(shù)據(jù)進(jìn)行解密??蛻舳俗酉到y(tǒng)的公/私鑰管理主要包括利用用戶的身份驗證碼通過互聯(lián)網(wǎng)登錄遠(yuǎn)程的服務(wù)器子系統(tǒng),并從用戶處接受指令,對存儲于遠(yuǎn)程服務(wù)器子系統(tǒng)中的公、私鑰進(jìn)行更新、發(fā)布和檢索等管理;還包括可以在本地生成公、私鑰,并將其存儲到遠(yuǎn)程的服務(wù)器子系統(tǒng)。所述加密后的文件格式為I文件頭I:其中密文為輸入的數(shù)據(jù)用對稱密鑰Keyl加密后的內(nèi)容,文件頭包含一個或者多個用戶的公鑰對Keyl加密后的密文。文件頭的結(jié)構(gòu)有兩種方案,其一為MiscNlKlNmKm其中,Ki為用名字為Ni的公鑰對Keyl加密后的獲得的Keyl的密文Keyl',字段Misc包含該文件的其它管理信息,如文件長度、數(shù)據(jù)校驗等,Ni包含了從互聯(lián)網(wǎng)上存取Ki所需要的索引信息。此文件頭結(jié)構(gòu)對應(yīng)的加密/解密主要步驟包括1)用戶輸入一個或者多個該文件的讀者的身份標(biāo)識,該用戶我們稱之為該文件的作者;2)作者通過互聯(lián)網(wǎng)向其所屬服務(wù)器發(fā)出作業(yè)請求,檢索相應(yīng)讀者發(fā)布的公鑰,如果其他讀者所屬的服務(wù)器和作者的不同,則由作者所屬的服務(wù)器向其他讀者所屬的服務(wù)器發(fā)出作業(yè)請求,并將作業(yè)結(jié)果返回作者,如果使用的是基于身份的公、私鑰加密技術(shù),這一步可以是根據(jù)各讀者的身份標(biāo)識在本地計算出他們各自的公鑰,無需通過網(wǎng)絡(luò)從服務(wù)器獲??;3)根據(jù)作者輸入或者由系統(tǒng)自動隨機產(chǎn)生的密碼Keyl,用步驟2中獲取的各讀者的公鑰對Keyl進(jìn)行加密計算,并將Keyl的密文和各公鑰名及其對應(yīng)的計算結(jié)果存儲于文件頭的各字段;4)用Keyl對文件內(nèi)容進(jìn)行對稱加密,作為文件密文部分;5)根據(jù)特定算法計算Misc字段的數(shù)據(jù),對文件進(jìn)行封包;6)根據(jù)文件頭中的Misc字段驗證文件頭和文件數(shù)據(jù)的正確性;7)根據(jù)文件頭部該讀者的公鑰名,通過互聯(lián)網(wǎng)從該讀者的服務(wù)器獲取或由該讀者自己在本地存儲器提供相應(yīng)的私鑰;8)假設(shè)獲取的是對應(yīng)Ni的私鑰,用該私鑰對Ki進(jìn)行解密,獲取密碼對稱密碼Keyl;9)用Keyl對文件的密文部分進(jìn)行解密,獲取明文。所述文件頭的結(jié)構(gòu)還可以為:<formula>formulaseeoriginaldocumentpage10</formula>此結(jié)構(gòu)中,在K1,K2,Km中我們存貯的是用各用戶的公鑰對另外一個密碼Key2進(jìn)行加密后的數(shù)據(jù)Key2,,而Ks存貯的是用Key2對Key1用對稱加密算法如AES等進(jìn)行加密后的數(shù)據(jù)結(jié)果Keyl',文件的數(shù)據(jù)用Keyl對稱加密,字段Misc包含該文件的其它管理信息,如文件長度、數(shù)據(jù)校驗等,Ni包含了從互聯(lián)網(wǎng)上存取Ki所需要的索引信息。此文件頭對應(yīng)的加密/解密的步驟包括1)用戶輸入一個或者多個該文件的讀者的身份標(biāo)識,該用戶我們稱之為該文件的作者;2)作者通過互聯(lián)網(wǎng)向其所屬服務(wù)器發(fā)出作業(yè)請求,檢索相應(yīng)讀者發(fā)布的公鑰,如果其他讀者所屬的服務(wù)器和作者的不同,則由作者所屬的服務(wù)器向其他讀者所屬的服務(wù)器發(fā)出作業(yè)請求,并將作業(yè)結(jié)果返回作者,如果使用的是基于身份的公、私鑰加密技術(shù),這一步可以是根據(jù)各讀者的身份標(biāo)識在本地計算出他們各自的公鑰,無需通過網(wǎng)絡(luò)從服務(wù)器獲?。?)根據(jù)作者輸入或者由系統(tǒng)自動隨機產(chǎn)生的密碼Keyl和Key2,用Key2對Keyl用對稱加密算法進(jìn)行加密,并將Keyl的密文存儲于文件頭部;4)用步驟2中獲取的各讀者的公鑰對Key2進(jìn)行加密計算,并將各公鑰名及其對應(yīng)的計算結(jié)果存儲于文件頭的各字段;5)用Keyl對文件內(nèi)容進(jìn)行對稱加密,作為文件密文部分;6)根據(jù)特定算法計算Misc字段的數(shù)據(jù),對文件進(jìn)行封包;7)根據(jù)文件頭中的Misc字段驗證文件頭和文件數(shù)據(jù)的正確性;8)根據(jù)文件頭部該讀者的公鑰名,通過互聯(lián)網(wǎng)從該讀者的服務(wù)器獲取或由該讀者自己在本地存儲器提供相應(yīng)的私鑰;9)假設(shè)獲取的是對應(yīng)Ni的私鑰,用該私鑰對Ki進(jìn)行解密,獲取密碼對稱密碼Key2;10)用密碼Key2對Keyl的密文進(jìn)行解密,得到密碼Keyl;11)用Keyl對文件的密文部分進(jìn)行解密,獲取明文。所述第一密碼Keyl和第二密碼Key2,可以由客戶端子系統(tǒng)自動隨機產(chǎn)生,也可以由用戶輸入,第一密碼進(jìn)行加密所需要的公鑰,可以根據(jù)用戶的設(shè)置,由客戶端系統(tǒng)從本地存儲器或者通過互聯(lián)網(wǎng)從遠(yuǎn)程服務(wù)器獲取。解密部分,可以由客戶端子系統(tǒng)通過互聯(lián)網(wǎng)向遠(yuǎn)程服務(wù)提交對第一密碼進(jìn)行解密的作業(yè)請求,由遠(yuǎn)程服務(wù)器返回解密后的第一密碼,再用解密后的第一密碼來解密文件數(shù)據(jù)部分的密文;還可以由客戶端子系統(tǒng)通過互聯(lián)網(wǎng)向遠(yuǎn)程服務(wù)提交對第二密碼進(jìn)行解密的作業(yè)請求,由遠(yuǎn)程服務(wù)器返回解密后的第二密碼,再用解密后的第二密碼來解密文件頭中的第一密碼的密文,然后用第一密碼來解密文件數(shù)據(jù)部分的密文;它還可以由用戶直接輸入第一密碼,或者由客戶端子系統(tǒng)從本地或者通過互聯(lián)網(wǎng)從遠(yuǎn)程服務(wù)器獲取用戶的私鑰對加密后的第二和第一密碼進(jìn)行解密。本發(fā)明的有益效果為1、本發(fā)明把文件加、解密和初始密碼的管理通過互聯(lián)網(wǎng)技術(shù)結(jié)合,方便聯(lián)網(wǎng)用戶隨時隨地使用文件加、解密。2、本發(fā)明把傳統(tǒng)數(shù)據(jù)文件加密應(yīng)用中由用戶在本地提供的公、私鑰管理功能,改為通過互聯(lián)網(wǎng)由遠(yuǎn)端系統(tǒng)自動提供。這樣,利用一個較短的身份驗證碼登錄我們的系統(tǒng),用戶就可以方便的使用原本過程非常繁復(fù)的數(shù)據(jù)加密應(yīng)用。3、本發(fā)明通過互聯(lián)網(wǎng)來對公私鑰在遠(yuǎn)端服務(wù)器系統(tǒng)的存儲進(jìn)行管理,并在文件中嵌入用一個或多個授權(quán)讀者的公鑰加密后的對稱密鑰。在用戶通過互聯(lián)網(wǎng)登錄服務(wù)器系統(tǒng)后,系統(tǒng)即可用一個或多個文件授權(quán)讀者的公鑰自動生成包含各讀者解密所需數(shù)據(jù)的加密文件,以及用各獲授權(quán)讀者的私鑰從密文自動恢復(fù)明文。圖1為加密、解密系統(tǒng)結(jié)構(gòu)圖;圖2為實施例結(jié)構(gòu)圖。具體實施方式下面結(jié)合附圖對本發(fā)明進(jìn)行進(jìn)一步闡述。如圖1所示,一種數(shù)據(jù)加密、解密系統(tǒng),它包括一個接受用戶指令對文件進(jìn)行加密和解密、以及進(jìn)行公/私鑰管理的客戶端子系統(tǒng)和一個從客戶端子系統(tǒng)處接受作業(yè)請求、執(zhí)行作業(yè)并返回作業(yè)結(jié)果的服務(wù)器子系統(tǒng),客戶端子系統(tǒng)和服務(wù)器子系統(tǒng)通過互聯(lián)網(wǎng)進(jìn)行數(shù)據(jù)通訊。服務(wù)器子系統(tǒng)執(zhí)行的作業(yè)包括公/私鑰的生成、存儲、發(fā)布和管理,所述公鑰的發(fā)布信息的查閱,服務(wù)器還可以根據(jù)用戶的預(yù)先設(shè)置對來不同用戶的公、私鑰查閱請求作出權(quán)限控制;根據(jù)用戶在服務(wù)器中所存儲的公鑰對作業(yè)中提交的數(shù)據(jù)進(jìn)行加密;根據(jù)用戶在服務(wù)器中所存儲的私鑰對作業(yè)中提交的數(shù)據(jù)進(jìn)行解密??蛻舳俗酉到y(tǒng)的公/私鑰管理主要包括利用用戶的身份驗證碼通過互聯(lián)網(wǎng)登錄遠(yuǎn)程的服務(wù)器子系統(tǒng),并從用戶處接受指令,對存儲于遠(yuǎn)程服務(wù)器子系統(tǒng)中的公、私鑰進(jìn)行更新、發(fā)布和檢索等管理;還包括可以在本地生成公、私鑰,并將其存儲到遠(yuǎn)程的服務(wù)器子系統(tǒng)。用于存儲加密后的數(shù)據(jù)結(jié)構(gòu)如表1所示文件頭密文表1為文件結(jié)構(gòu)第一種方案一個加密后的文件包括文件頭和密文兩部分。后者為輸入的數(shù)據(jù)用對稱密鑰Keyl用對稱加密算法如AES等加密后的密文,而前者包含用一個或多個用戶的公鑰對Keyl加密后的密文Kl,K2...Km。為敘述方便,我們稱這些用戶K1,K2…Km為該文件的讀者。如下表2所示為一個包含用m個讀者的公鑰對Keyl加密后構(gòu)成的文件頭。Ki為用名字為Ni的公鑰對Keyl加密后的獲得的Keyl的密文。字段Misc包含該文件的其它管理信息,如文件長度、數(shù)據(jù)校驗等。Ni包含了從互聯(lián)網(wǎng)上存取Ki所需要的索引信息。MiscNlKlNmKm表2為文件頭結(jié)構(gòu)以下我們給出運用此文件頭設(shè)計方案的加密和解密方法。加密過程1)用戶輸入一個或者多個該文件的讀者的身份標(biāo)識,該用戶我們稱之為該文件的作者。讀者可以包括作者本身。2)作者通過互聯(lián)網(wǎng)向其所屬服務(wù)器發(fā)出作業(yè)請求,檢索相應(yīng)讀者發(fā)布的公鑰,如果其他讀者所屬的服務(wù)器和作者的不同,則由作者所屬的服務(wù)器向其他讀者所屬的服務(wù)器發(fā)出作業(yè)請求,并將作業(yè)結(jié)果返回作者。(如果使用的是基于身份的公、私鑰加密技術(shù),這一步可以是根據(jù)各讀者的身份標(biāo)識在本地計算出他們各自的公鑰,無需通過網(wǎng)絡(luò)從服務(wù)器獲取。)3)根據(jù)作者輸入或者由系統(tǒng)自動隨機產(chǎn)生的密碼Keyl,用步驟2中獲取的各讀者的公鑰對Keyl進(jìn)行加密計算,并將各公鑰名及其對應(yīng)的計算結(jié)果存到表2中所示的文件頭的各字段。4)用Keyl對文件內(nèi)容進(jìn)行對稱加密,作為表1所示的文件密文部分。5)根據(jù)特定算法計算表2中Misc字段的數(shù)據(jù),對文件進(jìn)行封包。作者完成文件的加密后,將文件通過互聯(lián)網(wǎng)或者其它方式傳送給讀者。任一讀者收到該加密文件后,可對其進(jìn)行解密如下。解密過程為1)根據(jù)文件頭中的Misc字段驗證文件頭和文件數(shù)據(jù)的正確性2)根據(jù)文件頭部該讀者的公鑰名,通過互聯(lián)網(wǎng)從該讀者的服務(wù)器獲取或由該讀者自己在本地存儲器提供相應(yīng)的私鑰。3)假設(shè)獲取的是對應(yīng)Ni的私鑰,用該私鑰對Ki進(jìn)行解密,獲取密碼對稱密碼Keyl。4)用Keyl對文件的密文部分進(jìn)行解密,獲取明文。在以上方案中,我們利用各讀者的公鑰來對Keyl進(jìn)行加密后放在文件頭,即K1,K2…Km。因為通常使用的RSA公鑰為128—256個字節(jié),其可有效加密的數(shù)據(jù)長度(即本例子中Keyl的長度)范圍在幾十個字節(jié)之間。而Keyl的長度直接影響到被加密文件數(shù)據(jù)的保密性。為了使用比較長的Keyl,我們還可以對該種方案做迸一步改進(jìn)如下。第二種方案如表3所示,在文件頭中我們多增加一項Ks。與第一種方案不同的是,在Kl,K2,Km中我們存貯的是用各讀者的公鑰對另外一個密碼Key2進(jìn)行加密后的數(shù)據(jù)。而Ks存貯的是用Key2對Keyl用對稱加密算法如AES等進(jìn)行加密后的數(shù)據(jù)結(jié)果,文件的數(shù)據(jù)用Keyl對稱加密。<table>tableseeoriginaldocumentpage16</column></row><table>表3為文件頭結(jié)構(gòu)在以上兩種方案中,假設(shè)讀者i需要解密的時候,可用以下方法-1)如果該讀者知道密碼Keyl,則可以輸入Keyl直接解密文件密文。2)如果是第一種方案,則用該讀者的私鑰對Ki解密獲取Keyl;如果是第二種方案,則先用該讀者的私鑰對Ki解密獲取Key2,然后用Key2對Ks解密獲取Keyl。3)用Keyl解密文件的數(shù)據(jù).相對第一種方案而言,第二種方案的設(shè)計是一個多層加密方案,可以用來實現(xiàn)密碼Key2限長,而用相對較長的密碼Keyl來對數(shù)據(jù)進(jìn)行加密。Key2和Keyl均可以由用戶輸入或者系統(tǒng)自動生成。這種方案可以讓用戶使用易讀的較長密碼Keyl來對文件數(shù)據(jù)進(jìn)行加密,提高被加密數(shù)據(jù)的保密性。利用以上所描述本發(fā)明的方法,我們給出一個本發(fā)明的實施例如下。假設(shè)用戶A給用戶B發(fā)送一個只有用戶A和B才能解密的文件。該實施例的結(jié)構(gòu)如圖2所示,圖中各組成部分用標(biāo)號l、2、3、4表示。其中1,2為用戶A和B,而3、4為管理用戶A、B的公私鑰所在的服務(wù)器。各用戶和服務(wù)器通過互聯(lián)網(wǎng)進(jìn)行通信。加密過程1)用戶A輸入授權(quán)讀者A和B的身份標(biāo)識。2)用戶A通過互聯(lián)網(wǎng)向其所屬服務(wù)器A發(fā)出作業(yè)請求,檢索用戶A和B發(fā)布的公鑰。服務(wù)器A向服務(wù)器B發(fā)出作業(yè)請求,并將用戶A和B的公鑰返回給用戶A。3)根據(jù)用戶A輸入或者由系統(tǒng)自動隨機產(chǎn)生的一個密碼Keyl,例如"abcl23",用步驟2中獲取的用戶A和B的公鑰對密碼Keyl進(jìn)行RSA加密計算,并將各公鑰名和計算結(jié)果存到文件頭的相應(yīng)字段。4)用Keyl對文件內(nèi)容用AES算法進(jìn)行對稱加密,作為文件的密文部分。5)根據(jù)特定算法計算文件頭中Misc字段的數(shù)據(jù),對文件進(jìn)行封包。用戶A完成文件的加密后,將文件通過互聯(lián)網(wǎng)或者其它方式傳送給用戶B。收到密件后,用戶B對其進(jìn)行解密。解密過程為-1)根據(jù)Misc驗證文件頭和文件數(shù)據(jù)的正確性2)根據(jù)文件頭部的用戶B的公鑰名,通過互聯(lián)網(wǎng)獲取或由用戶B在本地存儲器提供相應(yīng)的私鑰。3)假設(shè)用戶B是對應(yīng)文件頭中字段N1和Kl的讀者,用該私鑰對K1進(jìn)行RSA解密,獲取密碼明文"abcl23"。4)用"abcl23"對文件的密文用AES算法進(jìn)行解密還原。根據(jù)本文所描述而做改動的技術(shù)均隸屬于本發(fā)明的保護(hù)范圍,不限于在說明書中所描述的特定實施例。權(quán)利要求么、鑰的發(fā)布信息的査閱以及所述私鑰信息的査閱,服務(wù)器還可以根據(jù)用1、一種數(shù)據(jù)加密、解密系統(tǒng),其特征在于,它包括一個接受用戶指令對文件進(jìn)行加密和解密、以及進(jìn)行公/私鑰管理的客戶端子系統(tǒng)和一個從客戶端子系統(tǒng)處接受作業(yè)請求、執(zhí)行作業(yè)并返回作業(yè)結(jié)果的服務(wù)器子系統(tǒng),客戶端子系統(tǒng)和服務(wù)器子系統(tǒng)通過互聯(lián)網(wǎng)進(jìn)行數(shù)據(jù)通訊。2、根據(jù)權(quán)利要求1所述的數(shù)據(jù)加密、解密系統(tǒng),其特征在于,所述服務(wù)器子系統(tǒng)執(zhí)行的作業(yè)包括公/私鑰的生成、存儲、發(fā)布和管理,所述公?戶的預(yù)先設(shè)置對來不同用戶的公、私鑰査閱請求作出權(quán)限控制;服務(wù)器子系統(tǒng)執(zhí)行的作業(yè)還包括根據(jù)用戶在服務(wù)器中所存儲的公鑰對作業(yè)中提交的數(shù)據(jù)進(jìn)行加密;服務(wù)器子系統(tǒng)執(zhí)行的作業(yè)還包括根據(jù)用戶在服務(wù)器中所存儲的私鑰對作業(yè)中提交的數(shù)據(jù)進(jìn)行解密。3、根據(jù)權(quán)利要求1所述的數(shù)據(jù)加密、解密系統(tǒng),其特征在于,所述客戶端子系統(tǒng)的公/私鑰管理主要包括利用用戶的身份驗證碼通過互聯(lián)網(wǎng)登錄遠(yuǎn)程的服務(wù)器子系統(tǒng),并從用戶處接受指令,對存儲于遠(yuǎn)程服務(wù)器子系統(tǒng)中的公、私鑰進(jìn)行更新、發(fā)布和檢索等管理;還包括可以在本地生成公、私鑰,并將其存儲到遠(yuǎn)程的服務(wù)器子系統(tǒng)。4、根據(jù)權(quán)利要求1所述的數(shù)據(jù)加密、解密系統(tǒng),其特征在于,所述加密后的文件格式為文件頭密文其中密文為輸入的數(shù)據(jù)用對稱密鑰Keyl加密后的內(nèi)容,文件頭包含-個或者多個用戶的公鑰對Keyl加密后的密文。5、根據(jù)權(quán)利要求4所述的數(shù)據(jù)加密、解密系統(tǒng),其特征在于,所述文件頭的結(jié)構(gòu)為<table>tableseeoriginaldocumentpage3</column></row><table>其中,Ki為用名字為Ni的公鑰對Keyl加密后的獲得的Keyl的密文Keyl',字段Misc包含該文件的其它管理信息,如文件長度、數(shù)據(jù)校驗等,Ni包含了從互聯(lián)網(wǎng)上存取Ki所需要的索引信息;所述文件頭的結(jié)構(gòu)還可以為-<table>tableseeoriginaldocumentpage3</column></row><table>此結(jié)構(gòu)中,在K1,K2…Km中我們存貯的是用各用戶的公鑰對另外一個密碼Key2進(jìn)行加密后的數(shù)據(jù)Key2',而Ks存貯的是用Key2對Keyl用對稱加密算法如AES等進(jìn)行加密后的數(shù)據(jù)結(jié)果Keyl',文件的數(shù)據(jù)用Keyl對稱加密,字段Misc包含該文件的其它管理信息,如文件長度、數(shù)據(jù)校驗等,Ni包含了從互聯(lián)網(wǎng)上存取Ki所需要的索引信息。6、根據(jù)權(quán)利要求5所述的數(shù)據(jù)加密、解密系統(tǒng),其特征在于,所述第一密碼Keyl和第二密碼Key2,可以由客戶端子系統(tǒng)自動隨機產(chǎn)生,也可以由用戶輸入。7、根據(jù)權(quán)利要求1或2所述的數(shù)據(jù)加密、解密系統(tǒng),其特征在于,所述對第一密碼進(jìn)行加密所需要的公鑰,可以根據(jù)用戶的設(shè)置,由客戶端系統(tǒng)從本地存儲器或者通過互聯(lián)網(wǎng)從遠(yuǎn)程服務(wù)器獲取。8、根據(jù)權(quán)利要求1所述的數(shù)據(jù)加密、解密系統(tǒng),其特征在于,所述客戶端子系統(tǒng)的解密過程,可以由客戶端子系統(tǒng)通過互聯(lián)網(wǎng)向遠(yuǎn)程服務(wù)提交對第一密碼進(jìn)行解密的作業(yè)請求,由遠(yuǎn)程服務(wù)器返回解密后的第一密碼,再用解密后的第一密碼來解密文件數(shù)據(jù)部分的密文;還可以由客戶端子系統(tǒng)通過互聯(lián)網(wǎng)向遠(yuǎn)程服務(wù)提交對第二密碼進(jìn)行解密的作業(yè)請求,由遠(yuǎn)程服務(wù)器返回解密后的第二密碼,再用解密后的第二密碼來解密文件頭中的第一密碼的密文,然后用第一密碼來解密文件數(shù)據(jù)部分的密文;它還可以由用戶直接輸入第一密碼,或者由客戶端子系統(tǒng)從本地或者通過互聯(lián)網(wǎng)從遠(yuǎn)程服務(wù)器獲取用戶的私鑰對加密后的第二和第一密碼進(jìn)行解密。9、一種數(shù)據(jù)加密、解密系統(tǒng)的方法,其特征在于,所述加密/解密主要步驟包括1)用戶輸入一個或者多個該文件的讀者的身份標(biāo)識,該用戶我們稱之為該文件的作者;2)作者通過互聯(lián)網(wǎng)向其所屬服務(wù)器發(fā)出作業(yè)請求,檢索相應(yīng)讀者發(fā)布的公鑰,如果其他讀者所屬的服務(wù)器和作者的不同,則由作者所屬的服務(wù)器向其他讀者所屬的服務(wù)器發(fā)出作業(yè)請求,并將作業(yè)結(jié)果返回作者,如果使用的是基于身份的公、私鑰加密技術(shù),這一步可以是根據(jù)各讀者的身份標(biāo)識在本地計算出他們各自的公鑰,無需通過網(wǎng)絡(luò)從服務(wù)器獲?。?)根據(jù)作者輸入或者由系統(tǒng)自動隨機產(chǎn)生的密碼Keyl,用步驟2中獲取的各讀者的公鑰對Keyl進(jìn)行加密計算,并將Keyl的密文和各公鑰名及其對應(yīng)的計算結(jié)果存儲于文件頭的各字段;4)用Keyl對文件內(nèi)容進(jìn)行對稱加密,作為文件密文部分;5)根據(jù)特定算法計算Misc字段的數(shù)據(jù),對文件進(jìn)行封包;6)根據(jù)文件頭中的Misc字段驗證文件頭和文件數(shù)據(jù)的正確性;7)根據(jù)文件頭部該讀者的公鑰名,通過互聯(lián)網(wǎng)從該讀者的服務(wù)器獲取或由該讀者自己在本地存儲器提供相應(yīng)的私鑰;8)假設(shè)獲取的是對應(yīng)Ni的私鑰,用該私鑰對Ki進(jìn)行解密,獲取對稱密碼Keyl;9)用Keyl對文件的密文部分進(jìn)行解密,獲取明文。所述加密/解密的另一種方法步驟包括1)用戶輸入一個或者多個該文件的讀者的身份標(biāo)識,該用戶我們稱之為該文件的作者;2)作者通過互聯(lián)網(wǎng)向其所屬服務(wù)器發(fā)出作業(yè)請求,檢索相應(yīng)讀者發(fā)布的公鑰,如果其他讀者所屬的服務(wù)器和作者的不同,則由作者所屬的服務(wù)器向其他讀者所屬的服務(wù)器發(fā)出作業(yè)請求,并將作業(yè)結(jié)果返回作者,如果使用的是基于身份的公、私鑰加密技術(shù),這一步可以是根據(jù)各讀者的身份標(biāo)識在本地計算出他們各自的公鑰,無需通過網(wǎng)絡(luò)從服務(wù)器獲??;3)根據(jù)作者輸入或者由系統(tǒng)自動隨機產(chǎn)生的密碼Keyl和Key2,用Key2對Keyl用對稱加密算法進(jìn)行加密,并將Keyl的密文存儲于文件頭部;4)用步驟2中獲取的各讀者的公鑰對Key2進(jìn)行加密計算,并將各公鑰名及其對應(yīng)的計算結(jié)果存儲于文件頭的各字段;5)用Keyl對文件內(nèi)容進(jìn)行對稱加密,作為文件密文部分;6)根據(jù)特定算法計算Misc字段的數(shù)據(jù),對文件進(jìn)行封包;7)根據(jù)文件頭中的Misc字段驗證文件頭和文件數(shù)據(jù)的正確性;8)根據(jù)文件頭部該讀者的公鑰名,通過互聯(lián)網(wǎng)從該讀者的服務(wù)器獲取或由該讀者自己在本地存儲器提供相應(yīng)的私鑰;9)假設(shè)獲取的是對應(yīng)Ni的私鑰,用該私鑰對Ki進(jìn)行解密,獲取對稱密碼Key2;10)用密碼Key2對Keyl的密文進(jìn)行解密,得到密碼Keyl;11)用Keyl對文件的密文部分進(jìn)行解密,獲取明文。全文摘要本發(fā)明公開了一種通過互聯(lián)網(wǎng)自動完成數(shù)據(jù)文件加密和解密的系統(tǒng)和方法。該系統(tǒng)包括一個接受用戶指令對文件進(jìn)行加密和解密、以及進(jìn)行公/私鑰管理的客戶端子系統(tǒng)和一個從客戶端子系統(tǒng)處接受作業(yè)請求、執(zhí)行作業(yè)并返回作業(yè)結(jié)果的服務(wù)器子系統(tǒng)。讀者首先將其公鑰發(fā)布到服務(wù)器子系統(tǒng)上,用戶通過自己設(shè)置的密碼Keyl對文件明文進(jìn)行對稱加密;然后用戶通過互聯(lián)網(wǎng)獲得該讀者的公鑰,并用該公鑰對密碼Keyl進(jìn)行不對稱加密后存儲于文件頭部,讀者接受到用戶的文件之后,首先通過自己的私鑰對文件頭部中密碼Keyl的密文進(jìn)行解密,獲得Keyl,然后再利用Keyl對文件的密文進(jìn)行解密得到明文。本發(fā)明通過將文件的加密/解密和密鑰的管理與互聯(lián)網(wǎng)相結(jié)合,方便用戶隨時隨地使用文件加密解密。文檔編號H04L9/28GK101123495SQ20071003013公開日2008年2月13日申請日期2007年9月7日優(yōu)先權(quán)日2007年9月7日發(fā)明者革農(nóng)申請人:革農(nóng)