国产精品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公開(kāi)密鑰生成裝置、rsa解密裝置及rsa署名裝置的制作方法

      文檔序號(hào):7599830閱讀:332來(lái)源:國(guó)知局
      專利名稱:Rsa公開(kāi)密鑰生成裝置、rsa解密裝置及rsa署名裝置的制作方法
      技術(shù)領(lǐng)域
      本發(fā)明涉及采用了公開(kāi)密鑰加密算法之一即RSA加密技術(shù)的信息安全技術(shù)。
      背景技術(shù)
      本申請(qǐng)基于日本注冊(cè)申請(qǐng)No.2003-382191,本文引用了其內(nèi)容作為參照。以往作為實(shí)現(xiàn)信息的隱秘、認(rèn)證等的手段,公開(kāi)密鑰加密方式已為人們所知。
      在公開(kāi)密鑰加密方式中,生成自己獨(dú)自持有的秘密密鑰同與上述秘密密鑰對(duì)應(yīng)公開(kāi)的公開(kāi)密鑰的密鑰對(duì),利用上述公開(kāi)密鑰來(lái)進(jìn)行加密,并利用上述秘密密鑰來(lái)進(jìn)行解密。比如,在消息的加密通信中,消息發(fā)送者利用消息接收者的公開(kāi)密鑰來(lái)對(duì)消息加密,唯有秘密密鑰的保持者即消息接收者,才能利用消息接收者的秘密密鑰,來(lái)對(duì)該加密消息解密。
      雖然公開(kāi)密鑰加密法處理運(yùn)算量較多,但是不必由多個(gè)利用者來(lái)共享秘密密鑰,因而在需要高安全性的場(chǎng)合下,公開(kāi)密鑰加密法經(jīng)常被使用。作為一般廣為人知的公開(kāi)密鑰加密法,存在RSA加密及橢圓曲線加密這兩種。
      通過(guò)采用上述的公開(kāi)密鑰加密方式,雖然可使第三者不知曉地向?qū)Ψ桨l(fā)送秘密信息,但是依據(jù)專利文獻(xiàn)1,例如IC卡正在進(jìn)行密碼處理時(shí),非法第三者有可能利用異常時(shí)鐘、異常電壓、異常電磁波、異常溫度等,故意引發(fā)錯(cuò)誤,從而取出密碼中所用的密鑰及秘密信息,因而成為一種威脅。這種攻擊稱為故障利用攻擊(也稱為DFA攻擊)。
      為了對(duì)抗該故障利用攻擊,專利文獻(xiàn)2中披露了一種下列技術(shù),即利用除數(shù)n的素因數(shù),由中國(guó)余數(shù)定理(Chinese Remainder Theorem,簡(jiǎn)稱CRT)來(lái)高速處理作成數(shù)字署名的冪乘余數(shù)計(jì)算,與在基于中國(guó)余數(shù)定理的計(jì)算過(guò)程中生成的數(shù)據(jù)一起,同時(shí)計(jì)算有關(guān)該數(shù)據(jù)的出錯(cuò)檢測(cè)碼并予以存儲(chǔ),在作成數(shù)字署名時(shí),再次計(jì)算上述數(shù)據(jù)的出錯(cuò)檢測(cè)碼,并與已存儲(chǔ)的出錯(cuò)檢測(cè)碼進(jìn)行核對(duì),從而檢測(cè)出數(shù)據(jù)錯(cuò)誤,當(dāng)檢測(cè)出錯(cuò)誤時(shí),返回出錯(cuò)狀態(tài)。以此來(lái)提高利用中國(guó)余數(shù)定理來(lái)高速進(jìn)行署名作成處理的IC卡的針對(duì)故障利用攻擊的安全性。
      專利文獻(xiàn)1特開(kāi)2002-261751號(hào)公報(bào)專利文獻(xiàn)2特開(kāi)平11-8616號(hào)公報(bào)發(fā)明內(nèi)容如上所述,根據(jù)傳統(tǒng)技術(shù),提高對(duì)于利用中國(guó)余數(shù)定理來(lái)進(jìn)行署名作成處理的IC卡的故障利用攻擊的安全性,但是還期望能進(jìn)一步高速進(jìn)行信息安全處理。
      為實(shí)現(xiàn)上述期望,本發(fā)明的目的在于,提供一種與傳統(tǒng)技術(shù)相比可高速進(jìn)行信息安全運(yùn)算的RSA公開(kāi)密鑰生成裝置、RSA解密裝置、RSA署名裝置、方法及程序。
      為達(dá)到上述目的,本發(fā)明為一種從RSA加密方式的秘密密鑰d來(lái)重新生成公開(kāi)密鑰e′的RSA公開(kāi)密鑰生成裝置,包含取得單元,其取得RSA密碼的秘密密鑰d及素?cái)?shù)p,這里,素?cái)?shù)q與素?cái)?shù)p相異,公開(kāi)密鑰e與p-1同q-1的最小公倍數(shù)1cm互素,而且滿足p-1>e,上述秘密密鑰d是以1cm為除數(shù)的余數(shù)體中公開(kāi)密鑰e的逆元;余數(shù)運(yùn)算單元,其利用所取得的秘密密鑰d與素?cái)?shù)p,來(lái)算出以素?cái)?shù)p-1為除數(shù)的上述秘密密鑰d的余數(shù)dp;逆元運(yùn)算單元,其利用所算出的上述余數(shù)dp及所取得的上述素?cái)?shù)p,來(lái)算出以素?cái)?shù)p-1為除數(shù)的余數(shù)體中上述余數(shù)dp的逆元,并將所算出的逆元作為新的公開(kāi)密鑰e′。
      基于該構(gòu)成,為求出公開(kāi)密鑰,成為逆元的運(yùn)算對(duì)象的余數(shù)dp是秘密密鑰d的大約一半位數(shù)的值,因而具有通過(guò)逆元運(yùn)算單元,逆元運(yùn)算所需時(shí)間與傳統(tǒng)相比可大幅縮減的效果。
      此外,本發(fā)明為一種對(duì)由RSA加密方式生成的加密碼解密的RSA解密裝置,包含公開(kāi)密鑰取得單元,其從權(quán)利要求1的RSA公開(kāi)密鑰生成裝置取得公開(kāi)密鑰e′;加密碼取得單元,其取得加密碼C,加密碼C是一種利用上述公開(kāi)密鑰e,由RSA加密方式對(duì)明碼M進(jìn)行RSA加密而生成的碼;RSA解密單元,其利用秘密密鑰d,對(duì)所取得的上述加密碼C進(jìn)行RSA解密,生成解密碼D;再加密單元,其利用所取得的公開(kāi)密鑰e′,對(duì)所生成的解密碼D進(jìn)行RSA加密,生成再加密碼C′;比較單元,其將所取得的加密碼C與所生成的再加密碼C′進(jìn)行比較,判斷是否一致;輸出單元,在判斷為一致的場(chǎng)合下,輸出所生成的上述解密碼D。
      基于該構(gòu)成,在基于比較單元的判斷為一致的場(chǎng)合下,輸出所生成的解密碼,因而可對(duì)抗故障利用攻擊。
      這里,上述RSA解密裝置中,上述RSA解密單元從權(quán)利要求1的RSA公開(kāi)密鑰生成裝置取得余數(shù)dp,利用所取得的余數(shù)dp,由中國(guó)余數(shù)定理,來(lái)對(duì)所取得的上述加密碼C進(jìn)行RSA解密,生成解密碼D。
      基于該構(gòu)成,為求出公開(kāi)密鑰,可在按原樣來(lái)利用中國(guó)余數(shù)定理算法的RSA解密過(guò)程中采用成為逆元的運(yùn)算對(duì)象的余數(shù)dp,因而可縮短RSA解密等所需的時(shí)間。
      此外,本發(fā)明為一種由RSA署名方式來(lái)對(duì)明碼實(shí)施署名,以生成署名碼的RSA署名裝置,包含公開(kāi)密鑰取得單元,其從權(quán)利要求1中的RSA公開(kāi)密鑰生成裝置來(lái)取得公開(kāi)密鑰e′;署名生成單元,其利用秘密密鑰d,對(duì)明碼M實(shí)施RSA署名,生成署名碼S;恢復(fù)單元,其利用所取得的公開(kāi)密鑰e′,對(duì)署名碼S實(shí)施RSA署名恢復(fù),生成解密碼D;比較單元,其將明碼M與所生成的解密碼D進(jìn)行比較,判斷是否一致;輸出單元,在判斷為一致的場(chǎng)合下,輸出所生成的上述署名碼S。
      基于該構(gòu)成,在基于比較單元的判斷為一致的場(chǎng)合下,輸出所生成的署名碼,因而可對(duì)抗故障利用攻擊。
      這里,上述RSA署名裝置中,上述署名生成單元從權(quán)利要求1的RSA公開(kāi)密鑰生成裝置取得余數(shù)dp,利用所取得的余數(shù)dp,由中國(guó)余數(shù)定理,來(lái)對(duì)上述明碼M實(shí)施RSA署名,生成署名碼S。
      基于該構(gòu)成,為求出公開(kāi)密鑰,可在按原樣來(lái)利用中國(guó)余數(shù)定理算法的RSA署名過(guò)程中采用成為逆元的運(yùn)算對(duì)象的余數(shù)dp,因而可縮短RSA署名所需的時(shí)間。


      參照本發(fā)明的以下特定實(shí)施方式的說(shuō)明及附圖,可更明曉本發(fā)明的這些及其它目的、長(zhǎng)處及特性。
      附圖中圖1是表示秘密通信系統(tǒng)10的構(gòu)成的系統(tǒng)構(gòu)成圖。
      圖2是表示寄存器裝置100的構(gòu)成的框圖。
      圖3是表示IC卡300的構(gòu)成的框圖。
      圖4是表示寄存器裝置100及IC卡300的全體動(dòng)作概要的流程圖。
      圖5是表示基于寄存器裝置100的IC卡300的認(rèn)證動(dòng)作的流程圖。下接圖6。
      圖6是表示基于寄存器裝置100的IC卡300的認(rèn)證動(dòng)作的流程圖。上接圖5。
      圖7是表示基于IC卡300的寄存器裝置100的認(rèn)證動(dòng)作的流程圖。
      圖8是表示會(huì)話密鑰的收發(fā)動(dòng)作的流程圖。
      圖9是表示點(diǎn)秘密通信動(dòng)作的流程圖。
      圖10是表示作為第2實(shí)施方式的RSA秘密通信系統(tǒng)20的構(gòu)成的系統(tǒng)構(gòu)成圖。
      圖11是表示RSA解密裝置400中的RSA解密動(dòng)作的流程圖。
      圖12是表示作為第3實(shí)施方式的RSA秘密通信系統(tǒng)30的構(gòu)成的系統(tǒng)構(gòu)成圖。
      圖13是表示RSA秘密通信系統(tǒng)30的動(dòng)作的流程圖。
      具體實(shí)施例方式
      1.第1實(shí)施方式以下對(duì)作為本發(fā)明涉及的第1實(shí)施方式的秘密通信系統(tǒng)10進(jìn)行說(shuō)明。
      1.1秘密通信系統(tǒng)10的構(gòu)成秘密通信系統(tǒng)10如圖1所示,其構(gòu)成包括寄存器裝置100及IC卡300。
      寄存器裝置100設(shè)置于小賣店內(nèi),由小賣店的銷售人員來(lái)操作,并根據(jù)利用者所購(gòu)入商品的購(gòu)入額,來(lái)發(fā)行特惠即點(diǎn)數(shù)。寄存器裝置100對(duì)所發(fā)行的點(diǎn)數(shù)加密,生成加密點(diǎn)數(shù),經(jīng)由與寄存器裝置100連接的讀卡器200,向利用者的IC卡300輸出所生成的加密點(diǎn)數(shù)。
      IC卡300接受加密點(diǎn)數(shù),對(duì)所接受的加密點(diǎn)數(shù)解密,生成解密點(diǎn)數(shù),并存儲(chǔ)所生成的解密點(diǎn)數(shù)。
      利用者在下次購(gòu)入商品時(shí),可將IC卡300中存儲(chǔ)的解密點(diǎn)數(shù)作為貨款的一部分來(lái)使用。
      1.2IC卡300的公開(kāi)密鑰e及秘密密鑰d的生成如下所示,密鑰生成裝置(未圖示)生成IC卡300的公開(kāi)密鑰e及秘密密鑰d。
      (a)選擇任意相異的2個(gè)大素?cái)?shù)p及素?cái)?shù)q,并計(jì)算其積n。n=p×q(b)計(jì)算(p-1)與(q-1)的最小公倍數(shù)L,并選擇與最小公倍數(shù)L互素而且小于最小公倍數(shù)L的任意整數(shù)e(公開(kāi)密鑰)。
      L=LCM((p-1),(q-1))GCD(e,L)=11<e<L這里,LCM(X,Y)表示數(shù)X與數(shù)Y的最小公倍數(shù),GCD(X,Y)表示數(shù)X與數(shù)Y的最大公倍數(shù)。LCM是Least Common Multiple(最小公倍數(shù))的簡(jiǎn)稱,GCD是Greatest Common Divisor(最大公約數(shù))的簡(jiǎn)稱。
      基于在(c)(b)中求出的公開(kāi)密鑰e及最小公倍數(shù)L來(lái)解算下式,以求出秘密密鑰d。
      ed=1(mod L)密鑰生成裝置將素?cái)?shù)p、素?cái)?shù)q及公開(kāi)密鑰e預(yù)先通知到寄存器裝置100。將素?cái)?shù)p、素?cái)?shù)q及秘密密鑰d預(yù)先通知到IC卡300。
      寄存器裝置100的公開(kāi)密鑰PK及秘密密鑰SK也同樣由密鑰生成裝置來(lái)生成,秘密密鑰SK被預(yù)先通知到寄存器裝置100,公開(kāi)密鑰PK被預(yù)先通知到IC卡300。
      1.3寄存器裝置100的構(gòu)成寄存器裝置100如圖2所示,其構(gòu)成包括顯示部101、顯示部102、印字部103、輸入部104、保管庫(kù)105、信息存儲(chǔ)部106、控制部107、認(rèn)證部108、加解密部109、輸入輸出部110及密鑰存儲(chǔ)部111。此外寄存器裝置100的輸入輸出部110與讀卡器200相接。
      寄存器裝置100是進(jìn)行由利用者支付的購(gòu)入貨款的結(jié)算及保管等的錢(qián)幣寄存器裝置,根據(jù)利用者所購(gòu)入商品的購(gòu)入額,來(lái)發(fā)行特惠即點(diǎn)數(shù),對(duì)所發(fā)行的點(diǎn)數(shù)加密,生成加密點(diǎn)數(shù),并經(jīng)由讀卡器200,向利用者的IC卡300輸出所生成的加密點(diǎn)數(shù)。
      具體地說(shuō),寄存器裝置100是一種包含微處理器、ROM、RAM等的計(jì)算機(jī)系統(tǒng)。上述ROM中存儲(chǔ)有計(jì)算機(jī)程序。上述微處理器按照上述計(jì)算機(jī)程序來(lái)動(dòng)作,寄存器裝置100由此來(lái)實(shí)現(xiàn)其部分功能。
      (1)密鑰存儲(chǔ)部111密鑰存儲(chǔ)部111被設(shè)置成不能從外部來(lái)訪問(wèn),如圖2所示,預(yù)先存儲(chǔ)有IC卡300的公開(kāi)密鑰e、素?cái)?shù)p、素?cái)?shù)q及寄存器裝置100的秘密密鑰SK。
      公開(kāi)密鑰e是由RSA公開(kāi)密鑰加密方式的密鑰生成算法所生成的IC卡300的公開(kāi)密鑰,被保存到1024位長(zhǎng)的數(shù)據(jù)區(qū)。
      素?cái)?shù)p及素?cái)?shù)q是任意相異的大素?cái)?shù),分別被保存到512位長(zhǎng)的數(shù)據(jù)區(qū)。這里作為一例,p=d32737e7 267ffe13 41b2d5c0 d150a81b 586fb313 2bed2f8d 5262864a 9cb9f30af38be448 598d413a 172efb80 2c21acf1 c11c520c 2f26a471 dcad212e ac7ca39dq=cc8853d1 d54da630 fac004f4 71f281c7 b8982d82 24a490ed beb33d3e 3d5cc93c4765703d 1dd79164 2f1f116a 0dd862be 2419b2af 72bfe9a0 30e860b0 288b5d77這些記載都是16進(jìn)制數(shù)。為了看起來(lái)方便,每8位分開(kāi)表示。
      秘密密鑰SK是由RSA公開(kāi)密鑰加密方式的密鑰生成算法所生成的寄存器裝置100的秘密密鑰,被保存到1024位長(zhǎng)的數(shù)據(jù)區(qū)。
      (2)信息存儲(chǔ)部106信息存儲(chǔ)部106,具有用于存儲(chǔ)識(shí)別利用者的利用者識(shí)別符及利用者的購(gòu)入金額、購(gòu)入日期、發(fā)行點(diǎn)數(shù)等有關(guān)基于利用者的商品購(gòu)入的信息的區(qū)域。
      (3)認(rèn)證部108當(dāng)在讀卡器200中裝有IC卡300時(shí),認(rèn)證部108經(jīng)由輸入輸出部110及讀卡器200,如下所示,在與IC卡300之間相互進(jìn)行設(shè)備認(rèn)證。這里,設(shè)備認(rèn)證是查詢響應(yīng)型認(rèn)證。
      (基于寄存器裝置100的IC卡300的認(rèn)證)認(rèn)證部108生成隨機(jī)數(shù)R1,并經(jīng)由輸入輸出部110及讀卡器200,向IC卡300輸出所生成的隨機(jī)數(shù)R1。
      此外認(rèn)證部108經(jīng)由讀卡器200及輸入輸出部110,從IC卡300接受署名數(shù)據(jù)S1,從密鑰存儲(chǔ)部111讀出IC卡300的公開(kāi)密鑰e、素?cái)?shù)p及素?cái)?shù)q。接下來(lái)對(duì)所生成的隨機(jī)數(shù)R1施行散列函數(shù)Hash,生成散列值H2。
      H2=Hash(R1)這里,Hash(R1)表示對(duì)隨機(jī)數(shù)R1施行散列函數(shù)Hash所得到的值。散列函數(shù)Hash的一例是SHA-1。
      接下來(lái),認(rèn)證部108計(jì)算n=p×q,并計(jì)算S1e(mod n),對(duì)所生成的散列值H2與由計(jì)算所得到的值S1e(mod n)進(jìn)行比較,如果一致便視為認(rèn)證成功,如果不一致則視為認(rèn)證失敗。
      在認(rèn)證成功的場(chǎng)合下,認(rèn)證部108向控制部107通知表示設(shè)備認(rèn)證成功這一意思的信息。在設(shè)備認(rèn)證失敗的場(chǎng)合下,向控制部107通知表示設(shè)備認(rèn)證失敗這一意思的信息。
      在設(shè)備認(rèn)證失敗的場(chǎng)合下,此后寄存器裝置100在與該IC卡300之間不進(jìn)行信息收發(fā)。
      (基于IC卡300的寄存器裝置100的認(rèn)證)認(rèn)證部108經(jīng)由讀卡器200及輸入輸出部110,從IC卡300接受隨機(jī)數(shù)R2,從密鑰存儲(chǔ)部111讀出秘密密鑰SK、素?cái)?shù)p及素?cái)?shù)q,并對(duì)所接受的隨機(jī)數(shù)R2施行散列函數(shù)Hash,計(jì)算散列值H3。
      H3=Hash(R2)接下來(lái),認(rèn)證部108計(jì)算n=p×q,還計(jì)算署名數(shù)據(jù)S2=(H3)SK(mod n),并經(jīng)由輸入輸出部110及讀卡器200,向IC卡300輸出由計(jì)算所得到的署名數(shù)據(jù)S2。
      (4)輸入輸出部110及讀卡器200輸入輸出部110在控制部107與讀卡器200之間,對(duì)控制部107的控制源進(jìn)行雙向信息收發(fā),或者在認(rèn)證部108與讀卡器200之間,對(duì)認(rèn)證部108的控制源進(jìn)行雙向信息收發(fā)。
      讀卡器200在IC卡300與輸入輸出部110之間進(jìn)行信息的收發(fā)。
      (5)加解密部109(會(huì)話密鑰的輸出)加解密部109生成隨機(jī)數(shù),并將所生成的隨機(jī)數(shù)作為會(huì)話密鑰M。接下來(lái),從密鑰存儲(chǔ)部111讀出素?cái)?shù)p、素?cái)?shù)q及公開(kāi)密鑰e,計(jì)算整數(shù)n=p×q,并利用會(huì)話密鑰M、整數(shù)n及公開(kāi)密鑰e,由下式來(lái)算出加密會(huì)話密鑰C1。
      加密會(huì)話密鑰C1=Me(mod n)接下來(lái),經(jīng)由輸入輸出部110及讀卡器200,向IC卡300輸出由計(jì)算所得到的加密會(huì)話密鑰C1。
      (點(diǎn)數(shù)的輸出)加解密部109從控制部107接受點(diǎn)數(shù)Pt,將所生成的會(huì)話密鑰M用作密鑰,對(duì)所接受的點(diǎn)數(shù)Pt施行加密算法E1,生成加密點(diǎn)數(shù)Et。
      加密點(diǎn)數(shù)Et=E1(會(huì)話密鑰M、點(diǎn)數(shù)Pt)這里,E(A,B)表示利用密鑰A,對(duì)明碼B施行加密算法E所得到的加密碼。作為一例,加密算法E1是一種基于共通密鑰加密方式的DES(Data Encryption Standard,數(shù)據(jù)加密標(biāo)準(zhǔn))的算法。
      接下來(lái),加解密部109經(jīng)由輸入輸出部110及讀卡器200,向IC卡300輸出加密點(diǎn)數(shù)Et。
      (6)控制部107控制部107由小賣店銷售人員的操作,根據(jù)利用者所購(gòu)入商品的購(gòu)入額,來(lái)生成特惠即點(diǎn)數(shù)Pt,并向加解密部109輸出所生成的點(diǎn)數(shù)Pt。
      控制部107控制構(gòu)成寄存器裝置100的其它構(gòu)成要素。
      (7)輸入部104、顯示部101、顯示部102、印字部103及保管庫(kù)105輸入部104從寄存器裝置100的操作者來(lái)接受輸入信息,并向控制部107輸出所接受的輸入信息。顯示部101及顯示部102從控制部107接受應(yīng)顯示的信息,并顯示出所接受的信息。
      印字部103由控制部107的控制,來(lái)印刷各種信息。
      保管庫(kù)105保管紙幣及貨幣。
      1.4IC卡300的構(gòu)成IC卡300由長(zhǎng)度約為85mm,寬度為54mm,厚度為0.76mm的薄片狀樹(shù)脂來(lái)形成,外表面上有接觸端子,在內(nèi)部密封有系統(tǒng)LSI(大規(guī)模集成電路,Large Scale Integrated circuit)320。
      IC卡300如圖3所示,結(jié)構(gòu)包括輸入輸出部301、認(rèn)證部302、解密部303、高速公開(kāi)密鑰運(yùn)算部304、控制部305、再加密部306、信息存儲(chǔ)部307、解密部308及密鑰存儲(chǔ)部309,認(rèn)證部302、解密部303、高速公開(kāi)密鑰運(yùn)算部304、控制部305、再加密部306、信息存儲(chǔ)部307、解密部308及密鑰存儲(chǔ)部309形成系統(tǒng)LSI320。
      系統(tǒng)LSI320是一種在1個(gè)芯片上集成上述多個(gè)構(gòu)成部來(lái)制造的較長(zhǎng)多功能LSI,具體地說(shuō),是一種包含微處理器、ROM、RAM等來(lái)構(gòu)成的計(jì)算機(jī)系統(tǒng)。上述RAM中存儲(chǔ)有計(jì)算機(jī)程序。上述微處理器按照上述計(jì)算機(jī)程序來(lái)動(dòng)作,系統(tǒng)LSI320由此來(lái)實(shí)現(xiàn)其部分功能。
      (1)密鑰存儲(chǔ)部309密鑰存儲(chǔ)部309如圖3所示,預(yù)先存儲(chǔ)有寄存器裝置100的公開(kāi)密鑰PK、素?cái)?shù)p、素?cái)?shù)q及IC卡300的秘密密鑰d。
      公開(kāi)密鑰PK是由RSA公開(kāi)密鑰加密方式的密鑰生成算法所生成的寄存器裝置100的公開(kāi)密鑰,被保存到1024位長(zhǎng)的數(shù)據(jù)區(qū)。
      素?cái)?shù)p及素?cái)?shù)q與上述同樣,分別被保存到512位長(zhǎng)的數(shù)據(jù)區(qū)。
      秘密密鑰d是由RSA公開(kāi)密鑰加密方式的密鑰生成算法所生成的IC卡300的秘密密鑰,被保存到1024位長(zhǎng)的數(shù)據(jù)區(qū)。
      (2)高速公開(kāi)密鑰運(yùn)算部304高速公開(kāi)密鑰運(yùn)算部304如圖3所示,構(gòu)成包括秘密密鑰取得部311、余數(shù)運(yùn)算部312、求逆運(yùn)算部313及除數(shù)運(yùn)算部314。
      秘密密鑰取得部311從密鑰存儲(chǔ)部309讀出秘密密鑰d、素?cái)?shù)p及素?cái)?shù)q,并向余數(shù)運(yùn)算部312輸出所讀出的秘密密鑰d及素?cái)?shù)p,并且,向除數(shù)運(yùn)算部314輸出所讀出的素?cái)?shù)p及素?cái)?shù)q。
      余數(shù)運(yùn)算部312從秘密密鑰取得部311接受秘密密鑰d及素?cái)?shù)p,利用所接受的秘密密鑰d及素?cái)?shù)p,來(lái)算出d1=d(mod p-1),并向求逆運(yùn)算部313輸出由計(jì)算所得到的數(shù)d1及素?cái)?shù)p,此外還向解密部303輸出數(shù)d1。
      求逆運(yùn)算部313從余數(shù)運(yùn)算部312接受數(shù)d1及素?cái)?shù)p,利用所接受的數(shù)d1及素?cái)?shù)p,由下式來(lái)算出公開(kāi)密鑰e′。
      e′=d1-1(mod p-1)接下來(lái),求逆運(yùn)算部313向再加密部306及認(rèn)證部302輸出由計(jì)算所得到的公開(kāi)密鑰e′。
      除數(shù)運(yùn)算部314從秘密密鑰取得部311接受素?cái)?shù)p及素?cái)?shù)q,利用所接受的素?cái)?shù)p及素?cái)?shù)q,來(lái)算出整數(shù)n=p×q,并向認(rèn)證部302及再加密部306輸出由計(jì)算所得到的整數(shù)n。
      (3)認(rèn)證部302(基于寄存器裝置100的IC卡300的認(rèn)證)認(rèn)證部302經(jīng)由讀卡器200及輸入輸出部301,從寄存器裝置100接受隨機(jī)數(shù)R1,從密鑰存儲(chǔ)部309讀出素?cái)?shù)p與素?cái)?shù)q及秘密密鑰d,從除數(shù)運(yùn)算部314接受整數(shù)n,利用所接受的隨機(jī)數(shù)R1,由下式來(lái)算出散列值H1。
      H1=Hash(R1)接下來(lái),認(rèn)證部302依次運(yùn)算下式,由此來(lái)算出署名數(shù)據(jù)S1。
      a=p-1(mod q)y1=H1(mod p)y2=H1(mod q)d2=d(mod q-1)x1=y(tǒng)1d1(mod p)x2=y(tǒng)2d2(mod q)s1={a(x2-x1)(mod q)}p+x1接下來(lái),向再加密部306輸出由計(jì)算所得到的署名數(shù)據(jù)S1,從再加密部306接受s1e′(mod n)。
      接下來(lái),判斷散列值H1與s1e′(mod n)是否一致,在判斷為不一致的場(chǎng)合下,視為發(fā)生了某種錯(cuò)誤,認(rèn)證部302向控制部305通知表示發(fā)生錯(cuò)誤的出錯(cuò)信息。此后,IC卡300停止其動(dòng)作。
      在判斷為一致的場(chǎng)合下,認(rèn)證部302經(jīng)由輸入輸出部301及讀卡器200,向寄存器裝置100輸出所生成的署名數(shù)據(jù)S1。
      (基于IC卡300的寄存器裝置100的認(rèn)證)認(rèn)證部302生成隨機(jī)數(shù)R2,并經(jīng)由輸入輸出部301及讀卡器200,向寄存器裝置100輸出所生成的隨機(jī)數(shù)R2。
      接下來(lái),認(rèn)證部302經(jīng)由讀卡器200及輸入輸出部301,從寄存器裝置100接受署名數(shù)據(jù)S2,從密鑰存儲(chǔ)部309讀出寄存器裝置100的公開(kāi)密鑰PK、素?cái)?shù)p及素?cái)?shù)q,計(jì)算整數(shù)n=p×q,并利用所生成的隨機(jī)數(shù)R2來(lái)計(jì)算散列值H4。
      H4=Hash(R2)接下來(lái),認(rèn)證部302計(jì)算S2PK(mod n),并判斷H4與S2PK(mod n)是否一致,如果一致便視為認(rèn)證成功,如果不一致則視為認(rèn)證失敗。
      在認(rèn)證成功的場(chǎng)合下,認(rèn)證部302向控制部305通知表示設(shè)備認(rèn)證成功這一意思的信息。并且,在設(shè)備認(rèn)證失敗的場(chǎng)合下,向控制部305通知表示設(shè)備認(rèn)證失敗這一意思的信息。
      在設(shè)備認(rèn)證失敗的場(chǎng)合下,此后IC卡300在與寄存器裝置100之間不進(jìn)行信息收發(fā)。
      (4)再加密部306再加密部306從求逆運(yùn)算部313接受公開(kāi)密鑰e′,從除數(shù)運(yùn)算部314接受整數(shù)n,并計(jì)算下式。
      S1e′(mod n)接下來(lái),再加密部306向認(rèn)證部302輸出所得到的S1e′(mod n)。
      (5)控制部305控制部305接受出錯(cuò)信息、表示設(shè)備認(rèn)證成功這一意思的信息以及表示設(shè)備認(rèn)證失敗這一意思的信息。
      控制部305從認(rèn)證部302接受到出錯(cuò)信息后,對(duì)構(gòu)成IC卡300的其它構(gòu)成要素,指示停止動(dòng)作。
      控制部305從認(rèn)證部302接受到表示設(shè)備認(rèn)證失敗這一意思的信息后,對(duì)構(gòu)成IC卡300的其它構(gòu)成要素,指示停止動(dòng)作。另一方面,在接受到表示設(shè)備認(rèn)證成功這一意思的信息后,繼續(xù)以后的動(dòng)作。
      (6)解密部303解密部303經(jīng)由讀卡器200及輸入輸出部301,從寄存器裝置100接受加密會(huì)話密鑰C1。
      接下來(lái),解密部303從密鑰存儲(chǔ)部309接受素?cái)?shù)p及素?cái)?shù)q,從余數(shù)運(yùn)算部312接受數(shù)d1,依次運(yùn)算下式,由此來(lái)算出解密會(huì)話密鑰x。
      A=p-1(mod q)y1=C1(mod p)y2=C1(mod q)d2=d(mod q-1)x1=y(tǒng)1d1(mod p)
      x2=y(tǒng)2d2(mod q)x={a(x2-x1)(mod q)}p+x1接下來(lái),向解密部308輸出由計(jì)算所得到的解密會(huì)話密鑰x。
      (7)解密部308解密部308經(jīng)由讀卡器200及輸入輸出部301,從寄存器裝置100接受加密點(diǎn)數(shù)Et,從解密部303接受解密會(huì)話密鑰x,將所接受的解密會(huì)話密鑰x用作密鑰,對(duì)所接受的加密點(diǎn)數(shù)Et施行解密算法D1,生成解密點(diǎn)數(shù)Dt,并向信息存儲(chǔ)部307寫(xiě)入所生成的解密點(diǎn)數(shù)Dt。
      這里,解密算法D1是基于共通密鑰加密方式的DES的算法,對(duì)由加密算法E1生成的加密碼解密。
      (8)輸入輸出部301輸入輸出部301經(jīng)由讀卡器200,在寄存器裝置100與構(gòu)成IC卡300的其它構(gòu)成要素之間進(jìn)行信息的收發(fā)。
      (9)信息存儲(chǔ)部307信息存儲(chǔ)部307具有用于存儲(chǔ)解密點(diǎn)數(shù)Dt的區(qū)域。
      1.5秘密通信系統(tǒng)10的動(dòng)作對(duì)秘密通信系統(tǒng)10的動(dòng)作進(jìn)行說(shuō)明。
      (1)秘密通信系統(tǒng)10的整體概要?jiǎng)幼骼脠D4所示的流程圖,對(duì)秘密通信系統(tǒng)10的整體概要?jiǎng)幼鬟M(jìn)行說(shuō)明。
      IC卡300所具有的高速公開(kāi)密鑰運(yùn)算部304的余數(shù)運(yùn)算部312算出d1=d(mod p-1)(步驟S101),求逆運(yùn)算部313算出公開(kāi)密鑰e′=d1-1(modp-1)(步驟S102)。
      接下來(lái),寄存器裝置100嘗試IC卡300的認(rèn)證(步驟S103),一旦認(rèn)證失敗(步驟S104),便結(jié)束與IC卡300之間的通信。一旦認(rèn)證成功(步驟S104),則繼續(xù)與IC卡300之間的通信。
      接下來(lái)IC卡300嘗試寄存器裝置100的認(rèn)證(步驟S105),一旦認(rèn)證失敗(步驟S106),便結(jié)束與寄存器裝置100之間的通信。一旦認(rèn)證成功(步驟S106),則繼續(xù)與寄存器裝置100之間的通信。
      接下來(lái),寄存器裝置100對(duì)會(huì)話密鑰加密,生成加密會(huì)話密鑰,并向IC卡300輸出所生成的加密會(huì)話密鑰,IC卡300對(duì)加密會(huì)話密鑰解密,生成解密會(huì)話密鑰(步驟S107),寄存器裝置100利用會(huì)話密鑰,對(duì)點(diǎn)數(shù)加密,生成加密點(diǎn)數(shù),并發(fā)送所生成的加密點(diǎn)數(shù),IC卡300利用解密會(huì)話密鑰,對(duì)加密點(diǎn)數(shù)解密(步驟S108)。
      (2)基于寄存器裝置100的IC卡300的認(rèn)證動(dòng)作利用圖5~圖6所示的流程圖,對(duì)基于寄存器裝置100的IC卡300的認(rèn)證動(dòng)作進(jìn)行說(shuō)明。
      寄存器裝置100的認(rèn)證部108生成隨機(jī)數(shù)R1(步驟S121),并經(jīng)由輸入輸出部110及讀卡器200,向IC卡300輸出所生成的隨機(jī)數(shù)R1(步驟S122)。
      IC卡300的認(rèn)證部302經(jīng)由讀卡器200及輸入輸出部301,從寄存器裝置100接受隨機(jī)數(shù)R1(步驟S122),從密鑰存儲(chǔ)部309讀出素?cái)?shù)p及素?cái)?shù)q以及秘密密鑰d,從除數(shù)運(yùn)算部314接受整數(shù)n(步驟S123),利用所接受的隨機(jī)數(shù)R1來(lái)算出散列值H1=Hash(R1)(步驟S124)。
      接下來(lái)認(rèn)證部302算出a=p-1(mod q)(步驟S125)、y1=H1(mod p)(步驟S126)、y2=H1(mod q)(步驟S127)、d2=d(mod q-1)(步驟S128)、x1=y(tǒng)1d1(mod p)(步驟S129)、x2=y(tǒng)2d2(mod q)(步驟S130)、s1={a(x2-x1)(mod q)}p+x1(步驟S131)。
      再加密部306從求逆運(yùn)算部313接受公開(kāi)密鑰e′,從除數(shù)運(yùn)算部314接受整數(shù)n(步驟S132),并計(jì)算S1e′(mod n)(步驟S133)。
      認(rèn)證部302判斷散列值H1與S1e′(mod n)是否一致,在判斷為不一致的場(chǎng)合下(步驟S134),視為發(fā)生了某種錯(cuò)誤,認(rèn)證部302向控制部305通知表示發(fā)生錯(cuò)誤的出錯(cuò)信息。此后,IC卡300停止其動(dòng)作。
      在判斷為一致的場(chǎng)合下(步驟S134),認(rèn)證部302經(jīng)由輸入輸出部301及讀卡器200,向寄存器裝置100輸出所生成的署名數(shù)據(jù)S1(步驟S141)。
      接下來(lái),寄存器裝置100的認(rèn)證部108經(jīng)由讀卡器200及輸入輸出部110,從IC卡300接受署名數(shù)據(jù)S1(步驟S141),從密鑰存儲(chǔ)部111讀出IC卡300的公開(kāi)密鑰e、素?cái)?shù)p及素?cái)?shù)q(步驟S142),接下來(lái),對(duì)所生成的隨機(jī)數(shù)R1施行散列函數(shù)Hash,生成散列值H2=Hash(R1)(步驟S143)。
      接下來(lái),認(rèn)證部108計(jì)算n=p×q,計(jì)算S1e(mod n)(步驟S144),并對(duì)所生成的散列值H2與由計(jì)算所得到的值S1e(mod n)進(jìn)行比較,如果一致(步驟S145),便視為認(rèn)證成功,如果不一致(步驟S145),則視為認(rèn)證失敗。
      (3)基于IC卡300的寄存器裝置100的認(rèn)證動(dòng)作利用圖7所示的流程圖,對(duì)基于IC卡300的寄存器裝置100的認(rèn)證動(dòng)作進(jìn)行說(shuō)明。
      IC卡300的認(rèn)證部302生成隨機(jī)數(shù)R2(步驟S201),并經(jīng)由輸入輸出部301及讀卡器200,向寄存器裝置100輸出所生成的隨機(jī)數(shù)R2(步驟S202)。
      寄存器裝置100的認(rèn)證部108經(jīng)由讀卡器200及輸入輸出部110,從IC卡300接受隨機(jī)數(shù)R2(步驟S202),從密鑰存儲(chǔ)部111讀出秘密密鑰SK、素?cái)?shù)p及素?cái)?shù)q(步驟S203),對(duì)所接受的隨機(jī)數(shù)R2施行散列函數(shù)Hash,并計(jì)算散列值H3=Hash(R2)(步驟S204)。接下來(lái),認(rèn)證部108計(jì)算n=p×q,并計(jì)算署名數(shù)據(jù)S2=(H3)SK(mod n)(步驟S205),經(jīng)由輸入輸出部110及讀卡器200,向IC卡300輸出由計(jì)算所得到的署名數(shù)據(jù)S2(步驟S206)。
      接下來(lái),IC卡300的認(rèn)證部302經(jīng)由讀卡器200及輸入輸出部301,從寄存器裝置100接受署名數(shù)據(jù)S2(步驟S206),從密鑰存儲(chǔ)部309讀出寄存器裝置100的公開(kāi)密鑰PK、素?cái)?shù)p及素?cái)?shù)q(步驟S207),計(jì)算整數(shù)n=p×q,并利用所生成的隨機(jī)數(shù)R2,來(lái)計(jì)算散列值H4=Hash(R2)(步驟S208)。接下來(lái),認(rèn)證部302計(jì)算S2PK(mod n)(步驟S209),判斷H4與S2PK(mod n)是否一致,如果一致(步驟S210),便視為認(rèn)證成功,如果不一致(步驟S210),則視為認(rèn)證失敗。
      在設(shè)備認(rèn)證失敗的場(chǎng)合下,此后IC卡300在與寄存器裝置100之間不進(jìn)行信息收發(fā)。
      (4)會(huì)話密鑰的交接動(dòng)作利用圖8所示的流程圖,對(duì)會(huì)話密鑰的交接動(dòng)作進(jìn)行說(shuō)明。
      寄存器裝置100的加解密部109生成隨機(jī)數(shù),并將所生成的隨機(jī)數(shù)作為會(huì)話密鑰M(步驟S251)。接下來(lái)從密鑰存儲(chǔ)部111讀出素?cái)?shù)p、素?cái)?shù)q及公開(kāi)密鑰e,計(jì)算整數(shù)n=p×q,并利用會(huì)話密鑰M、整數(shù)n及公開(kāi)密鑰e,算出加密會(huì)話密鑰C1=Me(mod n)(步驟S252)。接下來(lái),經(jīng)由輸入輸出部110及讀卡器200,向IC卡300輸出由計(jì)算所得到的加密會(huì)話密鑰C1(步驟S253)。
      接下來(lái),IC卡300的解密部303經(jīng)由讀卡器200及輸入輸出部301,從寄存器裝置100接受加密會(huì)話密鑰C1(步驟S253),接著從密鑰存儲(chǔ)部309接受素?cái)?shù)p及素?cái)?shù)q,從余數(shù)運(yùn)算部312接受數(shù)d1,并依次運(yùn)算下式。
      a=p-1(mod q)(步驟S256)y1=C1(mod p)(步驟S257)y2=C1(mod q)(步驟S258)d2=d(mod q-1)(步驟S259)x1=y(tǒng)1d1(mod p)(步驟S260)x2=y(tǒng)2d2(mod q)(步驟S261)x={a(x2-x1)(mod q)}p+x1(步驟S262)接下來(lái),向解密部308輸出由計(jì)算所得到的解密會(huì)話密鑰x(步驟S263)。
      (5)點(diǎn)數(shù)的秘密通信的動(dòng)作利用圖9所示的流程圖,對(duì)點(diǎn)數(shù)的秘密通信動(dòng)作進(jìn)行說(shuō)明。
      寄存器裝置100的控制部107由小賣店銷售人員的操作,根據(jù)利用者所購(gòu)入商品的購(gòu)入額,來(lái)生成特惠即點(diǎn)數(shù)Pt(步驟S291)。接下來(lái),加解密部109將所生成的會(huì)話密鑰M用作密鑰,對(duì)點(diǎn)數(shù)Pt施行加密算法E1,生成加密點(diǎn)數(shù)Et=E1(會(huì)話密鑰M、點(diǎn)數(shù)Pt)(步驟S292),接下來(lái),經(jīng)由輸入輸出部110及讀卡器200,向IC卡300輸出加密點(diǎn)數(shù)Et(步驟S293)。
      IC卡300的解密部308經(jīng)由讀卡器200及輸入輸出部301,從寄存器裝置100接受加密點(diǎn)數(shù)Et(步驟S293),從解密部303接受解密會(huì)話密鑰x,將所接受的解密會(huì)話密鑰x用作密鑰,對(duì)所接受的加密點(diǎn)數(shù)Et施行解密算法D1,生成解密點(diǎn)數(shù)Dt(步驟S294),并向信息存儲(chǔ)部307寫(xiě)入所生成的解密點(diǎn)數(shù)Dt(步驟S295)。
      1.6e′成為公開(kāi)密鑰的證明以下,對(duì)在d1=d(mod p-1)時(shí),e′=d1-1(mod p-1)成為公開(kāi)密鑰這一事實(shí)進(jìn)行證明。
      公開(kāi)密鑰e′由e′=d-1(mod LCM(p-1,q-1))來(lái)定義。這里,LCM(x,y)表示x與y的最小公倍數(shù)。
      由于LCM(p-1,q-1)可以表現(xiàn)為n×(p-1),因而成為e′×d=n×(m×(p-1))+1。
      這里,如果假設(shè)e<p-1,則成為e′×(k×(p-1)+d1)=n×(m×(p-1))+1e′×d1=(n×m-e×k)×(p-1)+1,從而成為e′=d1-1(mod p-1)。
      2.第2實(shí)施方式以下對(duì)作為本發(fā)明涉及的其它實(shí)施方式的RSA秘密通信系統(tǒng)20進(jìn)行說(shuō)明。
      (1)RSA秘密通信系統(tǒng)20的構(gòu)成RSA秘密通信系統(tǒng)20如圖10所示,其構(gòu)成包括RSA加密裝置500、RSA解密裝置400及存儲(chǔ)卡600,RSA加密裝置500及RSA解密裝置400經(jīng)由網(wǎng)絡(luò)50來(lái)連接。
      在RSA加密方式下的密鑰生成中,對(duì)于大小相異的2個(gè)素?cái)?shù)p及素?cái)?shù)q,生成成為數(shù)n=p×q,并與p-1同q-1的最小公倍數(shù)1cm互素,而且滿足p-1>e的公開(kāi)密鑰e。此外在以最小公倍數(shù)1cm為除數(shù)的余數(shù)體中,生成公開(kāi)密鑰e的逆元,所生成的逆元成為秘密密鑰d。如此生成的公開(kāi)密鑰e被預(yù)先通知到RSA加密裝置500。
      RSA加密裝置500由RSA加密方式,將公開(kāi)密鑰e用作密鑰,對(duì)明碼M加密,算出加密碼C=Me(mod n)。這里是n=p×q。
      存儲(chǔ)卡600是可移動(dòng)型半導(dǎo)體存儲(chǔ)器,預(yù)先存儲(chǔ)有解密處理所用的秘密密鑰d、素?cái)?shù)p及素?cái)?shù)q。
      RSA解密裝置400是對(duì)由RSA加密裝置500生成的加密碼C=Me(mod n)解密的裝置,如圖10所示,其構(gòu)成包括由數(shù)據(jù)輸入部401、LSI部420、數(shù)據(jù)輸出部404及數(shù)據(jù)輸入部406。LSI部420是系統(tǒng)LSI,包含數(shù)據(jù)解密部402、高速公開(kāi)密鑰運(yùn)算部403及數(shù)據(jù)再加密部405。并且,高速公開(kāi)密鑰運(yùn)算部403包含秘密密鑰取得部411、余數(shù)運(yùn)算部412、除數(shù)運(yùn)算部413及求逆運(yùn)算部414。
      數(shù)據(jù)輸入部401經(jīng)由網(wǎng)絡(luò)50,從RSA加密裝置500取得解密對(duì)象即加密碼C=Me(mod n)。
      數(shù)據(jù)輸入部406從存儲(chǔ)卡600取得解密處理用的秘密密鑰d、素?cái)?shù)p及素?cái)?shù)q。
      數(shù)據(jù)解密部402為實(shí)現(xiàn)處理高速化,由中國(guó)余數(shù)定理(ChineseRemainder Theorem,簡(jiǎn)稱CRT),并利用由數(shù)據(jù)輸入部406取得的秘密密鑰d、素?cái)?shù)p、素?cái)?shù)q以及由高速公開(kāi)密鑰運(yùn)算部403算出的d1,對(duì)加密碼C解密,生成解密碼D。具體地說(shuō),進(jìn)行以下所示的運(yùn)算。
      a=p-1(mod q)y1=C(mod p)y2=C(mod q)d2=d(mod q-1)x1=y(tǒng)1d1(mod p)x2=y(tǒng)2d2(mod q)D={a(x2-x1)(mod q)}p+x1接下來(lái),數(shù)據(jù)解密部402向數(shù)據(jù)輸出部404及數(shù)據(jù)再加密部405輸出所生成的解密碼D。
      高速公開(kāi)密鑰運(yùn)算部403從數(shù)據(jù)輸入部406取得秘密密鑰e、素?cái)?shù)p、素?cái)?shù)q,運(yùn)算公開(kāi)密鑰e1。部分中途結(jié)果被傳送給數(shù)據(jù)解密部402,用于解密運(yùn)算。
      高速公開(kāi)密鑰運(yùn)算部403的秘密密鑰取得部411從數(shù)據(jù)輸入部406取得秘密密鑰d、素?cái)?shù)p及素?cái)?shù)q。
      除數(shù)運(yùn)算部413進(jìn)行素?cái)?shù)p與素?cái)?shù)q的相乘,算出整數(shù)n。
      余數(shù)運(yùn)算部412從秘密密鑰d、素?cái)?shù)p、素?cái)?shù)q算出d1=d mod(p-1)的值,并保持所算出的d1。
      求逆運(yùn)算部414算出以p-1為除數(shù)的余數(shù)體上d1的逆e1=d1-1(modp-1),接下來(lái)將所算出的逆e1作為公開(kāi)密鑰,向數(shù)據(jù)再加密部405輸出。此外向數(shù)據(jù)解密部402輸出d1。
      數(shù)據(jù)再加密部405利用由高速公開(kāi)密鑰運(yùn)算部403生成的公開(kāi)密鑰e1,對(duì)由數(shù)據(jù)解密部402解密而生成的解密碼D進(jìn)行再加密,生成再加密碼C′=De1(mod n),并向數(shù)據(jù)輸出部404輸出所生成的再加密碼C′。
      數(shù)據(jù)輸出部404將由數(shù)據(jù)再加密部405得到的再加密碼C′與由數(shù)據(jù)輸入部401得到的加密碼C進(jìn)行比較,在再加密碼C′與加密碼C一致的場(chǎng)合下,向外部輸出由數(shù)據(jù)解密部402得到的解密碼D。在再加密碼C′與加密碼C不一致的場(chǎng)合下,不輸出解密碼D。
      (2)RSA解密裝置400中的RSA解密動(dòng)作接下來(lái),利用圖11所示的流程圖,對(duì)RSA解密裝置400中的RSA解密動(dòng)作進(jìn)行說(shuō)明。
      數(shù)據(jù)輸入部401取得加密碼C,數(shù)據(jù)輸入部406取得秘密密鑰d、素?cái)?shù)p及素?cái)?shù)q(步驟S401)。
      接下來(lái),高速公開(kāi)密鑰運(yùn)算部403的秘密密鑰取得部411取得秘密密鑰d、素?cái)?shù)p及素?cái)?shù)q,除數(shù)運(yùn)算部413進(jìn)行素?cái)?shù)p與素?cái)?shù)q的相乘,算出整數(shù)n,余數(shù)運(yùn)算部412從秘密密鑰d、素?cái)?shù)p、素?cái)?shù)q來(lái)算出d1=dmod(p-1)的值,并保持d1,求逆運(yùn)算部414算出公開(kāi)密鑰e1=d1-1(modp-1)(步驟S402)。
      接下來(lái),數(shù)據(jù)解密部402利用中國(guó)余數(shù)定理(CRT),對(duì)加密碼C解密,生成解密碼D(步驟S403)。
      數(shù)據(jù)再加密部405利用由高速公開(kāi)密鑰運(yùn)算部403生成的公開(kāi)密鑰e1,對(duì)解密碼D進(jìn)行再加密,生成再加密碼C′(步驟S404)。
      數(shù)據(jù)輸出部404將再加密碼C′與加密碼C進(jìn)行比較,在再加密碼C′與加密碼C一致的場(chǎng)合下(步驟S405),向外部輸出解密碼D(步驟S406)。在再加密碼C′與加密碼C不一致的場(chǎng)合下(步驟S405),不輸出解密碼D,而顯示或輸出表示發(fā)生了故障這一意思的消息(步驟S407)。
      (3)總結(jié)根據(jù)上述第2實(shí)施方式,對(duì)計(jì)算公開(kāi)密鑰e1的值的求逆運(yùn)算的輸入成為傳統(tǒng)位長(zhǎng)的一半。由于逆元運(yùn)算所需的存儲(chǔ)量與輸入位長(zhǎng)成比例,處理時(shí)間與輸入位長(zhǎng)的平方成比例,因而存儲(chǔ)量及處理時(shí)間均可大幅縮減。此外由于成為求逆運(yùn)算的輸入值的d1也可以挪用于采用了中國(guó)余數(shù)定理的解密運(yùn)算,因而具有還可削減解密運(yùn)算的處理時(shí)間的效果。
      此外在本實(shí)施方式中,所表示的是一種在高速公開(kāi)密鑰運(yùn)算部?jī)?nèi)設(shè)置計(jì)算d1的余數(shù)運(yùn)算部,并將該值發(fā)送給數(shù)據(jù)解密部來(lái)利用的構(gòu)成,但也可以在數(shù)據(jù)解密部?jī)?nèi)設(shè)置余數(shù)運(yùn)算部來(lái)計(jì)算d1,并將該值發(fā)送到高速公開(kāi)密鑰運(yùn)算部。在該場(chǎng)合下,在圖11的流程圖中,上部的高速公開(kāi)密鑰生成步驟(步驟S402)與高速解密步驟(步驟S403)的順序顛倒。
      3.第3實(shí)施方式以下對(duì)作為第2實(shí)施方式的RSA秘密通信系統(tǒng)20的變形例的RSA秘密通信系統(tǒng)30進(jìn)行說(shuō)明。
      (1)RSA秘密通信系統(tǒng)30的構(gòu)成RSA秘密通信系統(tǒng)30具有與RSA秘密通信系統(tǒng)20類似的構(gòu)成。這里以與RSA秘密通信系統(tǒng)20的相異點(diǎn)為中心進(jìn)行說(shuō)明。
      RSA秘密通信系統(tǒng)30如圖12所示,其構(gòu)成包括由RSA加密裝置500、RSA解密裝置400b、CRT信息生成裝置700及存儲(chǔ)卡600b,RSA加密裝置500及RSA解密裝置400經(jīng)由網(wǎng)絡(luò)50來(lái)連接。
      存儲(chǔ)卡600b是與存儲(chǔ)卡600同樣的可移動(dòng)型半導(dǎo)體存儲(chǔ)器,預(yù)先存儲(chǔ)有解密處理用的秘密密鑰d、素?cái)?shù)p及素?cái)?shù)q。
      CRT信息生成裝置700從存儲(chǔ)卡600b讀出秘密密鑰d、素?cái)?shù)p及素?cái)?shù)q,利用所讀出的秘密密鑰d、素?cái)?shù)p及素?cái)?shù)q,來(lái)算出d1=d mod(p-1)以及d2=d mod(q-1),并向存儲(chǔ)卡600b寫(xiě)入由計(jì)算所得到的d1及d2。
      RSA解密裝置400b是具有與RSA解密裝置400同樣的構(gòu)成,并對(duì)由RSA加密裝置500生成的加密碼C=Me(mod n)進(jìn)行解密的裝置,如圖12所示,其構(gòu)成包括數(shù)據(jù)輸入部401、LSI部420b、數(shù)據(jù)輸出部404及數(shù)據(jù)輸入部406b。LSI部420b是具有與LSI部420同樣構(gòu)成的系統(tǒng)LSI,包含數(shù)據(jù)解密部402、高速公開(kāi)密鑰運(yùn)算部403b以及數(shù)據(jù)再加密部405。此外高速公開(kāi)密鑰運(yùn)算部403b包含秘密密鑰取得部411b、除數(shù)運(yùn)算部413及求逆運(yùn)算部414。
      數(shù)據(jù)輸入部406b從存儲(chǔ)卡600b取得解密處理用的秘密密鑰d、素?cái)?shù)p、素?cái)?shù)q、d1及d2。
      數(shù)據(jù)解密部402b利用由數(shù)據(jù)輸入部406b取得的秘密密鑰d、素?cái)?shù)p、素?cái)?shù)q、d1及d2,對(duì)加密碼C解密,生成解密碼D。具體地說(shuō),進(jìn)行以下所示的運(yùn)算。
      a=p-1(mod q)y1=C(mod p)y2=C(mod q)x1=y(tǒng)1d1(mod p)x2=y(tǒng)2d2(mod q)D={a(x2-x1)(mod q)}p+x1
      接下來(lái),數(shù)據(jù)解密部402b向數(shù)據(jù)輸出部404及數(shù)據(jù)再加密部405輸出所生成的解密碼D。
      這里,數(shù)據(jù)解密部402b不進(jìn)行d2=d(mod q-1)的運(yùn)算,而從存儲(chǔ)卡600b取得d2,這一點(diǎn)與數(shù)據(jù)解密部402不同。
      高速公開(kāi)密鑰運(yùn)算部403b從數(shù)據(jù)輸入部406取得秘密密鑰e、素?cái)?shù)p、素?cái)?shù)q、d1,運(yùn)算公開(kāi)密鑰e1。部分中途結(jié)果被傳送給數(shù)據(jù)解密部402,用于解密運(yùn)算。
      高速公開(kāi)密鑰運(yùn)算部403b的秘密密鑰取得部411b從數(shù)據(jù)輸入部406b取得素?cái)?shù)p、素?cái)?shù)q、d1。
      除數(shù)運(yùn)算部413進(jìn)行素?cái)?shù)p與素?cái)?shù)q的相乘,算出整數(shù)n。
      求逆運(yùn)算部414算出以p-1為除數(shù)的余數(shù)體上d1的逆e1=d1-1(modp-1),接下來(lái)將所算出的逆e1作為公開(kāi)密鑰,向數(shù)據(jù)再加密部405輸出。
      (2)RSA秘密通信系統(tǒng)30的動(dòng)作利用圖13所示的流程圖,對(duì)RSA秘密通信系統(tǒng)30的動(dòng)作進(jìn)行說(shuō)明。
      CRT信息生成裝置700從存儲(chǔ)卡600b讀出秘密密鑰d、素?cái)?shù)p及素?cái)?shù)q(步驟S431),利用所讀出的秘密密鑰d、素?cái)?shù)p及素?cái)?shù)q,算出d1=dmod(p-1)及d2=d mod(q-1)(步驟S432),并向存儲(chǔ)卡600b寫(xiě)入由計(jì)算所得到的d1及d2(步驟S433)。
      RSA解密裝置400b的數(shù)據(jù)輸入部406b從存儲(chǔ)卡600b取得解密處理用的秘密密鑰d、素?cái)?shù)p、素?cái)?shù)q、d1及d2(步驟S434)。
      數(shù)據(jù)輸入部401經(jīng)由網(wǎng)絡(luò)50,從RSA加密裝置500取得加密碼C(步驟S435)。
      數(shù)據(jù)解密部402b利用由數(shù)據(jù)輸入部406b取得的秘密密鑰d、素?cái)?shù)p、素?cái)?shù)q、d1及d2,由中國(guó)余數(shù)定理,對(duì)加密碼C解密,生成解密碼D(步驟S436)。
      接下來(lái),求逆運(yùn)算部414算出逆e1=d1-1(mod p-1)(步驟S437),數(shù)據(jù)再加密部405利用公開(kāi)密鑰e1,對(duì)解密碼D再次加密,生成再加密碼C′(步驟S438)。
      接下來(lái),數(shù)據(jù)輸出部404將再加密碼C′與加密碼C進(jìn)行比較,在再加密碼C′與加密碼C一致的場(chǎng)合下(步驟S439),向外部輸出解密碼D(步驟S440)。在再加密碼C′與加密碼C不一致的場(chǎng)合下(步驟S439),不輸出解密碼D,而顯示或輸出表示發(fā)生了故障的消息(步驟S441)。
      (3)總結(jié)如上所述,在第3實(shí)施方式中,RSA解密裝置從外部取得的不是傳統(tǒng)的秘密密鑰,而是預(yù)先計(jì)算出的中國(guó)余數(shù)定理(CRT)運(yùn)算用的秘密密鑰。即取得d1=d mod(p-1)、d2=d mod(q-1)、p、q的值。此外根據(jù)中國(guó)余數(shù)定理的利用方法,在從外部取得的數(shù)據(jù)中也可以至少包含d1。
      數(shù)據(jù)解密部402及高速公開(kāi)密鑰運(yùn)算部403b利用由數(shù)據(jù)輸入部406b取得的值,來(lái)進(jìn)行各自的處理。因此如第2實(shí)施方式所示,不必在數(shù)據(jù)解密部402與高速公開(kāi)密鑰運(yùn)算部403之間收發(fā)值d1。
      由于值d1從外部來(lái)取得,因而在高速公開(kāi)密鑰運(yùn)算部403b中,不必設(shè)置第2實(shí)施方式所示的余數(shù)運(yùn)算部412。
      此外第3實(shí)施方式中,從外部取得d1=d mod(p-1)、d2=d mod(q-1)、p、q,但根據(jù)中國(guó)余數(shù)定理的利用方法,在從外部取得的數(shù)據(jù)中也可以至少包含d1。
      并且,在圖13所示的流程圖中,在高速解密步驟(步驟S436)之后,實(shí)施高速公開(kāi)密鑰取得步驟(步驟S437),但先實(shí)施高速解密步驟與高速公開(kāi)密鑰取得步驟的任意一方都是可以的。即也可以在高速公開(kāi)密鑰取得步驟(步驟S437)之后,實(shí)施高速解密步驟(步驟S436)。
      根據(jù)第3實(shí)施方式,除了實(shí)施方式2的效果之外,無(wú)需用于求算d2的余數(shù)運(yùn)算,因而具有可進(jìn)一步削減處理時(shí)間的優(yōu)異效果。
      另外,在上述說(shuō)明中,以RSA解密裝置中的示例來(lái)作說(shuō)明,但對(duì)于RSA署名生成裝置,也可同樣實(shí)施。
      此外不限于RSA解密裝置及RSA署名生成裝置,對(duì)于從RSA秘密密鑰來(lái)取得RSA公開(kāi)密鑰的場(chǎng)合也可同樣實(shí)施。
      4.總結(jié)本發(fā)明是一種RSA公開(kāi)密鑰復(fù)原裝置,其在利用素?cái)?shù)p與q、與p-1同q-1的最小公倍數(shù)1cm互素并滿足p-1>e的數(shù)e、以1cm為除數(shù)的余數(shù)體中e的逆元即d以及p與q之積n,將(e,n)用作公開(kāi)密鑰,將(d,p,q)用作秘密密鑰的RSA密碼中,從上述秘密密鑰(d,p,q)來(lái)使上述公開(kāi)密鑰(e,n)復(fù)原,具有第一秘密密鑰輸入單元,其輸入RSA密碼的秘密密鑰(d,p,q);
      第一余數(shù)單元,其利用由上述第一秘密密鑰輸入單元輸入的秘密密鑰d與p,來(lái)求出以p-1為除數(shù)的d的余數(shù)即dp=d mod(p-1);第一逆元運(yùn)算單元,其利用由上述第一余數(shù)單元得到的dp及由上述第一秘密密鑰輸入單元輸入的p,來(lái)求出以p-1為除數(shù)的余數(shù)體中dp的逆元;公開(kāi)密鑰輸出單元,其將由上述第一秘密密鑰輸入單元輸入的秘密密鑰p與q之積設(shè)為n,將由上述第一逆元運(yùn)算單元得到的逆元設(shè)為e,將(e,n)作為RSA公開(kāi)密鑰來(lái)輸出。
      并且,本發(fā)明是一種RSA解密裝置,其在利用素?cái)?shù)p與q、與p-1同q-1的最小公倍數(shù)1cm互素并滿足p-1>e的數(shù)e、以1cm為除數(shù)的余數(shù)體中e的逆元即d以及p與q之積n,將(e,n)用作公開(kāi)密鑰,將(d,p,q)用作秘密密鑰的RSA密碼中,從由上述公開(kāi)密鑰加密的加密碼,來(lái)對(duì)原明碼解密,具有輸入加密碼C的加密碼輸入單元;第二秘密密鑰輸入單元,其輸入RSA密碼的秘密密鑰(d,p,q);解密單元,其利用由上述第二秘密密鑰輸入單元輸入的秘密密鑰,從由上述加密碼輸入單元輸入的加密碼C來(lái)對(duì)明碼P解密;第二余數(shù)單元,其利用由上述第二秘密密鑰輸入單元輸入的秘密密鑰d與p,來(lái)求出以p-1為除數(shù)的d的余數(shù)即dp=d mod(p-1);第二逆元運(yùn)算單元,其利用由上述第二余數(shù)單元得到的dp及由上述第二秘密密鑰輸入單元輸入的p,來(lái)求出以p-1為除數(shù)的余數(shù)體中dp的逆元;第一公開(kāi)密鑰復(fù)原單元,其將由上述第二秘密密鑰輸入單元輸入的秘密密鑰p與q之積設(shè)為n,將由上述第二逆元運(yùn)算單元得到的逆元設(shè)為e,將(e,n)作為RSA公開(kāi)密鑰來(lái)保持;加密單元,其利用由上述第一公開(kāi)密鑰復(fù)原單元保持的公開(kāi)密鑰,從由上述解密單元求出的明碼P來(lái)求出加密碼C′;第一驗(yàn)算單元,其將由上述加密單元求出的加密碼C′與由上述加密碼輸入單元輸入的加密碼C進(jìn)行比較;解密結(jié)果輸出單元,其只在上述第一驗(yàn)算單元的比較結(jié)果一致時(shí),才輸出明碼P。
      這里,也可以取代上述解密單元,而配備CRT解密單元,其利用由上述第二秘密密鑰輸入單元輸入的秘密密鑰以及由上述第二余數(shù)單元得到的dp,通過(guò)采用了中國(guó)余數(shù)定理(CRT)的算法,從由上述加密碼輸入單元輸入的加密碼C來(lái)對(duì)明碼P解密。
      這里,也可以取代上述第二秘密密鑰輸入單元及上述第二余數(shù)單元,而具備第三秘密密鑰輸入單元,其預(yù)先將至少包含dp而且利用了中國(guó)余數(shù)定理的算法所必需的值作為RSA密碼的秘密密鑰來(lái)輸入,上述第二逆元運(yùn)算單元、上述第一公開(kāi)密鑰復(fù)原單元、上述CRT解碼單元也可以采用由上述第三秘密密鑰輸入單元輸入的值。
      這里,也可以還具備第一出錯(cuò)輸出單元,其當(dāng)上述第一驗(yàn)算單元的比較結(jié)果不一致時(shí),輸出發(fā)生故障這一大意。
      并且,本發(fā)明是一種RSA署名生成裝置,其在利用素?cái)?shù)p與q、與p-1同q-1的最小公倍數(shù)1cm互素并滿足p-1>e的數(shù)e、以1cm為除數(shù)的余數(shù)體中e的逆元即d以及p與q之積n,將(e,n)用作公開(kāi)密鑰,將(d,p,q)用作秘密密鑰的RSA密碼中,從明碼來(lái)生成署名碼,具有輸入明碼P的明碼輸入單元;第四秘密密鑰輸入單元,其輸入RSA密碼的秘密密鑰(d,p,q);署名生成單元,其利用由上述第四秘密密鑰輸入單元輸入的秘密密鑰,從由上述明碼輸入單元輸入的明碼P來(lái)生成署名碼S;第三余數(shù)單元,其利用由上述第四秘密密鑰輸入單元輸入的秘密密鑰d與p,來(lái)求出以p-1為除數(shù)的d的余數(shù)即dp=d mod(p-1);第三逆元運(yùn)算單元,其利用由上述第三余數(shù)單元得到的dp及由上述第四秘密密鑰輸入單元輸入的p,來(lái)求出以p-1為除數(shù)的余數(shù)體中dp的逆元;第二公開(kāi)密鑰復(fù)原單元,其將由上述第四秘密密鑰輸入單元輸入的秘密密鑰p與q之積設(shè)為n,將由上述第三逆元運(yùn)算單元得到的逆元設(shè)為e,將(e,n)作為RSA公開(kāi)密鑰來(lái)保持;明碼恢復(fù)單元,其利用由上述第二公開(kāi)密鑰復(fù)原單元保持的公開(kāi)密鑰,從由上述署名生成單元求出的署名碼S來(lái)求出明碼P′;第二驗(yàn)算單元,其將由上述明碼恢復(fù)單元求出的明碼P′與由上述明碼輸入單元輸入的明碼P進(jìn)行比較;署名結(jié)果輸出單元,其只在上述第二驗(yàn)算單元的比較結(jié)果一致時(shí),才輸出署名碼S。
      這里,也可以取代上述署名生成單元,而配備CRT署名生成單元,其利用由上述第四秘密密鑰輸入單元輸入的秘密密鑰以及由上述第三余數(shù)單元得到的dp,通過(guò)采用了中國(guó)余數(shù)定理(CRT)的算法,從由上述明碼輸入單元輸入的明碼P來(lái)生成署名碼S。
      這里,也可以取代上述第四秘密密鑰輸入單元及上述第三余數(shù)單元,而具備第五秘密密鑰輸入單元,其預(yù)先將至少包含dp而且利用了中國(guó)余數(shù)定理的算法所必需的值作為RSA密碼的秘密密鑰來(lái)輸入,上述第三逆元運(yùn)算單元、上述第二公開(kāi)密鑰復(fù)原單元、上述CRT署名生成單元也可以采用由上述第五秘密密鑰輸入單元輸入的值。
      這里,也可以還具備第二出錯(cuò)輸出單元,其當(dāng)上述第二驗(yàn)算單元的比較結(jié)果不一致時(shí),輸出發(fā)生故障這一大意。
      并且,本發(fā)明是一種RSA公開(kāi)密鑰復(fù)原方法,其在利用素?cái)?shù)p與q、與p-1同q-1的最小公倍數(shù)1cm互素并滿足p-1>e的數(shù)e、以1cm為除數(shù)的余數(shù)體中e的逆元即d以及p與q之積n,將(e,n)用作公開(kāi)密鑰,將(d,p,q)用作秘密密鑰的RSA密碼中,從上述秘密密鑰(d,p,q)來(lái)使上述公開(kāi)密鑰(e,n)復(fù)原,包括第一秘密密鑰輸入步驟,其輸入RSA密碼的秘密密鑰(d,p,q);第一余數(shù)步驟,其利用由上述第一秘密密鑰輸入步驟輸入的秘密密鑰d與p,來(lái)求出以p-1為除數(shù)的d的余數(shù)即dp=d mod(p-1);第一逆元運(yùn)算步驟,其利用由上述第一余數(shù)步驟得到的dp及由上述第一秘密密鑰輸入步驟輸入的p,來(lái)求出以p-1為除數(shù)的余體中dp的逆元;公開(kāi)密鑰輸出步驟,其將由上述第一秘密密鑰輸入步驟輸入的秘密密鑰p與q之積設(shè)為n,將由上述第一逆元運(yùn)算步驟得到的逆元設(shè)為e,將(e,n)作為RSA公開(kāi)密鑰來(lái)輸出。
      本發(fā)明是一種RSA解密方法,其在利用素?cái)?shù)p與q、與p-1同q-1的最小公倍數(shù)1cm互素并滿足p-1>e的數(shù)e、以1cm為除數(shù)的余數(shù)體中e的逆元即d以及p與q之積n,將(e,n)用作公開(kāi)密鑰,將(d,p,q)用作秘密密鑰的RSA密碼中,從由上述公開(kāi)密鑰加密的加密碼,來(lái)對(duì)原明碼解密,包括輸入加密碼C的加密碼輸入步驟;第二秘密密鑰輸入步驟,其輸入RSA密碼的秘密密鑰(d,p,q);
      解密步驟,其利用由上述第二秘密密鑰輸入步驟輸入的秘密密鑰,從由上述加密碼輸入步驟輸入的加密碼C來(lái)對(duì)明碼P解密;第二余數(shù)步驟,其利用由上述第二秘密密鑰輸入步驟輸入的秘密密鑰d與p,來(lái)求出以p-1為除數(shù)的d的余數(shù)即dp=d mod(p-1);第二逆元運(yùn)算步驟,其利用由上述第二余數(shù)步驟得到的dp及由上述第二秘密密鑰輸入步驟輸入的p,來(lái)求出以p-1為除數(shù)的余數(shù)體中dp的逆元;第一公開(kāi)密鑰復(fù)原步驟,其將由上述第二秘密密鑰輸入步驟輸入的秘密密鑰p與q之積設(shè)為n,將由上述第二逆元運(yùn)算步驟得到的逆元設(shè)為e,將(e,n)作為RSA公開(kāi)密鑰來(lái)保持;加密步驟,其利用由上述第一公開(kāi)密鑰復(fù)原步驟保持的公開(kāi)密鑰,從由上述解密步驟求出的明碼P來(lái)求出加密碼C′;第一驗(yàn)算步驟,其將由上述加密步驟求出的加密碼C′與由上述加密碼輸入步驟輸入的加密碼C進(jìn)行比較;解密結(jié)果輸出步驟,其只在上述第一驗(yàn)算步驟的比較結(jié)果一致時(shí),才輸出明碼P。
      這里,也可以取代上述解密步驟,而包括CRT解密步驟,其利用由上述第二秘密密鑰輸入步驟輸入的秘密密鑰以及由上述第二余數(shù)步驟得到的dp,通過(guò)采用了中國(guó)余數(shù)定理(CRT)的算法,從由上述加密碼輸入步驟輸入的加密碼C來(lái)對(duì)明碼P解密。
      這里,也可以取代上述第二秘密密鑰輸入步驟及上述第二余數(shù)步驟,而包括第三秘密密鑰輸入步驟,其預(yù)先將至少包含dp而且利用了中國(guó)余數(shù)定理的算法所必需的值作為RSA密碼的秘密密鑰來(lái)輸入,上述第二逆元運(yùn)算步驟、上述第一公開(kāi)密鑰復(fù)原步驟、上述CRT解密步驟也可以采用由上述第三秘密密鑰輸入步驟輸入的值。
      這里,也可以還具備第一出錯(cuò)輸出步驟,其當(dāng)上述第一驗(yàn)算步驟的比較結(jié)果不一致時(shí),輸出發(fā)生故障這一大意。
      并且,本發(fā)明是一種RSA署名生成方法,其在利用素?cái)?shù)p與q、與p-1同q-1的最小公倍數(shù)1cm互素并滿足p-1>e的數(shù)e、以1cm為除數(shù)的余數(shù)體中e的逆元即d以及p與q之積n,將(e,n)用作公開(kāi)密鑰,將(d,p,q)用作秘密密鑰的RSA密碼中,從明碼來(lái)生成署名碼,包括輸入明碼P的明碼輸入步驟;
      第四秘密密鑰輸入步驟,其輸入RSA密碼的秘密密鑰(d,p,q);署名生成步驟,其利用由上述第四秘密密鑰輸入步驟輸入的秘密密鑰,從由上述明碼輸入步驟輸入的明碼P來(lái)生成署名碼S;第三余數(shù)步驟,其利用由上述第四秘密密鑰輸入步驟輸入的秘密密鑰d與p,來(lái)求出以p-1為除數(shù)的d的余數(shù)即dp=d mod(p-1);第三逆元運(yùn)算步驟,其利用由上述第三余數(shù)步驟得到的dp及由上述第四秘密密鑰輸入步驟輸入的p,來(lái)求出以p-1為除數(shù)的余數(shù)體中dp的逆元;第二公開(kāi)密鑰復(fù)原步驟,其將由上述第四秘密密鑰輸入步驟輸入的秘密密鑰p與q之積設(shè)為n,將由上述第三逆元運(yùn)算步驟得到的逆元設(shè)為e,將(e,n)作為RSA公開(kāi)密鑰來(lái)保持;明碼恢復(fù)步驟,其利用由上述第二公開(kāi)密鑰復(fù)原步驟保持的公開(kāi)密鑰,從由上述署名生成步驟求出的署名碼S來(lái)求出明碼P′;第二驗(yàn)算步驟,其將由上述明碼恢復(fù)步驟求出的明碼P′與由上述明碼輸入步驟輸入的明碼P進(jìn)行比較;署名結(jié)果輸出步驟,其只在上述第二驗(yàn)算步驟的比較結(jié)果一致時(shí),才輸出署名碼S。
      這里,也可以取代上述署名生成步驟,而包括CRT署名生成步驟,其利用由上述第四秘密密鑰輸入步驟輸入的秘密密鑰以及由上述第三余數(shù)步驟得到的dp,通過(guò)采用了中國(guó)余數(shù)定理(CRT)的算法,從由上述明碼輸入步驟輸入的明碼P來(lái)生成署名碼S。
      這里,也可以取代上述第四秘密密鑰輸入步驟及上述第三余數(shù)步驟,而包括第五秘密密鑰輸入步驟,其預(yù)先將至少包含dp而且利用了中國(guó)余數(shù)定理的算法所必需的值作為RSA密碼的秘密密鑰來(lái)輸入,上述第三逆元運(yùn)算步驟、上述第二公開(kāi)密鑰復(fù)原步驟、上述CRT署名生成步驟也可以采用由上述第五秘密密鑰輸入步驟輸入的值。
      這里,也可以還包括第二出錯(cuò)輸出步驟,其當(dāng)上述第二驗(yàn)算步驟的比較結(jié)果不一致時(shí),輸出發(fā)生故障這一大意。
      并且,本發(fā)明是一種RSA公開(kāi)密鑰復(fù)原程序,其在利用素?cái)?shù)p與q、與p-1同q-1的最小公倍數(shù)1cm互素并滿足p-1>e的數(shù)e、以1cm為除數(shù)的余數(shù)體中e的逆元即d以及p與q之積n,將(e,n)用作公開(kāi)密鑰,將(d,p,q)用作秘密密鑰的RSA密碼中,從上述秘密密鑰(d,p,q)來(lái)使上述公開(kāi)密鑰(e,n)復(fù)原,包括第一秘密密鑰輸入步驟,其輸入RSA密碼的秘密密鑰(d,p,q);第一余數(shù)步驟,其利用由上述第一秘密密鑰輸入步驟輸入的秘密密鑰d與p,來(lái)求出以p-1為除數(shù)的d的余數(shù)即dp=d mod(p-1);第一逆元運(yùn)算步驟,其利用由上述第一余數(shù)步驟得到的dp及由上述第一秘密密鑰輸入步驟輸入的p,來(lái)求出以p-1為除數(shù)的余數(shù)體中dp的逆元;公開(kāi)密鑰輸出步驟,其將由上述第一秘密密鑰輸入步驟輸入的秘密密鑰p與q之積設(shè)為n,將由上述第一逆元運(yùn)算步驟得到的逆元設(shè)為e,將(e,n)作為RSA公開(kāi)密鑰來(lái)輸出。
      本發(fā)明是一種RSA解密程序,其在利用素?cái)?shù)p及q、與p-1同q-1的最小公倍數(shù)1cm互素并滿足p-1>e的數(shù)e、以1cm為除數(shù)的余數(shù)體中e的逆元即d以及p與q之積n,將(e,n)用作公開(kāi)密鑰,將(d,p,q)用作秘密密鑰的RSA密碼中,從由上述公開(kāi)密鑰加密的加密碼,來(lái)對(duì)原明碼解密,包括輸入加密碼C的加密碼輸入步驟;第二秘密密鑰輸入步驟,其輸入RSA密碼的秘密密鑰(d,p,q);解密步驟,其利用由上述第二秘密密鑰輸入步驟輸入的秘密密鑰,從由上述加密碼輸入步驟輸入的加密碼C來(lái)對(duì)明碼P解密;第二余數(shù)步驟,其利用由上述第二秘密密鑰輸入步驟輸入的秘密密鑰d與p,來(lái)求出以p-1為除數(shù)的d的余數(shù)即dp=d mod(p-1);第二逆元運(yùn)算步驟,其利用由上述第二余數(shù)步驟得到的dp及由上述第二秘密密鑰輸入步驟輸入的p,來(lái)求出以p-1為除數(shù)的余數(shù)體中dp的逆元;第一公開(kāi)密鑰復(fù)原步驟,其將由上述第二秘密密鑰輸入步驟輸入的秘密密鑰p與q之積設(shè)為n,將由上述第二逆元運(yùn)算步驟得到的逆元設(shè)為e,將(e,n)作為RSA公開(kāi)密鑰來(lái)保持;加密步驟,其利用由上述第一公開(kāi)密鑰復(fù)原步驟保持的公開(kāi)密鑰,從由上述解密步驟求出的明碼P來(lái)求出加密碼C′;第一驗(yàn)算步驟,其將由上述加密步驟求出的加密碼C′與由上述加密碼輸入步驟輸入的加密碼C進(jìn)行比較;解密結(jié)果輸出步驟,其只在上述第一驗(yàn)算步驟的比較結(jié)果一致時(shí),才輸出明碼P。
      并且,也可以取代上述解密步驟,而包括CRT解密步驟,其利用由上述第二秘密密鑰輸入步驟輸入的秘密密鑰以及由上述第二余數(shù)步驟得到的dp,通過(guò)采用了中國(guó)余數(shù)定理(CRT)的算法,從由上述加密碼輸入步驟輸入的加密碼C來(lái)對(duì)明碼P解密。
      并且,也可以取代上述第二秘密密鑰輸入步驟及上述第二余數(shù)步驟,而包括第三秘密密鑰輸入步驟,其預(yù)先將至少包含dp而且利用了中國(guó)余數(shù)定理的算法所必需的值作為RSA密碼的秘密密鑰來(lái)輸入,上述第二逆元運(yùn)算步驟、上述第一公開(kāi)密鑰復(fù)原步驟、上述CRT解碼步驟也可以采用由上述第三秘密密鑰輸入步驟輸入的值。
      并且,也可以還具備第一出錯(cuò)輸出步驟,其當(dāng)上述第一驗(yàn)算步驟的比較結(jié)果不一致時(shí),輸出發(fā)生故障這一大意。
      本發(fā)明是一種RSA署名生成程序,其在利用素?cái)?shù)p與q、與p-1同q-1的最小公倍數(shù)1cm互素并滿足p-1>e的數(shù)e、以1cm為除數(shù)的余數(shù)體中e的逆元即d以及p與q之積n,將(e,n)用作公開(kāi)密鑰,將(d,p,q)用作秘密密鑰的RSA密碼中,從明碼來(lái)生成署名碼,包括輸入明碼P的明碼輸入步驟;第四秘密密鑰輸入步驟,其輸入RSA密碼的秘密密鑰(d,p,q);署名生成步驟,其利用由上述第四秘密密鑰輸入步驟輸入的秘密密鑰,從由上述明碼輸入步驟輸入的明碼P來(lái)生成署名碼S;第三余數(shù)步驟,其利用由上述第四秘密密鑰輸入步驟輸入的秘密密鑰d與p,來(lái)求出以p-1為除數(shù)的d的余數(shù)即dp=d mod(p-1);第三逆元運(yùn)算步驟,其利用由上述第三余數(shù)步驟得到的dp及由上述第四秘密密鑰輸入步驟輸入的p,來(lái)求出以p-1為除數(shù)的余數(shù)體中dp的逆元;第二公開(kāi)密鑰復(fù)原步驟,其將由上述第四秘密密鑰輸入步驟輸入的秘密密鑰p與q之積設(shè)為n,將由上述第三逆元運(yùn)算步驟得到的逆元設(shè)為e,將(e,n)作為RSA公開(kāi)密鑰來(lái)保持;明碼恢復(fù)步驟,其利用由上述第二公開(kāi)密鑰復(fù)原步驟保持的公開(kāi)密鑰,從由上述署名生成步驟求出的署名碼S來(lái)求出明碼P′;第二驗(yàn)算步驟,其將由上述明碼恢復(fù)步驟求出的明碼P′與由上述明碼輸入步驟輸入的明碼P進(jìn)行比較;
      署名結(jié)果輸出步驟,其只在上述第二驗(yàn)算步驟的比較結(jié)果一致時(shí),才輸出署名碼S。
      這里,也可以取代上述署名生成步驟,而包括CRT署名生成步驟,其利用由上述第四秘密密鑰輸入步驟輸入的秘密密鑰以及由上述第三余數(shù)步驟得到的dp,通過(guò)采用了中國(guó)余數(shù)定理(CRT)的算法,從由上述明碼輸入步驟輸入的明碼P來(lái)生成署名碼S。
      這里,也可以取代上述第四秘密密鑰輸入步驟及上述第三余數(shù)步驟,而包括第五秘密密鑰輸入步驟,其預(yù)先將至少包含dp而且利用了中國(guó)余數(shù)定理的算法所必需的值作為RSA密碼的秘密密鑰來(lái)輸入,上述第三逆元運(yùn)算步驟、上述第二公開(kāi)密鑰復(fù)原步驟、上述CRT署名生成步驟也可以采用由上述第五秘密密鑰輸入步驟輸入的值。
      這里,也可以還具備第二出錯(cuò)輸出步驟,其當(dāng)上述第二驗(yàn)算步驟的比較結(jié)果不一致時(shí),輸出發(fā)生故障這一大意。
      如上所述,本發(fā)明涉及的RSA密碼處理裝置具有使故障利用攻擊不能得逞,并高速進(jìn)行RSA解密處理等的性質(zhì),作為有可能受到IC卡等故障利用攻擊,同時(shí)還必須進(jìn)行RSA加密處理的裝置等非常有用。
      根據(jù)本發(fā)明的RSA公開(kāi)密鑰復(fù)原裝置,為求出公開(kāi)密鑰而取用逆元的被運(yùn)算值成為秘密密鑰大約一半的位數(shù)的值。因此可大幅削減逆元運(yùn)算所必需的存儲(chǔ)量以及處理時(shí)間。
      并且,根據(jù)本發(fā)明的RSA密碼處理裝置,為求出公開(kāi)密鑰而取用逆元的被運(yùn)算值成為秘密密鑰大約一半的位數(shù)的值。因此與傳統(tǒng)相比,可大幅削減逆元運(yùn)算所需的時(shí)間,其結(jié)果是,可縮短使故障利用攻擊不能得逞的RSA解密處理等所需的時(shí)間。
      此外,根據(jù)本發(fā)明的RSA密碼處理裝置,為求出公開(kāi)密鑰而取用逆元的被運(yùn)算值,可按原樣用于采用了中國(guó)余數(shù)定理算法的RSA解密處理。因而可縮短使故障利用攻擊不能得逞的RSA解密處理等所需的時(shí)間。
      此外,根據(jù)本發(fā)明的RSA公開(kāi)密鑰復(fù)原裝置及RSA密碼處理裝置,公開(kāi)密鑰的值對(duì)于素?cái)?shù)p被限制到p-1以下,但一般不會(huì)發(fā)生RSA密碼的公開(kāi)密鑰取得較小的問(wèn)題。
      5.其它變形例另外,基于上述實(shí)施方式對(duì)本發(fā)明作了說(shuō)明,但毋庸贅言,本發(fā)明并非限定于上述實(shí)施方式。本發(fā)明也包含以下場(chǎng)合。
      (1)在第1實(shí)施方式中,IC卡300包含系統(tǒng)LSI320,但并非限定于此。比如高速公開(kāi)密鑰運(yùn)算部304也可以構(gòu)成1個(gè)大規(guī)模集成電路。
      并且,在第2實(shí)施方式中,RSA解密裝置400包含LSI部420,但并非限定于此。比如高速公開(kāi)密鑰運(yùn)算部403也可以構(gòu)成1個(gè)大規(guī)模集成電路。
      并且,在第3實(shí)施方式中,RSA解密裝置400b包含LSI部420b,但并非限定于此。比如高速公開(kāi)密鑰運(yùn)算部403b也可以構(gòu)成1個(gè)大規(guī)模集成電路。
      (2)具體地說(shuō),上述各裝置是構(gòu)成包括微處理器、ROM、RAM等的計(jì)算機(jī)系統(tǒng)。上述RAM中存儲(chǔ)有計(jì)算機(jī)程序。上述微處理器按照上述計(jì)算機(jī)程序來(lái)動(dòng)作,各裝置由此來(lái)實(shí)現(xiàn)其功能。
      (3)本發(fā)明可以是上述所示的方法。并且,也可以是由計(jì)算機(jī)實(shí)現(xiàn)這些方法的計(jì)算機(jī)程序,還可以是由上述計(jì)算機(jī)程序所組成的數(shù)字信號(hào)。
      并且,本發(fā)明也可以將上述計(jì)算機(jī)程序或上述數(shù)字信號(hào)記錄到計(jì)算機(jī)可讀取的記錄媒體,比如軟盤(pán)、硬盤(pán)、CD-ROM、MO、DVD、DVD-ROM、DVD-RAM、BD(Blu-ray Disc,藍(lán)光盤(pán))、半導(dǎo)體存儲(chǔ)器等。此外也可以是這些記錄媒體中記錄的上述計(jì)算機(jī)程序或上述數(shù)字信號(hào)。
      并且,本發(fā)明也可以是經(jīng)由電氣通信線路、無(wú)線或有線通信線路、以因特網(wǎng)為代表的網(wǎng)絡(luò)、數(shù)據(jù)廣播等,來(lái)傳送上述計(jì)算機(jī)程序或上述數(shù)字信號(hào)。
      此外,本發(fā)明也可以是具有微處理器及存儲(chǔ)器的計(jì)算機(jī)系統(tǒng),上述存儲(chǔ)器存儲(chǔ)有上述計(jì)算機(jī)程序,上述微處理器按照上述計(jì)算機(jī)程序來(lái)動(dòng)作。
      并且,也可以通過(guò)將上述程序或上述數(shù)字信號(hào)記錄移送到上述記錄媒體,或者通過(guò)經(jīng)由上述網(wǎng)絡(luò)等來(lái)移送上述程序或上述數(shù)字信號(hào),由此由其它獨(dú)立的計(jì)算機(jī)系統(tǒng)來(lái)實(shí)施。
      (4)也可以分別組合上述實(shí)施方式及上述變形例。
      盡管參照示例及附圖對(duì)本發(fā)明進(jìn)行了詳盡說(shuō)明,但應(yīng)注意的是,對(duì)本領(lǐng)域的普通技術(shù)人員而言,可以做各種變動(dòng)及修改是顯而易見(jiàn)的。因而除非這些變動(dòng)及修改脫離本發(fā)明的范圍,否則它們應(yīng)構(gòu)成本發(fā)明的一部分。
      產(chǎn)業(yè)上的可利用性構(gòu)成本發(fā)明的各裝置,可以經(jīng)營(yíng)性持續(xù)反復(fù)地用于有必要秘密地處理信息的所有產(chǎn)業(yè)、或者有必要認(rèn)證對(duì)方的所有產(chǎn)業(yè)。此外在電氣設(shè)備制造產(chǎn)業(yè)中,對(duì)構(gòu)成本發(fā)明的各裝置可以經(jīng)營(yíng)性地持續(xù)反復(fù)地制造及銷售。
      權(quán)利要求
      1.一種從RSA加密方式的秘密密鑰d來(lái)重新生成公開(kāi)密鑰e′的RSA公開(kāi)密鑰生成裝置,包含取得單元,其取得RSA密碼的秘密密鑰d及素?cái)?shù)p,這里,素?cái)?shù)q與素?cái)?shù)p相異,公開(kāi)密鑰e與p-1同q-1的最小公倍數(shù)1cm互素,而且滿足p-1>e,上述秘密密鑰d是以1cm為除數(shù)的余數(shù)體中公開(kāi)密鑰e的逆元;余數(shù)運(yùn)算單元,其利用所取得的秘密密鑰d與素?cái)?shù)p,來(lái)算出以素?cái)?shù)p-1為除數(shù)的上述秘密密鑰d的余數(shù)dp;逆元運(yùn)算單元,其利用所算出的上述余數(shù)dp及所取得的上述素?cái)?shù)p,來(lái)算出以素?cái)?shù)p-1為除數(shù)的余數(shù)體中上述余數(shù)dp的逆元,并將所算出的逆元作為新的公開(kāi)密鑰e′。
      2.權(quán)利要求1中的RSA公開(kāi)密鑰生成裝置,其中,上述余數(shù)運(yùn)算單元由dp=d(mod p-1),來(lái)算出上述余數(shù)dp,上述逆元運(yùn)算單元由e′=dp-1(mod p-1),來(lái)算出上述公開(kāi)密鑰e′。
      3.權(quán)利要求1中的RSA公開(kāi)密鑰生成裝置,其中,上述余數(shù)運(yùn)算單元及上述逆元運(yùn)算單元由1個(gè)集成電路來(lái)構(gòu)成。
      4.一種構(gòu)成從RSA加密方式的秘密密鑰d重新生成公開(kāi)密鑰e′的RSA公開(kāi)密鑰生成裝置的集成電路,其中,RSA公開(kāi)密鑰生成裝置包含取得單元,其取得RSA密碼的秘密密鑰d及素?cái)?shù)p,這里,素?cái)?shù)q與素?cái)?shù)p相異,公開(kāi)密鑰e與p-1同q-1的最小公倍數(shù)1cm互素,而且滿足p-1>e,上述秘密密鑰d是以1cm為除數(shù)的余數(shù)體中公開(kāi)密鑰e的逆元;上述集成電路包含余數(shù)運(yùn)算單元,其利用所取得的秘密密鑰d與素?cái)?shù)p,來(lái)算出以素?cái)?shù)p-1為除數(shù)的上述秘密密鑰d的余數(shù)dp;逆元運(yùn)算單元,其利用所算出的上述余數(shù)dp及所取得的上述素?cái)?shù)p,來(lái)算出以素?cái)?shù)p-1為除數(shù)的余數(shù)體中上述余數(shù)dp的逆元,并將所算出的逆元作為新的公開(kāi)密鑰e′。
      5.一種對(duì)由RSA加密方式生成的加密碼解密的RSA解密裝置,包含公開(kāi)密鑰取得單元,其從權(quán)利要求1的RSA公開(kāi)密鑰生成裝置取得公開(kāi)密鑰e′;加密碼取得單元,其取得加密碼C,加密碼C是一種利用上述公開(kāi)密鑰e,由RSA加密方式對(duì)明碼M進(jìn)行RSA加密而生成的碼;RSA解密單元,其利用秘密密鑰d,對(duì)所取得的上述加密碼C進(jìn)行RSA解密,生成解密碼D;再加密單元,其利用所取得的公開(kāi)密鑰e′,對(duì)所生成的解密碼D進(jìn)行RSA加密,生成再加密碼C′;比較單元,其將所取得的加密碼C與所生成的再加密碼C′進(jìn)行比較,判斷是否一致;輸出單元,在判斷為一致的場(chǎng)合下,輸出所生成的上述解密碼D。
      6.權(quán)利要求5中的RSA解密裝置,其中,上述RSA解密單元從權(quán)利要求1的RSA公開(kāi)密鑰生成裝置取得余數(shù)dp,利用所取得的余數(shù)dp,由中國(guó)余數(shù)定理,來(lái)對(duì)所取得的上述加密碼C進(jìn)行RSA解密,生成解密碼D。
      7.權(quán)利要求6中的RSA解密裝置,其中,上述RSA解密單元由下述運(yùn)算來(lái)生成解密碼D,即a=p-1(mod q)y1=C(mod p)y2=C(mod q)d2=d(mod q-1)x1=y(tǒng)1dp(mod p)x2=y(tǒng)2d2(mod q)D={a(x2-x1)(mod q)}p+x1。
      8.權(quán)利要求5中的RSA解密裝置,其中,上述輸出單元在判斷為不一致的場(chǎng)合下,輸出表示發(fā)生故障這一意思的消息。
      9.權(quán)利要求5中的RSA解密裝置,其中,上述RSA解密單元、上述再加密單元及上述比較單元由1個(gè)集成電路來(lái)構(gòu)成。
      10.一種構(gòu)成對(duì)由RSA加密方式生成的加密碼解密的RSA解密裝置的集成電路,其中,上述RSA解密裝置包含公開(kāi)密鑰取得單元,其從權(quán)利要求1的RSA公開(kāi)密鑰生成裝置來(lái)取得公開(kāi)密鑰e′;加密碼取得單元,其取得加密碼C,加密碼C是一種利用上述公開(kāi)密鑰e,由RSA加密方式對(duì)明碼M進(jìn)行RSA加密而生成的碼;輸出單元,在由比較單元判斷為一致的場(chǎng)合下,輸出所生成的上述解密碼D,上述集成電路包含RSA解密單元,其利用秘密密鑰d,對(duì)所取得的上述加密碼C進(jìn)行RSA解密,生成解密碼D;再加密單元,其利用所取得的公開(kāi)密鑰e′,對(duì)所生成的解密碼D進(jìn)行RSA加密,生成再加密碼C′;比較單元,其將所取得的加密碼C與所生成的再加密碼C′進(jìn)行比較,判斷是否一致。
      11.一種對(duì)由RSA加密方式生成的加密碼解密的RSA解密裝置,包含取得單元,其取得RSA密碼的秘密密鑰d及素?cái)?shù)p,這里,素?cái)?shù)q與素?cái)?shù)p相異,公開(kāi)密鑰e與p-1同q-1的最小公倍數(shù)1cm互素,并滿足p-1>e,上述秘密密鑰d是以1cm為除數(shù)的余數(shù)體中公開(kāi)密鑰e的逆元;余數(shù)運(yùn)算單元,其利用所取得的秘密密鑰d與素?cái)?shù)p,來(lái)算出以素?cái)?shù)p-1為除數(shù)的上述秘密密鑰d的余數(shù)dp;逆元運(yùn)算單元,其利用所算出的上述余數(shù)dp及所取得的上述素?cái)?shù)p,來(lái)算出以素?cái)?shù)p-1為除數(shù)的余數(shù)體中上述余數(shù)dp的逆元,并將所算出的逆元作為新的公開(kāi)密鑰e′,加密碼取得單元,其取得加密碼C,加密碼C是一種利用上述公開(kāi)密鑰e,由RSA加密方式對(duì)明碼M進(jìn)行RSA加密而生成的碼;RSA解密單元,其利用秘密密鑰d,對(duì)所取得的上述加密碼C進(jìn)行RSA解密,生成解密碼D;再加密單元,其利用所取得的公開(kāi)密鑰e′,對(duì)所生成的解密碼D進(jìn)行RSA加密,生成再加密碼C′;比較單元,其將所取得的加密碼C與所生成的再加密碼C′進(jìn)行比較,判斷是否一致;輸出單元,在判斷為一致的場(chǎng)合下,輸出所生成的上述解密碼D。
      12.一種由RSA署名方式來(lái)對(duì)明碼實(shí)施署名,以生成署名碼的RSA署名裝置,包含公開(kāi)密鑰取得單元,其從權(quán)利要求1中的RSA公開(kāi)密鑰生成裝置來(lái)取得公開(kāi)密鑰e′;署名生成單元,其利用秘密密鑰d,對(duì)明碼M實(shí)施RSA署名,生成署名碼S;恢復(fù)單元,其利用所取得的公開(kāi)密鑰e′,對(duì)署名碼S實(shí)施RSA署名恢復(fù),生成解密碼D;比較單元,其將明碼M與所生成的解密碼D進(jìn)行比較,判斷是否一致;輸出單元,在判斷為一致的場(chǎng)合下,輸出所生成的上述署名碼S。
      13.權(quán)利要求12中的RSA署名裝置,其中,上述署名生成單元從權(quán)利要求1的RSA公開(kāi)密鑰生成裝置取得余數(shù)dp,利用所取得的余數(shù)dp,由中國(guó)余數(shù)定理,來(lái)對(duì)上述明碼M實(shí)施RSA署名,生成署名碼S。
      14.權(quán)利要求13中的RSA解密裝置,其中,上述署名生成單元由下述運(yùn)算來(lái)生成署名碼S,即a=p-1(mod q)y1=M(mod p)y2=M(mod q)d2=d(mod q-1)x1=y(tǒng)1dp(mod p)x2=y(tǒng)2d2(mod q)S={a(x2-x1)(mod q)}p+x1。
      15.權(quán)利要求12中的RSA署名裝置,其中,上述輸出單元在判斷為不一致的場(chǎng)合下,輸出表示發(fā)生故障這一意思的消息。
      16.權(quán)利要求12中的RSA署名裝置,其中,上述署名生成單元、上述恢復(fù)單元及上述比較單元由1個(gè)集成電路來(lái)構(gòu)成。
      17.一種構(gòu)成由RSA署名方式來(lái)對(duì)明碼實(shí)施署名,以生成署名碼的RSA署名裝置的集成電路,其中,上述RSA署名裝置包含公開(kāi)密鑰取得單元,其從權(quán)利要求1中的RSA公開(kāi)密鑰生成裝置來(lái)取得公開(kāi)密鑰e′;輸出單元,其在由比較單元判斷為一致的場(chǎng)合下,輸出所生成的上述署名碼S,上述集成電路包含署名生成單元,其利用秘密密鑰d,對(duì)明碼M實(shí)施RSA署名,生成署名碼S;恢復(fù)單元,其利用所取得的公開(kāi)密鑰e′,對(duì)署名碼S實(shí)施RSA署名恢復(fù),生成解密碼D;比較單元,其將明碼M與所生成的解密碼D進(jìn)行比較,判斷是否一致。
      18.一種由RSA署名方式對(duì)明碼實(shí)施署名,以生成署名碼的RSA署名裝置,包含取得單元,其取得RSA密碼的秘密密鑰d及素?cái)?shù)p,這里,素?cái)?shù)q與素?cái)?shù)p相異,公開(kāi)密鑰e與p-1同q-1的最小公倍數(shù)1cm互素,并滿足p-1>e,上述秘密密鑰d是以1cm為除數(shù)的余數(shù)體中公開(kāi)密鑰e的逆元;余數(shù)運(yùn)算單元,其利用所取得的秘密密鑰d與素?cái)?shù)p,來(lái)算出以素?cái)?shù)p-1為除數(shù)的上述秘密密鑰d的余數(shù)dp;逆元運(yùn)算單元,其利用所算出的上述余數(shù)dp及所取得的上述素?cái)?shù)p,來(lái)算出以素?cái)?shù)p-1為除數(shù)的余數(shù)體中上述余數(shù)dp的逆元,并將所算出的逆元作為新的公開(kāi)密鑰e′,署名生成單元,其利用秘密密鑰d,對(duì)明碼M實(shí)施RSA署名,生成署名碼S;恢復(fù)單元,其利用所取得的公開(kāi)密鑰e′,對(duì)署名碼S實(shí)施RSA署名恢復(fù),生成解密碼D;比較單元,其將明碼M與所生成的解密碼D進(jìn)行比較,判斷是否一致;輸出單元,其在判斷為一致的場(chǎng)合下,輸出所生成的上述署名碼S。
      19.一種從RSA加密方式的秘密密鑰d來(lái)重新生成公開(kāi)密鑰e′的RSA公開(kāi)密鑰生成裝置中所用的RSA公開(kāi)密鑰生成方法,包括取得步驟,其取得RSA密碼的秘密密鑰d及素?cái)?shù)p,這里,素?cái)?shù)q與素?cái)?shù)p相異,公開(kāi)密鑰e與p-1同q-1的最小公倍數(shù)1cm互素,并滿足p-1>e,上述秘密密鑰d是以1cm為除數(shù)的余數(shù)體中公開(kāi)密鑰e的逆元;余數(shù)運(yùn)算步驟,其利用所取得的秘密密鑰d與素?cái)?shù)p,來(lái)算出以素?cái)?shù)p-1為除數(shù)的上述秘密密鑰d的余數(shù)dp;逆元運(yùn)算步驟,其利用所算出的上述余數(shù)dp及所取得的上述素?cái)?shù)p,來(lái)算出以素?cái)?shù)p-1為除數(shù)的余數(shù)體中上述余數(shù)dp的逆元,并將所算出的逆元作為新的公開(kāi)密鑰e′。
      20.一種從RSA加密方式的秘密密鑰d來(lái)重新生成公開(kāi)密鑰e′的RSA公開(kāi)密鑰生成裝置中所用的RSA公開(kāi)密鑰生成用計(jì)算機(jī)程序,包括取得步驟,其取得RSA密碼的秘密密鑰d及素?cái)?shù)p,這里,素?cái)?shù)q與素?cái)?shù)p相異,公開(kāi)密鑰e與p-1同q-1的最小公倍數(shù)1cm互素,并滿足p-1>e,上述秘密密鑰d是以1cm為除數(shù)的余數(shù)體中公開(kāi)密鑰e的逆元;余數(shù)運(yùn)算步驟,其利用所取得的秘密密鑰d與素?cái)?shù)p,來(lái)算出以素?cái)?shù)p-1為除數(shù)的上述秘密密鑰d的余數(shù)dp;逆元運(yùn)算步驟,其利用所算出的上述余數(shù)dp及所取得的上述素?cái)?shù)p,來(lái)算出以素?cái)?shù)p-1為除數(shù)的余數(shù)體中上述余數(shù)dp的逆元,并將所算出的逆元作為新的公開(kāi)密鑰e′。
      21.權(quán)利要求20中的計(jì)算機(jī)程序,其被記錄到計(jì)算機(jī)可讀取的記錄媒體。
      22.權(quán)利要求20中的計(jì)算機(jī)程序,其在傳送波上體現(xiàn)。
      23.一種對(duì)由RSA加密方式生成的加密碼解密的RSA解密裝置中所用的RSA解密方法,包括公開(kāi)密鑰取得步驟,其從權(quán)利要求1的RSA公開(kāi)密鑰生成裝置取得公開(kāi)密鑰e′;加密碼取得步驟,其取得加密碼C,加密碼C是利用上述公開(kāi)密鑰e,由RSA加密方式對(duì)明碼M進(jìn)行RSA加密而生成的碼;RSA解密步驟,其利用秘密密鑰d,對(duì)所取得的上述加密碼C進(jìn)行RSA解密,以生成解密碼D;再加密步驟,其利用所取得的公開(kāi)密鑰e′,對(duì)所生成的解密碼D進(jìn)行RSA加密,生成再加密碼C′;比較步驟,其將所取得的加密碼C與所生成的再加密碼c′進(jìn)行比較,判斷是否一致;輸出步驟,在判斷為一致的場(chǎng)合下,輸出所生成的上述解密碼D。
      24.一種對(duì)由RSA加密方式生成的加密碼解密的RSA解密裝置中所用的RSA解密用計(jì)算機(jī)程序,包括公開(kāi)密鑰取得步驟,其從權(quán)利要求1的RSA公開(kāi)密鑰生成裝置取得公開(kāi)密鑰e′;加密碼取得步驟,其取得加密碼C,加密碼C是利用上述公開(kāi)密鑰e,由RSA加密方式對(duì)明碼M進(jìn)行RSA加密而生成的碼;RSA解密步驟,其利用秘密密鑰d,對(duì)所取得的上述加密碼C進(jìn)行RSA解密,生成解密碼D;再加密步驟,其利用所取得的公開(kāi)密鑰e′,對(duì)所生成的解密碼D進(jìn)行RSA加密,生成再加密碼C′;比較步驟,其將所取得的加密碼C與所生成的再加密碼C′進(jìn)行比較,判斷是否一致;輸出步驟,在判斷為一致的場(chǎng)合下,輸出所生成的上述解密碼D。
      25.權(quán)利要求24中的計(jì)算機(jī)程序,其被記錄到計(jì)算機(jī)可讀取的記錄媒體。
      26.權(quán)利要求24中的計(jì)算機(jī)程序,其在傳送波上體現(xiàn)。
      27.一種由RSA署名方式來(lái)對(duì)明碼實(shí)施署名,以生成署名碼的RSA署名方法,包括公開(kāi)密鑰取得步驟,其從權(quán)利要求1中的RSA公開(kāi)密鑰生成裝置取得公開(kāi)密鑰e′;署名生成步驟,其利用秘密密鑰d,對(duì)明碼M實(shí)施RSA署名,生成署名碼S;恢復(fù)步驟,其利用所取得的公開(kāi)密鑰e′,對(duì)署名碼S實(shí)施RSA署名恢復(fù),生成解密碼D;比較步驟,其將明碼M與所生成的解密碼D進(jìn)行比較,判斷是否一致;輸出步驟,其在判斷為一致的場(chǎng)合下,輸出所生成的上述署名碼S。
      28.一種由RSA署名方式來(lái)對(duì)明碼實(shí)施署名,以生成署名碼的RSA署名用計(jì)算機(jī)程序,包括公開(kāi)密鑰取得步驟,其從權(quán)利要求1中的RSA公開(kāi)密鑰生成裝置取得公開(kāi)密鑰e′;署名生成步驟,其利用秘密密鑰d,對(duì)明碼M實(shí)施RSA署名,生成署名碼S;恢復(fù)步驟,其利用所取得的公開(kāi)密鑰e′,對(duì)署名碼S實(shí)施RSA署名恢復(fù),生成解密碼D;比較步驟,其將明碼M與所生成的解密碼D進(jìn)行比較,判斷是否一致;輸出步驟,其在判斷為一致的場(chǎng)合下,輸出所生成的上述署名碼S。
      29.權(quán)利要求28中的計(jì)算機(jī)程序,其被記錄到計(jì)算機(jī)可讀取的記錄媒體。
      30.權(quán)利要求28中的計(jì)算機(jī)程序,其在傳送波上體現(xiàn)。
      全文摘要
      本發(fā)明提供一種用于IC卡等以使故障利用攻擊不能得逞的RSA解密裝置。該RSA解密裝置不從外部取得公開(kāi)密鑰,并且可高速進(jìn)行數(shù)據(jù)驗(yàn)證用的公開(kāi)密鑰的運(yùn)算。RSA解密裝置具有計(jì)算d
      文檔編號(hào)H04L9/30GK1645791SQ20041009471
      公開(kāi)日2005年7月27日 申請(qǐng)日期2004年11月12日 優(yōu)先權(quán)日2003年11月12日
      發(fā)明者小野貴敏, 松崎棗, 布田裕一 申請(qǐng)人:松下電器產(chǎn)業(yè)株式會(huì)社
      網(wǎng)友詢問(wèn)留言 已有0條留言
      • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
      1