CN102099780B - 指数模糊 - Google Patents

指数模糊 Download PDF

Info

Publication number
CN102099780B
CN102099780B CN200980124757.9A CN200980124757A CN102099780B CN 102099780 B CN102099780 B CN 102099780B CN 200980124757 A CN200980124757 A CN 200980124757A CN 102099780 B CN102099780 B CN 102099780B
Authority
CN
China
Prior art keywords
value
exponent
index
exponentiation
cryptographic
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.)
Expired - Fee Related
Application number
CN200980124757.9A
Other languages
English (en)
Other versions
CN102099780A (zh
Inventor
W·P·A·J·米希尔斯
P·M·H·M·A·戈里森
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.)
Ai Dide Technology Co Ltd
Original Assignee
Yedto
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 Yedto filed Critical Yedto
Publication of CN102099780A publication Critical patent/CN102099780A/zh
Application granted granted Critical
Publication of CN102099780B publication Critical patent/CN102099780B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • 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/723Modular exponentiation
    • 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/58Random or pseudo-random number generators
    • 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
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09CCIPHERING OR DECIPHERING APPARATUS FOR CRYPTOGRAPHIC OR OTHER PURPOSES INVOLVING THE NEED FOR SECRECY
    • G09C1/00Apparatus or methods whereby a given sequence of signs, e.g. an intelligible text, is transformed into an unintelligible sequence of signs by transposing the signs or groups of signs or by replacing them by others according to a predetermined system
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/002Countermeasures against attacks on cryptographic mechanisms
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/14Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using a plurality of keys or algorithms
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • H04L9/3006Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy underlying computational problems or public-key parameters
    • H04L9/302Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy underlying computational problems or public-key parameters involving the integer factorization problem, e.g. RSA or quadratic sieve [QS] schemes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2207/00Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F2207/72Indexing scheme relating to groups G06F7/72 - G06F7/729
    • G06F2207/7219Countermeasures against side channel or fault attacks
    • G06F2207/7223Randomisation as countermeasure against side channel attacks
    • G06F2207/7233Masking, e.g. (A**e)+r mod n
    • G06F2207/7238Operand masking, i.e. message blinding, e.g. (A+r)**e mod n; k.(P+R)
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2207/00Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F2207/72Indexing scheme relating to groups G06F7/72 - G06F7/729
    • G06F2207/7219Countermeasures against side channel or fault attacks
    • G06F2207/7223Randomisation as countermeasure against side channel attacks
    • G06F2207/7257Random modification not requiring correction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/16Obfuscation or hiding, e.g. involving white box
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/60Digital content management, e.g. content distribution

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Computing Systems (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Mathematical Physics (AREA)
  • Storage Device Security (AREA)

Abstract

提供了一种对指数进行模糊化的方法。该方法包括识别针对要用于密码处理的多个元素x使得λ>0且xλ=1成立的值λ。该方法还包括识别(306)大于λ的模糊化的指数y;以及提供(308)表示模糊化的指数y的信息。该方法包括建立密钥值a,其中,a<λ,选择正整数b,并且计算y=a+bλ。

Description

指数模糊
技术领域
本发明涉及对指数值进行模糊处理。本发明还涉及执行求幂运算。本发明还涉及作为密码算法的一部分的求幂。
背景技术
当今,例如借助互联网、广播介质或者借助数字数据载体(例如,CD或DVD),用户可以获得越来越多的数字格式的内容。消费电子(CE)产品(例如,电视机、机顶盒和音频设备)配备有用于呈现这些数字内容的数字数据处理功能。
针对版权内容使用互联网和其它数字分布介质对确保内容提供商的利益提出了挑战。特别地,希望具有可以加强内容提供商的版权和商业模型的技术手段。CE装置越来越多地使用装载了合适软件的处理器来工作。这种软件可以包括用于呈现(回放)数字内容(例如,音频和/或视频)的主要功能部分。控制回放软件是一种加强内容所有者的利益(包括可使用内容的条款与条件)的方式。传统上许多CE平台(除PC和PDA以外)通常是封闭的,然而现今越来越多的平台至少部分是开放的并且允许计算机程序员检查软件并对软件进行修改。在这些开放系统(包括个人计算机)中,可以假设一些用户能够对于对内容提供访问的硬件和软件进行完全控制。另外,一些用户可以具有大量的时间和资源来攻击并绕过任何内容保护机制。因此,内容提供商必须经由并非所有用户或装置能够被信任的社区的敌意网络向合法用户传送内容。
已经引入数字版权管理系统来控制向合法用户分发数字内容。通常,数字版权管理系统使用加密技术,该加密技术仅允许合法用户对内容进行解密。可以对消费装置中的这些加密技术的实现进行模糊化,使得攻击者更难找到密钥的值。许多不同种类的应用常用的密码的例子是 DES、AES、RSA和在WO9967918中公开的方法。
关于密钥处理,为了进行回放,介质播放器必须从许可数据库获取解密密钥。于是,必须将这个解密密钥存储在存储器中的某个地方,用于对加密的内容进行解密。这给了攻击者对密钥进行攻击的两个选项。首先,许可数据库访问函数的反向工程使得攻击者可以从所有许可数据库获取资产密钥。第二,通过在内容解密期间观察对存储器的访问,可以获取资产密钥。在这两种情况下,可以认为密钥泄露。
“White-Box Cryptography and an AES Implementation”,by Stanley Chow,Philip Eisen,Harold Johson,and Paul C.Van Oorschot,in Selected Areas in Cryptography:9th Annual International Workshop,SAC 2002,St.John’s Newfoundland,Canada,August 15-16,2002,and“AWhite-Box DES Implementation for DRM Applications”,by Stanley Chow,Phil Eisen,Harold Johnson,and Paul C.van Oorschot,in Digital Rights Management:ACM CCS-9Workshop,DRM 2002,Washington,DC,USA,November 18,2002(在下文中,这两个公开文献将被统称为“Chow”)公开了通过用表示构成而非各个步骤的随机双射对密钥的表进行加密以及通过将密码术边界进一步推出到包含应用中来延伸密码术边界的组合,来试图隐藏密钥的方法。
Chow中公开的技术使得可以执行软件中的密码运算,而不会向能够充分调试该软件的人暴露密码密钥。在Chow的方案中,通过使用查找表而非数学运算,隐藏了密码密钥,其结果是不需要原样存储数学运算的操作数。可以使用随机双射对这些表进行编码以进一步对它们进行模糊化。一个表的编码可以通过对另一个表的编码而撤消或者可以在程序中的其它地方撤消。然而,并非所有的运算都能容易地通过查找表进行表示。
发明内容
采用对更广范围的运算进行模糊化的方式是有利的。为了更好解决这个问题,在本发明的第一方面中,提出了一种对指数进行模糊化 的方法,包括:
识别针对在密码处理中要用作求幂的底数值的多个元素x使得λ>0且xλ=1成立的值λ;
识别大于λ的模糊化的指数y;以及
提供表示模糊化的指数y的信息。
这样提供了大于计算求幂严格需要的模糊化的指数y。本发明的这个方面使用了如下见识:针对小于λ的指数,存在大于λ并且当执行求幂时给出相同结果的对应指数值。使用这个性质,可以使指数值变成希望的那样大,这是有利的,因为这可以更好地对指数值进行模糊化以防检查和未授权复制。
可以在有限代数结构中执行求幂xλ=1,并且例如在代数结构包括元素{0,1,...,n-1}的情况下可以按模n执行求幂xλ=1。
可以提供表示模糊化的指数y的信息用于密码处理。例如,模糊化的指数y可以提供给包括密码系统的装置。通过向该装置提供模糊化的指数y,可使该装置在随后的求幂运算中使用指数y。这种密码系统例如实现了诸如RSA的非对称密码。在一实施例中,模糊化的指数y取决于非对称密码的私钥。这可以更好地保护私钥。
在本发明的另一个方面中,提出了一种执行具有模糊化的指数的求幂的系统,包括:
底数识别装置,用于识别求幂的底数x,其中,x是具有n个元素的集合中的元素;
指数识别装置,用于识别表示指数y的数据,指数y大于针对所述集合中的所有元素ξ使得λ>0且ξλ=1成立的值λ;以及
求幂器,用于通过计算x的y次幂的结果从而获得求幂的结果,来执行密码算法的至少一部分。
已经通过增加指数的大小(size)对指数进行了模糊化。这基于如下见识:针对小于λ的任何指数a,可以发现大于λ并且给出相同的求幂结果的对应指数值y。因此,这个较大值y可用于替代a,并且仍然提供相同的求幂结果。因此,能够执行求幂而不用向执行求幂的装 置提供相对小的值a。y的比特表示通常大于a的比特表示。此外,例如通过将足够大倍数的λ与指数a相加,可以选择大于任何给定大小的这种值y。由于可以将值y选择为希望的那样大,所以还可以使它的对应比特表示变成希望的那样大,而不会改变求幂的结果。这使得复制值y更加困难。这使得对于密码的密钥中的比特数增加,这增加了由该密码提供的安全性。例如,可以利用这种求幂方法建立非对称密码的白盒实现。
在一实施例中,该系统包括用于将底数值x与值β相乘并且将求幂结果与β-y相乘的装置。这两个乘法可用于对底数x和求幂xy的结果的值进行模糊化。可以在别处在使用求幂运算的数据处理系统的其它模块中执行这些乘法,以防止攻击者通过监视求幂器的输入和/或输出而发现x和/或xy的真正值。
在一实施例中,通过适当选择要于指数a相加的λ的倍数,给定的比特串s可以包括在模糊化的指数y的比特表示中。这使得可以将关于现有信息(诸如,口令、哈希值或硬件标识符)的信息加入表示指数的信息中。执行求幂的系统可以编程为通过访问所述现有信息来获取比特串s。例如,服务器可以提供表示指数的信息的其余部分。
在独立权利要求中定义了本发明的其它方面。从属权利要求定义了有利的实施例。 
附图说明
将参照附图进一步说明和描述本发明的这些和其它方面,在附图中
图1示出了执行求幂的系统的图;
图2示出了执行求幂的处理;
图3示出了产生指数值的处理;
图4示出了产生指数值的系统;以及
图5示出了硬件架构。
具体实施方式
密码算法的白盒实施方式是一种软件实现,在这种软件实现中,可以向攻击者隐藏密码密钥。可以假设攻击者可以完全访问该实现并且可以完全控制执行环境。有利的是,采用执行求幂xamodn的方案,x为变量,使得对攻击者隐藏值a。由于RSA包含这种从密钥推导出a的求幂,所以这种方案能够用于例如推导RSA的白盒实现。
Chow等给出了针对对称块密码AES和DES的白盒实现。Chow等采用的思想还能够在一定程度上用于推导其它对称块密码的白盒实现。然而,使用在Chow等中公开的方法很难推导非对称密码(例如,RSA和EIGamal)的白盒实现。在这个说明中,公开了用于推导求幂ax的白盒实现的方案,其中,a可以是常数,x可以是变量。这种求幂例如发生在EIGamal公钥密码中。最频繁使用的公钥密码RSA也基于求幂。消息m的加密对应于计算c=memodn,其中,值e和n由公钥给出。密文c的解密对应于计算m=cdmodn,其中,值d由私钥给出;值n由质数p和q的p·q给出,并且能够从n的因式分解和e计算值d。要注意,在这两种求幂过程中,底数值不是常数,而是取决于消息的内容。因此,需要一种执行求幂xa(x为变量)的方案,从而使得对攻击者隐藏值a。例如,这允许推导RSA的加密和解密侧的白盒实现。另外,基于这个方案,能够使RSA签名模式的签名产生和签名验证例程进行白盒化。
图1示出了用于执行求幂的系统100的实施例。由系统100执行的求幂可以具有模糊化指数。例如,这种系统可以内置到能够对使用数字版权管理(DRM)或密码术进行保护的内容进行处理的装置中。示例装置是音乐播放器、机顶盒、数字调谐器、数字电视机、DVD播放器。该实施例使求幂处理的指数可由相对大的数据表示(例如,大量的比特)进行表示,同时使得希望危害系统的人难以采用较小数据表示替换该大数据表示。例如,还可以借助软件在个人计算机中实现该系统。
该系统可以包括底数输入部108,用于接收表示求幂运算的底数的数据。例如,这个底数输入部108可被安排用于接收加密的内容的数字内容流。然而,这并非限制。例如,底数输入部108另选地可被安排用 于接收密码事务数据或识别数据(包括数字签名数据)。底数输入部108还可以对接收的数据执行预处理操作,例如,对数据进行解析并且可以按照与加密的数据部分不同的方式对未加密的数据部分进行处理。例如,可以从可移动介质、内部存储装置(诸如硬盘、闪存或RAM)或者从网络连接(诸如有线、卫星(例如使用DVB-S))或互联网获取数据。未加密的数据可以被转发至另一个模块(未示出)。加密的数据可以被转发至底数识别装置102。
底数识别装置102从底数输入部108接收表示底数值x的数据。这个数据用于识别求幂的底数x。例如,底数识别装置102从底数输入部108接收这个值x。或者,底数识别装置对从底数输入部108接收的数据进行解析以识别包含底数值x的数据字段。通常,底数值x是定义了乘法运算的代数结构(通常是有限结构)的成分。当执行求幂时,这个乘法运算也适用。
该系统还包括指数输入部110。这个输入部110按照与底数输入部108相似的方式获取数据。指数输入部110可以从与底数输入部108相同的数据源或者从不同的数据源获得它的输入。这取决于应用。例如,可以提供单独的密钥服务器,其不时地向指数输入部110发送更新的密钥。指数输入部110可以执行几个预处理步骤并且可以具有比在本说明书中描述的要多的功能。然而,指数输入部110基于它的输入生成关于指数的数据,并且将这个数据发送至指数识别装置104。
指数识别装置104被安排用于识别表示指数y的数据。可以在从指数输入部110和/或从一个或多个其它源112(这将在下文中进行更加详细的讨论)接收的数据中识别该数据。指数识别装置104还可以从识别的数据中提取指数y的实际值。例如,从指数识别装置104接收的数据可以以预定方式与从其它源112获得的数据进行组合。指数识别装置104被安排用于识别相对大的指数值y。这里假设:对于由底数识别装置102识别的底数值x,存在使xλ=1成立的值λ。指数识别装置104被安排用于识别大于值λ的指数值y。为此,可以提供足够大的存储位置以存储大指数值y。此外,通过允许从指数输入部110和/或其它源112 接收比λ大的指数y的值,识别装置104能够接收这种更大值。由于鉴于密码安全性而增大指数值是有利的,所以这些值y可以比λ大超过十倍。甚至识别的指数值y的比特长度可以比λ的比特长度大超过十倍。
由底数识别装置102识别的底数x和由指数识别装置104识别的指数y可以提供给求幂器106。这种求幂器可以计算底数值x的y次幂。可以以现有技术中已知的方法执行这个计算。例如,可以采用现有技术中已知的平方相乘算法以高效方式计算相对大指数值y的求幂。求幂器106还适合处理比λ大的指数值y。为了使求幂器106适合处理这些大的指数值,可以用更大的存储位置和/或可以采用特别适合计算大指数y的求幂的算法。求幂的结果(即xy的结果)被提供给后处理单元114,后处理单元114可以对求幂的结果进行附加处理。这种后处理单元114可以依赖于应用,并且准备从求幂器106获得的数据以用于系统中的进一步处理。例如,如果求幂的结果包括解密的多介质内容,则这种进一步处理可以包括在显示器和/或音频系统上呈现视频和/或音频内容。例如,后处理单元114可以将求幂运算的一个或多个结果安排成能够由系统的其余部分进行处理的格式以执行这种呈现。
在一实施例中,由指数识别装置104识别的数据可以表示一个或更多的值y1,...,ym,其中,m≥1,并且其中,求幂器被安排用于依赖于值y1,...,ym执行多个求幂,其中,这多个求幂形成计算x的y次幂的中间步骤。例如,该数据可以表示一个或更多指数y1,...,ym的序列,其中,m≥1,其中,该指数的序列的乘积 等于y。在这种情况下,求幂器可以至少通过两种不同方式进行求幂计算:首先,它可以首先计算乘积 以获得y,然后执行单个求幂xy以获得期望结果。在这种情况下,必须计算相对大指数值y的求幂。其次,它可以根据z1=x和 计算多个求幂。这得到zm+1=xy,而不实际计算大指数值的求幂。
在一实施例中,在底数输入部108中或者在系统的负责向底数输入部108提供数据的部分中,提供了用于通过将预定值g与值β相乘来计算x的装置。例如,预定值g可以取决于待解密的加密内容。这样一来,可以监视系统(尤其是单元102、104和106)的数据流的攻击者不 会看见值g。相似地,在后处理单元114或者在系统中的别处,可以提供将求幂的结果与β-y相乘的装置。这得到值β-y(βg)y=gy。因此,不在底数识别装置102、指数识别装置104和求幂器106暴露值g或gy,就可以计算gy
可以从对于特定装置和/或用户唯一或者对于一组装置和/或用户唯一的信息导出表示指数y的数据的至少一部分。例如,这种信息可以基于硬件标识符、用户标识符或者硬件特性(诸如处理器的时钟频率或者盘访问时间)。可以提供用于提供表示指数y的数据的至少一部分的装置112。装置112可被安排为访问存储有这种数据的存储位置并且将该数据提供给指数识别装置104。装置112还可以安排用于计算相关数据的哈希值并且将该哈希值提供给指数识别装置104。例如,该哈希值可以是待解密的某内容或者计算机程序代码的哈希值。这使得指数数据可以依赖于相对大的数据块(chunk)。装置112可以安排为例如经由发送至硬件装置(例如,硬盘或处理器)的控制命令来访问包括该硬件装置的硬件ID的存储位置。这使得在其它系统上成功地执行求幂更加困难,这是因为其它系统具有其它硬件标识符,这会导致在求幂中使用错误的指数y。
求幂运算是RSA解密和加密中的重要步骤。可以使用阐述的技术对这些步骤进行模糊化。此外,RSA中的密钥与指数值y紧密相关。阐述的技术允许使用更大值和/或使用多个值表达指数,这使得存储指数所需的比特的总数更大。此外,不知道密钥的攻击者很难发现更小并提供相同求幂结果的对应指数值。结果,可以与RSA和其它密码算法结合地使用包括更多数据比特的更大密钥。由于在RSA中解密密钥通常是最秘密的并且大尺寸是有利的密钥,所以有利地可在RSA解密系统中执行阐述的求幂运算。
阐述的技术可以被包括在消费电子装置(诸如PDA、音乐播放器、数字调谐器等)中。它们提供难以进行反向工程并且可以防止未授权复制和/或分发的数字版权管理技术。阐述的技术也可以用于交易处理、数字签名和其它密码处理和系统。
图2示出了执行具有模糊化的指数的求幂的方法。例如,响应于接收到加密的数据包或者响应于用户命令,该方法在步骤200中开始。在步骤202中,识别求幂运算的底数x。在步骤204中,识别表示指数y的数据。指数y大于使λ>0且xλ=1成立的值λ。在步骤206中,通过计算x的y次幂从而获得求幂的结果,来执行密码算法的至少一部分。该过程在步骤208中结束并且可以在步骤200开始进行重复,以处理新的底数值x。
图3示出了对用于密码处理的指数进行模糊化的方法。在步骤302中,可以识别密码处理的求幂运算的指数值a。例如,可使用现有技术中已知的密钥产生器来选择密码密钥。指数值a可以依赖于该密钥。例如,指数值a可以等于该密钥。
在步骤304中,建立对于代数结构的多个元素x使λ>0且xλ=1成立的值λ。xλ=1的多个元素x包括可用于加密的消息中的潜在值。为了实现能够得到支持的消息中的较大灵活性,可以建立对于代数结构的所有x,xλ=1为真的值λ,其中,该代数结构可以是模N乘法的集合{0,1,2,3,...,N-1}。可以以现有技术中已知的方法计算这个值λ。
在步骤306中,识别模糊化的指数y,其中,y=a+bλ,其中,b是正整数。例如,可以通过步骤302和304建立a和λ,并且b可以是从与模糊化的指数y的期望近似比特长度对应的值范围中随机选择的正整数。
在步骤308中,提供表示模糊化的指数y的信息。例如,将它与加密的内容一起存储在可移动介质上,或者经由数字网络将它发送至客户机装置。另外,表示底数值的信息(例如,加密的内容)可以提供给客户机装置。
在步骤310中,该处理终止。例如,当正在产生新的密钥时,该处理可以在步骤300重新开始。
可以建立一个或更多的值y1,...,ym,其中,m≥1,并且其中,值y1,...,ym使得通过执行依赖于值y1,...,ym的多次求幂而能够计算y次幂的求幂,其中,所述多次求幂形成计算x的y次幂的中间步骤。这样一来, 使用相对小的指数值y1,...,ym能够执行模糊化。例如,选择多个值y1,...,ym,其中,m≥1,其中,指数序列的乘积 等于y。表示模糊化的指数y的信息可以表示多个值y1,...,ym的至少一部分。在另一个例子中,提供了值y1,...,ym和z1,...,zm,其中, 
可以识别比特串s;以及选择b从而使得模糊化的指数y的比特表示包含比特串s。这将在下文中更加详细地解释。例如,它可用于强制将客户机装置的硬件标识符或者用户名或口令加入到特别为该客户机或用户准备的指数值中。
由于客户机的硬件标识符在客户机装置中是已知的并且用户可以提供用户名或口令,所以不需要向客户机装置发送与之对应的数据部分。因此,当发送表示指数值的信息时,可以省去比特串s。
在一实施例中,识别模糊化的指数y的步骤306包括建立λ的k倍,即kλ,并且基于kλ而非λ来确定y。例如,在高达kλ的范围内,在通过使用的密码术密码强加的约束内,随机选择y的值。在RSA的情况下,给定加密密钥e,通过通过求解e·d=1modλ可以找到解密密钥d。然而,在这个实施例中,λ被kλ代替,所以通过求解e·d=1modλ来找到解密密钥d。这导致更大的值d,它可以用作RSA中的指数y。
图4示出了对用于密码处理的指数y进行模糊化的系统。这种系统可以包括指数值识别装置402,用于识别密码处理的求幂运算的指数值a。该系统可以包括指数下限识别装置(未示出),用于识别对于要用于密码处理的多个元素x使λ>0且xλ=1成立的值λ。该系统可以包括模糊器404,用于建立模糊化的指数y,其中y=a+bλ,其中b是正整数。该系统还可以包括指数提供器406,用于向装置提供表示模糊化的指数y的信息。例如,这个指数提供器406可以将指数值y包括在发送至装置的数据流中。模糊器404可以安排为从密钥提供器408接收指数值a和/或值λ。例如,这个密钥提供器408可以包括用于保持每个用户或客户机装置的密钥的数据库。例如,该模糊器可以安排为从随机产生器410接收值b。
作为另一选择,还可以直接产生大指数并且从这个大指数和λ计算 a。
图5示出了适合实施作为软件程序的一个或更多个方法和系统的示例硬件架构。该程序包括可以存储在存储器506中的多个机器可读指令。在执行过程中,这些指令被加载到处理器502中并被执行。提供通信端口508,用于与服务器进行通信以例如交换表示指数和/或底数的数据。或者,可以从可移动介质510(例如,闪存或DVD盘)读取该数据或者将该数据写入可移动介质510。输入部504被安排用于从用户接收命令,例如用于启动和停止一个加密的内容的回放。这些命令可以触发本文阐述的一个或更多方法的开始。例如,可以提供显示器512和/或放大器(未示出),用于向用户提供关于程序的状态的反馈和/或用于向用户呈现解密的内容。
附图仅仅表示了本文阐述的系统和方法的可能的设计的略图。这些并非限制性的。例如,处理步骤可以不同地分布在多个模块和/或单元上,但仍然提供相同的功能。
考虑具有乘法运算(例如,RSA的环)的某代数结构G中的求幂xa。在这个求幂中,x可以是变量。为了简单,假设x可以是G的任何元素。本发明易于扩展至从G的子集获取x的情况。另外,对于所有的x∈G,令Ω使得xΩ=1。例如,如果G是一个群(对于RSA不是这种情况),则Ω能够被定义为群G的阶(order)。然后,对于任何整数b,求幂xa等同于求幂xa+bΩ
另外,对于任何m≥1,令值a1,a2,...,am对于某整数b满足 可以经由 计算xa
要注意,a1,a2,...,am不一定具有与a相同的比特长度。
可以选择a1,a2,...,am以使得存储指数a所需的比特长度从 增加至任何长度 这里, 如果从密钥导出a,则这意味着密钥可以放大到任何大小。然而,这不是增加指数和/或密钥的大小的唯一方式。
令α(a1,a2,...,am)为指定值a1,a2,...,am的比特串。可以恰当地选择值 a1,a2,...,am以使得任何预指定的串(例如,硬件或用户标识符)包括在α(a1,a2,...,am)中。
为了防止攻击者从软件程序提取关于xa的计算的知识,可以希望将该计算绑定至程序的其余部分,而不是将该计算作为孤立程序。优选的是,这种绑定涉及对求幂运算的输入和/或输出进行编码。这样一来,在嵌入求幂运算的应用的环境之外更加难以成功地应用求幂运算。另外,例如通过采用调试器监视求幂的输入和/或输出值推导有用信息变得更加困难。例如,按下面的方式,在这种意义上可将用于计算z=xa(或者,相似地, )的求幂例程绑定到周边程序。在周边程序中,针对某任意值β,计算β·x。求幂例程然后计算βa·z,而不是z。为了对此进行补偿,周边程序将求幂例程的结果与常数β-a相乘。与Chow等人的输入和输出编码相似,例如使用将乘法与另一个处理步骤进行组合的查找表,可以以模糊化的方式执行这些乘法。
不管m的值如何,上述性质都适用,即,它们对于任何x≥1都适用。
在下面,描述RSA的解密算法的白盒实现。尽管在本说明书中,最详细地解释RSA解密的例子,但是并不限于此。例如,公开的技术还可以按相似方式被应用于执行RSA加密。此外,这些技术可应用于其它密码算法,包括不同类型的加密、解密和数字签名应用。
RSA公钥密码定义用于密钥产生、加密和解密的几个处理。在下面对这些处理进行了总结。密钥产生可以包括以下步骤:
1.产生2个大的随机(且不同)的质数p和q,每个具有大致相同的大小。
2.计算n=p·q。
3.计算Φ=(p-1)·(q-1)。
4.选择随机整数e,1<e<Φ,使得gcd(e,Φ)=1。在这个说明中,gcd是指最大公约数。
5.计算唯一整数d,1<d<Φ,使得e·d=1modΦ。
6.公钥给出为:(n,e)。
7.私钥给出为:d。
加密可以包括以下步骤:
8.识别明文消息m。
9.将消息m表示为整数x,0≤x<n。
10.通过c=xe modn给出密文。
解密可以包括以下步骤:
11.识别密文消息c。
12.通过x=cdmodn给出整数x。
13.明文消息m是由x表示的消息。
给出以上步骤3中的Φ的定义,对于任何0≤x<n,xΦ=1modn。作为例子,假设Φ=(p-1)·(q-1)是1024比特的值。然后,指数d具有至多1024比特。使用Ω=Φ,指数d可以隐藏在任意大小K>1024的串中。首先,针对m=1的情况对此进行描述。接下来,描述m=2的情况。鉴于m=1和m=2的情况的描述,技术人员将清楚如何实现m>2的情况。
在m=1的情况下,条件 能够写成a1=d+bΩ。为了简单,定义y=a1。这意味着可以经由xymodn实现xdmodn。可以找到具有给定比特长度K的表示的y(其中,该表示不包括最高有效部分中的前导零并且K大于d的比特长度)。如果b满足 则值y是K比特值。
为了看到这点,观察通过b的该选择,指数d+bΩ满足2K-1≤d+bΩ≤2K-1。
于是,与值y=d+bΩ关联的二进制串包括K个比特。因此,指数d已经隐藏在更大的K比特串y中。
可以将任意比特串包括在y中。考虑预指定的l比特(l≤K-r)的串。这个串l可以包括在指定指数y的比特串中。令s为与我们想要包括的l比特的比特串关联的数。假设l=K-r。如果l<K-r,则一些任意比特可以被添加在例如该串之前和/或之后。
通过将r个零比特添加到s的最低有效侧而将s扩展至K比特值,可以从s获得值S,即,这r个零比特变成S的最低有效位。要注意,x<Ω时任何值S+x的二进制表示都可以以s的二进制串(即,我们希望包括的二进制串)开始。
定义结果,d+(b-1)Ω<S≤d+bΩ并且由此针对x<Ω,d+bΩ=S+x。于是,指数y=d+bΩ的二进制表示以二进制串s开始。
如果m=2,则条件能够写为a1·a2=d+bΩ。这意味着可以如下计算xdmodn。
首先,计算
接下来,计算。结果是xdmodn。
假设希望将a1和a2的总比特长度增加至任何K,其中。这可以通过选择满足的值a1和a2来实现。例如,这能够使用下面的步骤来完成。
选择a1作为满足gcd(a1,Ω)=1的任意K-r比特值。基于本说明,技术人员能够找到这样的值a1
计算满足a1·a2=dmodΩ的值a2。可以如下计算值a2。使用欧几里得算法,计算满足a1·c=1modΩ的值c。由于这样获得的值a1和a2满足a1·a2=dmodΩ,所以值a2可以计算为a2=c·dmodΩ。
值a1是K-r比特值并且a2可以是r比特值。于是,用于存储用于计算xdmodn的指数的存储需求已增加至K。
以上步骤描述了针对m=2的情况在更大的串中隐藏指数d的方法。
在一实施例中,预指定的比特串包括在白盒实现的指数中。定义α(a1,a2)作为将a1和a2转换成指定a1和a2的比特串的函数。α(a1,a2)的明显选择是简单连结与a1和a2关联的比特串的函数。在α(a1,a2)中,通过选择a1使之等于s,可以包括gcd(s,Ω)=1的、长度为K-r比特的比特串s。
可以将指数a隐藏在值a1,a2,...,am 中,其中,Ω满足xΩ=1modn。这样,可以将存储指数所需的存储空间从比特增加至比特。在一些应用中,优选的是,一旦得到K比特矢量 (a1,a2,...,am),攻击者难以减小这个K比特矢量的存储大小(例如,我们不希望攻击者提取潜在的k比特指数a)。通过说白盒实现是“抗压缩”来称呼这个性质。要注意,为了减小存储K比特矢量(a1,a2,...,am)所需的存储空间,找到值c·Ω(c≤b)就够了,这是因为(a+bΩ)mod(c·Ω)小于a+bΩ,但是功能等同。
希望找到具有较少比特的指数表示的攻击者除了K比特矢量(a1,a2,...,am)以外,还可以获得由他进行处置的附加信息。例如,考虑(a1,a2,...,am)用于隐藏RSA的秘密(解密)指数d的情况。然后,攻击者通常还访问公共(加密)指数e。这些值满足 
因此,基于上述内容,为了抗压缩,RSA白盒实现的期望性质如下:使得公共值e和私有值a1,a2,...,am满足 然后攻击者仍然很难找到c·Ω(c≤b)。
在更一般的设置中,在RSA的环境之外,可以观察到如下。
假设指数a隐藏在值a1,a2,...,am中(由此, )。另外,假设攻击者能够计算某函数f,其中f(a1,a2,...,am)=α·Ω。然后,为了抗压缩,攻击者很难从α·Ω导出值c·Ω(c≤b)是期望的性质。
要注意,在上述的RSA的例子中,可以通过 给出函数f。
返回一般设置,可以识别使攻击者可以导出这种值c·Ω(c≤b)的两种方法。
用于找到c·Ω的第一种方法如下。假设攻击者能够导出某值f(a1,a2,...,am)=α·Ω。现在,假设攻击者能够导出值β1和β2以使得
α·Ω=β1·β2          (1)
并且
β1|α                (2)
这将引起对于某值c,β2=c·Ω。如果值β1和β2现在使得c≤b,则β2是值c·Ω(c≤b)。即,β2能够用于找到指数
a ~ = ( a + bΩ ) mod ( c · Ω ) = a + b ~ Ω
其中, b ~ < b .
用于找到c·Ω(c≤b)的第二种方法如下。在第二种方法中,两个不同但功能等同的白盒实现 和 可用于找到值c·Ω(c≤b)。这些功能等同的白盒实现使得 并且  &Pi; i = 1 m a ^ i = a ^ = a + b 2 &Omega; .
分别针对某α1和α2向 和 应用函数f会得到值α1·Ω和α2·Ω。对于这两个值,对于某值c,gcd(α1·Ω,α1·Ω)=gcd(α1,α2)·Ω=c·Ω成立。如果c≤min(b1,b2),则获得了白盒实现的进一步减小。要注意,为了使攻击对于RSA例子有效,不应该存在满足b2=b1+ka的k。因此,通过将值α·Ω多次加到 不应该获得 
可以如下对抗上述的两种攻击方法。由于具有满足(1)和(2)的值β1和β2是攻击的基础,所以防止攻击者能够导出这些值。使得难于发现这些β1和β2的方法在于注意将α因数分解成质数只包含大的质数(优选的是,值α是质数)。此外,如果Ω的因数分解包含至少一个大的质数将是有利的。对于此,如果质数在密码方面安全,即,对所述大质数的大小强加的约束与对用于诸如RSA的密码算法的密码安全质数通常强加的约束类似,则该质数可被认为足够大。
更一般地,用于密码处理中的元素x可以是具有n个元素的代数结构的元素。例如在RSA中,指数y当用作解密器指数时可以对于值e满足e·y=1modn。在这种情况下,对于某值α,e·y-1=α·λ。攻击者可以发现这个值αλ。识别模糊化的指数y的步骤(306)可以包括选择满足以下条件的y:λ因数分解成质数至少包括一个大质数并且α因数分解成质数仅包括大质数。例如,这些大质数是足够大以防止在普通计算机系统上进行穷举搜索的质数,例如这些质数包括至少64比特。
应该明白,本发明还扩展至计算机程序,尤其是适于将本发明进行实践的载体上或载体中的计算机程序。该程序可以是源代码、目标代码的形式、例如部分编译形式的中间源码和目标代码、或者适用于根据本 发明的方法的实现的任何其它形式。还应该明白,这种程序可以具有许多不同的架构设计。例如,执行根据本发明的方法或系统的功能的程序代码可以细分成一个或更多个子例程。技术人员应该明白在这些子例程之间分布功能的许多不同方式。这些子例程可以一起存储在一个可执行文件中以形成完备的程序。这种可执行文件可以包括计算机可执行指令,例如处理器指令和/或解释器指令(例如,Java解释器指令)。或者,一个或多个或者所有的子例程可以存储在至少一个外部库文件中并且静态或者动态(例如,在运行时)与主程序链接。主程序包含对至少一个子例程的至少一个调用。另外,这些子例程可以包括对彼此的函数调用。与计算机程序产品相关的一个实施例包括与阐述的至少一个方法的各处理步骤对应的计算机可执行指令。这些指令可以细分成子例程和/或存储在可静态或动态链接的一个或更多文件中。与计算机程序产品相关的另一个实施例包括与阐述的至少一个系统和/或产品的各装置对应的计算机可执行指令。这些指令可以细分成子例程和/或存储在可静态或动态链接的一个或更多文件中。
计算机程序的载体可以是能够携带程序的任何实体或装置。例如,该载体可以包括存储介质,诸如ROM(例如,CD ROM或半导体ROM)或者磁记录介质(例如,软盘或硬盘)。另外,该载体可以是可传输载体(例如,电信号或光信号),其可以经由电缆或光缆或者通过无线电或其它手段传送。当程序实施在这种信号中时,载体可以由这种线缆或其它装置或手段组成。或者,该载体可以是嵌入了程序的集成电路,该集成电路适于执行相关方法或者适合用于相关方法的执行。
应该注意,上述的实施例例示而非限制本发明,并且在不脱离权利要求的范围的情况下本领域技术人员可以设计许多替代实施例。在权利要求中,在括号之间放置的任何标号不应该解释为限制权利要求。动词“包括”的使用及其结合并没有排除权利要求中陈述的元素或步骤以外的元素或步骤的存在。元素之前的冠词“a”或“an”并没有排除多个这种元素的存在。可以通过包括几个不同元件的硬件和通过适当编程的计算机执行本发明。在列举几个部件的装置权利要求中,可以通过同一个硬件 实施这些部件中的几个。仅在相互不同的从属权利要求中记载特定措施的事实并不是指示这些措施的组合不能够用于发挥良好作用。

Claims (9)

1.一种对指数进行模糊化的方法,包括:
针对在密码处理中要用作求幂的底数值的来自乘法群的多个元素                                                ,识别(304)使得,且 = 1 成立的值,其中a 是用作所述密码处理中的指数的密钥值;
识别比特串
识别(306)大于的模糊化的指数,其中对于正整数成立,其中模糊化的指数的比特表示包括所识别的比特串;以及
提供(308)表示用于所述密码处理中的模糊化的指数的信息,从而对攻击者隐藏所述密钥值
2.根据权利要求1所述的方法,其中表示所述模糊化的指数的所述信息省去所述比特串
3.根据前述权利要求中任一项所述的方法,其中所述比特串具有t 比特,t ≤ K – r,K是所述模糊化的指数的给定比特长度,且,且其中所述方法包括:
如果 t < K – r, 通过在所述比特串之前和/或之后添加任意比特来将所述比特串扩展为长度K – r 比特;
通过将个零比特添加到所述比特串的最低有效侧,从所述比特串获得值;以及
定义
4.根据权利要求1-2中任一项所述的方法,其中所述比特串代表:
(a) 用于执行所述密码处理的装置的标识符;或
(b) 用于执行所述密码处理的装置的用户的密码;或
(c) 用于执行所述密码处理的装置的用户的用户名。
5.根据权利要求1-2中任一项所述的方法,其中在所述密码处理中要用作求幂的底数值的所述多个元素均是所述乘法群的元素。
6.一种使用密钥值a执行密码处理的方法,所述方法包括:
接收(202)底数,所述底数是在密码处理中要用作求幂的底数值的来自乘法群的多个元素之一;
接收(204)表示用于所述密码处理中的模糊化的指数的一部分的数据;
将所接收的数据与识别的比特串进行组合从而获得模糊化的指数,其中对于密钥值a和正整数,其中,其中对于所述多个元素的所有元素x,l>0 且 xl = 1,且其中所述模糊化的指数的比特表示包括所述识别的比特串,从而对攻击者隐藏所述密钥值;以及
通过计算xy执行(206)至少部分所述密码处理。
7.根据权利要求6所述的方法,其中所述比特串代表:
(a) 用于执行所述密码处理的装置的标识符;或
(b) 用于执行所述密码处理的装置的用户的密码;或
(c) 用于执行所述密码处理的装置的用户的用户名。
8.根据权利要求6或7所述的方法,其中在所述密码处理中要用作求幂的底数值的所述多个元素均是所述乘法群的元素。
9.一种系统,设置用来执行前述权利要求中任一项所述的方法。
CN200980124757.9A 2008-05-07 2009-05-05 指数模糊 Expired - Fee Related CN102099780B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
EP08155798.5 2008-05-07
EP08155798 2008-05-07
PCT/IB2009/051837 WO2009136361A1 (en) 2008-05-07 2009-05-05 Exponent obfuscation

Publications (2)

Publication Number Publication Date
CN102099780A CN102099780A (zh) 2011-06-15
CN102099780B true CN102099780B (zh) 2015-08-12

Family

ID=40745816

Family Applications (1)

Application Number Title Priority Date Filing Date
CN200980124757.9A Expired - Fee Related CN102099780B (zh) 2008-05-07 2009-05-05 指数模糊

Country Status (7)

Country Link
US (1) US8600047B2 (zh)
EP (2) EP2669789A3 (zh)
JP (2) JP2011520150A (zh)
KR (1) KR20110014630A (zh)
CN (1) CN102099780B (zh)
CA (1) CA2736898A1 (zh)
WO (1) WO2009136361A1 (zh)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9710623B2 (en) 2008-03-05 2017-07-18 Irdeto B.V. Cryptographic system
US20100150343A1 (en) * 2008-12-15 2010-06-17 Nxp B.V. System and method for encrypting data based on cyclic groups
US9641337B2 (en) * 2014-04-28 2017-05-02 Nxp B.V. Interface compatible approach for gluing white-box implementation to surrounding program
US10235506B2 (en) 2015-05-05 2019-03-19 Nxp B.V. White-box modular exponentiation
US10089500B2 (en) * 2015-09-25 2018-10-02 Intel Corporation Secure modular exponentiation processors, methods, systems, and instructions
KR101933649B1 (ko) * 2016-05-27 2018-12-28 삼성에스디에스 주식회사 화이트박스 암호 알고리즘을 이용한 공개키 암호화를 위한 장치 및 방법
US10270598B2 (en) 2016-08-26 2019-04-23 Intel Corporation Secure elliptic curve cryptography instructions
FR3063857B1 (fr) * 2017-03-08 2020-02-14 Safran Identity & Security Procede de signature electronique d'un document avec une cle secrete predeterminee
US11895230B2 (en) * 2019-01-24 2024-02-06 Nec Corporation Information processing apparatus, secure computation method, and program
TW202324967A (zh) * 2021-11-03 2023-06-16 美商艾銳勢企業有限責任公司 用大整數值進行編碼的白箱處理

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5991415A (en) * 1997-05-12 1999-11-23 Yeda Research And Development Co. Ltd. At The Weizmann Institute Of Science Method and apparatus for protecting public key schemes from timing and fault attacks

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE69218961T2 (de) * 1991-11-05 1997-07-24 Thomson Multimedia Sa Verfahren, sende- und empfangseinrichtung zum modulobetrieb
JP2570136B2 (ja) * 1993-10-28 1997-01-08 日本電気株式会社 鍵生成装置
US6304658B1 (en) * 1998-01-02 2001-10-16 Cryptography Research, Inc. Leak-resistant cryptographic method and apparatus
CN1227859C (zh) 1998-06-25 2005-11-16 皇家菲利浦电子有限公司 同步数据流发生器、生成数据流的方法、加密器站、解密器站及消费电子装置
FR2800478B1 (fr) 1999-10-28 2001-11-30 Bull Cp8 Procede de securisation d'un ensemble electronique de cryptographie a base d'exponentiation modulaire contre les attaques par analyse physique
DE10042234C2 (de) 2000-08-28 2002-06-20 Infineon Technologies Ag Verfahren und Vorrichtung zum Durchführen einer modularen Exponentiation in einem kryptographischen Prozessor
FR2818846B1 (fr) * 2000-12-22 2004-03-05 Gemplus Card Int Procede de contre-mesure dans un composant electronique mettant en oeuvre un algorithme de cryptographie
JP2004004341A (ja) 2002-05-31 2004-01-08 Toshiba Corp べき乗剰余計算装置、べき乗剰余計算方法及びプログラム
DE10304451B3 (de) * 2003-02-04 2004-09-02 Infineon Technologies Ag Modulare Exponentiation mit randomisiertem Exponenten
WO2007105126A2 (en) * 2006-03-10 2007-09-20 Koninklijke Philips Electronics N.V. Method and system for obfuscating a cryptographic function

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5991415A (en) * 1997-05-12 1999-11-23 Yeda Research And Development Co. Ltd. At The Weizmann Institute Of Science Method and apparatus for protecting public key schemes from timing and fault attacks

Also Published As

Publication number Publication date
US8600047B2 (en) 2013-12-03
CN102099780A (zh) 2011-06-15
WO2009136361A1 (en) 2009-11-12
KR20110014630A (ko) 2011-02-11
JP2011520150A (ja) 2011-07-14
CA2736898A1 (en) 2009-11-12
JP2014207717A (ja) 2014-10-30
EP2286330A1 (en) 2011-02-23
EP2669789A3 (en) 2014-06-25
US20110064215A1 (en) 2011-03-17
EP2669789A2 (en) 2013-12-04

Similar Documents

Publication Publication Date Title
CN102099780B (zh) 指数模糊
US12101415B2 (en) Method of RSA signature or decryption protected using a homomorphic encryption
US8670559B2 (en) White-box implementation
US11689353B2 (en) Tweakable block ciphers for secure data encryption
KR101639587B1 (ko) 암호 시스템
US9025765B2 (en) Data security
EP2225846B1 (en) Method to generate a private key in a Boneh-Franklin scheme

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
ASS Succession or assignment of patent right

Owner name: IRDETO B.V.

Free format text: FORMER OWNER: IRDETO BV

Effective date: 20150108

C41 Transfer of patent application or patent right or utility model
TA01 Transfer of patent application right

Effective date of registration: 20150108

Address after: Holland Hoofddorp

Applicant after: Irdeto B.V.

Address before: Holland Hoofddorp

Applicant before: Irdeto Corporate B. V.

C14 Grant of patent or utility model
GR01 Patent grant
C56 Change in the name or address of the patentee

Owner name: IRDETO B. V.

Free format text: FORMER NAME: IRDETO B.V.

CP01 Change in the name or title of a patent holder

Address after: Holland Hoofddorp

Patentee after: Ai Dide Technology Co., Ltd.

Address before: Holland Hoofddorp

Patentee before: Irdeto B.V.

CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20150812

Termination date: 20180505