專利名稱:運算裝置、運算方法及記錄了該運算方法的記錄媒體的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及算出余數(shù)的運算裝置、運算方法及其記錄媒體,特別涉及使用計算機(jī)算出余數(shù)的運算裝置、運算方法及其記錄媒體。
背景技術(shù):
現(xiàn)有技術(shù)1.
下面,使用
圖15說明現(xiàn)有技術(shù)的一個例子,作為第1現(xiàn)有技術(shù),利用了美國專利5463690號公報示出的余數(shù)運算方法。這是算出用素數(shù)P除整數(shù)Z所得的余數(shù)的運算方法。這里,將素數(shù)P限定為由表達(dá)式2q-C(q是自然數(shù),C是較小的奇數(shù))所表示的數(shù)。通過限定這樣的素數(shù),只要使用移位運算和加減運算就可以算出余數(shù)。在此,余數(shù)的算出是使用以2M為基本運算單位的計算機(jī)進(jìn)行的。
例如,如圖15所示,素數(shù)13(q=4、C=3)除整數(shù)685所得的余數(shù)可以使用以23(3位)為基本運算單位的計算機(jī)進(jìn)行如下計算。
若用二進(jìn)制表示,685成為(1010101101)。
首先,將整數(shù)Z=685的最低位q=4位1401(1101)鎖存。其次,使用加法運算和移位運算算出將剩下的位1402(101010)乘C=3所得到的數(shù)據(jù)1403(1111110)。接著,使算出的數(shù)據(jù)1403與數(shù)據(jù)1404相加,算出數(shù)據(jù)1404(10001011)。
其次,鎖存數(shù)據(jù)1404的最低位q=4位1405(1011)。接著,使用加法運算和移位運算算出將剩下的位1406(1000)乘C=3所得到的數(shù)據(jù)1407(11000)。進(jìn)而,將數(shù)據(jù)1407與數(shù)據(jù)1405相加,算出數(shù)據(jù)1408(100011)。
其次,鎖存算出的數(shù)據(jù)1408的最低位q=4位1409(0011)。接著,使用加法運算和移位運算算出將剩下的位1410(10)乘C=3所得到的數(shù)據(jù)1411(110)。進(jìn)而,將算出的數(shù)據(jù)1411與數(shù)據(jù)1409相加,算出數(shù)據(jù)1412(1001)。
1412具有q=4或q=4以下的位數(shù),是用素數(shù)P除整數(shù)Z的余數(shù)。即是(1001)=9,得到用13除685的余數(shù)為9。
現(xiàn)有技術(shù)2.
其次,使用圖16說明作為第2現(xiàn)有技術(shù)的算出用整數(shù)I除整數(shù)Z的余數(shù)R的運算方法。運算方法的基本想法與第1現(xiàn)有技術(shù)相同。與第1現(xiàn)有技術(shù)相比,只是具體的數(shù)不同。下面,說明使用16位計算機(jī)的運算方法,以16位為單位進(jìn)行處理。在圖16中,1501是整數(shù)Z,1502是整數(shù)I(I=2160+ff9d),1503是整數(shù)Z的高64位數(shù)據(jù)Zh,1504是整數(shù)Z的低160位數(shù)據(jù)Zl,1509是余數(shù)R。再有,圖16的整數(shù)Z和余數(shù)R用16進(jìn)制表示,對整數(shù)I,2160由10進(jìn)制表示,ff9d由16進(jìn)制表示。
I的最高16位是1,通過從Zl1504中減去Zh1503乘ff9d得到的結(jié)果可以算出余數(shù)。具體地說,通過如下處理可以算出。
首先,算出Zh1503的最低16位aaaa乘ff9d所得到的32位數(shù)據(jù)aa680042(1505)(乘法運算處理1),其次,算出bbbb乘ff9d所得到的32位數(shù)據(jù)bb7266af(1506)(乘法運算處理2)。接著,算出cccc乘ff9d所得到的32位數(shù)據(jù)cc7ccd1c(1507)(乘法運算處理3)。
其次,算出dddd乘ff9d所得到的32位數(shù)據(jù)dd873389(1508)(乘法運算處理4)。通過上述4次乘法運算處理,得到Zh乘ff9d的乘法運算結(jié)果。
接著,從Zl(1504)中減去該結(jié)果。下面的加減運算處理也可以包含進(jìn)位、借位處理。
首先,從Zl(1504)的最低16位0000中減去0042(加減運算處理1)。其次,從1111中減去aa68(加減運算處理2),進(jìn)而,減去66af(加減運算處理3)。接著,從2222中減去bb72(加減運算處理4),進(jìn)而,減去cd1c(加減運算處理5)。其次,從3333中減去cc72(加減運算處理6),進(jìn)而,減去3389(加減運算處理7)。最后,從4444中減去dd87(加減運算處理8)。
通過上述4次乘法運算處理和8次加減運算處理,可以算出用整數(shù)I除整數(shù)Z的余數(shù)R1509。
如上述現(xiàn)有技術(shù)那樣,當(dāng)素數(shù)P是2q-C(C是較小的奇數(shù))時,因其余數(shù)可以不通過除法運算算出,故可以進(jìn)行高速計算。但是,因雖然不使用除法運算但必須利用移位運算來進(jìn)行計算,故進(jìn)行高速運算還受到限制。
此外,如第2現(xiàn)有技術(shù)明確表示的那樣,當(dāng)整數(shù)I是2q-f(在現(xiàn)有技術(shù)1中q=4、f=3,在現(xiàn)有技術(shù)2中,q=160、f=ff9d),必須有f(3或ff9d)的乘法運算步驟。此外,因f的乘法運算結(jié)果超過基本運算單位的16位,故要增加加法或減法運算的相應(yīng)處理次數(shù)。結(jié)果,代碼長度變長,同時處理次數(shù)增加,招致運算處理的滯后。
本發(fā)明是為解決所述問題而提出的,故其目的是得到一種使用計算機(jī)快速算出整數(shù)的余數(shù)的運算裝置、運算方法及其記錄媒體。
發(fā)明的公開本發(fā)明的運算裝置是算出用下式表示的數(shù)據(jù)I除BZ位的數(shù)據(jù)Z所得的余數(shù)R的運算裝置,I=ΣN=0N=NmaxANQMN]]>(M是基本運算單位的位數(shù),N是從0到Nmax的自然數(shù),A0是絕對值比由上述基本運算單位M位所表示的值小的值,從A1到ANmax-1是+1、0、或-1,ANmax是+1或-1,Q是2以上的自然數(shù)。)其特征在于,具有從(1)到(4)的部件。
(1)存儲上述數(shù)據(jù)Z的低M×Nmax位的數(shù)據(jù)Zl的數(shù)據(jù)Zl存儲區(qū);(2)存儲上述數(shù)據(jù)Z的高(BZ-M×Nmax)位的數(shù)據(jù)Zh的數(shù)據(jù)Zh存儲區(qū);(3)存儲上述數(shù)據(jù)AN的數(shù)據(jù)AN存儲區(qū);以及(4)加減運算部,根據(jù)上述數(shù)據(jù)AN的正負(fù)決定進(jìn)行加法運算還是減法運算,通過對上述數(shù)據(jù)Zl存儲區(qū)的至少一部分存儲的數(shù)據(jù)和上述數(shù)據(jù)Zh存儲區(qū)的至少一部分存儲的數(shù)據(jù)進(jìn)行加減運算,算出上述余數(shù)R。
此外,其特征在于,進(jìn)而,將上述數(shù)據(jù)Zl存儲區(qū)分成若干個用Zl(i)表示的數(shù)據(jù)Zl(i)區(qū)(i是1≤i≤Nmax的自然數(shù)),以上述基本運算單位M位為單位、從最低位開始按順序?qū)?shù)據(jù)Zl存儲起來,將上述數(shù)據(jù)Zh存儲區(qū)分成若干個用Zh(j)表示的數(shù)據(jù)Zl(j)區(qū)(j是1≤j≤(BZ/M)-Nmax的去掉小數(shù)點以后的數(shù)的自然數(shù)),以上述基本運算單位M位為單位、從最低位開始按順序?qū)?shù)據(jù)Zh存儲起來,上述加減運算部利用具有i與j的一定關(guān)系的N來決定采用加法運算還是減法運算,對上述數(shù)據(jù)Zl(i)存儲區(qū)存儲的數(shù)據(jù)和上述數(shù)據(jù)Zh(j)存儲區(qū)存儲的數(shù)據(jù)進(jìn)行加減運算。
此外,其特征在于,進(jìn)而,上述加減運算部利用具有N=i-j的關(guān)系的N,當(dāng)AN為正時,決定采用加法運算,當(dāng)AN為負(fù)時,決定采用減法運算。
此外,其特征在于,進(jìn)而,上述加減運算部對指定的N、將具有N=i-j的關(guān)系的i和j進(jìn)行組合,連續(xù)地進(jìn)行加減運算。
此外,其特征在于,進(jìn)而,上述加減運算部對指定的i、對于具有N=i-j的關(guān)系的N和j的組合,連續(xù)地進(jìn)行加減運算。
本發(fā)明的運算方法是使用運算裝置算出用下式表示的數(shù)據(jù)I除BZ位的數(shù)據(jù)Z所得的余數(shù)R的運算方法,I=ΣN=0N=NmaxANQMN]]>(M是基本運算單位的位數(shù),N是從0到Nmax的自然數(shù),A0是絕對值比由上述基本運算單位M位所表示的值小的值,從A1到ANmax-1是+1、0、或-1,ANmax是+1或-1,Q是2以上的自然數(shù)。)其特征在于,具有從(1)到(4)的步驟。
(1)存儲上述數(shù)據(jù)Z的低M×Nmax位的數(shù)據(jù)Zl的數(shù)據(jù)Zl存儲步驟;(2)存儲上述數(shù)據(jù)Z的高(BZ-M×Nmax)位的數(shù)據(jù)Zh的數(shù)據(jù)Zh存儲步驟;(3)存儲上述數(shù)據(jù)AN的數(shù)據(jù)AN存儲步驟;以及(4)加減運算步驟,根據(jù)上述數(shù)據(jù)AN的正負(fù)決定進(jìn)行加法運算還是減法運算,通過對上述數(shù)據(jù)Zl的至少一部分?jǐn)?shù)據(jù)和上述數(shù)據(jù)Zh的至少一部分?jǐn)?shù)據(jù)進(jìn)行加減運算,算出上述余數(shù)R。
此外,其特征在于,進(jìn)而,上述數(shù)據(jù)Zl存儲步驟以上述基本運算單位M位為單位、從最低位開始按順序?qū)?shù)據(jù)Zl作為數(shù)據(jù)Zl(i)(i是1≤i≤Nmax的自然數(shù))存儲起來,上述數(shù)據(jù)Zh存儲步驟以上述基本運算單位M位為單位、從最低位開始按順序?qū)?shù)據(jù)Zh作為數(shù)據(jù)Zh(j)(j是1≤j≤(BZ/M)-Nmax的去掉小數(shù)點以后的數(shù)的自然數(shù))存儲起來,上述加減運算步驟利用具有i和j的一定關(guān)系的N來決定采用加法運算還是減法運算,對上述數(shù)據(jù)Zl(i)和上述數(shù)據(jù)Zh(j)進(jìn)行加減運算。
本發(fā)明的記錄媒體是為了使計算機(jī)執(zhí)行某種運算處理而將程序記錄下來的計算機(jī)可讀取的記錄媒體,上述計算處理是使用運算裝置算出用下式表示的數(shù)據(jù)I除BZ位的數(shù)據(jù)Z所得的余數(shù)R的計算處理,I=ΣN=0N=NmaxANQMN]]>(M是基本運算單位的位數(shù),N是從0到Nmax的自然數(shù),A0是絕對值比由上述基本運算單位M位所表示的值小的值,從A1到ANmax-1是+1、0、或-1,ANmax是+1或-1,Q是2以上的自然數(shù)。)其特征在于,具有從(1)到(4)的處理。
(1)存儲上述數(shù)據(jù)Z的低M×Nmax位的數(shù)據(jù)Zl的數(shù)據(jù)Zl存儲處理;(2)存儲上述數(shù)據(jù)Z的高(BZ-M×Nmax)位的數(shù)據(jù)Zh的數(shù)據(jù)Zh存儲處理;(3)存儲上述數(shù)據(jù)AN的數(shù)據(jù)AN存儲處理;以及(4)加減運算處理,根據(jù)上述數(shù)據(jù)AN的正負(fù)決定進(jìn)行加法運算還是減法運算,通過對上述數(shù)據(jù)Zl的至少一部分?jǐn)?shù)據(jù)和上述數(shù)據(jù)Zh的至少一部分?jǐn)?shù)據(jù)進(jìn)行加減運算,算出上述余數(shù)R。
此外,其特征在于,進(jìn)而,上述數(shù)據(jù)Zl存儲處理以上述基本運算單位M位為單位、從最低位開始按順序?qū)?shù)據(jù)Zl作為數(shù)據(jù)Zl(i)(i是1≤i≤Nmax的自然數(shù))存儲起來,上述數(shù)據(jù)Zh存儲處理以上述基本運算單位M位為單位、從最低位開始按順序?qū)?shù)據(jù)Zh作為數(shù)據(jù)Zh(j)(j是1≤j≤(BZ/M)-Nmax的去掉小數(shù)點以后的數(shù)的自然數(shù))存儲起來,上述加減運算處理利用具有i和j的一定關(guān)系的N來決定采用加法運算還是減法運算,對上述數(shù)據(jù)Zl(i)和上述數(shù)據(jù)Zh(j)進(jìn)行加減運算。
本發(fā)明的運算裝置是算出用下式I=CQn±1(M是基本運算單位的位數(shù),Q是2以上的自然數(shù),n≥M,1<C<QM)表示的數(shù)據(jù)I除BZ位的數(shù)據(jù)Z所得的余數(shù)R的運算裝置,其特征在于,具有從(1)到(4)的要素。
(1)存儲上述數(shù)據(jù)Z的低n位的數(shù)據(jù)Zl的數(shù)據(jù)Zl存儲區(qū);(2)存儲上述數(shù)據(jù)Z的高BZ-n位的數(shù)據(jù)Zh的數(shù)據(jù)Zh存儲區(qū);
(3)通過用上述數(shù)據(jù)C除上述數(shù)據(jù)Zh算出商q和余數(shù)r的商算出部;以及(4)加減運算部,通過將上述余數(shù)r作為比上述數(shù)據(jù)Zl高位的基本運算單元加在上述數(shù)據(jù)Zl上進(jìn)而與上述商q進(jìn)行加減運算,算出上述余數(shù)R。
本發(fā)明的運算方法是使用運算裝置算出用下式I=CQn±1(M是基本運算單位的位數(shù),Q是2以上的自然數(shù),n≥M,1<C<QM)表示的數(shù)據(jù)I除BZ位的數(shù)據(jù)Z所得的余數(shù)R的運算方法,其特征在于,具有從(1)到(4)的步驟。
(1)存儲上述數(shù)據(jù)Z的低n位的數(shù)據(jù)Zl的數(shù)據(jù)Zl存儲步驟;(2)存儲上述數(shù)據(jù)Z的高BZ-n位的數(shù)據(jù)Zh的數(shù)據(jù)Zh存儲步驟;(3)通過用上述數(shù)據(jù)C除上述數(shù)據(jù)Zh算出商q和余數(shù)r的商算出步驟;以及(4)加減運算步驟,通過將上述余數(shù)r作為比上述數(shù)據(jù)Zl高位的基本運算單元加在上述數(shù)據(jù)Zl上進(jìn)而與上述商q進(jìn)行加減運算,算出上述余數(shù)R。
本發(fā)明的記錄媒體是記錄了使計算機(jī)執(zhí)行一種運算處理用的程序的計算機(jī)可讀取的記錄媒體,上述計算處理是使用運算裝置算出用下式I=CQn±1(M是基本運算單位的位數(shù),Q是2以上的自然數(shù),n≥M,1<C<QM)表示的數(shù)據(jù)I除BZ位的數(shù)據(jù)Z所得的余數(shù)R的計算處理,其特征在于,具有從(1)到(4)的處理。
(1)存儲上述數(shù)據(jù)Z的低n位的數(shù)據(jù)Zl的數(shù)據(jù)Zl存儲處理;(2)存儲上述數(shù)據(jù)Z的高BZ-n位的數(shù)據(jù)Zh的數(shù)據(jù)Zh存儲處理;(3)通過用上述數(shù)據(jù)C除上述數(shù)據(jù)Zh算出商q和余數(shù)r的商算出處理;以及(4)加減運算處理,通過將上述余數(shù)r作為比上述數(shù)據(jù)Zl高位的基本運算單元加在上述數(shù)據(jù)Zl上進(jìn)而與上述商q進(jìn)行加減運算,算出上述余數(shù)R。
本發(fā)明的運算裝置是算出用數(shù)據(jù)P除數(shù)據(jù)Z的余數(shù)R的運算裝置,其特征在于,具有判定數(shù)據(jù)P與指定的數(shù)據(jù)I相等的情況的數(shù)據(jù)I判定部。
此外,其特征在于,進(jìn)而,上述數(shù)據(jù)I判定部的數(shù)據(jù)I可以由下式表示。
I=ΣN=0N=NmaxANQMN]]>(M是基本運算單位的位數(shù),N是從0到Nmax的自然數(shù),A0是絕對值比由上述基本運算單位M位所表示的值小的值,從A1到ANmax-1是+1、0、或-1,ANmax是+1或-1,Q是2以上的自然數(shù)。)此外,其特征在于,進(jìn)而,上述數(shù)據(jù)I判定部的數(shù)據(jù)I可以由下式表示。
I=CQn±1(M是基本運算單位的位數(shù),Q是2以上的自然數(shù),n≥M,1<C<QM)本發(fā)明的運算方法是算出用數(shù)據(jù)P除數(shù)據(jù)Z的余數(shù)R的運算方法,其特征在于,具有判定數(shù)據(jù)P與指定的數(shù)據(jù)I相等的情況的數(shù)據(jù)I判定步驟。
此外,其特征在于,進(jìn)而,上述數(shù)據(jù)I判定步驟中的數(shù)據(jù)I可以由下式表示。
I=ΣN=0N=NmaxANQMN]]>(M是基本運算單位的位數(shù),N是從0到Nmax的自然數(shù),A0是絕對值比由上述基本運算單位M位所表示的值小的值,從A1到ANmax-1是+1、0、或-1,ANmax是+1或-1,Q是2以上的自然數(shù)。)此外,其特征在于,進(jìn)而,上述數(shù)據(jù)I判定步驟中的數(shù)據(jù)I可以由下式表示。
I=CQn±1(M是基本運算單位的位數(shù),Q是2以上的自然數(shù),n≥M,1<C<QM)本發(fā)明的記錄媒體是記錄了使計算機(jī)執(zhí)行一種運算處理用的程序的計算機(jī)可讀取的記錄媒體,其特征在于,具有判定數(shù)據(jù)P與指定的數(shù)據(jù)I相等的情況的數(shù)據(jù)I判定處理。
此外,其特征在于,進(jìn)而,上述數(shù)據(jù)I判定處理中的數(shù)據(jù)I可以由下式表示。
I=ΣN=0N=NmaxANQMN]]>(M是基本運算單位的位數(shù),N是從0到Nmax的自然數(shù),A0是絕對值比由上述基本運算單位M位所表示的值小的值,從A1到ANmax-1是+1、0、或-1,ANmax是+1或-1,Q是2以上的自然數(shù)。)此外,其特征在于,進(jìn)而,上述數(shù)據(jù)I判定處理中的數(shù)據(jù)I可以由下式表示。
I=CQn±1(M是基本運算單位的位數(shù),Q是2以上的自然數(shù),n≥M,1<C<QM)附圖的簡單說明圖1是說明實施形態(tài)1及2的算出余數(shù)的圖。
圖2是實施形態(tài)1、2、3、4和5中的計算機(jī)的概略結(jié)構(gòu)圖。
圖3是說明實施形態(tài)1和3中的算出余數(shù)方法的流程圖。
圖4是說明實施形態(tài)1中的算出余數(shù)方法的計算圖。
圖5是說明實施形態(tài)2和4中的算出余數(shù)方法的流程圖。
圖6是說明實施形態(tài)2中的算出余數(shù)方法的計算圖。
圖7是說明實施形態(tài)3和4中的算出余數(shù)的圖。
圖8是說明實施形態(tài)3中的算出余數(shù)的計算圖。
圖9是說明實施形態(tài)4中的算出余數(shù)的計算圖。
圖10是說明實施形態(tài)5中的算出余數(shù)的計算圖。
圖11是說明實施形態(tài)5中的算出余數(shù)方法的流程圖。
圖12是表示實施形態(tài)6的通信系統(tǒng)的概略結(jié)構(gòu)圖。
圖13是表示實施形態(tài)6的通信系統(tǒng)的工作的流程圖。
圖14是說明實施形態(tài)6中的數(shù)據(jù)P的判定的流程圖。
圖15是說明現(xiàn)有技術(shù)1的算出余數(shù)方法的圖。
圖16是說明現(xiàn)有技術(shù)2的算出余數(shù)方法的圖。
實施發(fā)明的最佳形態(tài)實施形態(tài)1.
圖1是說明本發(fā)明的一個實施形態(tài)的使用16位計算機(jī)算出余數(shù)的圖。在該實施形態(tài)中,算出用整數(shù)I102除整數(shù)Z101的余數(shù)R109。
在圖1中,101是用16進(jìn)制數(shù)表示240位的整數(shù)Z的數(shù),每4位數(shù)字相當(dāng)16比特。存儲器按每16比特存儲數(shù)據(jù)。102是可以由下式I=ΣN=0N=NmaxANQMN]]>(AN(N≠0)是0或±1。A0是絕對值比基本運算單位M小的整數(shù),ANmax是±1)表示的整數(shù)I,在該實施形態(tài)中,M=16,A0=-1,A1=1,A2=0,A3=1,A4=-1,A10=1,Nmax=10。I用10進(jìn)制數(shù)表示。
103是整數(shù)Z101的高80位的數(shù)據(jù)Zh,104是整數(shù)Z101的低160位的數(shù)據(jù)Zl。Zh和Zl分別從低位開始按每16位數(shù)據(jù)分割成Zl(1)~Zl(10)、Zh(1)~Zh(5)并存儲起來。這里,16位是該計算機(jī)的基本運算單位。
圖2是示出了計算機(jī)的CPU201和存儲器202的概略圖。在計算機(jī)中,如圖所示,CPU201通過運算對由地址特別指定的存儲器W(i)存儲的數(shù)據(jù)和程序進(jìn)行處理。例如,存儲器202存儲M、AN、Nmax、Zh、Zl等數(shù)據(jù),CPU201處理執(zhí)行圖3所示那樣的處理的程序。計算機(jī)內(nèi)的處理與下面的實施形態(tài)一樣。再有,存儲器202相當(dāng)存儲裝置,CPU201相當(dāng)加減運算裝置和商算出裝置。
圖3是示出了圖1記載的發(fā)明的處理順序的一個例子的流程圖。圖4是示出了按照該流程圖進(jìn)行具體的數(shù)值計算的計算圖。在圖3中,Dz是按每個基本運算單位從低位開始將整數(shù)Z101分割后的數(shù)據(jù)個數(shù),Nse是整數(shù)I102中只比N值小的數(shù)。在該實施形態(tài)中,Dz是15,Nse是4。i、j、W、n是變數(shù)。下面,利用圖3和圖4說明算出余數(shù)的處理。
再有,下面的處理在計算上與Zl-Zh×(I-2MNmax)=Zl-Zh×(-264+248+216-1)(式1)等效。此外,在下面是利用16進(jìn)制數(shù)說明計算處理的,但在計算機(jī)內(nèi)部,是用2進(jìn)制數(shù)進(jìn)行處理的。這一點與下面的實施形態(tài)一樣。
首先,按每16位將Zl104存儲在由地址指定的存儲器W(i)中(步驟3-1~3-4)。這里,之所以用整數(shù)Z的低160位來分割是因為MNmax是160。此外,假定W(i)是初始清零的。下面,使用Zl(i)、Zh(j)來說明。
其次,進(jìn)行式1的處理(步驟3-5到3-11)。
因當(dāng)N=0(步驟3-5)A0=-1,故將Zh(1)~Zh(5)的80位(105)與W(1)~W(10)中存儲的Zl(1)~Zl(5)的80位相加(N=0下面的步驟3-6~3-9)。因此,W(1)~W(10)的160位成為圖4的數(shù)據(jù)401。
再有,該處理是按每16位數(shù)據(jù)做加減運算處理來進(jìn)行的(步驟3-7)。而且,在步驟3-7中,是帶進(jìn)位和借位的運算。這一點與下面的實施形態(tài)一樣。
其次,進(jìn)行N=1(步驟3-10)的處理。因A1=1,故從W(2)~W(6)的80位中減去Zh(1)~Zh(5)的80位(106)(N=1下面的步驟3-6~3-9)。因此,W(1)~W(10)的160位成為圖4的數(shù)據(jù)402。
接著,進(jìn)行N=2(步驟3-10)的處理。因A2=0,故可以不進(jìn)行步驟3-6~3-9的處理。
其次,進(jìn)行N=3(步驟3-10)的處理。因A3=1,故從W(4)~W(8)的80位中減去地址Zh(1)~Zh(5)的80位(107)(N=3下面的步驟3-6~3-9)。因此,W(1)~W(10)的160位成為圖4的數(shù)據(jù)403。
最后,進(jìn)行N=4(步驟3-10)的處理。因A4=-1,故將Zh(1)~Zh(5)的80位(108)與W(5)~W(9)的80位相加(N=4下面的步驟3-6~3-9)。因此,W(1)~W(10)的160位成為數(shù)據(jù)404,該數(shù)值R109就是用整數(shù)I102除整數(shù)Z101的余數(shù)。
如上所述,通過按AN分別對存儲器存儲的16位數(shù)據(jù)進(jìn)行加減運算,可以算出余數(shù)。
如上所述,若按照該實施形態(tài),因只使用加法或減法運算處理就能夠算出用整數(shù)I除整數(shù)Z的余數(shù),故與必需要進(jìn)行除法運算和移位運算的運算方法相比,能夠快速算出余數(shù)。
再有,當(dāng)A0的絕對值大于1時,可以重復(fù)N=1時的上述3-6~3-9的處理。加減運算處理的順序不限于上述順序,例如,也可以在數(shù)據(jù)105~108的處理之后進(jìn)行數(shù)據(jù)103的處理。此外,位意味信息的基本單位,在本實施形態(tài)中是用2進(jìn)制進(jìn)行處理的,但對于用Q進(jìn)制進(jìn)行處理的計算機(jī),具有0~(Q-1)的Q個狀態(tài)。這時,與本實施形態(tài)一樣可以算出余數(shù)。此外,也可以將該實施形態(tài)的運算方法記錄在記錄媒體上,利用計算機(jī)進(jìn)行上述處理。這些方面與下面的實施形態(tài)一樣。
實施形態(tài)2.
圖5是表示圖1記載的運算方法的又一個處理順序的流程圖。圖6是示出了按照該流程圖進(jìn)行具體的數(shù)值計算的計算圖。因在實施形態(tài)1中對圖1進(jìn)行了說明而圖5的記號與圖3所記的相同,故分別省略其說明。下面,使用圖5、圖6說明算出余數(shù)的處理。再有,該實施形態(tài)所得的結(jié)果、即余數(shù)與實施形態(tài)1相同。
首先,按每16位將Zl104存儲在由地址指定的存儲器W(i)中(步驟5-1~5-4)。這里,之所以用整數(shù)Z的低160位來分割是因為MNmax是160,這一點與實施形態(tài)1相同。
其次,進(jìn)行式1的處理(步驟5-5到5-13)。
首先,進(jìn)行i=1(步驟5-5)的處理。因i=1,故只有N=0的情況(步驟5-9)。因A0=-1,故將Zh(1)與W(1)相加(步驟5-7)。因此,W(1)成為aaaa(601)。
其次,進(jìn)行i=2(步驟5-12)的處理。因i=2,故有N=0和1的情況(步驟5-9)。因A0=-1、A1=1,故將Zh(2)與W(2)相加,減去Zh(1)(步驟5-7)。因此,W(2)成為2222(602)。
接著,進(jìn)行i=3(步驟5-12)的處理。因i=3,故有N=0、1、2的情況(步驟5-9)。因A0=-1、A1=1、A2=0,故將Zh(3)與W(3)相加,減去Zh(2)(步驟5-7)。因此,W(3)成為3333(603)。
其次,進(jìn)行i=4(步驟5-12)的處理。因i=4,故有N=0、1、2、3的情況(步驟5-9)。因A0=-1、A1=1、A2=0、A3=1,故將Zh(4)與W(4)相加,減去Zh(3),進(jìn)而減去Zh(1)(步驟5-7)。因此,W(4)成為999a(604)。此時,產(chǎn)生借位。
其次,進(jìn)行i=5(步驟5-12)的處理。因i=5,故有N=0、1、2、3、4的情況(步驟5-9)。因A0=-1、A1=1、A2=0、A3=1、A4=-1,故將Zh(5)與W(5)相加,減去Zh(4),進(jìn)而減去Zh(2),再加上Zh(1)(步驟5-7),并減去因i=4引起的借位1(步驟5-11)。因此,W(5)成為4443(605)。
其次,進(jìn)行i=6(步驟5-12)的處理。因i=6、N到4為止(步驟5-10),故有N=0、1、2、3、4的情況。只是,因直到Zh(5)故N=0可以不處理。因A1=1、A2=0、A3=1、A4=-1,故從W(6)減去Zh(5),再減去Zh(3),并與Zh(2)相加(步驟5-7)。因此,W(6)成為5556(606)。此時,產(chǎn)生借位。
接著,進(jìn)行i=7(步驟5-12)的處理。因與i=6的情況一樣故處理N=2、3、4的情況。因A2=0、A3=1、A4=-1,故從W(7)減去Zh(4),進(jìn)而與Zh(3)相加(步驟5-7),并減去因i=6引起的借位1(步驟5-11)。因此,W(7)成為5554(607)。
其次,進(jìn)行i=8(步驟5-12)的處理。因與i=6的情況一樣故處理N=3、4的情況。因A3=1、A4=-1,故從W(8)減去Zh(5),進(jìn)而與Zh(4)相加(步驟5-7)。因此,W(8)成為6666(608)。
接著,進(jìn)行i=9(步驟5-12)的處理。因與i=6的情況一樣故處理N=4的情況。因A4=-1,故將Zh(5)與W(9)相加(步驟5-7)。因此,W(9)成為7776(609)。這時,引起進(jìn)位。
最后,進(jìn)行i=9(步驟5-12,5-13)的處理。因與i=6的情況一樣故可以不進(jìn)行步驟4-7。使W(10)加上在i=9中引起的進(jìn)位1(步驟5-12)。因此,W(10)成為999a(610)。
以上算出的W(1)~W(10)的160位就成為用整數(shù)I除整數(shù)Z的余數(shù)。
如上所述,若按照本實施形態(tài),對各地址存儲的16位數(shù)據(jù)通過加減運算處理就可以算出余數(shù),而不需要移位運算處理,所以,可以按基本運算單位的每16位來處理數(shù)據(jù),能夠快速地進(jìn)行余數(shù)的算出。
實施形態(tài)3.
圖7是說明本發(fā)明的一個實施形態(tài)、即使用16位計算機(jī)算出余數(shù)的圖。在該實施形態(tài)中,算出用整數(shù)I702除整數(shù)Z701的余數(shù)R711。
在圖7中,701用16進(jìn)制數(shù)表示256位的整數(shù)Z,各4位數(shù)相當(dāng)16比特。存儲器按每16比特存儲數(shù)據(jù)。I702與實施形態(tài)1的相同,省略其說明。
703是整數(shù)Z701的高96位的整數(shù)Zh,704是整數(shù)Z的低160位的整數(shù)Zl。Zh和Zl分別從低位開始按每16位數(shù)據(jù)分割成Zl(1)~Zl(10)、Zh(1)~Zh(5)并存儲起來。這里,16位是該計算機(jī)的基本運算單位。
圖3是示出了圖7記載的發(fā)明的處理順序的一個例子的流程圖。圖8是示出了按照該流程圖進(jìn)行具體的數(shù)值計算的計算圖。圖3因已說明故省略。在該實施形態(tài)中,Dz是16,Nse是4。下面,利用圖3和圖8說明算出余數(shù)的處理。
再有,下面的處理在計算上與Zl-Zh×(I-2MNmax)-(I-2MNmax)=Zl-Zh×(-204+248+216-1)-(-264+248+216-1)(式2)等效。
首先,按每16位將整數(shù)Zl704存儲在由地址指定的存儲器W(i)中(步驟3-1~3-4)。這里,之所以用整數(shù)Z的低160位來分割是因為MNmax是160。
其次,進(jìn)行式2的處理(步驟3-5到3-11)。
因當(dāng)N=0(步驟3-5)A0=-1,故將Zh(1)~Zh(6)的96位與W(1)~W(10)中存儲的Zl(1)~Zl(6)的96位(705)相加(N=0下面的步驟3-6~3-9)。因此,W(1)~W(10)的160位成為圖8的數(shù)據(jù)801。
其次,進(jìn)行N=1(步驟3-10)的處理。因A1=1,故從W(2)~W(7)的96位中減去Zh(1)~Zh(6)的96位(706)(N=1下面的步驟3-6~3-9)。因此,W(1)~W(10)的160位成為數(shù)據(jù)802。
接著,進(jìn)行N=2(步驟3-10)的處理。因A2=0,故可以不進(jìn)行步驟3-6~3-9的處理。
其次,進(jìn)行N=3(步驟3-10)的處理。因A3=1,故從W(4)~W(8)的96位中減去地址Zh(1)~Zh(6)的96位(707)(N=3下面的步驟3-6~3-9)。因此,W(1)~W(10)的160位成為數(shù)據(jù)803。
接著,進(jìn)行N=4(步驟3-10)的處理。因A4=-1,故將Zh(1)~Zh(6)的96位(708)與W(5)~W(10)的96位相加(N=4下面的步驟3-6~3-9)。因此,W(1)~W(11)的176位成為圖4的數(shù)據(jù)804。因該數(shù)比整數(shù)I702大,故將804看作整數(shù)Z,重復(fù)上述處理。在該實施形態(tài)中,因數(shù)據(jù)804的Zh是1,故從804中減去(-264+248+216-1)即可。該數(shù)值R711就是用整數(shù)I702除整數(shù)Z701的余數(shù)。
如上所述,通過按AN分別對存儲器存儲的16位數(shù)據(jù)進(jìn)行加減運算,可以在存儲器上算出余數(shù)。
如上所述,若按照該實施形態(tài),因通過對各地址存儲的16位數(shù)據(jù)進(jìn)行加減運算處理就能夠算出余數(shù)而不需要進(jìn)行移位運算處理,故能夠按基本運算單位的每16位處理數(shù)據(jù),能夠快速算出余數(shù)。
再有,當(dāng)A0的絕對值大于1時,可以重復(fù)N=1時的處理。當(dāng)象本實施形態(tài)那樣不能通過1次進(jìn)行一系列的處理來算出余數(shù)時,可以反復(fù)進(jìn)行同樣的處理。這些方面與實施形態(tài)4一樣。
實施形態(tài)4.
圖5是表示圖7記載的運算方法的又一個處理順序的流程圖。圖9是示出了按照該流程圖進(jìn)行具體的數(shù)值計算的計算圖。因在實施形態(tài)2中對圖5進(jìn)行了說明,在實施形態(tài)3中對圖7進(jìn)行了說明,故分別省略其說明。只是,在該實施形態(tài)中,Dz是16,Nse是4。下面,使用圖5、圖9說明算出余數(shù)的處理。再有,該實施形態(tài)所得的結(jié)果、即余數(shù)與實施形態(tài)3相同。
首先,按每16位將Zl704存儲在由地址指定的存儲器W(i)中(步驟5-1~5-4)。這里,之所以用整數(shù)Z的低160位來分割是因為MNmax是160,這一點與實施形態(tài)3相同。
其次,進(jìn)行式2的處理(步驟5-5到5-13)。
首先,進(jìn)行i=1(步驟5-5)的處理。因i=1,故只有N=0的情況(步驟5-9)。因A0=-1,故將Zh(1)與W(1)相加(步驟5-7)。因此,W(1)成為aaaa(901)。
其次,進(jìn)行i=2(步驟5-12)的處理。因i=2,故有N=0和1的情況(步驟5-9)。因A0=-1、A1=1,故將Zh(2)與W(2)相加,減去Zh(1)(步驟5-7)。因此,W(2)成為2222(902)。
接著,進(jìn)行i=3(步驟5-12)的處理。因i=3,故有N=0、1、2的情況(步驟5-9)。因A0=-1、A1=1、A2=0,故將Zh(3)與W(3)相加,減去Zh(2)(步驟5-7)。因此,W(3)成為3333(903)。
其次,進(jìn)行i=4(步驟5-12)的處理。因i=4,故有N=0、1、2、3的情況(步驟5-9)。因A0=-1、A1=1、A2=0、A3=1,故將Zh(4)與W(4)相加,減去Zh(3),進(jìn)而減去Zh(1)(步驟5-7)。因此,W(4)成為999a(904)。此時,引起借位。
其次,進(jìn)行i=5(步驟5-12)的處理。因i=5,故有N=0、1、2、3、4的情況(步驟5-9)。因A0=-1、A1=1、A2=0、A3=1、A4=-1,故將Zh(5)與W(5)相加,減去Zh(4),進(jìn)而減去Zh(2),再加上Zh(1)(步驟5-7),并減去在i=4中引起的借位1(步驟5-11)。因此,W(5)成為4443(905)。
其次,進(jìn)行i=6(步驟5-12)的處理。雖然i=6、但N到4為止(步驟5-10),故有N=0、1、2、3、4的情況。因A0=-1、A1=1、A2=0、A3=1、A4=-1,故將Zh(6)與W(6)相加,并減去Zh(5),再減去Zh(3),并與Zh(2)相加(步驟5-7)。因此,W(6)成為5555(906)。
接著,進(jìn)行i=7(步驟5-12)的處理,雖然i=7,但N到4為止(步驟5-10)N是0、1、2、3、4的情況。進(jìn)而,因Zh到Zh(6)為止,故N=0可以不處理。因此,處理N是1、2、3、4的情況,因A1=1、A2=0、A3=1、A4=-1,故從W(7)減去Zh(6),再減去Zh(4),進(jìn)而與Zh(3)相加(步驟5-7)。因此,W(7)成為5556(907)。這時,引起借位。
其次,進(jìn)行i=8(步驟5-12)的處理。因與i=7的情況一樣故處理N是2、3、4的情況。因A2=0、A3=1、A4=-1,故從W(8)減去Zh(5),進(jìn)而與Zh(4)相加(步驟5-7),再減去在i=7中引起的借位1(步驟5-11)。因此,W(8)成為6665(908)。接著,進(jìn)行i=9(步驟5-12)的處理。因與i=6的情況一樣,故處理N是3、4的情況。因A3=1、A4=-1,故從W(9)減去Zh(6),再與Zh(5)相加(步驟5-7)。因此,W(9)成為7777(909)。
最后,進(jìn)行i=10(步驟5-12,5-13)的處理。因與i=6的情況一樣故進(jìn)行N是4的處理。因A4=-1,故將Zh(6)與W(9)相加(步驟5-7)。因此,W(10)成為9998(910)。這時,引起進(jìn)位。
以上算出的W(1)~W(11)的176位709因比整數(shù)I102還大,故將數(shù)據(jù)709看作整數(shù)Z,重復(fù)上述處理。在該實施形態(tài)中,因Zh是1,故從數(shù)據(jù)709中減去(-264+248+216-1)即可。該數(shù)值R711就是用整數(shù)I702除整數(shù)Z701的余數(shù)。
如上所述,若按照本實施形態(tài),對各地址存儲的16位數(shù)據(jù)通過加減運算處理就可以算出余數(shù),而不需要移位運算處理,所以,可以按基本運算單位的每16位來處理數(shù)據(jù),能夠快速地進(jìn)行余數(shù)的算出。
實施形態(tài)5.
圖10是說明本發(fā)明的一個實施形態(tài)的使用16位計算機(jī)算出余數(shù)的圖。在該實施形態(tài)中,算出用整數(shù)I1002除整數(shù)Z1001的余數(shù)R1008。
在圖10中,1001是用16進(jìn)制數(shù)表示224位的整數(shù)Z,用空格隔開的各數(shù)字相當(dāng)16位。存儲器按每一個這樣的16位去存儲數(shù)據(jù)。1002是可以用下式I=C·Qn+f(1<C<QM、n≥M、1≤f<QM)表示的整數(shù)I,在該實施形態(tài)中,用10進(jìn)制數(shù)和16進(jìn)制數(shù)表示,C=ff9c(16進(jìn)制數(shù)),Q=2、n=144(10進(jìn)制數(shù)),f=1(16進(jìn)制數(shù)),M=16(10進(jìn)制數(shù))。1003是整數(shù)Z1001的高80位的數(shù)據(jù)Zh,1004是整數(shù)Z1001的低144位的數(shù)據(jù)Zl。
Zh和Zl分別從低位開始按每16位數(shù)據(jù)分割成Zl(1)~Zl(10)、Zh(1)~Zh(5)并存儲起來。這里,16位是該計算機(jī)的基本運算單位。
I的最高16位是ff9c,可以象下面那樣算出余數(shù)。
首先,用ff9c除Zh1003,算出商q1005和余數(shù)r1006。其次,將余數(shù)r1006作為高位比特Zl相加,得到數(shù)據(jù)1007。從該數(shù)據(jù)1007中減去商q1005。這樣,就能夠算出余數(shù)R1008。
圖11是被測場算出余數(shù)的具體處理順序的流程圖。圖中,q(i)是從最低位開始把商q1005按每16位分割后的數(shù)據(jù),imax是q(i)中i的最大值。在本實施形態(tài)中,C=ff9c,imax=4。下面使用該圖說明具體的處理順序。
開始,用C=ff9c除Zh1003,算出商q1005和余數(shù)r1006(步驟1101)。即用ff9c除Zh1003的最高32位dddd cccc,算出商和余數(shù)(除法運算處理1)。其次,因除法運算處理1的余數(shù)是991c,故用ff9c除991cbbbb,算出商和余數(shù)(除法運算處理2)。接著,因除法運算處理2的余數(shù)是a21b,故用ff9c除a21b aaaa,算出商和余數(shù)(除法運算處理3)。進(jìn)而,因除法運算處理3的余數(shù)是1636,故用ff9c除1636 9999,算出商和余數(shù)(除法運算處理4)。通過上述4次除法運算處理,得到用ff9c除Zh的商q1005和余數(shù)r1006。
其次,將該余數(shù)作為高位比特,與Zl(1004)相加,得到數(shù)據(jù)1007(步驟11-2)。
接著,從數(shù)據(jù)1007中減去ff9c除Zh的商q1005。再有,以下的運算也包含借位、進(jìn)位處理。首先,從Zl(1)=0000中減去q(1)=163f(i=1下面的步驟11-5)(加減運算處理1)。其次,從Zl(2)=1111中減去q(2)=a25b(i=2下面的步驟11-5)(加減運算處理2)。接著,從Zl(3)=2222中減去q(3)=9958(i=3下面的步驟11-5)(加減運算處理3)。從Zl(4)=3333中減去q(4)=de34(i=4下面的步驟11-5)(加減運算處理4)。在該4次加減運算處理后(步驟11-6),輸出余數(shù)(步驟11-7)。
以上,通過4次除法運算處理和4次加減運算處理,可以算出用整數(shù)I1002除整數(shù)Z1001的余數(shù)R1008。
如上所述,若按照本發(fā)明,因整數(shù)I1002是可以用I=ff9c·2144+1表示的整數(shù),故不必象第1、第2現(xiàn)有技術(shù)那樣,需要f(在現(xiàn)有技術(shù)1中為1,在現(xiàn)有技術(shù)2中為ff9d)的乘法運算步驟,此外,因其結(jié)果、即商q1005的各16位數(shù)據(jù)沒有超過16位,只需要最低限度的加減運算處理,命令數(shù)少,可以得到能使用短代碼長度的算出余數(shù)方法。此外,命令數(shù)少的結(jié)果,可以使運算速度相應(yīng)提高。
再有,在本實施形態(tài)中,說明了f=1的情況,當(dāng)f≠1時,只要將f乘商q1005的結(jié)果和對數(shù)據(jù)1007進(jìn)行加減運算即可。這時,對于商的各16位q(i)與f相乘的結(jié)果比16位小的情況,與f=1的情況一樣,可以實現(xiàn)最低限度的加減運算處理次數(shù)。
實施形態(tài)6.
圖12是本發(fā)明的一實施形態(tài)、即通信系統(tǒng)的概略構(gòu)成圖。圖中,1201是通信者A的加密/解密裝置,1202是通信者A的秘密密鑰保持裝置,1203是是通信者B的加密/解密裝置,1204是通信者B的秘密密鑰保持裝置,1205是公開密鑰保持裝置,1206是開放的網(wǎng)絡(luò)。本系統(tǒng)使用一種叫做所謂ElGamal密碼的公開密鑰密碼方式,通過對數(shù)據(jù)進(jìn)行加密/解密,保持了通信數(shù)據(jù)的秘密。公開密鑰密碼方式是使用2個不同的密鑰進(jìn)行加密和解密。發(fā)信者使用已公開的公開密鑰對發(fā)送的數(shù)據(jù)加密,收信者使用作為個人秘密的秘密密鑰對接收數(shù)據(jù)進(jìn)行解密。當(dāng)然,從公開密鑰得到秘密密鑰是不現(xiàn)實的。
ElGamal密碼是以離散對數(shù)問題難以解決這一點作為基礎(chǔ)的公開密鑰密碼方式。離散對數(shù)問題是,p是素數(shù),g是Glois域的原始元,a是用p除的余數(shù)不為0的自然數(shù),當(dāng)給出p、g、a時,求滿足下式a≡gxmod p (式3)的x。當(dāng)p大時,即使用計算機(jī),用有限的時間求解也很困難。
圖13是本實施形態(tài)的數(shù)據(jù)加密/解密時的流程圖。使用圖13說明對發(fā)送數(shù)據(jù)進(jìn)行加密/解密的工作。在本實施形態(tài)中,將說明發(fā)信者秘密發(fā)送明碼電文數(shù)據(jù)M的情況。
收信者保持秘密密鑰x(步驟13-1),并公開p、g、y作為自己的公開密鑰(步驟13-2)。發(fā)信著生成適當(dāng)?shù)碾S機(jī)數(shù)(步驟13-3),并發(fā)送Mykmodp和gkmodp(步驟13-4)。收信者使用已接收的gkmodp和自己的秘密密鑰x,求出(gk)xmodp(步驟13-5)。因(gk)x≡ykmodp,由此,計算Myk/(gk)xmodp(步驟13-6)。由此,可對接受數(shù)據(jù)進(jìn)行解密(步驟13-7)。這時,x對解密是必需的,而知道它的只有收信者,故能夠保守數(shù)據(jù)的秘密。
在本實施形態(tài)中,為了加密/解密數(shù)據(jù),必需進(jìn)行素數(shù)p的余數(shù)的計算、即反復(fù)進(jìn)行modp。因此,快速進(jìn)行素數(shù)p的余數(shù)的計算對加密/解密處理是必要的,再有,對加強密碼的保密性能也很重要。因此,這時,選擇這樣一種素數(shù)p來作為素數(shù)p,它能夠與計算機(jī)的運算單位QM相一致,并能夠表示成下式I=ΣN=0N=NmaxANQMN]]>(AN(N≠0)是0或±1。A0是絕對值比基本運算單位M小的整數(shù),ANmax是±1,Q是2以上的自然數(shù))因此,如實施形態(tài)1~4說明過的那樣,能夠高速地進(jìn)行余數(shù)的算出,能夠提高與伴隨高速化的處理時間相對應(yīng)的解密的難度。
此外,通過選擇與計算機(jī)的運算單位QM相一致的I=CQn±1(1<C<QM,n≥M,Q是2以上的自然數(shù))作為素數(shù)p,就可以象實施形態(tài)5說明過的那樣,能夠得到這樣一種數(shù)據(jù)變換方法,該方法命令數(shù)少,代碼長度短,運算速度相應(yīng)提高。
進(jìn)而,當(dāng)用數(shù)據(jù)P去除并算出所得的余數(shù)時,如圖14那樣,判定數(shù)據(jù)P是否等于上述兩式中的數(shù)據(jù)I,若相等則可以采用以該數(shù)據(jù)I為前提的本發(fā)明的余數(shù)的高速算出方法進(jìn)行計算,若不相等則可以采用其它通用的算出余數(shù)方法進(jìn)行計算。判定中可以事先將用上述兩式表示的數(shù)據(jù)I存儲起來通過與數(shù)據(jù)P比較來進(jìn)行。這樣一來,該實施形態(tài)具有這樣的效果,即,在以特定的數(shù)據(jù)I為前提的裝置之間,可以有選擇地進(jìn)行高速加密/解密,而在其它裝置之間,可以進(jìn)行通用的加密解密。
產(chǎn)業(yè)上利用的可能性由于利用了本發(fā)明的運算裝置、運算方法和記錄在記錄媒體上的程序,計算機(jī)執(zhí)行的運算處理只通過加減運算就能夠算出余數(shù),所以,不需要移位運算、除法運算或乘法運算,能夠提高運算速度。此外,代碼長度也壓縮了。
進(jìn)而,由于判定被除數(shù)的數(shù)據(jù)是否是適合應(yīng)用本發(fā)明的高速運算的值,所以,能夠有選擇性地進(jìn)行高速運算,通過與通用的運算相結(jié)合,能夠選擇出與被除數(shù)的數(shù)據(jù)相一致的運算方法。
權(quán)利要求
1.一種運算裝置,具有存儲數(shù)據(jù)的存儲器和根據(jù)存儲于存儲器的數(shù)據(jù)進(jìn)行加減運算的處理器,并以上述處理器算出用下式I=ΣN=0N=NmaxANQMN]]>表示的數(shù)據(jù)I除Bz位的數(shù)據(jù)Z所得的余數(shù)R,其中M是基本運算單位的位數(shù),N是從0到Nmax的自然數(shù),A0是絕對值比由上述基本運算單位M位所表示的值小的值,從A1到ANmax-1是+1、0、或-1,ANmax是+1或-1,Q是2以上的自然數(shù),其特征在于上述存儲器具有存儲上述數(shù)據(jù)Z的低M×Nmax位的數(shù)據(jù)Zl的數(shù)據(jù)Zl存儲區(qū);存儲上述數(shù)據(jù)Z的高(BZ-M×Nmax)位的數(shù)據(jù)Zh的數(shù)據(jù)Zh存儲區(qū);和存儲上述數(shù)據(jù)AN的數(shù)據(jù)AN存儲區(qū);上述處理器根據(jù)上述數(shù)據(jù)AN的正負(fù)決定進(jìn)行加法運算還是減法運算,通過對上述數(shù)據(jù)Zl存儲區(qū)的至少一部分存儲的數(shù)據(jù)和上述數(shù)據(jù)Zh存儲區(qū)的至少一部分存儲的數(shù)據(jù)進(jìn)行加減運算,算出上述余數(shù)R。
2.權(quán)利要求1記載的運算裝置,其特征在于將上述數(shù)據(jù)Zl存儲區(qū)分成若干個用Zl(i)表示的數(shù)據(jù)Zl(i)區(qū),以上述基本運算單位M位為單位、從最低位開始按順序?qū)?shù)據(jù)Z1存儲起來,其中i是1≤i≤Nmax的自然數(shù),將上述數(shù)據(jù)Zh存儲區(qū)分成若干個用Zh(j)表示的數(shù)據(jù)Zl(j)區(qū),以上述基本運算單位M位為單位、從最低位開始按順序?qū)?shù)據(jù)Zh存儲起來,其中j是1≤j≤(BZ/M)-Nmax的去掉小數(shù)點以后的數(shù)的自然數(shù),上述處理器利用具有i和j的一定關(guān)系的N來決定采用加法運算還是減法運算,對上述數(shù)據(jù)Zl(i)存儲區(qū)存儲的數(shù)據(jù)和上述數(shù)據(jù)Zh(j)存儲區(qū)存儲的數(shù)據(jù)進(jìn)行加減運算。
3.如權(quán)利要求2記載的運算裝置,其特征在于上述處理器利用具有N=i-j的關(guān)系的N,當(dāng)AN為正時,決定采用加法運算,當(dāng)AN為負(fù)時,決定采用減法運算。
4.如權(quán)利要求3記載的運算裝置,其特征在于上述處理器對指定的N、將具有N=i-j的關(guān)系的i和j進(jìn)行組合,連續(xù)地進(jìn)行加減運算。
5.如權(quán)利要求3記載的運算裝置,其特征在于上述加減運算部對指定的i、對于具有N=i-j的關(guān)系的N和j的組合連續(xù)地進(jìn)行加減運算。
6.一種運算方法,使用具有存儲數(shù)據(jù)的存儲器和根據(jù)存儲于存儲器的數(shù)據(jù)進(jìn)行加減運算的處理器的運算裝置算出用下式I=ΣN=0N=NmaxANQMN]]>表示的數(shù)據(jù)I除Bz位的數(shù)據(jù)Z所得的余數(shù)R的運算方法,其中M是基本運算單位的位數(shù),N是從0到Nmax的自然數(shù),A0是絕對值比由上述基本運算單位M位所表示的值小的值,從A1到ANmax-1是+1、0、或-1,ANmax是+1或-1,Q是2以上的自然數(shù),其特征在于包括存儲上述數(shù)據(jù)Z的低M×Nmax位的數(shù)據(jù)Zl于上述存儲器中的數(shù)據(jù)Zl存儲步驟;存儲上述數(shù)據(jù)Z的高(BZ-M×Nmax)位的數(shù)據(jù)Zh于上述存儲器中的數(shù)據(jù)Zh存儲步驟;存儲上述數(shù)據(jù)AN于上述存儲器中的數(shù)據(jù)AN存儲步驟;以及加減運算步驟,以上述處理器根據(jù)上述數(shù)據(jù)AN的正負(fù)決定進(jìn)行加法運算還是減法運算,通過對上述數(shù)據(jù)Zl的至少一部分?jǐn)?shù)據(jù)和上述數(shù)據(jù)Zh的至少一部分?jǐn)?shù)據(jù)進(jìn)行加減運算,算出上述余數(shù)R。
7.如權(quán)利要求6記載的運算方法,其特征在于上述數(shù)據(jù)Zl存儲步驟以上述基本運算單位M位為單位、從最低位開始按順序?qū)?shù)據(jù)Zl作為數(shù)據(jù)Zl(i)存儲起來,其中i是1≤i≤Nmax的自然數(shù)上述數(shù)據(jù)Zh存儲步驟以上述基本運算單位M位為單位、從最低位開始按順序?qū)?shù)據(jù)Zh作為數(shù)據(jù)Zh(j)存儲起來,其中j是1≤j≤(BZ/M)-Nmax的去掉小數(shù)點以后的數(shù)的自然數(shù),上述加減運算步驟利用具有i和j的一定關(guān)系的N來決定采用加法運算還是減法運算,對上述數(shù)據(jù)Zl(i)和上述數(shù)據(jù)Zh(j)進(jìn)行加減運算。
8.一種運算方法,使用具有存儲數(shù)據(jù)的存儲器和根據(jù)存儲于存儲器的數(shù)據(jù)進(jìn)行加減運算的處理器的運算裝置算出用下式I=CQn±1表示的數(shù)據(jù)I除Bz位的數(shù)據(jù)Z所得的余數(shù)R的運算方法,其中M是基本運算單位的位數(shù),Q是2以上的自然數(shù),n≥M,1≤C≥QM,其特征在于包括存儲上述數(shù)據(jù)Z的低n位的數(shù)據(jù)Zl于上述存儲器中的數(shù)據(jù)Zl存儲步驟;存儲上述數(shù)據(jù)Z的高BZ-n位的數(shù)據(jù)Zh于上述存儲器中的數(shù)據(jù)Zh存儲步驟;上述處理器通過用上述數(shù)據(jù)C除上述數(shù)據(jù)Zh算出商q和余數(shù)r的商算出步驟;以及加減運算步驟,上述處理器通過將上述余數(shù)r作為比上述數(shù)據(jù)Zl高位的基本運算單元加在上述數(shù)據(jù)Zl上進(jìn)而與上述商q進(jìn)行加減運算,算出上述余數(shù)R。
9.一種運算裝置,具有存儲數(shù)據(jù)的存儲器和根據(jù)存儲于存儲器的數(shù)據(jù)進(jìn)行加減運算的處理器,算出用數(shù)據(jù)P除數(shù)據(jù)Z的余數(shù)R,其特征在于上述處理器判定數(shù)據(jù)P與用下式指定的數(shù)據(jù)I相等,I=ΣN=0N=NmaxANQMN]]>其中M是基本運算單位的位數(shù),N是從0到Nmax的自然數(shù),A0是絕對值比由上述基本運算單位M位所表示的值小的值,從A1到ANmax-1是+1、0、或-1,ANmax是+1或-1,Q是2以上的自然數(shù)。
10.一種運算裝置,具有存儲數(shù)據(jù)的存儲器和根據(jù)存儲于存儲器的數(shù)據(jù)進(jìn)行加減運算的處理器,算出用數(shù)據(jù)P除數(shù)據(jù)Z的余數(shù)R,其特征在于上述處理器判定數(shù)據(jù)P與用下式指定的數(shù)據(jù)I相等,I=CQn±1其中M是基本運算單位的位數(shù),Q是2以上的自然數(shù),n≥M,1<C<QM。
11.一種運算方法,使用具有存儲數(shù)據(jù)的存儲器和根據(jù)存儲于存儲器的數(shù)據(jù)進(jìn)行加減運算的處理器的運算裝置,算出用數(shù)據(jù)P除數(shù)據(jù)Z的余數(shù)R,其特征在于上述處理器,具有判定數(shù)據(jù)P與以下數(shù)據(jù)I相等的情況的數(shù)據(jù)I判定步驟,I=ΣN=0N=NmaxANQMN]]>其中M是基本運算單位的位數(shù),N是從0到Nmax的自然數(shù),A0是絕對值比由上述基本運算單位M位所表示的值小的值,從A1到ANmax-1是+1、0、或-1,ANmax是+1或-1,Q是2以上的自然數(shù)。
12.一種運算方法,使用具有存儲數(shù)據(jù)的存儲器和根據(jù)存儲于存儲器的數(shù)據(jù)進(jìn)行加減運算的處理器的運算裝置,算出用數(shù)據(jù)P除數(shù)據(jù)Z的余數(shù)R,其特征在于上述處理器,具有判定數(shù)據(jù)P與以下數(shù)據(jù)I相等的情況的數(shù)據(jù)I判定步驟,I=CQn±1其中M是基本運算單位的位數(shù),Q是2以上的自然數(shù),n≥M,1<C<QM。
全文摘要
用整數(shù)I102除整數(shù)Z101,算出余數(shù)R109。整數(shù)I102由計算機(jī)的基本運算單位的冪的多項式構(gòu)成。這樣,通過根據(jù)計算機(jī)的基本運算單位來限定被除數(shù)的整數(shù)I,可以不需要進(jìn)行過去運算方法中使用的移位運算,只使用加法運算和減法運算處理就可以算出余數(shù)。因此,能夠壓縮代碼長度,快速地算出整數(shù)的余數(shù)。
文檔編號G06F7/72GK1598758SQ20041008513
公開日2005年3月23日 申請日期1999年1月21日 優(yōu)先權(quán)日1998年1月27日
發(fā)明者松井充 申請人:三菱電機(jī)株式會社