用于模计算的方法和设备技术

技术编号:3620889 阅读:200 留言:0更新日期:2012-04-11 18:40
本发明专利技术涉及在RAM一受限环境中进行A*B模N计算方法,其中A,B与N是L字节数。该方法需要以下要素:一个RAM缓冲器W;用于对存储在上述缓冲器W中的内容归约计算的计算器;一字节左向移位器;反向乘法器;以及左向移位器及反向乘法器的控制器。(*该技术在2013年保护过期,可自由使用*)

【技术实现步骤摘要】

本专利技术涉及用于模计算的一种方法和一种设备。大多数现代公共密钥加密系统(例如在付费电视系统中)是基于模乘法的。在EP-A-91402958专利中描述了一种用于时限环境的模计算方法。模乘法是由运算“A*B模N”所定义的,其中A,B及N具有相同的长度L(通常L=64字节)。N称为模数。所有用于计算“A*B模N”的已公布的方法都至少需要一个近似等于N的长度的两倍的RAM(“随机访问存储器”,下同)空间。实际上特别是在那些不可能有大量值的RAM的灵巧卡技术中,这是一个很难克服的障碍。本专利技术的一个目的在于透露一种在RAM受限制的环境中作模计算的方法。这一目的可由下面所透露的方法达到。该方法用于进行A*B计算,其中A,B与N在最高有效位-最低有效位格式中表示为L字节数。该方法的特征在于在一个(程序)循环中,反向乘法器,计算器及左向移位器的顺序操作是受控进行的。该方法包括一个至少有8*L+9位的RAM缓冲器W存储中间结果,其中L为字节卡;反向乘法器将数A的一个字节A〔i〕乘以整个数B并把所得结果A〔i〕*B加到上述缓冲器W的内容上去,其中的下标i在相继调用上述反向乘法器之间从L-1递减到0(此两数值均包含);上述的计算器将存储在缓冲器W中的8*L+9位的数作模N归约;上述的一字节左向移位器将缓冲器W中的内容向左移位一个字节并在每次移位操作之后将W〔O〕置零,其中〔O〕是较低有效字节。数字式处理器技术用于在一个相当小的RAM区域中执行模乘法运算,从而巧妙地克服了上述技术障碍。当使用8位处理器时本设备所用的上述RAM区域的大小可限制在模数加九位这样的规模。更一般地说,当使用S-位(S=8,16,32等等)处理器时,则上述的RAM空间的大小可限制在模数加(S+1)位这样的规模。但为简单计,此处仅考虑8-位处理器。本专利技术应用了计算器,控制器、存储器、一字节左向移位器和反向乘法器。控制器、一字节左向移位器和/或反向乘法器可在硬件或软件中实现。对于大数值的L,例如L=64,其优点在于上述的RAM区域的大小近似等于模数的大小。这些特点使得本方法特别适合于灵巧卡应用于密码场合,例如用于视频密码的付费TV(电视)系统。原则上本专利技术的方法在于进行A*B模N的模计算,其中A,B与N是表示为最高有效位-最低有效位格式的L字节数,并且在一个(程序)循环中反向乘法器、计算器及左向移位器的顺序操作受到控制,其中·至少8*L+9位的RAM缓冲器存储中间结果,其中L是字节长度。·上述的反向乘法器将数A的一个字节A〔i〕乘以整个数B并将结果A〔i〕*B加到上述缓冲器W的内容上去,其中上述的下标i在相继调用上述反向乘法器之间从L-1递减到0(两个数值均被包含);·上述计算器将存储在上述缓冲器W中的8*L+9位的数进行模N归约;·上述的一位左向移位器将缓冲器W的内容向左移位一个字节并在每次上述的移位操作之后将W〔O〕置0,其中〔O〕是较低有效字节。本专利技术的又一目的在于透露利用本专利技术方法的一种设备。这一目的通过下面所透露的设备而达到。该设备的组成如下所述,其工作原理在以下较佳实施例中详述。原则上本专利技术的设备包括·至少为8*L+9位的一个RAM缓冲器W,其中L是字节长度;·反向乘法器,其中数A的一个字节A〔i〕乘以整个数B并且将所得结果A〔i〕*B加到上述缓冲器W的内容上去,又该下标i在相继调用该反向乘法器之间时从L-1递减到0(两数值均被包含);·用于将存储于上述缓冲器W中8*L+9位的数作模N归约的计算器;·用于缓冲器W的一字节左向移位器,该移位器在每次移位操作之后将W〔O〕置0,其中〔O〕为较低有效字节;·用于顺序执行上述反向乘法器、计算器及左向移位器操作的控制器。本专利技术的又一目的在于透露了在其中进行了本专利技术的模计算的执行数论公共密钥算法的加密和/或文电鉴别和/或数字式签名系统。这一目的通过后面所透露的设备而达到。本专利技术还有一目的是透露了应用本专利技术模计算的灵巧卡。这一目的亦可通过后面所透露的设备而达到。以下用X〔i〕表示X为第i个字节,其中X〔O〕则为X的较低有效字节。这里X是代表A,B,N及W的一个通用名。这些数值的字节长度用L表示(典型的情况是L=64),于是A〔L-1〕,B〔L-1〕以及N〔L-1〕分别是A,B及N的最高有效字节。但是由于W的长度是L+2,故W的最高有效字节是W〔L+1〕。存储器分为四个不同的区域1)第一数值A存储区域;2)第二数值B存储区域;3)第三数值N存储区域;4)N加两字节长的工作区域W。区域3通常是在ROM(只读存储器),EPROM(可擦可编程只读存储器)或EEPROM(电可擦可编程只读存储器)之中。区域4必定是在RAM(随机访问存储器)之中,而区域1与2可以是ROM,ERROM(可擦只读存储器),EEPROM或RAM型。计算器SMALL-RED(W)包括诸如字节到字节的加法,减法及乘法这类基本运算并用于作缓冲器W内容的小规模归约运算。从而所存储的8*L+9位数被模N归约。可以用许多的方式方便地构造这类计算器,由于W的长度与N的长度仅相差九位这一事实而该计算器只需要很少的附加的RAM变量并且运行速度很快。这样的计算器可按以下方式进行计算1)从W中作减法N的简单迭代移位减法(以下稍后会看到最大需要9次)。2)利用N的预录模逆数以近似计算从W中应减去多少次N,该计算由以下全部或部分步骤组成·一次性地预先计算常数K=(2^521/N)的整数部分;·K乘以W的10个最高有效位;·右移这10个位的结果;·从W中减去N倍的这一结果;·当W≥N时从W中减去N。3)利用N的一种特定形式(例如N〔L-1〕=1及N〔L-2〕=0作为最高有效位)使得在作除法时易于预见估计的数字,这算法由以下步骤组成·预先选定诸如N〔L-1〕=1,N〔L-2〕=0这样的N并构造执行以下计算的计算器如果d为零则将S赋给W〔i+L-1〕的值,否则S=255。从W的L+1最高有效位中减去S*N。如果W〔i+L-1〕=0,则令d=0否则将N加到W的L+1最高有效位。如果出现进位则返回1否则返回0。或·预选一个N使得N〔L-1〕=1,N〔L-2〕=0并构造计算器执行以下计算用值L+1初始化i并将d置零。如果i是负值则终止计算。令d=REDUCE-BUFF(i,d)。i减去1并返回两行。4)从W中减去N乘以(W/N)的整数部分。以下线路可用于上述计算器1)EP-A-0314559中所述Thomson线路;2)US-4,949,293中所述的Kawamura线路;3)EP-A-0381161中所述N.T.T线路。反向乘法器CUMULATED-MUL(A〔i〕)将A值的一个字节A〔i〕乘以整个数B并将结果B*A〔i〕加到W的内容上去。根据本专利技术,控制器要执行以下操作1)将缓冲器W置0;2)用L值将下标i初始化;3)将i减1;4)如果i为负值,则终止计算;5)利用上述的反向乘法器执行反向乘法运算;6)利用上述的计算器执行小规模归约计算;7)如果下标i非零则用上述左向移位器将缓冲器W向左移一位;8)转向第3)步。以上操作可利用下述程序进行char A,B,W;Modular_Multiplication(char *A, Char *B){int 本文档来自技高网...

【技术保护点】
用于模计算“A*B模N”的方法,其中A,B与N在最高有效位-最低有效位格式中表示为L字节数,该方法的特征在于:在一个(程序)循环中反向乘法器、计算器及左向移位器的顺序操作受到控制,其中.一个至少有8*L+9位的RAM缓冲器W存储中间结果 ,其中L是字节卡;.上述的反向乘法器将数A的一个字节A[i]乘以整个的数B并把所得结果A[i]*B加到上述缓冲器W的内容上去,其中下标i在相继调用上述反向乘法器之间从L-1递减到0(两数值均包含);.上述的计算器将存储在缓冲器W中的 内空向左移位一个字节并在每次这种移位操作之后将W[O]置0,其中[O]是较低有效字节。

【技术特征摘要】
...

【专利技术属性】
技术研发人员:大卫纳卡什
申请(专利权)人:汤姆森电子用品公司
类型:发明
国别省市:FR[法国]

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1
相关领域技术
  • 暂无相关专利