CN1070298A - 模运算的装置和方法 - Google Patents

模运算的装置和方法 Download PDF

Info

Publication number
CN1070298A
CN1070298A CN92104800A CN92104800A CN1070298A CN 1070298 A CN1070298 A CN 1070298A CN 92104800 A CN92104800 A CN 92104800A CN 92104800 A CN92104800 A CN 92104800A CN 1070298 A CN1070298 A CN 1070298A
Authority
CN
China
Prior art keywords
group
memory cell
stored
ram2
ram
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN92104800A
Other languages
English (en)
Inventor
大卫·纳卡什
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Technicolor SA
Technicolor USA Inc
Original Assignee
Thomson Consumer Electronics SA
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Thomson Consumer Electronics SA filed Critical Thomson Consumer Electronics SA
Publication of CN1070298A publication Critical patent/CN1070298A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/60Methods or arrangements for performing computations using a digital non-denominational number representation, i.e. number representation without radix; Computing devices using combinations of denominational and non-denominational quantity representations, e.g. using difunction pulse trains, STEELE computers, phase computers
    • G06F7/72Methods or arrangements for performing computations using a digital non-denominational number representation, i.e. number representation without radix; Computing devices using combinations of denominational and non-denominational quantity representations, e.g. using difunction pulse trains, STEELE computers, phase computers using residue arithmetic
    • G06F7/728Methods or arrangements for performing computations using a digital non-denominational number representation, i.e. number representation without radix; Computing devices using combinations of denominational and non-denominational quantity representations, e.g. using difunction pulse trains, STEELE computers, phase computers using residue arithmetic using Montgomery reduction

Landscapes

  • Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Computational Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • General Engineering & Computer Science (AREA)
  • Error Detection And Correction (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Complex Calculations (AREA)

Abstract

具有减少的RAM空间的快速模计算。现代密 码通信常需要模运算。在1990RAIRO-OR,(3)上 由D.Naccache,H.M′Silti发表了“一种新模计算 算法”。但小型密码装置中,不能使用大量的RAM 存贮器。特殊执行过程可有效运算模函数。由此计 算R=Y mod X只需大约3倍于X尺寸的 RAM。如果X和常数K存贮在可检索装置上如 ROM,则微控制器或微处理器中也无需除法。

Description

本发明涉及模运算(modulo    computation)的装置和方法。
D.Naccache,H.Mstilti在《RAIRO-OR》1990年(3)上以“一种新的模运算法”为题发表了一种计算Y以X为模的余数(=modulo(Y.X);简写为Y mod X)的新方法,在这里2n-1≤X≤2n-1且0≤Y≤2L-1,值n表示X的毕特(bits)长度而L代表计算所接受的Y的最大尺寸。这个算法下面称作Prince Leonard算法,简称为PLA。
本发明的一个目的是披露一种具有被减少的存储器尺寸的快速模运算方法。这个目的是通过在权利要求3中披露的本发明的方法来达到的。
本发明的A*B对模X的余数的模运算方法一般包括下列步骤:
-分别在第一组存贮单元RAM1及第二组RAM2存贮单元中存入所说数A和B;
-进行破坏相乘A×B=C;
-将存储在所说第二组RAM2单元的数据转移到所说第一组RAM1单元;
-将所说第二组RAM2单元归零;
-将存储在第三组RAM3单元的数据向右移位三个位置,这个数据用Ci代表其中i是二进制数字上最小有效二进制数位(LSB)为i=0,同时将这三个最右位二进制数字Cn-1,Cn及Cn+1引入所说第三组RAM3单元的最左位(即最小有效二进制数位LSB′s);
-用存储在所说第三组RAM3单元的数据破坏相乘第二常数K=2zh/X,这个常数在一可检索装置(retrievable medium)中以n+1毕特长度被存储;
-将以Dn+1′表示的存储在所说第二组RAM2单元中的最右位二进制数字推到所说第三组RAM3单元中的最左位;
-将所说第二组RAM2单元归零;
-用存储在所说第三组RAM3单元中的数据部分地乘以第一常数X,这个常数在所说可检索装置中以n毕特长度来存储。由此,在所说第二组RAM2单元中只获得n+2    LSB(最小有效二进制数位)。
-从RAM1中减去RAM2(比方说F=RAM1-RAM2);
-当存储在所说第一组RAM1单元中的数字大于所说第一常数X时,从存储在所说第一组RAM1单元中减去所说第一常数X。
由此,存储在包括所说三组单元和/或存储在所说可检索装置的RAM矩阵(RAM    matrix)里的数字和/或数据可以以逆向格式(inverse    format)(MSB(最大有效二进制数位)……LSB)存贮,所说第一、二和/或第三组单元的次序可以被变更,和/或取代各所说单元组归零,可以连续地(冲掉)重写各组。
本发明方法的具有优点的附加实施例来自各个细分权利要求(subclaims)。
本发明的另一个目的是披露一种使用本发明方法的装置。这个目的是通过在权利要求1中所披露的本发明装置所达到的。
用于A*B    Mod    X模运算的本发明装置,在这里A,B及第一常数X是n字节数(byte    numbers二进位组),这个装置一般包括:
-一可检索装置,如RAM,ROM(只读存贮器)或E2PROM记录有所说第一常数X及第二常数K=22n/X;
-包括第一组RAM1单元,第二组RAM2单元及第三组RAM3单元的具有3*(int(n/8)+1)尺寸字节的RAM矩阵;
-一种计算装置,它允许存储在所说RAM矩阵里的数据的多位相减,多位移位运算,多位数据转递进或出所说可检索装置及所说RAM矩阵,多位完全的且破坏的相乘。
本发明装置的具有优势的附加实施例来自各个细分权利要求。
在付费电视系统中比如在视频密码付费电视系统(videocrypt    pay    TV    sistem)及其它现代密码通信中的编码通常需要模运算。在不能使用大容量RAM存储器的小型密码装置(如灵敏卡(smart-cards))中,特殊的PLA执行过程允许这样的模函数的有效计算。
由此为了计算R=Y    mod    X仅需要约为X大小三倍的RAM空间。
如果X和常数K存储在可检索装置如ROM中,从微控制器或微处理器中也不需要除去。
本发明的最佳实施例将参照附图来描述,其中:
图1示出了带有计算电路(compntation    circuit)的灵敏长。
图1中描述了灵敏卡10,它包括微处理器电路11。这个微处理器电路与RAM存储器电路12,ROM存储器13及I/O接口电路14。使用各电路线可以交换数据和地址数。在微处理器电路11里进行PLA过程的程序存储在ROM    13中。
当第一次执行这个过程时,为了用其它小于2L-1的Y值进一步再调入(recall)PLA,计算常数K(依赖于X和L)并将其存储在RAM 12中。
RAM和/或ROM 13和/或I/O接口电路14可以被包括在微处理器电路11中。ROM 13也可以是一E2PROM。
K的计算需要一次除法,但以后转移到需要二次乘法,二次右移位及至少三次减法的过程,假定在这个过程X保持不变。
最普通的现有计算R=YmodX的设计(scheme)是
R=Y-X*int(Y/X)
或是以程序设计语言C-like符号来表示:
Unsigned    common(Y,X),(program    common)
Unsigned    Y,X;
return(Y-X*(Y/X));
这个计算方法用于任何一对整数,但由于这个过程每一次要求不同的除法所以它的时间通常很长。
在本发明的一个装置中,如灵敏长10,对每一个X(只一次用微处理器电路11计算常数值K并将K值存贮在RAM    12中。当用不同Y值调入模X时再使用K。当以后有利地进行这个过程时使用一完全确定的间隔,在这个间隔中使用在微处理器电路11中很少的减法来精细(refine)计算。由于以移位和乘法来计算这个距离所以转移到这个过程是很容易做的。
如果X是一个在装置的寿命期永不改变的常数,有利地是K可以通过灵敏卡10的发行人(issuer)来计算并存贮在ROM13中。
所有根据本发明的减号运算(minus    operation)将作为无符号数字对数字(unsigned    digit-todigit)(这里是毕特对毕特)减法,例如10397-21033=89364,且以程序设计语言C-like符号来写这个计算设计。
本发明装置根据下列计算模函数的程序工作:
Unsigned    modulo(Y,X);(program    modulo)
Unsigned    Y,X;
Static    unsigned    COPY_X,K;
Unsigned    A;
if(COPY_X!=X){K←2L/(COPY_X←X);}
A←X*((K*(Y>>(n-1)))>>(L-n+1));
A←Y%2n+2-A%2n+2;
While(A≥X){A←A-X;}
Return(A);
应该指出当环路(while loop)至多执行二次且%2n+2的计算是以Y和A的n+2最小二进制有效位来进行的简单减法
如果这行:
A←Y%2n+2-A%2n+2;
被A←Y-A;取代这个modulo(Y,X)函数也会工作得很好。
》代表右移算子,%代表左移算子。
可以证明上述语句是真实的:在当环路以前从Y中减去
((K(Y))(n-1)))》(L-n+1)times    X
结果Y-X*((K(Y》(n-1)))》(L-n+1))≡R
或Y-X*((K(Y》(n-1)))》(L-n+1))-X*△=R
计算△的值导致
Y-X*((K(Y>>(n-1)))>>(L-n+1))-X*△=Y-X*int(Y/X)
X*((K(Y>>(n-1)))>>(L-n+1))+X*△=X*int(Y/X)
((K(Y>>(n-1)))>>(L-n+1))+△=int(Y/X)
存在着
α<X/int(Y/X)=Y/X-α/X
((K(Y>>(n-1)))>>(L-n+1))+△=Y/X-α/X
类似存在着
β<2n-1/Y>>(n-1)=Y/2n-1-β/2n-1
γ<X/K=2L/X-γ/X
{(Y/2n-1-β/2n-1)*(2L/X-γ/X)}>>(L-n+1)-Y/X+α/X=-△
{Y/(X*2n-1-L)-β/(X*2n-1-L)-Y*γ/(X*2n-1)+γ
*β/(X*2n-1)}>>(L-n+1)-Y/X+α/X=-△
及最后存在着:
ε<2L-n+1/{Y/(X*2n-1-L)-β/(X*2n-1-L)-Y*γ/(X*2n-1)+γβ/(X*2n-1)}>>(L-n+1)={Y/(X*2n-1-L)-β/(X*2n-1-L)-Y*γ/(X*2n-1)+γβ/(X*2n-1)}/2L-n+1-ε/2L-n+1
结果
{Y/(X*2n-1-L)-β/(X*2n-1-L)-Y*γ/(X*2n-1)+γβ/(X*2n-1)}/2L-n+1-ε/2L-n+1-Y/X+α/X=-△
Y/X-β/X-Y*γ/(X*2L)+γβ/(X*2L)-ε/2L-n+1-Y/X+α/X=-△
β/X+Y*γ/(X*2L)-γβ/(X*2L)+ε/2L-n+1-α/X=△
△≤β/X+Y*γ/(X*2L)+ε/2L-n+1
<β/X+Y/2L+ε/2L-n+1<β/X+Y/2L+1
由于2n-1≤X且Y≤2L-1(见背景段中的定义),因而△<3。
这证明在最坏的场合当回路将被执行二次。
由于X长等为n毕特,3*X至少n+2毕特长。结果,减法
Y-X((K(Y》(n-1)))》(L-n+1))
可以在每个数字的n+2最小有效数位上来进行,且运行
A←Y-A;
可以由下行
A←Y%2n+2-A%2n+2
来取代。
二个例子将解释这个运算:
计算R=48619    mod    93≡73
及    S=47711    mod    93≡2
R=?
Let    L=17
X=(93)10=1011101→n=7
K=2L/X=10110000001
Y=(48619)10=1011110111101011
Y>>(n-1)=1011110111(n-1    LSB′s    suppressed)
K*(Y>>(n-1))=10110000001*1011110111
=100000101000101110111
(K*(Y>>(n-1)))>>(L-n+1)=1000001010
X*(K*(Y>>(n-1)))>>(L-n+1)=1011110110100010
X*(K*(Y>>(n-1)))>>(L-n+1)%2n+2=110100010
Y%2n+2=111101011
111101011
-110100010
-----------
=1001001=(73)10=R
S=?
Let    L=17
X=(93)10=1011101→n=7
K=2L/X=10110000001
Y=(47711)10=1011101001011111
Y>>(n-1)=1011101001(n-1    LSB′s    suppressed)
K*(Y>>(n-1)=10110000001*1011101001
=100000000010001101001
(K*(Y>>(n-1)))>>(L-n+1)=1000000000
X*(K*(Y>>(n-1)))>>(L-n+1)=1011101000000000
X*(K*(Y>>(n-1)))>>(L-n+1)%2n+2=000000000
Y%2n+2=001011111
001011111
-000000000
-----------
1011111(While    loop)
-1011101
---------
=10=(2)10=S
在程序′common′(一次除法,一次乘法及一次减法)与程序′modulo′(在第一次工作中(in    the    first    activation)的二次乘法,二次右移位运算,二次左移位运算,三次减法及一次乘法)间的理论差可以忽略(对n毕特数字):
在每一个n时钟周期中做“》n′%n′的说明。
A-B与A+B取大约2*n,A*B是2*n2的而且一般允许一个除法与4个乘法相等。如果用C(k)n代表在n-毕特数字上进行K程序′common′所需的时间,用M(k)n代表用于程序′modulo′的类似时间,则
Cn(k)=k*(4*(2*n2)+2*n2+2*n)=k*(10*n2+2*n);
Mn(k)=4*(2*n2)+k*(2*(2*n2)+2*n+2*n+3*(2*n))=
8*n2+k*(4*(n2)+10*n).
对于n=10:(C10(k)=k*1020及M10(k)=800+k*500这导致C10(1)<M10(1),
但对任何k>1
M10(k)<C10(k)
这指出在重复模运算的场合本发明的模运算更快。
本发明模运算还可进一步来改进。
可以证明对于所有u<L
int(in+(2L/X)/2u)=int(2L-U/X)。
这可以以一个被改进的形式用于重写程序′modolo′,这个改进形式为
Unsigned    modulo_1(Y,X);(program    modulo_1)
Unsigned    Y,X;
Static    unsigned    int    COPY_X,K;
Unsigned    int    A,Z,l;
if(COPY_X!=X){K←2L/(COPY_X←X);}
1←Number_of_digits(Y);
Z←K>>(L-l-1);
A←X*((Z*(Y>>(n-1)))>>(l-n+2));
A←Y%2n+2-A%2n+2;
While(A≥X){A←A-X;}
Return(A);
为了举例说明与程序′modulo′的不同,计算下列例子:
T=1000modulo_1    93(≡70)
T=?
Let Y=(1000)10=1111101000→1=10
Y>>(n-1)=1111
Z=K>>(L-l-1)=10110000001>>(17-10-1)10=10110
Z*(Y>>(n-1))=10110*1111=101001010
(Z*(Y>>(n-1)))>>(1-n+2)=1010
X*((Z*(Y>>(n-1)))>>(1-n+2))=1110100010
X*((Z*(Y>>(n-1)))>>(1-n+2))%2n+2=110100010
Y%2n+2=111101000
111101000
-110100010
-----------
1000110=(70)10=T.
程序′Modulo′的相应计算:
K*(Y>>(n-1))=10110000001*1111
=101001010001111
(K*(Y>>(n-1)))>>(L-n+1)=1010
X*((K*(Y>>(n-1)))>>(L-n+1))=1110100010
X*((K*(Y>>(n-1)))>>(L-n+1))%2n+2=110100010
Y%2n+2=111101000
111101000
-110100010
-----------
11000110=(70)10=T.
现在对于实际场合L=2*n,更详细地描述本发明模计算。
程序′Modulo′改变为
Unsigned    modulo_2n(Y,X);(program    modulo_2n)
Unsigned    Y,X;
Static    unsigned    COPY_X,K;
Unsigned    A;
if(COPY_X!=X){K←22*n/(COPY_X←X);}
A←X*((K*(Y>>(n-1)))>>(n+1));
A←Y%2n+2-A%2n+2;
While(A≥X){A←A-X;}
Return(A);
当根据本发明计算时,使用一特殊乘法,叫破坏乘法,破坏乘法是一个乘法过程,在这个过程中,产生结果C(A*B的乘积)同时为了在RAM12中获得位置而破坏A。
为了举例说明这个运算,计算乘积911*163=148493(在实际运算中包括黑体数字)
911    911    911
*163*163*162
003    033    733
最后的乘法3*9的结果为27。27的数字7是733的第一数字且27的数字2是162的最后数字。下一步163的数字3就不需要3且由结果27的数字2来取代
911    911    911
*162*163*157
793    393    393
第一乘法6*1的结果为6,它被加到733的中间数位→793。第二乘法6*1的结果6被加到793的第一数字7上。这导致了数字393及数字163的最后数字3(=2+1)。最后乘法6*9结果为54。这个结果的第二数字被加到数字163的最后数位3上。163的第二数位6将不再需要且由结果54的数位5来取代
911    911    911
*157*158*148
493    493    493
最后乘法1*9结果为9。这个结果被加到数字158的第二数位5上。158的第一数字1将不再需要且由和5+9=14的第一数位1来取代。现在数字148代表最后结果148493的前三个数位且数字493代表后三位数字。
值X及K都存贮在ROM    13中。在RAM    12中的必要RAM空间是3*(int(n/8)+1)字节矩阵(如:如果n=38则矩阵尺寸为5*3)。数字Ai…Fi是多字节数组,这里i是毕特数且i=0为最小二进制有效数位。
←int(n/8)+1→
RAM1    ……↑
RAM2    ……|3
RAM3    ……↓
开始,A和B分别存贮在RAM1及RAM2中:
RAM1 A0A1A2A3……An-2An-100
RAM2 B0B1B2B3……Bn-2Bn-100
RAM3    ……
在进行A*B=C的破坏乘法后:
RAM1 A0A1A2A3……An-2An-100
RAM2 C0C1C2……Cn-1CnCn+1
RAM3 Cn+2Cn+3Cn+4……C2n-10000
将RAM2转移到RAM1且将RAM2归零:
RAM1 C0C1C2……Cn-1CnCn+1
RAM2    000000000000000000000000000000
RAM3 Cn+2Cn+3Cn+4……C2n-10000
将RAM3向右移位三个位置时将毕特数Cn-1到Cn+1引入RAM3的最左位置:
RAM1 C0C1C2……Cn-1CnCn+1
RAM2    000000000000000000000000000000
RAM3 Cn-1CnCn+1Cn+2Cn+3……C2n-10
用RAM3(即D=K*RAM3)破坏相乘K(在ROM中为n+1长度)
RAM1 C0C1C2……Cn-1CnCn+1
RAM2 D0D1D2……DnDn+1
RAM3 Dn+2Dn+3Dn+4……D2n00
将Dn+1推入RAM3的最左位且将RAM2设定为0:
RAM1 C0C1C2……Cn-1CnCn+1
RAM2    000000000000000000000000000000
RAM3 Dn+1Dn+2Dn+3……D2n0
用RAM3(比方E=RAM3*X)乘X(在ROM    13中以n长度存贮)。只进行部分相乘以便在RAM2中只获得E的n+2最小有效数位:
RAM1 C0C1C2……Cn-1CnCn+1
RAM2 E0E1E2……En-1EnEn+1
从RAM1中减去RAM2(即F=RAM1-RAM2):
RAM1 E0E1E2……En-1EnEn+1
RAM2 E0E1E2……En-1EnEn+1
当RAM1>X时,从RAM1中减去X(在ROM中为n长度):
RAM1    FINAL.RESULT……
RAM2 E0E1E2……En-1EnEn+1
本发明装置有利的是以这样一个位置终止,即非常有利于进行另一个破坏乘法(在RAM2中放入另一个数且NEXT-NUMER*FINAL-RESUIT将出现在RAM2及RAM3)。这对于模的取    是很不利的。
上面描述了L=2n的情形(最实际的),但是这个方法可以轻易地普及到任何L>n的值。
存贮在RAM行列和/或可检索介质13中的数字和/或数据也可以以倒置格式存贮(最大有效位与最小有效位互换)。
RAM1、RAM2和/或RAM3的次序也可置换。
代替为RAM归零,这个RAM可以连续重写。
可以用乘方和相乘算法控制器来进行这个乘法。
RAM行列可由右移位寄存器来取代。
用于模运算A*B    mod    X的装置,这里数字A、B及第一常量X都是n字节,这个装置包括:
-可检索装置(13),如RAM,ROM或E2PROM,在其中已记录了所说第一常量X及第二常量K=22n/X;
-3*(int(n/8)+1)字节的RAM矩阵,它包含第一组RAM1存贮单元,第二组RAM2存贮单元及第二组存贮单元;
-运算装置(11),它允许对存贮在所说RAM行列中数据的多位减法,多位移位运算,多位数据从或向所说可检索装置及所说RAM矩阵的转移,多位完全的和破坏的乘法。
其特征在于用所说运算装置(11)的运算是以二元数位(binaryortrinorry    numbers)进行的。
该装置用于模运算A*B    Mod    X的方法,包括下列步骤:
-在所说第一组RAM1存贮单元及所说第二组RAM存贮细胞中分别存贮所说数字A和B;
-进行破坏乘法A*B=C;
-将存贮在所说第二组RAM2存贮单元的数据(C的最小二进制有效数位)转移到所说第一组RAM1存贮单元,
-将所说第二组RAM2存贮单元归零;
-将存贮在所说第三组RAM3存贮单元中的数据(C是最大二进制有效数位)向右移位三个位置,这个数据以Ci代表,其中i是毕特且i=0最小二进制有效数位,同时将三个最右位毕特Cn-1′Cn及Cn+1引入所说第三组RAM3的存贮单元的最左位置(即最小二进制有效数位);
-用存贮在所说第三组RAM3的存贮单元中的数据破坏相乘所说第二常量K,K在所说可检索装置(13)中以n+1毕特的长度存贮;
-将存贮在所说第二组RAM2存贮单元中的最右位毕特以Dn+1′表示推向第三组RAM3存贮单元中的最左位;
-将所说第二组RAM2存贮单元归零;
-用存贮在所说第三组RAM3存贮单元来部分相乘所说第一常数X,X在所说可检索装置(13)中以n毕特的长度存贮,由此在所说第二组RAM2存贮单元中只获得n+2的最小二进制有效数位;
-从存贮在所说第一组RAM1存贮单元的数字中减去存贮在所说第二组RAM2存贮单元的数字;
-当存贮在所说第一组RAM1存贮单元中的数字大于所说第一常数X时,从存贮在所说第一组RAM1存贮单元中减去所说第一常数X。
其特征在于有贮在RAM矩阵和/或存贮在可检索装置(13)中的数字和/或数据以倒置格式存贮(MSB…LSB)。
其特征在于所说第一、二和/或三所存贮单元的次序被置换。
其特征在于代替为所说各个组存贮单元归零,各个组存贮单元被连续重写。
其特征在于所说乘法是用乘方及乘法算法控制器(square-and-multiply    algcrithmic    cohteiller)来进行的。
其特征在于所说RAM矩阵被右移位寄存器所取代。
其特征在于所说装置是视频密码(Videocrypt)解码器。

Claims (9)

1、用于模运算A*B mod X的装置,这里数字A、B及第一常量X都是n字节,这个装置包括:
--可检索装置(13),如RAM,ROM或E2PROM,在其中已记录了所说第一常量X及第二常量K=22n/X;
--3*(int(n/8)+1)字节的RAM矩阵,它包含第一组RAM1存贮单元,第二组RAM2存贮单元及第二组存贮单元;
--运算装置(11),它允许对存贮在所说RAM行列中数据的多位减法,多位移位运算,多位数据从或向所说可检索装置及所说RAM矩阵的转移,多位完全的和破坏的乘法。
2、根据权利要求1的装置,其特征在于用所说运算装置(11)的运算是以二元或三元数位(binary  or  trinorry  numbers)进行的。
3、利用根据权利要求1或2的装置用于模运算A*B  Mod  X的方法,包括下列步骤:
-在所说第一组RAM1存贮单元及所说第二组RAM存贮细胞中分别存贮所说数字A和B;
-进行破坏乘法A*B=C;
-将存贮在所说第二组RAM2存贮单元的数据(C的最小二进制有效数位)转移到所说第一组RAM1存贮单元,
-将所说第二组RAM2存贮单元归零;
-将存贮在所说第三组RAM3存贮单元中的数据(C是最大二进制有效数位)向右移位三个位置,这个数据以Ci代表,其中i是毕特且i=0最小二进制有效数位,同时将三个最右位毕特Cn-1′Cn及Cn+1引入所说第三组RAM3的存贮单元的最左位置(即最小二进制有效数位);
-用存贮在所说第三组RAM3的存贮单元中的数据破坏相乘所说第二常量K,K在所说可检索装置(13)中以n+1毕特的长度存贮;
-将存贮在所说第二组RAM2存贮单元中的最右位毕特以Dn+1′表示推向第三组RAM3存贮单元中的最左位;
-将所说第二组RAM2存贮单元归零;
-用存贮在所说第三组RAM3存贮单元来部分相乘所说第一常数X,X在所说可检索装置(13)中以n毕特的长度存贮,由此在所说第二组RAM2存贮单元中只获得n+2的最小二进制有效数位;
-从存贮在所说第一组RAM1存贮单元的数字中减去存贮在所说第二组RAM2存贮单元的数字;
-当存贮在所说第一组RAM1存贮单元中的数字大于所说第一常数X时,从存贮在所说第一组RAM1存贮单元中减去所说第一常数X。
4、根据权利要求3的方法,其特征在于有贮在RAM矩阵和/或存贮在可检索装置(13)中的数字和/或数据以倒置格式存贮(MSB…LSB)。
5、根据权利要求3或4的方法,其特征在于所说第一、二和/或三所存贮单元的次序被置换。
6、根据权利要求3到5的任何一种方法,其特征在于代替为所说各个组存贮单元归零,各个组存贮细胞被连续重写。
7、根据权利要求3到6的任何一种方法,其特征在于所说乘法是用乘方及乘法算法控制器(square-and-multiply  algorithmic  cohtroller)来进行的。
8、根据权利要求3到7的任何一种方法,其特征在于所说RAM矩阵被右移位寄存器所取代。
9、根据权利要求1或2的装置,其特征在于所说装置是视频密码(Videocrypt)解码器。
CN92104800A 1991-05-27 1992-05-26 模运算的装置和方法 Pending CN1070298A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
EP91401391 1991-05-27
EP91401391.7 1991-05-27

Publications (1)

Publication Number Publication Date
CN1070298A true CN1070298A (zh) 1993-03-24

Family

ID=8208574

Family Applications (1)

Application Number Title Priority Date Filing Date
CN92104800A Pending CN1070298A (zh) 1991-05-27 1992-05-26 模运算的装置和方法

Country Status (8)

Country Link
EP (1) EP0515956A1 (zh)
CN (1) CN1070298A (zh)
AU (1) AU1764192A (zh)
MX (1) MX9202480A (zh)
TR (1) TR26124A (zh)
TW (1) TW202510B (zh)
WO (1) WO1992022028A1 (zh)
ZA (1) ZA923803B (zh)

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4949293A (en) * 1987-09-25 1990-08-14 Kabushiki Kaisha Toshiba Method and apparatus for computing residue with respect to arbitrary modulus

Also Published As

Publication number Publication date
ZA923803B (en) 1993-01-27
TR26124A (tr) 1995-02-15
TW202510B (zh) 1993-03-21
WO1992022028A1 (en) 1992-12-10
EP0515956A1 (en) 1992-12-02
AU1764192A (en) 1993-01-08
MX9202480A (es) 1992-11-30

Similar Documents

Publication Publication Date Title
CN1148643C (zh) 模幂运算装置
CN1186714C (zh) 高基除法器及方法
CN1205538C (zh) 用于多精度整数算术运算的装置
CN1253790C (zh) 指令调度方法和指令调度设备
CN1265280C (zh) 扩展整数的计算域的范围
CN1130638C (zh) 存储装置和存取方法
CN1199177C (zh) 可抑制电路规模能进行高速纠错的纠错装置和解码装置
CN1320769C (zh) 编码器、解码器以及数据传送系统
CN1177482C (zh) 编码方法,解码方法,编码装置以及解码装置
CN1268135C (zh) 编码方法、编码装置和记录媒体、以及解码方法、解码装置和记录媒体
CN1897512A (zh) 纠错装置
CN1498367A (zh) 信息处理装置、存储器管理装置、存储器管理方法及信息处理方法
CN1296813C (zh) 浮点存储方法及浮点运算装置
CN1688966A (zh) 包括对准或者广播指令的多媒体协处理器控制机制
CN101040306A (zh) 伪随机数生成装置
CN1991798A (zh) 半导体存储装置
CN1226039A (zh) 指数计算装置和解码装置
CN1633749A (zh) 获得循环冗余码
CN1022591C (zh) 信号处理装置的地址处理器
CN1605059A (zh) 蒙哥马利乘法器中的流水线内核
CN1163076C (zh) 图像编码装置和图像编码方法及图像解码装置和图像解码方法
CN1468396A (zh) 并行计数器和用于执行乘法的逻辑电路
CN1748199A (zh) 逻辑运算电路、逻辑运算装置和逻辑运算方法
CN1839550A (zh) 解码可变长度前缀码的方法
CN1070298A (zh) 模运算的装置和方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C01 Deemed withdrawal of patent application (patent law 1993)
WD01 Invention patent application deemed withdrawn after publication