一种将多个整数安全相加的计算机系统及方法技术方案

技术编号:2999961 阅读:332 留言:0更新日期:2012-04-11 18:40
提供了一种计算机系统,其使得难以分析计算的内容。幂运算单元(262)使用输入数据“a”和“b”执行以下运算:g↓[a]=g↑[a]mod  n,g↓[b]=g↑[b]mod  n。接下来,乘法单元(264)使用g↓[a]和g↓[b]执行以下计算:g↓[ab]=g↓[a]×g↓[b]mod  n。接下来,离散对数计算单元(266)计算满足g↓[ab]=g↑[ci]mod  p↓[i](i=1,2,…,k)的c↓[i]mod  p↓[i]-1。接下来,CRT(267)使用中国剩余定理CRT计算满足c↓[i]=c  mod  p↓[i]-1(i=1,2,…,k)的“c”。

【技术实现步骤摘要】
【国外来华专利技术】
本专利技术涉及抗窜改软件技术,其使得分析计算机程序变得困难。
技术介绍
近年来,在包含根据计算机程序操作的处理器的计算机系统中使用加密程序(加密软件),这在诸如传送秘密信息和认证通信伙伴之类的应用中变得普通。在这种应用中,如果包含密钥、加密算法等等的软件以其原始状态安装在计算机系统,并且所安装的软件被分析,则可能发生未授权情况。为了解决该问题,专利文献1公开了一种技术,该技术转换运算和数据域,从而使得推断原始运算和数据变得困难。例如,假设存在加法程序,其执行输入数据a和b的加法,并输出结果a+b。整数k1和k2被预先存储,并被用于将输入数据a和b分别转换为ta=k1×a+k2和tb=k1×b+k2。需要注意的是,“×”是表示乘法的运算符。接下来,根据ta和tb计算出tab=ta+tb。此外,根据tab计算出c=(tab-2k2)/k1。接下来,输出运算结果c。以上过程给出tab=ta+tb=k1×a+k2+k1×b+k2=k1×(a+b)+2k2其给出(tab-2k2)/k1=a+b因此c=a+b,并且通过加法程序获得a和b的加法的结果。专利文献1U.S.专利6594761。专利文献2日本专利申请No.3402441。专利文献3日本特开平专利申请2760799。非专利文献1Tatsuaki OKAMOTO,Hirosuke YAMAMOTO“Gendai Ango”(Modern Cryptography),Sangyotosho(1997)。非专利文献2Henri Cohen,“A Course in Computational AlgebraicNumber Theory”,GTM 138,Springer-Verlag,1993,pp.19-20。非专利文献3I.Blake,G. Seroussi和N.Smart,“Elliptic Curvesin Cryptography”,CAMBRIDGE UNIVERSITY PRESS,1999。非专利文献4N.Kunihiro和K.Koyama,“Two Discrete LogAlgorithms for Super-Anomalous Elliptic Curves”,SCIS’99,1999,pp.869-874。
技术实现思路
本专利技术旨在解决的问题常规示例的方法的问题在于,存在转换前的运算将会被推断为是加法的风险。这是因为在转换后的定义域中的运算是加法,并且由此该运算的类型与转换前的运算相同。因此,如果执行加法的程序段被试图分析该程序的人发现,则存在的危险是,这些段周围的代码会被深入分析,以揭示所采用的转换的本质。因此,应该采用加法之外的运算,以尽可能地确保转换前的运算的真正本质不会被发现。本专利技术的一个目的在于提供一种计算机系统、程序、加法方法和记录介质,其使得分析运算的内容变得更加困难。解决问题的手段为了解决上述问题,本专利技术是用于将两个或者更多个整数相加的计算机系统,包括存储器单元,用于存储包括多个指令的程序;以及处理器,用于依次从所述存储器单元中存储的程序中取回每条指令,并解码和执行每条所取回的指令,其中所述程序包括转换指令集,其使所述处理器通过使用每个整数在群G中执行幂运算,生成属于群G的元素,运算指令集,其使所述处理器通过使用所有生成的元素执行除加法之外的基本运算,生成运算值,以及逆转换指令集,其使所述处理器通过在群G中或者群G的适当子群S中对所述运算值执行逆幂运算,生成所述整数的和值。本专利技术的效果采用该构造,可以隐藏运算本身以及在该运算中所使用的值。所述计算机系统可以安全并可靠地操作目标信息,所述程序还可以包括安全指令集,其使所述处理器对所述目标信息执行安全处理,并且所述安全指令集可以使所述处理器采用所述转换指令集、所述运算指令集以及所述逆转换指令集来执行加法运算。在此,群G可以是整数剩余环(integer residue ring)的乘法群,所述转换指令集可以使所述处理器对每一个所述整数执行取幂,所述运算指令集使所述处理器执行元素的乘法。采用该构造,因为所述转换之后执行的运算是乘法而不是加法,所以可以隐藏所述转换之后执行的运算。在此,群G可以是Z/nZ的乘法群,对于该乘法群,n=pm×q,其中p和q是素数,m为正整数。所述转换指令集可以使所述处理器对每一个所述整数执行取幂,并且所述运算指令集使所述处理器执行元素的乘法。采用该构造,因为所述转换之后执行的运算是乘法而不是加法,所以可以隐藏所述转换之后执行的运算。在此,子群S可以是不规则椭圆曲线群,所述转换指令集可以使所述处理器使用每个整数执行所述椭圆曲线上的乘法,并且所述运算指令集使所述处理器对所述元素执行所述椭圆曲线上的加法。此外,群G可以是两个不规则椭圆曲线群的直积,所述转换指令集可以使所述处理器使用每个整数执行所述椭圆曲线上的乘法,并且所述运算指令集使所述处理器对所生成的元素执行所述椭圆曲线上的加法。采用该构造,因为所述转换之后执行的运算是椭圆曲线上的加法而不是整数加法,所以可以隐藏所述转换之后执行的运算。在此,所述逆转换指令集可以包括归约(reduction)部分,以使所述处理器将属于群G的每个元素约化为属于子群S的元素。采用该构造,可以容易地进行所述逆转换指令集所执行的操作。所述计算机系统可以基于密钥信息,对目标信息进行加密或解密。在该情况下,所述安全指令集可以使所述处理基于所述密钥信息,对所述目标信息进行加密或解密,所述加密和解密是采用所述加法运算将所述密钥信息或者从所述密钥信息中获得的第二密钥信息加到所述目标信息上或者加到从所述目标信息中获得的第二目标信息上来执行的,并且在所述加法运算中,所述转换指令集、所述运算指令集以及所述逆转换指令集可以用于将所述密钥信息或者所述第二密钥信息加到所述目标信息上或者所述第二目标信息上。采用该构造,可以隐藏在涉及加密或解密的加法中所使用的值和运算。所述计算机系统可以基于密钥信息对所述目标信息执行数字签名或者数字签名验证。在此,所述安全指令集可以基于所述密钥信息对所述目标信息执行数字签名或者数字签名验证,其中采用所述加法运算以将所述密钥信息或者从所述密钥信息中获得的第二密钥信息加到所述目标信息上或者加到从所述目标信息中获得的第二目标信息上,并且在所述加法运算中,所述转换指令集、所述运算指令集以及所述逆转换指令集可以用于将所述密钥信息或者所述第二密钥信息加到所述目标信息上或者所述第二目标信息上。采用该构造,可以隐藏在涉及所述数字签名或者数字签名验证的加法中所使用的值和运算。如上所述,本专利技术的结构是有利的,这是由于其能够隐藏所述运算本身以及在所述运算中使用的值。附图说明图1示出了内容发送系统10的构造;图2是示出内容服务器100的构造的方框图; 图3是描述内容发送程序131的流程图;图4是描述内容加密程序132的流程图;图5示出了加密程序133的结构;图6是描述加密控制模块141(在图7中继续)的流程图;图7是描述加密控制模块141(续接图6)的流程图;图8示出了个人计算机200的构造;图9是描述内容接收程序231的流程图;图10是描述内容解密程序232的流程图;图11示出了解密程序234的结构;图12是描述解密控制模块241本文档来自技高网
...

【技术保护点】
一种用于将两个或者更多个整数相加的计算机系统,包括:存储器单元,用于存储包括多个指令的程序;以及处理器,用于从所述存储器单元中存储的程序中依次取回每个指令,对每个所取回的指令进行解码并执行,其中,所述程序包括:   转换指令集,其使所述处理器通过使用每个整数在群G中执行幂运算,生成属于所述群G的元素,运算指令集,其使所述处理器通过使用所有所生成的元素执行除加法之外的基本运算,生成运算值,以及逆转换指令集,其使所述处理器通过在所述群G中 或者所述群G的适当子群S中对所述运算值执行逆幂运算,生成所述整数的和值。

【技术特征摘要】
【国外来华专利技术】...

【专利技术属性】
技术研发人员:布田裕一山道将人已故大森基司静谷启树满保雅浩
申请(专利权)人:松下电器产业株式会社
类型:发明
国别省市:JP[日本]

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

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