国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      保護RSA加密算法的私鑰安全的方法和裝置與流程

      文檔序號:11205761閱讀:640來源:國知局
      保護RSA加密算法的私鑰安全的方法和裝置與流程

      本公開一般涉及計算機技術(shù)領(lǐng)域,具體涉及網(wǎng)絡(luò)信息安全領(lǐng)域,尤其涉及一種保護rsa加密算法的私鑰安全的方法。



      背景技術(shù):

      rsa公鑰加密算法是1977年由羅納德·李維斯特(ronrivest)、阿迪·薩莫爾(adishamir)和倫納德·阿德曼(leonardadleman)一起提出的。rsa就是他們?nèi)诵帐祥_頭字母拼在一起組成的。rsa是目前最有影響力的公鑰加密算法,它能夠抵抗到目前為止已知的絕大多數(shù)密碼攻擊,已被iso推薦為公鑰數(shù)據(jù)加密標準。

      rsa算法基于一個十分簡單的數(shù)論事實:將兩個大質(zhì)數(shù)相乘十分容易,但是想要對其乘積進行因式分解卻極其困難,因此可以將乘積公開作為加密密鑰。

      目前,只有短的rsa私鑰才可能被強力方式解破。到2008年為止,世界上還沒有任何可靠的破解rsa私鑰的方式。但在分布式計算和量子計算機理論日趨成熟的今天,rsa私鑰安全性受到了挑戰(zhàn)。

      因此,需要一種能夠提高rsa加密算法的私鑰安全的方案。



      技術(shù)實現(xiàn)要素:

      鑒于現(xiàn)有技術(shù)中的上述缺陷或不足,期望提供一種能夠提高rsa加密算法的私鑰安全的技術(shù)。

      第一方面,本申請實施例提供了一種保護rsa加密算法的私鑰安全的方法,所述方法包括:接收來自消息發(fā)送方的加密消息和消息流水號,其中,在消息發(fā)送方需要加密消息的情況下,向加密中心發(fā)送加密分組方案請求,加密中心接收到加密分組方案請求后,指定用于將消息分組的加密分組方案、以及與加密分組方案對應的消息流水號,對于每個分組,指定第一質(zhì)數(shù)和第二質(zhì)數(shù),基于第一質(zhì)數(shù)和第二質(zhì)數(shù)確定rsa算法公鑰對和rsa算法私鑰對,并將指定的加密分組方案、和對應的消息流水號發(fā)送給消息發(fā)送方,消息發(fā)送方根據(jù)指定的加密分組方案、以及對于每個分組的rsa算法公鑰對對消息進行rsa加密,并發(fā)送加密消息;將消息接收方的標識、接收到的加密消息、以及消息流水號發(fā)送到加密中心;如果確定消息接收方的標識在加密中心通過驗證,接收來自加密中心的解密后消息,其中,所述加密中心根據(jù)所述消息流水號查找到與該消息流水號對應的加密分組方案、以及對于每個分組的rsa算法私鑰對,基于查找到的與該消息流水號對應的加密分組方案、以及對于每個分組的rsa算法私鑰對,對加密消息進行rsa解密,得到所述解密后消息。

      第二方面,本申請實施例提供了一種保護rsa加密算法的私鑰安全的裝置,所述裝置包括:第一接收單元,用于接收來自消息發(fā)送方的加密消息和消息流水號,其中,在消息發(fā)送方需要加密消息的情況下,向加密中心發(fā)送加密分組方案請求,加密中心接收到加密分組方案請求后,指定用于將消息分組的加密分組方案、以及與加密分組方案對應的消息流水號,對于每個分組,指定第一質(zhì)數(shù)和第二質(zhì)數(shù),基于第一質(zhì)數(shù)和第二質(zhì)數(shù)確定rsa算法公鑰對和rsa算法私鑰對,并將指定的加密分組方案、和對應的消息流水號發(fā)送給消息發(fā)送方,消息發(fā)送方根據(jù)指定的加密分組方案、以及對于每個分組的rsa算法公鑰對對消息進行rsa加密,并發(fā)送加密消息;第一發(fā)送單元,用于將消息接收方的標識、接收到的加密消息、以及消息流水號發(fā)送到加密中心;第二接收單元,用于如果確定消息接收方的標識在加密中心通過驗證,接收來自加密中心的解密后消息,其中,所述加密中心根據(jù)所述消息流水號查找到與該消息流水號對應的加密分組方案、以及對于每個分組的rsa算法私鑰對,基于查找到的與該消息流水號對應的加密分組方案、以及對于每個分組的rsa算法私鑰對,對加密消息進行rsa解密,得到所述解密后消息。

      第三方面,本申請實施例提供了一種設(shè)備,包括處理器、存儲器和顯示器;所述存儲器包含可由所述處理器執(zhí)行的指令以使得所述處理器執(zhí)行:接收來自消息發(fā)送方的加密消息和消息流水號,其中,在消息發(fā)送方需要加密消息的情況下,向加密中心發(fā)送加密分組方案請求,加密中心接收到加密分組方案請求后,指定用于將消息分組的加密分組方案、以及與加密分組方案對應的消息流水號,對于每個分組,指定第一質(zhì)數(shù)和第二質(zhì)數(shù),基于第一質(zhì)數(shù)和第二質(zhì)數(shù)確定rsa算法公鑰對和rsa算法私鑰對,并將指定的加密分組方案、和對應的消息流水號發(fā)送給消息發(fā)送方,消息發(fā)送方根據(jù)指定的加密分組方案、以及對于每個分組的rsa算法公鑰對對消息進行rsa加密,并發(fā)送加密消息;將消息接收方的標識、接收到的加密消息、以及消息流水號發(fā)送到加密中心;如果確定消息接收方的標識在加密中心通過驗證,接收來自加密中心的解密后消息,其中,所述加密中心根據(jù)所述消息流水號查找到與該消息流水號對應的加密分組方案、以及對于每個分組的rsa算法私鑰對,基于查找到的與該消息流水號對應的加密分組方案、以及對于每個分組的rsa算法私鑰對,對加密消息進行rsa解密,得到所述解密后消息。

      第四方面,本申請實施例提供了一種機器可讀介質(zhì),包含計算機程序,所述計算機程序包括用于執(zhí)行以下的程序代碼:接收來自車聯(lián)網(wǎng)中消息發(fā)送方的加密消息和消息流水號,其中所述加密消息是用與消息流水號對應的密鑰加密的車輛消息,所述消息流水號和與消息流水號對應的密鑰由消息發(fā)送方在需要發(fā)送車輛消息時向加密中心請求發(fā)放;將消息接收方的標識和接收到的消息流水號發(fā)送到加密中心;如果消息接收方的標識在加密中心通過認證,接收來自加密中心的與該消息流水號對應的密鑰;以及用接收到的密鑰解密所述加密消息,以獲得所述車輛消息。

      在本申請實施例中,不是將消息整體用一個rsa公鑰加密,并用一個rsa私鑰解密,而是把消息分組,對于分成的每一個分組,用一個rsa算法公鑰對加密,用相應rsa算法私鑰對解密,而且分組方案存儲在加密中心,終端用戶無法獲知,因此,對于終端用戶來說,即使得到了一個整個的rsa算法公鑰,除了對質(zhì)數(shù)的乘積進行因式分解的困難性之外,又多了不知道加密分組方案造成的阻力,減少了私鑰被破解的困難性,提高了私鑰安全性。另外,本發(fā)明實施例中,rsa算法私鑰對存儲在加密中心,解密時是由加密中心根據(jù)存儲的加密分組方案和rsa算法私鑰對進行解密,終端用戶無法取得對這一過程的控制,也大大減少了私鑰泄密的困難性,提高了rsa私鑰安全性。另外,在消息接收方將加密消息發(fā)送給加密中心解密時,還要同時發(fā)送消息接收方的標識,如果消息接收方的標識在加密中心通過驗證,加密中心才進行解密,防止了一些非法用戶獲得了加密消息和消息流水號后發(fā)給加密中心進行解密,進一步提高了rsa私鑰安全性。

      附圖說明

      通過閱讀參照以下附圖所作的對非限制性實施例所作的詳細描述,本申請的其它特征、目的和優(yōu)點將會變得更明顯:

      圖1示出了其中可以應用本申請實施例的示例性系統(tǒng)架構(gòu);

      圖2示出了根據(jù)本申請一個實施例的在消息接收方側(cè)的保護rsa加密算法的私鑰安全的方法的示例性流程圖;

      圖3示出了根據(jù)本申請一個實施例的在消息接收方側(cè)的保護rsa加密算法的私鑰安全的裝置的示例性結(jié)構(gòu)框圖;

      圖4示出了適于用來實現(xiàn)本申請實施例的消息接收方的計算機系統(tǒng)的結(jié)構(gòu)示意圖。

      具體實施方式

      下面結(jié)合附圖和實施例對本申請作進一步的詳細說明。可以理解的是,此處所描述的具體實施例僅僅用于解釋相關(guān)發(fā)明,而非對該發(fā)明的限定。另外還需要說明的是,為了便于描述,附圖中僅示出了與發(fā)明相關(guān)的部分。

      需要說明的是,在不沖突的情況下,本申請中的實施例及實施例中的特征可以相互組合。下面將參考附圖并結(jié)合實施例來詳細說明本申請。

      請參考圖1,其示出了可以應用本申請實施例的示例性系統(tǒng)架構(gòu)。

      如圖1所示,系統(tǒng)架構(gòu)可以包括消息發(fā)送方102、加密中心101、消息接收方103。消息發(fā)送方102指要發(fā)送加密消息的終端。消息接收方103指要接收加密消息的終端。這里的終端可以是計算機、移動電話、pda、車輛上的車載單元等各種形式的終端。在本發(fā)明實施例中,加密中心是為一次加密指定加密分組方案、對于每個分組的rsa算法公鑰對以及rsa算法私鑰對,向消息發(fā)送方102發(fā)送指定的加密分組方案以供消息發(fā)順豐102加密消息,并在接收到通過了驗證的消息接收方103的加密消息后利用加密時存儲的加密分組方案和rsa算法私鑰對進行解密的平臺。它可以是一臺局域網(wǎng)的服務器,也可以是云端服務器等。

      如背景技術(shù)中提到的,rsa算法基于一個十分簡單的數(shù)論事實:將兩個大質(zhì)數(shù)相乘十分容易,但是想要對其乘積進行因式分解卻極其困難,因此可以將乘積公開作為加密密鑰。但在分布式計算和量子計算機理論日趨成熟的今天,rsa私鑰安全性受到了挑戰(zhàn)。因此,需要一種能夠提高rsa加密算法的私鑰安全的方案。

      在本申請實施例中,不是將消息整體用一個rsa公鑰加密,并用一個rsa私鑰解密,而是把消息分組,對于分成的每一個分組,用一個rsa算法公鑰對加密,用相應rsa算法私鑰對解密,而且分組方案存儲在加密中心,終端用戶無法獲知,因此,對于終端用戶來說,即使得到了一個整個的rsa算法公鑰,除了對質(zhì)數(shù)的乘積進行因式分解的困難性之外,又多了不知道加密分組方案造成的阻力,減少了私鑰被破解的困難性,提高了私鑰安全性。另外,本發(fā)明實施例中,rsa算法私鑰對存儲在加密中心,解密時是由加密中心根據(jù)存儲的加密分組方案和rsa算法私鑰對進行解密,終端用戶無法取得對這一過程的控制,也大大減少了私鑰泄密的困難性,提高了rsa私鑰安全性。另外,在消息接收方將加密消息發(fā)送給加密中心解密時,還要同時發(fā)送消息接收方的標識,如果消息接收方的標識在加密中心通過驗證,加密中心才進行解密,防止了一些非法用戶獲得了加密消息和消息流水號后發(fā)給加密中心進行解密,進一步提高了rsa私鑰安全性。

      參考圖2,其示出了根據(jù)本申請一個實施例的保護rsa加密算法的私鑰安全的方法的示例性流程圖。圖2所示的方法可以在圖1中的消息接收方103執(zhí)行。

      如圖2所示,在步驟210中,接收來自消息發(fā)送方的加密消息和消息流水號,其中,在消息發(fā)送方需要加密消息的情況下,向加密中心發(fā)送加密分組方案請求,加密中心接收到加密分組方案請求后,指定用于將消息分組的加密分組方案、以及與加密分組方案對應的消息流水號,對于每個分組,指定第一質(zhì)數(shù)和第二質(zhì)數(shù),基于第一質(zhì)數(shù)和第二質(zhì)數(shù)確定rsa算法公鑰對和rsa算法私鑰對,并將指定的加密分組方案、和對應的消息流水號發(fā)送給消息發(fā)送方,消息發(fā)送方根據(jù)指定的加密分組方案、以及對于每個分組的rsa算法公鑰對對消息進行rsa加密,并發(fā)送加密消息。

      在一個實施例中,消息發(fā)送方102想要給消息接收方103發(fā)送一個消息,為了防止第三方獲取該消息,需要將該消息加密。這樣,即使第三方攔截了該加密消息,也無法獲知其中的內(nèi)容。在消息發(fā)送方102想要加密消息的情況下,向加密中心發(fā)送加密分組方案請求,用于請求加密分組方案。加密分組方案是用來規(guī)定在加密時將消息分成的分組的方案。如上所述,在本申請實施例中,不是將消息整體用一個rsa公鑰加密,并用一個rsa私鑰解密,而是把消息分組,對于分成的每一個分組,用一個rsa算法公鑰對加密,用相應rsa算法私鑰對解密。這樣,一旦第三方獲得了加密消息,用簡單的對質(zhì)數(shù)的乘積進行因式分解的方法破解私鑰沒有效果,因為消息是分組的,第三方不知道分組方案是什么。

      加密中心接收到加密分組方案請求后,指定用于將消息分組的加密分組方案。在一個實施例中,指定用于將消息分組的加密分組方案的具體做法可以是:事先規(guī)定一個加密分組方案的集合。當接收到加密分組方案請求后,從集合中隨機選取一個加密分組方案的集合。

      例如,集合中有四種加密分組方案:

      方案1:按照數(shù)據(jù)量1:1:1:1等分要加密的數(shù)據(jù);

      方案2:按照數(shù)據(jù)量1:2:1:2分割要加密的數(shù)據(jù);

      方案3:按照數(shù)據(jù)量1:3:1:3分割要加密的數(shù)據(jù);

      方案4:按照數(shù)據(jù)量1:2:3:4分割要加密的數(shù)據(jù)。

      當接收到加密分組方案請求后,從集合中隨機選取出加密分組方案4。即把要加密的數(shù)據(jù)按照數(shù)據(jù)量1:2:3:4分成四份。

      然后,加密中心指定與加密分組方案對應的消息流水號。優(yōu)選地,加密中心每次應消息發(fā)送方的加密分組方案請求指定的消息流水號互不相同。消息流水號的作用是:在解密時,加密中心要根據(jù)消息流水號查找到該消息加密時用的的加密分組方案、對于每個分組的rsa算法私鑰對。因此,讓每次應消息發(fā)送方的加密分組方案請求指定的消息流水號互不相同,使得在解密過程中查找該消息加密時用的的加密分組方案、對于每個分組的rsa算法私鑰對時能找到唯一的加密分組方案、rsa算法私鑰對,起到提高解密效率的效果。如果不是互不相同,就要借助加密時間、消息發(fā)送方標識等因素進一步識別,效果會降低。

      加密中心指定加密分組方案和消息流水號后,對于每個分組,指定第一質(zhì)數(shù)p和第二質(zhì)數(shù)q。在一個實施例中,可以從預設(shè)的質(zhì)數(shù)集中選取第一質(zhì)數(shù)p和第二質(zhì)數(shù)q。預設(shè)的質(zhì)數(shù)集包括多個質(zhì)數(shù)。每次當需要指定質(zhì)數(shù)時可以從中任取兩個質(zhì)數(shù)。如果質(zhì)數(shù)集中的質(zhì)數(shù)足夠多的話,第一質(zhì)數(shù)p、第二質(zhì)數(shù)q排列組合很多,最后得到的可能的rsa算法私鑰對的可能性也很多,減少了rsa算法私鑰對根據(jù)已破解的私鑰對被猜到的可能性。

      另外,在一個實施例中,第一質(zhì)數(shù)p、第二質(zhì)數(shù)q可以由消息發(fā)送方?jīng)Q定。為所述質(zhì)數(shù)集中每個質(zhì)數(shù)分配質(zhì)數(shù)編號,消息發(fā)送方向加密中心發(fā)送的加密分組方案請求中帶有指定的第一質(zhì)數(shù)編號和第二質(zhì)數(shù)編號。從預設(shè)的質(zhì)數(shù)集中選取第一質(zhì)數(shù)和第二質(zhì)數(shù)包括:根據(jù)加密分組方案請求中帶有的第一質(zhì)數(shù)編號和第二質(zhì)數(shù)編號選取第一質(zhì)數(shù)和第二質(zhì)數(shù)。

      也就是說,為質(zhì)數(shù)集中每個質(zhì)數(shù)分配一個唯一的編號,該編號互不相同。消息發(fā)送方擁有一個質(zhì)數(shù)編號清單。消息發(fā)送方向加密中心發(fā)送加密分組方案請求時,在請求中任意加入清單中的兩個編號。加密中心根據(jù)加密分組方案請求中加入的這兩個編號來選取對應的第一質(zhì)數(shù)和第二質(zhì)數(shù)。這樣,使得對第一質(zhì)數(shù)、第二質(zhì)數(shù)的選取不受加密中心控制,增加第一質(zhì)數(shù)、第二質(zhì)數(shù)選取的隨機性,從而增加rsa私鑰破解難度。

      接著,加密中心基于第一質(zhì)數(shù)p和第二質(zhì)數(shù)q確定rsa算法公鑰對和rsa算法私鑰對。

      在一個實施例中,確定rsa算法公鑰對和rsa算法私鑰對包括:

      取e1,使得e1與(p-1)(q-1)互質(zhì);

      取e2,使得(e2·e1)mod((p-1)(q-1))=1,mod為模運算;

      設(shè)n=pq,則確定(n,e1)為rsa算法公鑰對,(n,e2)為rsa算法私鑰對。

      rsa算法公鑰對(n,e1)是公開出來的,例如定期發(fā)布,或在專門的網(wǎng)頁上發(fā)布。rsa算法私鑰對(n,e2)保存在加密中心。由于它保存在加密中心而不是各終端,減少了私鑰泄露的風險。

      然后,加密中心將指定的加密分組方案、和對應的消息流水號發(fā)送給消息發(fā)送方。

      然后,消息發(fā)送方根據(jù)指定的加密分組方案、以及對于每個分組的rsa算法公鑰對對消息進行rsa加密。具體地,消息發(fā)送方根據(jù)加密分組方案將消息分組,對于每個分組,去查找對應的rsa算法公鑰對進行rsa加密。由于rsa算法公鑰對是公布出來的,因此可以被消息發(fā)送方查找到。在一個實施例中,對于一個分組,利用rsa算法公鑰對(n,e1)進行加密的過程包括:令b=a^e1modn,其中,a為明文,b為密文,^為異或運算,mod為模運算。

      每個分組加密后,將各分組加密后的結(jié)果合成在一起,作為加密消息。

      然后消息發(fā)送方將加密消息發(fā)送給消息接收方。

      在步驟s220中,將消息接收方的標識、接收到的加密消息、以及消息流水號發(fā)送到加密中心。

      消息接收方接收到加密消息和消息流水號后,將它們連同自己的標識一起發(fā)給加密中心。發(fā)送自己的標識的意義在于,讓加密中心進行驗證。只有加密中心驗證通過,加密中心才可以解密,從而防止第三方攔截到加密消息和消息流水號后也能讓加密中心解密從而造成的不安全。

      在步驟s230中,如果確定消息接收方的標識在加密中心通過驗證,接收來自加密中心的解密后消息,其中,所述加密中心根據(jù)所述消息流水號查找到與該消息流水號對應的加密分組方案、以及對于每個分組的rsa算法私鑰對,基于查找到的與該消息流水號對應的加密分組方案、以及對于每個分組的rsa算法私鑰對,對加密消息進行rsa解密,得到所述解密后消息。

      在一個實施例中,確定消息接收方的標識在加密中心通過驗證包括:

      將消息接收方的標識與預設(shè)的合法標識列表進行比對;

      如果消息接收方的標識與預設(shè)的合法標識列表中的合法標識之一一致,則確定消息接收方的標識通過驗證。

      預設(shè)的合法標識列表就是預先設(shè)定的將被認為是合法的終端的標識全部包括進來的列表。如果發(fā)加密消息給加密中心解密的終端的標識在這個列表中,就驗證通過。反之,則驗證失敗,不進行解密。

      在本發(fā)明實施例中,如果消息接收方的標識在加密中心通過驗證,加密中心才進行解密,防止了一些非法用戶獲得了加密消息和消息流水號后發(fā)給加密中心進行解密,進一步提高了rsa私鑰安全性。

      消息接收方的標識在加密中心通過驗證后,加密中心根據(jù)所述消息流水號查找到與該消息流水號對應的加密分組方案、以及對于每個分組的rsa算法私鑰對。在步驟s210中,加密中心應一個加密分組方案請求指定加密分組方案、對于每個分組的rsa算法公鑰和私鑰、以及與加密分組方案對應的消息流水號后,將它們對應存儲。這樣,當加密中心從消息接收方接收到加密消息和消息流水號后,根據(jù)消息流水號就可以查找到與該消息流水號對應的加密分組方案、以及對于每個分組的rsa算法私鑰對。

      加密中心根據(jù)所述消息流水號查找到與該消息流水號對應的加密分組方案、以及對于每個分組的rsa算法私鑰對后,基于查找到的與該消息流水號對應的加密分組方案、以及對于每個分組的rsa算法私鑰對,對加密消息進行rsa解密。

      具體地,在一個實施例中,加密中心根據(jù)加密分組方案將加密消息進行分組,對于其中一個分組,令a=b^e2modn,其中,a為明文,b為密文,^為異或運算,mod為模運算。然后,將對于每個分組解密后的結(jié)果合成在一起,成為解密后消息。

      然后,加密中心將解密后消息發(fā)送到消息接收方。

      應當注意,盡管在附圖中以特定順序描述了本發(fā)明方法的操作,但是,這并非要求或者暗示必須按照該特定順序來執(zhí)行這些操作,或是必須執(zhí)行全部所示的操作才能實現(xiàn)期望的結(jié)果。相反,流程圖中描繪的步驟可以改變執(zhí)行順序。附加地或備選地,可以省略某些步驟,將多個步驟合并為一個步驟執(zhí)行,和/或?qū)⒁粋€步驟分解為多個步驟執(zhí)行。

      進一步參考圖3,其示出了根據(jù)本申請一個實施例的在消息接收方的保護rsa加密算法的私鑰安全的裝置300的示例性結(jié)構(gòu)框圖。

      如圖3所示,保護rsa加密算法的私鑰安全的裝置300可以包括第一接收單元310、第二發(fā)送單元320、第二接收單元330。

      第一接收單元310接收來自消息發(fā)送方的加密消息和消息流水號,其中,在消息發(fā)送方需要加密消息的情況下,向加密中心發(fā)送加密分組方案請求,加密中心接收到加密分組方案請求后,指定用于將消息分組的加密分組方案、以及與加密分組方案對應的消息流水號,對于每個分組,指定第一質(zhì)數(shù)和第二質(zhì)數(shù),基于第一質(zhì)數(shù)和第二質(zhì)數(shù)確定rsa算法公鑰對和rsa算法私鑰對,并將指定的加密分組方案、和對應的消息流水號發(fā)送給消息發(fā)送方,消息發(fā)送方根據(jù)指定的加密分組方案、以及對于每個分組的rsa算法公鑰對對消息進行rsa加密,并發(fā)送加密消息。

      在一個實施例中,消息發(fā)送方102想要給消息接收方103發(fā)送一個消息,為了防止第三方獲取該消息,需要將該消息加密。這樣,即使第三方攔截了該加密消息,也無法獲知其中的內(nèi)容。在消息發(fā)送方102想要加密消息的情況下,向加密中心發(fā)送加密分組方案請求,用于請求加密分組方案。加密分組方案是用來規(guī)定在加密時將消息分成的分組的方案。如上所述,在本申請實施例中,不是將消息整體用一個rsa公鑰加密,并用一個rsa私鑰解密,而是把消息分組,對于分成的每一個分組,用一個rsa算法公鑰對加密,用相應rsa算法私鑰對解密。這樣,一旦第三方獲得了加密消息,用簡單的對質(zhì)數(shù)的乘積進行因式分解的方法破解私鑰沒有效果,因為消息是分組的,第三方不知道分組方案是什么。

      加密中心接收到加密分組方案請求后,指定用于將消息分組的加密分組方案。在一個實施例中,指定用于將消息分組的加密分組方案的具體做法可以是:事先規(guī)定一個加密分組方案的集合。當接收到加密分組方案請求后,從集合中隨機選取一個加密分組方案的集合。

      例如,集合中有四種加密分組方案:

      方案1:按照數(shù)據(jù)量1:1:1:1等分要加密的數(shù)據(jù);

      方案2:按照數(shù)據(jù)量1:2:1:2分割要加密的數(shù)據(jù);

      方案3:按照數(shù)據(jù)量1:3:1:3分割要加密的數(shù)據(jù);

      方案4:按照數(shù)據(jù)量1:2:3:4分割要加密的數(shù)據(jù)。

      當接收到加密分組方案請求后,從集合中隨機選取出加密分組方案4。即把要加密的數(shù)據(jù)按照數(shù)據(jù)量1:2:3:4分成四份。

      然后,加密中心指定與加密分組方案對應的消息流水號。優(yōu)選地,加密中心每次應消息發(fā)送方的加密分組方案請求指定的消息流水號互不相同。消息流水號的作用是:在解密時,加密中心要根據(jù)消息流水號查找到該消息加密時用的的加密分組方案、對于每個分組的rsa算法私鑰對。因此,讓每次應消息發(fā)送方的加密分組方案請求指定的消息流水號互不相同,使得在解密過程中查找該消息加密時用的的加密分組方案、對于每個分組的rsa算法私鑰對時能找到唯一的加密分組方案、rsa算法私鑰對,起到提高解密效率的效果。如果不是互不相同,就要借助加密時間、消息發(fā)送方標識等因素進一步識別,效果會降低。

      加密中心指定加密分組方案和消息流水號后,對于每個分組,指定第一質(zhì)數(shù)p和第二質(zhì)數(shù)q。在一個實施例中,可以從預設(shè)的質(zhì)數(shù)集中選取第一質(zhì)數(shù)p和第二質(zhì)數(shù)q。預設(shè)的質(zhì)數(shù)集包括多個質(zhì)數(shù)。每次當需要指定質(zhì)數(shù)時可以從中任取兩個質(zhì)數(shù)。如果質(zhì)數(shù)集中的質(zhì)數(shù)足夠多的話,第一質(zhì)數(shù)p、第二質(zhì)數(shù)q排列組合很多,最后得到的可能的rsa算法私鑰對的可能性也很多,減少了rsa算法私鑰對根據(jù)已破解的私鑰對被猜到的可能性。

      另外,在一個實施例中,第一質(zhì)數(shù)p、第二質(zhì)數(shù)q可以由消息發(fā)送方?jīng)Q定。為所述質(zhì)數(shù)集中每個質(zhì)數(shù)分配質(zhì)數(shù)編號,消息發(fā)送方向加密中心發(fā)送的加密分組方案請求中帶有指定的第一質(zhì)數(shù)編號和第二質(zhì)數(shù)編號。從預設(shè)的質(zhì)數(shù)集中選取第一質(zhì)數(shù)和第二質(zhì)數(shù)包括:根據(jù)加密分組方案請求中帶有的第一質(zhì)數(shù)編號和第二質(zhì)數(shù)編號選取第一質(zhì)數(shù)和第二質(zhì)數(shù)。

      也就是說,為質(zhì)數(shù)集中每個質(zhì)數(shù)分配一個唯一的編號,該編號互不相同。消息發(fā)送方擁有一個質(zhì)數(shù)編號清單。消息發(fā)送方向加密中心發(fā)送加密分組方案請求時,在請求中任意加入清單中的兩個編號。加密中心根據(jù)加密分組方案請求中加入的這兩個編號來選取對應的第一質(zhì)數(shù)和第二質(zhì)數(shù)。這樣,使得對第一質(zhì)數(shù)、第二質(zhì)數(shù)的選取不受加密中心控制,增加第一質(zhì)數(shù)、第二質(zhì)數(shù)選取的隨機性,從而增加rsa私鑰破解難度。

      接著,加密中心基于第一質(zhì)數(shù)p和第二質(zhì)數(shù)q確定rsa算法公鑰對和rsa算法私鑰對。

      在一個實施例中,確定rsa算法公鑰對和rsa算法私鑰對包括:

      取e1,使得e1與(p-1)(q-1)互質(zhì);

      取e2,使得(e2·e1)mod((p-1)(q-1))=1,mod為模運算;

      設(shè)n=pq,則確定(n,e1)為rsa算法公鑰對,(n,e2)為rsa算法私鑰對。

      rsa算法公鑰對(n,e1)是公開出來的,例如定期發(fā)布,或在專門的網(wǎng)頁上發(fā)布。rsa算法私鑰對(n,e2)保存在加密中心。由于它保存在加密中心而不是各終端,減少了私鑰泄露的風險。

      然后,加密中心將指定的加密分組方案、和對應的消息流水號發(fā)送給消息發(fā)送方。

      然后,消息發(fā)送方根據(jù)指定的加密分組方案、以及對于每個分組的rsa算法公鑰對對消息進行rsa加密。具體地,消息發(fā)送方根據(jù)加密分組方案將消息分組,對于每個分組,去查找對應的rsa算法公鑰對進行rsa加密。由于rsa算法公鑰對是公布出來的,因此可以被消息發(fā)送方查找到。在一個實施例中,對于一個分組,利用rsa算法公鑰對(n,e1)進行加密的過程包括:令b=a^e1modn,其中,a為明文,b為密文,^為異或運算,mod為模運算。

      每個分組加密后,將各分組加密后的結(jié)果合成在一起,作為加密消息。

      然后消息發(fā)送方將加密消息發(fā)送給消息接收方。

      第一發(fā)送單元320將消息接收方的標識、接收到的加密消息、以及消息流水號發(fā)送到加密中心。

      消息接收方接收到加密消息和消息流水號后,將它們連同自己的標識一起發(fā)給加密中心。發(fā)送自己的標識的意義在于,讓加密中心進行驗證。只有加密中心驗證通過,加密中心才可以解密,從而防止第三方攔截到加密消息和消息流水號后也能讓加密中心解密從而造成的不安全。

      如果確定消息接收方的標識在加密中心通過驗證,第二接收單元330接收來自加密中心的解密后消息,其中,所述加密中心根據(jù)所述消息流水號查找到與該消息流水號對應的加密分組方案、以及對于每個分組的rsa算法私鑰對,基于查找到的與該消息流水號對應的加密分組方案、以及對于每個分組的rsa算法私鑰對,對加密消息進行rsa解密,得到所述解密后消息。

      在一個實施例中,確定消息接收方的標識在加密中心通過驗證包括:

      將消息接收方的標識與預設(shè)的合法標識列表進行比對;

      如果消息接收方的標識與預設(shè)的合法標識列表中的合法標識之一一致,則確定消息接收方的標識通過驗證。

      預設(shè)的合法標識列表就是預先設(shè)定的將被認為是合法的終端的標識全部包括進來的列表。如果發(fā)加密消息給加密中心解密的終端的標識在這個列表中,就驗證通過。反之,則驗證失敗,不進行解密。

      在本發(fā)明實施例中,如果消息接收方的標識在加密中心通過驗證,加密中心才進行解密,防止了一些非法用戶獲得了加密消息和消息流水號后發(fā)給加密中心進行解密,進一步提高了rsa私鑰安全性。

      消息接收方的標識在加密中心通過驗證后,加密中心根據(jù)所述消息流水號查找到與該消息流水號對應的加密分組方案、以及對于每個分組的rsa算法私鑰對。在加密時,加密中心應一個加密分組方案請求指定加密分組方案、對于每個分組的rsa算法公鑰和私鑰、以及與加密分組方案對應的消息流水號后,將它們對應存儲。這樣,當加密中心從消息接收方接收到加密消息和消息流水號后,根據(jù)消息流水號就可以查找到與該消息流水號對應的加密分組方案、以及對于每個分組的rsa算法私鑰對。

      加密中心根據(jù)所述消息流水號查找到與該消息流水號對應的加密分組方案、以及對于每個分組的rsa算法私鑰對后,基于查找到的與該消息流水號對應的加密分組方案、以及對于每個分組的rsa算法私鑰對,對加密消息進行rsa解密。

      具體地,在一個實施例中,加密中心根據(jù)加密分組方案將加密消息進行分組,對于其中一個分組,令a=b^e2modn,其中,a為明文,b為密文,^為異或運算,mod為模運算。然后,將對于每個分組解密后的結(jié)果合成在一起,成為解密后消息。

      然后,加密中心將解密后消息發(fā)送到消息接收方。

      下面參考圖4,其示出了適于用來實現(xiàn)本申請實施例的消息接收方的計算機系統(tǒng)400的結(jié)構(gòu)示意圖。

      如圖4所示,計算機系統(tǒng)400包括中央處理單元(cpu)401,其可以根據(jù)存儲在只讀存儲器(rom)402中的程序或者從存儲部分408加載到隨機訪問存儲器(ram)403中的程序而執(zhí)行各種適當?shù)膭幼骱吞幚?。在ram403中,還存儲有系統(tǒng)400操作所需的各種程序和數(shù)據(jù)。cpu401、rom402以及ram403通過總線404彼此相連。輸入/輸出(i/o)接口405也連接至總線404。

      以下部件連接至i/o接口405:包括鍵盤、鼠標等的輸入部分406;包括諸如陰極射線管(crt)、液晶顯示器(lcd)等以及揚聲器等的輸出部分407;包括硬盤等的存儲部分408;以及包括諸如lan卡、調(diào)制解調(diào)器等的網(wǎng)絡(luò)接口卡的通信部分409。通信部分409經(jīng)由諸如因特網(wǎng)的網(wǎng)絡(luò)執(zhí)行通信處理。驅(qū)動器410也根據(jù)需要連接至i/o接口405??刹鹦督橘|(zhì)411,諸如磁盤、光盤、磁光盤、半導體存儲器等等,根據(jù)需要安裝在驅(qū)動器410上,以便于從其上讀出的計算機程序根據(jù)需要被安裝入存儲部分408。

      特別地,根據(jù)本公開的實施例,上文參考圖2描述的過程可以被實現(xiàn)為計算機軟件程序。例如,本公開的實施例包括一種計算機程序產(chǎn)品,其包括有形地包含在機器可讀介質(zhì)上的計算機程序,所述計算機程序包含用于執(zhí)行圖2的方法的程序代碼。

      在這樣的實施例中,該計算機程序可以通過通信部分409從網(wǎng)絡(luò)上被下載和安裝,和/或從可拆卸介質(zhì)411被安裝。

      附圖中的流程圖和框圖,圖示了按照本發(fā)明各種實施例的系統(tǒng)、方法和計算機程序產(chǎn)品的可能實現(xiàn)的體系架構(gòu)、功能和操作。在這點上,流程圖或框圖中的每個方框可以代表一個模塊、程序段、或代碼的一部分,所述模塊、程序段、或代碼的一部分包含一個或多個用于實現(xiàn)規(guī)定的邏輯功能的可執(zhí)行指令。也應當注意,在有些作為替換的實現(xiàn)中,方框中所標注的功能也可以以不同于附圖中所標注的順序發(fā)生。例如,兩個接連地表示的方框?qū)嶋H上可以基本并行地執(zhí)行,它們有時也可以按相反的順序執(zhí)行,這依所涉及的功能而定。也要注意的是,框圖和/或流程圖中的每個方框、以及框圖和/或流程圖中的方框的組合,可以用執(zhí)行規(guī)定的功能或操作的專用的基于硬件的系統(tǒng)來實現(xiàn),或者可以用專用硬件與計算機指令的組合來實現(xiàn)。

      描述于本申請實施例中所涉及到的單元或模塊可以通過軟件的方式實現(xiàn),也可以通過硬件的方式來實現(xiàn)。所描述的單元或模塊也可以設(shè)置在處理器中。這些單元或模塊的名稱在某種情況下并不構(gòu)成對該單元或模塊本身的限定。

      作為另一方面,本申請還提供了一種計算機可讀存儲介質(zhì),該計算機可讀存儲介質(zhì)可以是上述實施例中所述裝置中所包含的計算機可讀存儲介質(zhì);也可以是單獨存在,未裝配入設(shè)備中的計算機可讀存儲介質(zhì)。計算機可讀存儲介質(zhì)存儲有一個或者一個以上程序,所述程序被一個或者一個以上的處理器用來執(zhí)行描述于本申請的公式輸入方法。

      以上描述僅為本申請的較佳實施例以及對所運用技術(shù)原理的說明。本領(lǐng)域技術(shù)人員應當理解,本申請中所涉及的發(fā)明范圍,并不限于上述技術(shù)特征的特定組合而成的技術(shù)方案,同時也應涵蓋在不脫離所述發(fā)明構(gòu)思的情況下,由上述技術(shù)特征或其等同特征進行任意組合而形成的其它技術(shù)方案。例如上述特征與本申請中公開的(但不限于)具有類似功能的技術(shù)特征進行互相替換而形成的技術(shù)方案。

      當前第1頁1 2 
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評論。精彩留言會獲得點贊!
      1