CN102067080A - 白盒实现 - Google Patents

白盒实现 Download PDF

Info

Publication number
CN102067080A
CN102067080A CN2009801149843A CN200980114984A CN102067080A CN 102067080 A CN102067080 A CN 102067080A CN 2009801149843 A CN2009801149843 A CN 2009801149843A CN 200980114984 A CN200980114984 A CN 200980114984A CN 102067080 A CN102067080 A CN 102067080A
Authority
CN
China
Prior art keywords
value
equipment
exponentiation
values
index
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.)
Granted
Application number
CN2009801149843A
Other languages
English (en)
Other versions
CN102067080B (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
Irdeto BV
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 Irdeto BV filed Critical Irdeto BV
Publication of CN102067080A publication Critical patent/CN102067080A/zh
Application granted granted Critical
Publication of CN102067080B publication Critical patent/CN102067080B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

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/14Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using a plurality of keys or algorithms
    • H04L9/16Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using a plurality of keys or algorithms the keys or algorithms being changed during operation
    • 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
    • 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/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Pure & Applied Mathematics (AREA)
  • Computing Systems (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Physics (AREA)
  • General Engineering & Computer Science (AREA)
  • Storage Device Security (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
  • Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Image Generation (AREA)

Abstract

一种使得设备能够计算具有底C和/或指数x的求幂Cx的结果的系统(200),该系统包括用于建立多个值λi的装置;用于建立满足的多个值ωi的装置(202),用于建立满足值的和等于x的多个值的装置(204);以及用于给设备提供所述多个值的输出端。设备(250)计算求幂Cx的结果。该设备包括用于计算值ωi幂的乘积的装置(252)。该设备使用该乘积作为求幂Cx的结果。

Description

白盒实现
技术领域
本发明涉及使得实体能够计算求幂的结果的方法。
背景技术
因特网为用户提供方便的对数字内容的访问。由于通过因特网向消费者提供内容的灵活性,当前趋势是为消费电子(CE)产品配备访问因特网以获取要呈现的媒体内容的能力。这样的CE产品包括,但不限于,数字机顶盒、数字TV、游戏控制台、PC,以及,越来越多地,诸如PDA、移动电话之类的手持式设备以及诸如便携式MP3播放器之类的移动存储器和呈现设备。因特网不是用于分发数字内容的唯一媒体。还广泛地使用其他数字内容分发渠道,例如,使用通过卫星、陆地经空(terrestrial air)、和/或有线电视网的数字视频广播(DVB)和数字音频广播(DAB)。因特网及其他数字分发媒体对于享有版权的内容的使用产生了对保护内容提供商的利益的安全的挑战。尤其是,期望具有可以用来保证(warrant)内容提供商的版权和商业模式的技术手段。越来越多地使用被加载了合适的软件的处理器来操作CE平台。这样的软件可以包括用于呈现(回放)诸如音频和/或视频之类的数字内容的功能的主要部分。对回放软件的控制是实施内容拥有者的利益的一种方式,包括可以使用内容的条款及条件。传统上,许多CE平台(除PC和PDA外)是封闭的,现今越来越多的平台至少部分地是开放的,允许计算机程序员检查软件以及对软件进行修改。在这样的开放系统(包括个人计算机)中,可以假设某些用户具有对提供对内容的访问的硬件和软件的完全控制。此外,某些用户可以具有大量的时间和资源来攻击并绕过任何内容保护机制。结果,内容提供商必须跨其中不是所有的用户或设备都能够被信任的团体的怀恶意的网络来将内容递送给合法用户。
通常,数字权限管理(digital rights management)系统使用基于根据密钥来处理数据流的块密码(block cipher)的加密技术。可以由接收器使用同一个密钥或者另一密钥来解密这样的内容。可以使这样的密码在消费电子产品中的实现模糊,以使得攻击者更难以找到密钥的值。通常用于许多不同种类的应用中的密码的示例有DES、AES、RSA,以及WO9967918中所公开的方法。
被设计为使得特定关键的数据对这样的用户隐藏的软件应用被称作“白盒实现”。具体而言,白盒实现可以被以这样的方式设计,即,使攻击者更加难以了解软件应用中所使用的密码密钥的值。通常,白盒实现也试图对具有对执行环境的完全控制(例如,通过使用调试器)的用户隐藏诸如密码密钥之类的数据。
关于密钥处理,为进行回放,媒体播放器必须从许可证(license)数据库取得解密密钥。然后,它必须将此解密密钥存储在存储器中某处,以用于解密被加密的内容。这给攻击者留下攻击密钥的两个选择。首先,对许可证数据库访问功能的反向工程可能导致黑盒软件(即,攻击者不必理解软件功能的内部工作),允许攻击者从所有许可证数据库取得资产密钥(asset key)。其次,通过观察在内容解密过程中对存储器的访问,可以取得该资产密钥。在两种情况下,密钥都被视为被泄密。
Stanley Chow、Philip Eisen、Harold Johnson以及Paul C.VanOorschot所著的“White-Box Cryptography and an AESImplementation”(Selected Areas in Cryptography:9th AnnualInternational Workshop,SAC 2002,St.John′s,Newfoundland,Canada,August 15-16,2002),以及Stanley Chow、Phil Eisen、HaroldJohnson以及Paul C.van Oorschot所著的在“A White-Box DESImplementation for DRM Applications”(Digital Rights Management:ACM CCS-9 Workshop,DRM 2002,Washington,DC,USA,November 18,2002)(下面,这两个出版物将统称为“Chow”),公开了这样的方法,其意图通过以下的组合来隐藏密钥:利用表示构成(composition)而非各单个步骤的随机双射来对其表进行编码,以及通过将密码边界进一步推到包含应用程序中来扩展密码边界。
Chow中所公开的技术使得能够在软件中执行密码操作而不将密码密钥暴露给能够完全调试软件的人。在Chow的方法中,通过使用查询表而不是数学运算,来隐藏密码密钥,结果,不必象那样存储数学运算的操作数。可以使用随机双射来将这些表编码,以进一步使它们模糊。对一个表的编码可以通过对另一表的编码来撤消,或者也可以在程序中的别处撤消。然而,并非所有的运算都容易通过查询表来表示。
发明内容
能够为较宽的范围的算法创建白盒实现是有利的。为更好地解决此问题,在本发明的第一方面,呈现了用于使得设备能够计算具有底C和指数x的求幂Cx的结果的方法,该方法包括:
建立(102)该求幂的底C和该求幂的指数x;
建立(104)多个值λi,i=1,2,...,r,其中r是整数且r≥2;
建立(106)满足
Figure BPA00001250579000031
的多个值ωi,i=1,2,...,r;
建立(108)满足
Figure BPA00001250579000032
的多个值
Figure BPA00001250579000033
i=1,2,...,r;
给所述设备提供(110)表示所述多个值ωi的信息;
给所述设备提供(112)表示所述多个值的信息;
通过所述设备计算(114)
由于P=Cx,因此该方法使得设备能够计算求幂Cx的结果,而不会使设备能够获知该求幂的底C和/或该求幂的指数x。这允许在不受信任的实体(设备)上进行求幂,而不会将底或指数暴露给有能力完全检查或调试该实体的攻击者。底和指数不会暴露给攻击者,因为底和指数从未被以明文格式提供给实体。虽然提供给实体的信息足以计算求幂的结果,但是,难以或不可能从此信息计算出底和/或指数。只需给实体提供值ωi
Figure BPA00001250579000036
这些值足以计算求幂的结果。然而,从这些值难以知道C的值,这是因为,要求出C,必须知道ωi和λi的值。也难以知道x的值,这是因为,要求出x,必须知道
Figure BPA00001250579000041
和λi的值。因此,如果多个值λi被保持是秘密的,则难以求出C或者x。即使C为攻击者所知,仍难以获悉x,因为为此攻击者需要计算x=c log P,或λic log ωi,i=1,2,...,r,并且,取决于参数和代数结构是如何选择的,可以相信,这些对数难以计算。例如,如果C是高阶的循环群(cyclic group)的生成器,则C logP被认为是难以计算的。求幂可以用于,例如,包括加密/解密算法以及数字签名创建和/或验证的密码算法中。
在一个实施例中,其中,建立多个值λi的步骤包括建立要用作指数x的值的集合V,以及建立值的多个集合W1,W2,...,Wr,以使得建立多个值
Figure BPA00001250579000044
的步骤可以包括选择值
Figure BPA00001250579000045
以使得
Figure BPA00001250579000046
i=1,2,...,r。该方法包括执行以下步骤:建立所述多个值
Figure BPA00001250579000047
给设备提供表示所述多个值
Figure BPA00001250579000048
的信息,以及通过该设备对于多个不同的值x∈V,计算
此实施例允许对于相同底值C以有效率的方式有效地使用不同的x值。此实施例中的选择值λi的方式允许使用来自集合V的任何指数x,而不改变λi。因此,ωi的值保持不变,并且不需要重新计算它们。这节约了计算资源。
在特别有效的实施例中,Wi={0,1},i=1,2,...,r。这样的二进制表示允许有效率且容易的实现。这允许有效率地确定
Figure BPA000012505790000410
的值。
在独立的权利要求中定义了本发明的其他有利的方面。从属权利要求进一步定义了有利的实施例。
附图说明
下面将参考附图进一步阐明和描述本发明的这些及其他方面,在附图中,
图1是示出了使得设备能够计算求幂的方法的处理步骤的流程图;
图2是示出了数据流和对数据进行操作的处理装置的图;
图3是示出了密钥生成的方法的流程图;
图4是示出了消息加密的方法的流程图;
图5是示出了对密文进行解密的方法的流程图;
图6是示出了对求幂
Figure BPA00001250579000051
进行白盒化的方法的流程图;
图7是示出了对求幂
Figure BPA00001250579000052
进行白盒化的方法的流程图;
图8是示出了获得加密算法的白盒实现的方法的流程图;
图9是示出了获得解密算法的白盒实现的方法的流程图;以及
图10示出了一实施例。
具体实施方式
白盒密码是非常适合用于密码算法的白盒实现(即,攻击者难以提取所使用的密码密钥的软件实现)的块密码。已知对于诸如AES和3DES之类的对称块密码,存在这样的白盒实现。然而,这对于诸如RSA和ElGamal之类的白盒非对称密码也是有意义的。非对称密码中的典型运算是求幂yx,其中,y和x都可以是变量以及常量。在某些块密码中,底y或多或少是恒定的,而指数x更经常地变化。当对这样的块密码(或者,更一般而言,算法)进行白盒化时,如果指数x可以有效地改变,这是有利的。此外,如果提供yx的其中可以隐藏x的值的实现,这将是有利的。在本文中,提供了具有这些优点的对块密码(或者,更一般而言,算法)进行白盒化的方法。
可以使此处呈现的白盒实现比求幂的标准实现大。此外,攻击者难以使该实现较小。此性质对于防止软件实现的非授权复制或分发是有利的。
WO 2007/105126公开了用于在诸如AES和DES之类的对称块密码的白盒实现中包含给定二进制串的方法和系统。该串的包含可以用来将所述实现绑定到平台或对所述实现加可用于法庭的水印。如本发明所描述的白盒实现允许将给定二进制串包括到求幂运算的实现中。
作为白盒实现的优点,Chow等人提及,可以有效地将白盒实现绑定到程序的其余部分。更确切地说,通过将外部编码应用到算法的输入值和/或输出值,防止了攻击者可以容易地从软件程序理解和/或提取完整的白盒实现。此外,如本说明书中所公开的,还可以将此技术应用于求幂的白盒实现。
在本说明书中,公开了用于隐藏例如求幂yx中的值x的方法。此处,y可以是恒定的,x可以是可变的,然而,这不是限制。值x保持隐藏,即使对于那些对执行求幂的程序的实现具有完全控制和完全访问权的攻击者也是如此。
图1是示出了根据使得设备能够计算具有底C和/或指数x的求幂Cx的结果的方法的处理步骤的流程图。图2是示出数据流和对这些数据进行操作的实体和处理装置的图。还将参考图2描述图1的方法。例如,可以在实体200内实现使得实体250能够计算具有底C和/或指数x的求幂Cx的结果的方法。优选地,实体200通过实体250经由诸如因特网之类的数字通信网,或通过有线、无线、和/或卫星利用数字通信,来进行通信。替代地,通过例如,诸如CD、DVD、闪存USB棒等可移动介质,来分发数字消息。实体200可以是向一个或多个实体250提供服务的系统。这样的系统可以是单个服务器计算机。然而,实体200可以是包括各种计算机和/或设备的系统。实体200还可以在与对等(peer)实体250进行通信的对等设备上实现,其中,这些对等者希望以安全的方式交换信息。实体250可以是设备或适于在设备上执行的软件应用程序。这样的设备可以是个人计算机(PC)、膝上型计算机、个人数字助理(PDA)、机顶盒、数字视频记录器、或游戏控制台等等。合适的应用程序包括能够执行安全事务的软件、网络浏览器、以及媒体播放器。实体250可以被布置用于处理多媒体内容,例如,音频和/或视频内容。实体250可以包括用于使用在本文件中所公开的求幂来解密音频和/或视频内容的密码单元。实体250还可以被布置用于或者替代地被布置用于执行诸如对消息加指纹或签名之类的其他种类的密码操作。
该方法包括建立求幂的底C和求幂的指数x的步骤102。这些值C和x可以从该方法所应用的上下文得出。例如,C和x可以取决于该算法中所使用的密码算法和/或密钥的细节。特别是,在非对称密钥密码算法中,求幂通常扮演着重要的角色。C和x的值可以从数据库中取得,或者可以从存储在数据库中的数据导出,例如,存储在数据库中的用户的密钥可以形成用于计算C和/或x的输入。此外,C和/或x的值可以是固定的,而在其他情况下,C和/或x可以是可变的。C和/或x的值可以存储在实体200中的存储器中。
该方法包括步骤104,其建立多个值λi,i=1,2,...,r,其中r是整数,且r≥2。这些值λi稍后在该方法中用于使C和x的值模糊。可以随机地从预定集中选择这些值。此外,可以随机地选择值的数目r,尽管可以通过选择较大的值r来提高安全性。多个值λi可以至少临时地存储在实体200的存储器中。
该方法包括步骤106,其建立满足的多个值ωi,i=1,2,...,r。如此,这些值ωi取决于值λi和C。可以通过本领域中已知的求幂来计算它们。这样的求幂运算可以在实体200的计算单元202中实现,计算单元202可以包括例如计算机程序指令和/或电子电路。
该方法包括步骤108,其建立满足
Figure BPA00001250579000072
的多个值
Figure BPA00001250579000073
i=1,2,...,r。如此,这些值
Figure BPA00001250579000074
取决于值λi和x。可以例如通过使用高斯消去法或本领域中已知的求解线性方程组的另一方法来计算它们。此方法步骤可以在实体200的另一计算单元204中实现。
该方法包括给实体250提供表示所述多个值ωi的信息的步骤110。该方法包括给实体250提供表示所述多个值的信息的步骤112。在步骤110和112中,可以采用上面所提及的通信链路和/或可移动介质。替代地,可以通过实体250中的硬编码(hard-coding)来提供这些值中的一些。例如,如果实体250是设备,则值ωi可以在制造过程中存储在设备的只读存储器中。如果值应该不时地替换,则可以将值存储在例如固件中。在软件应用中也可以将值ωi硬编码。值
Figure BPA00001250579000076
还可以(半)永久地存储在实体250中,然而,在许多应用中,x非常频繁地变化(例如,取决于要传输的消息),在这样的情况下,通过网络传输这些值并将它们存储在实体250中的随机存取存储器中可能是更加有效率的。
该方法包括通过实体250来计算
Figure BPA00001250579000081
的步骤114。此步骤在实体250中实现,并替代设备中的Cx的计算。由于C和x在步骤114中没有暴露,因此,实体250能够计算Cx的值,而无需知道C和/或x。此步骤114在计算单元252中实现。计算单元252可以包括用于执行步骤114的软件模块或电子电路。
该方法可以,例如,与固定的C和可变的x一起使用。为此,建立多个值λi的步骤104可以包括建立要用作指数x的值的集合V,以及建立值的多个集合W1,W2...,Wr,以使得
Figure BPA00001250579000082
建立多个值
Figure BPA00001250579000083
的步骤108可以包括选择值
Figure BPA00001250579000084
以使得
Figure BPA00001250579000085
i=1,2,...,r。为使用不同值的x∈V,对于这些不同值的x∈V,执行下列步骤:建立所述多个值
Figure BPA00001250579000086
的步骤108;给设备提供表示所述多个值的信息的步骤112;以及对于多个不同的值x∈V,通过该设备计算P的步骤114。由于
Figure BPA00001250579000088
因此可以通过适当地选择
Figure BPA00001250579000089
以使得
Figure BPA000012505790000810
来表示任何值x∈V,。
优选地,C是乘法群G的元素,其中,C是q阶的,这意味着,q是使得Cq=1的最小的正整数。此外,优选地,选择C和G以使得q足够大。特别是,如果q使C log x的计算足够难以计算,则它是足够大的。在确定足够难以计算的程度时,应该考虑攻击者可用的计算资源的量。例如,q是1024比特的数,例如,q>21023
在一个实施例中,wi={0,1},i=1,2,...,r。这是可以使该方法特别易于实现和/或更有效率的二进制解决方案,例如,因为更加容易求出的适当的值。
在一个实施例中,建立密码的密钥,例如,通过随机生成或通过从数据库中取得密钥,并且该密钥应该由实体250使用。然而,不希望给予实体250以显式知道密钥。该方法包括,实体200根据该密钥建立底C,并计算和提供ωi的适当的值。消息被加密,并且消息(实体250需要计算Cx以解密该消息)中的指数x的任何出现被替换为
Figure BPA00001250579000091
的适当的值。将所得到的加密的消息提供给实体250。这允许实体250在密码的求幂运算中使用底C和指数x,而没有获知密钥,尤其是,没有知悉C的值。
可以存在多个应该利用相同的底C和相同的指数x执行求幂Cx的实体250。然而,每一不同的实体250只能处理意图用于该特定实体250的数据也可以是所希望的。此外,每一实体250可通过包括在或存储在该实体250中的软件代码和/或数据来唯一地标识也可以是所希望的。为此,该方法还可以进一步包括选择不同的多个值λi和/或不同的值r。这些不同的多个值可以就不同的设备来使用,但是利用相同的C和x的值。
实体250具有输入端(例如,通过所述通信链路或可移动介质),用于接收表示所述多个值ωi中的至少一部分的信息和/或表示所述多个值
Figure BPA00001250579000092
中的至少一部分的信息。这些多个值中的一部分或全部可以存储在实体250中,例如,通过一次性配置过程或通过制造时的硬连线。
所述多个值ωi
Figure BPA00001250579000093
中的没有预先存储在实体250中的部分可以由实体200来提供。替代地,值ωi中的部分或全部由值提供部254来提供。值提供部254访问例如设备的硬件标识符、生物特征度量、和/或由用户输入的密码。然后,值提供部254直接地或者在执行对数据的转换之后,使用所得到的数据作为值ωi中的一部分或全部。
实体250可以包括用于根据非对称密码执行密码操作的密码单元,其中,所述密码操作涉及求幂Cx,其中,用于执行密码操作的装置被布置来使用P作为所述求幂Cx的结果。
实体250可以具有被布置用于从实体200接收表示所述多个值ωi中的至少一部分和/或所述多个值
Figure BPA00001250579000096
中的至少一部分的加密的信息的输入端。在该情况下,提供密码单元以用于对所述加密的信息进行解密,以分别获得所述多个值ωi中的至少一部分和/或所述多个值
Figure BPA00001250579000097
中的至少一部分。
图10示出了可以充当实体250的硬件单元的框图。该图示出了处理器1002、存储器1006,存储器1006能够存储包括用于使处理器1002执行至少一个此处所公开的方法的指令的计算机程序产品。该单元包括用户输入端1004(例如,按钮、触摸屏、或遥控装置)和显示器1012,以提供用户交互所需的工具,所述交互例如,启动被使用数字权限管理保护的电影,或编写和传输加密的和/或经过数字签名的电子邮件消息。显示器1012也可以(与音频扬声器相结合地)用来播放视频。通信端口1008连接到如上文所讨论的数字网络,和/或提供可移动介质1010的读取器/写入器。
也可以使用类似的硬件方案来实现实体200。此附图仅是用于实体200或者250的合适的硬件体系结构的示例,其他体系结构也可以同样适用。实体200可以是包括多个服务器的服务器系统,其中,每一服务器都可以具有类似于图10的体系结构。密钥生成(导致底C)和消息加密(导致指数x)发生在实体200的服务器系统的不同的服务器上也并不罕见。在其上生成密钥和/或底C的同一个服务器上计算ωi的值也能够是可行的。同样,在其上加密消息和/或在其上生成指数x的同一个服务器上计算值也能够是可行的。例如,可以在其值需要最不频繁更新的服务器上:生成密钥和/或底C的服务器上,执行λi的值的生成。然而,也可以将若干任务在一台或多台计算机上以任何方式进行划分。
设H是具有阶n的群,但是本发明不限于群。设C∈H是来自该群的元素,而x是整数的子集V上的变量。下面示出了在计算以下值时如何隐藏C和/或x的准确值以使其免于白盒攻击:
Cx。                            (1)
设λ1,λ2,...,λr是整数值集合,并设W1,W2,...,Wr是整数集。此外,设这些值以下列方式跨(span)V:
V ⊆ { Σ i = 1 r λ i · w i | ( w 1 , w 2 , · · · , w r ) ∈ W 1 × W 2 × . . . × W r }.
此外,对于来自V的元素v,定义fi(v)为因子wi,λi可以与该因子相乘来获得v,即,
Figure BPA00001250579000103
对于每一个i,1<=i<=r,定义
Figure BPA00001250579000111
然后,可以如下计算(1)
Figure BPA00001250579000112
注意,如果Cx以此方式实现,则该实现使用f(x)=(f1(x),f2(x),...,fr(x))作为输入代替x。即,输入x被编码。换言之,输入f(x)表示x,但是,难以从f(x)导出x的实际值。通过向白盒实现提供f(x)和ωi,使得白盒实现能够利用公式(2)计算Cx。由于不需要显式地提供x,因此x的值可以对于白盒实现的攻击者保持隐藏。
可以看出,如果值λi对攻击者来说是未知的,那么,攻击者可能难以导出值C和x。此外,如果值λi是未知的而C是已知的,那么,仍难以导出x,尤其是,如果选择H和/或C以使得难以计算C logP的话。例如,如果H是足够大的循环群,并且如果C是此群的生成器,则难以计算对数C logP。如果C的阶足够大,则也难以计算该对数,其中,C的阶是Cq=1的最小正整数q。难以计算该对数的其他情况对本领域技术人员将是显而易见的,并且该性质可以用来有利地应用根据此处所呈现的方法的求幂。
除隐藏(1)中的x的准确值之外,所提出的求幂的白盒实现具有如下的性质:它允许将二进制串包括到参数中。例如,通过改变值λi,值ωi也改变。可以利用此性质来将特定二进制串(要从例如硬件标识符或计算机可执行代码的一部分导出)包括在值ωi中的至少一个中。这将允许如下的白盒实现,其中,只有一些ωi被提供到该白盒实现,例如,通过安全服务器,并且通过该白盒实现,从执行环境中提取至少一个ωi的至少一部分。这将允许提供如下的ωi的集合,所述ωi只能由目标执行环境使用并且在所述ωi所意图用于的执行环境外面无用。
此外,可以通过让周围程序(surrounding program)接收已经对于某些λ′1,λ′2,...,λ′t根据函数f′转换了的值f′(x),来将求幂运算的白盒实现绑定到所述周围程序。然后,所述周围程序基于值λ1,λ2,...,λr(t不必等于r),将接收到的值f′(x)转换为相应的f(x),并基于后者的值f(x)执行求幂运算。更一般而言,到白盒实现的输入可以包括x的某个编码的版本g(x),其中,在应用求幂之前,白盒实现将g(x)转换为f(x)。于是,为了获得有关指数x和/或底C的信息,攻击者不仅需要该白盒实现,而且还需要此转换。还可以通过将一个或多个值ωi乘以某个秘密的值并通过在程序中的其它地方撤消此操作,来将白盒实现绑定到周围程序。
下面,将公开详细的实施例。此实施例基于ElGamal公钥密码的泛化。ElGamal公钥密码在本领域中是已知的。简要地,可以将其描述如下。
密钥生成:
利用生成器α来选择阶n的循环群G。这样的群的一个示例是整数对大素数p取模的乘法群。
选择随机整数a,1≤a≤n-1,并计算群元素αa
公钥:α,αa
私钥:a
消息m∈G的加密:
选择随机整数k,1≤k≤n-1,并计算群元素γ=αk和δ=m·(αa)k
由(γ,δ)给出密文。
密文(γ,δ)的解密:
计算γ-a
消息m由γ-a·δ给出,这是由于γ-a·δ=(αk)-a·m·(αa)k=m。
图3-5示出了本发明的实施例。这些附图示出了非对称密码的白盒实现。更具体而言,它示出了ElGamal公钥密码的泛化的白盒实现。然而,该实施例仅作为示例提供。本发明并不仅限于ElGamal或者非对称密码。如所指出的,在该实施例中,公开了ElGamal的泛化的白盒实现。然而,此泛化并不必然影响密码的黑盒安全性,即,密码被认为是至少与原始ElGamal块密码一样安全。泛化的ElGamal密码被定义如下。
密钥生成(图3中的步骤300):
利用生成器α选择阶n的循环群G(步骤302)。
选择随机整数a,1≤a≤n-1,并计算群元素αa(步骤304)。
选择从G到{0,1,2,...,n-1}的函数g(步骤306)。为了使得能够实现强的白盒实现,函数g不必是双射的,但是优选其范围(range)应该是大的。
公钥:α,αa,g
私钥:a
在步骤308中存储公钥和私钥。
消息m∈G的加密(图4中的步骤400):
选择随机整数k1,1≤k1≤n-1,并计算群元素
Figure BPA00001250579000131
(步骤402)。
定义k2=g(γ)(步骤404)。如果k2=0,那么,选择不同的k1(步骤406)。
计算群元素
Figure BPA00001250579000132
(步骤408)。
由(γ,δ)给出密文(步骤410)。
密文(γ,δ)的解密(图5中的500):
计算k2=g(γ)。(步骤502)
计算γ-a
Figure BPA00001250579000133
(分别是步骤504和506)。
消息m由
Figure BPA00001250579000134
给出(步骤508)。
可以导出其中值k2被隐藏的求幂运算
Figure BPA00001250579000135
(步骤408)和
Figure BPA00001250579000136
(步骤506)的白盒实现。
图6示出了对求幂
Figure BPA00001250579000137
(步骤408)进行白盒化的方式。图7示出了对求幂
Figure BPA00001250579000138
(步骤506)进行白盒化的方式。这些白盒化的方式仅是非限制性示例。首先将描述求幂运算
Figure BPA00001250579000139
是提供0和n-1之间的数字的二进制表示的比特串(bit string)的长度的估计(步骤604)。
如此定义值λ1,λ2,...,λr和W1,W2,...,Wr,以使得k2的范围内的每一值(步骤606)(即,1和n-1之间的每一值)都可以写成
Figure BPA000012505790001311
其中(w1,w2,...,wr)∈W1×W2×...×Wr。这例如对于m=r,Wi={0,1}和λi=b·2i也成立,其中,b是在1和n-1之间的随机选择的整数。通过观察可以理解:如果函数f(x)被定义为线性函数f(x)=b-1x并且如果fi(x)是f(x)的第i个比特,那么对于任意x,
Figure BPA00001250579000141
定义
Figure BPA00001250579000142
并通过
Figure BPA00001250579000143
来计算(步骤608)。因此,该求幂运算的白盒实现将k2的编码的版本f(k2)=b-1k2作为输入(步骤602),并且它返回
Figure BPA00001250579000145
(步骤610)。
图7示出了对求幂
Figure BPA00001250579000146
进行白盒化的方式。这仅是非限制性示例。为与上面的白盒实现区别开,使用了不同的符号:使用μi代替λi,使用g代替f。对于这两个白盒实现,集合Wi可以是相同的,即,{0,1}。
对于在1和n-1之间的随机选择的整数c,定义μi=c·2i(步骤704)。此外,定义线性函数g(x)=c-1x,并设gi(x)表示g(x)的第i个比特(步骤706)。由此可见,x的任何相关值可以表示为
x = Σ i = 1 m μ i · g i ( x ) .
定义
Figure BPA00001250579000148
并通过
Figure BPA00001250579000149
计算
Figure BPA000012505790001410
(步骤708)。因此,该白盒实现具有输入g(k2)=c-1k2(步骤702),并返回
Figure BPA000012505790001411
(步骤710)。
利用这两个白盒求幂运算,可以例如指定泛化的ElGamal密码的加密和解密运算的白盒实现。
图8示出了如何获得加密算法的白盒实现的示例。
选择随机整数k1,1≤k1≤n-1(步骤802),并以标准的方式计算
Figure BPA000012505790001412
(即,非白盒的,步骤804)。然而,也可以使用白盒实现。
γ=f(k2)成立,或者等效地,k2=f-1(γ)成立,但是不必计算这些值。此处,f-1对应于上面的步骤404和502中所使用的函数g。如果γ=0(相当于k2=0,因为g是双射且线性的),则选择不同的k1(步骤806)。
以标准的方式计算值
Figure BPA000012505790001413
(即,非白盒的,步骤808)。然而,也可以使用白盒实现。
通过来计算值
Figure BPA000012505790001415
(步骤810)。注意,γi=fi(k2)。
利用步骤808的结果计算群元素
Figure BPA000012505790001416
(步骤812)。
由(γ,δ)给出密文(步骤814)。
图9示出了如何获得解密算法的白盒实现。
给出值c-1·b(步骤902)。此值被用来确定复合函数(composedfunction)gοf-1(x)=c-1·b·x(步骤904)。
它使用该复合函数来计算g(k2)=gοf-1(γ)。(步骤906)
以标准的方式计算值γ-a(即,非白盒的,步骤908)。然而,也可以使用白盒实现。
通过来计算值
Figure BPA00001250579000152
(步骤910)。
通过
Figure BPA00001250579000153
来提供消息m(步骤912)。
在白盒实现中,密钥可以是隐藏的,例如,嵌入在该实现中,并且可以不容易替换该密钥。上文对于ElGamal的泛化版本所描述的白盒实现可以以值α以及函数g和f不容易被替换的方式构建。此外,易于以值“a”仍可以容易地改变的方式构建上文对于ElGamal的泛化版本所描述的白盒实现。在这样的情况下,参考图3所描述的块密码的密钥生成优选安排如下:
值α、g和f是固定的。
公钥:α,αa
私钥:a
通过改变值λii),一般而言,值ωii)也可以改变。因此,如果给出一组m个设备,并且如果希望将所提出的白盒实现绑定到这些设备中的每一个,那么,这可以以下面的方式实现。对于某个i,1≤i≤r,选择λii)的m个不同的相应的值,计算m个相应的关联的值ωii),并将那些m个相应的关联的值ωii)分配到相应的m个设备,例如,通过将相应的设备的硬件标识符设置到(或依赖于)相应的关联的值ωi(υi)。
为了将给定的串包括在白盒实现中,尤其是,在设备上的ω1和υ1的表示中,可以按如下方式进行。假设希望将32比特的比特串s包括到该实现中。尤其是,希望使用此比特串作为ωi(υi)的表示。那么,如果随机地选择λii),则比如说,ω11)的最初的32比特由s给出的概率大致为1/232。因此,通过使用试误法,可以在可能至多232次尝试之后,发现其中ω11)的最初的32比特与比特串s匹配的实现。这样的特征可以用于,例如,通过省去已知在目标设备上存在的(优选地,在大多数或全部其他设备上不存在的)某个串,来将表示ω1和/或υ1的数据绑定到特定目标设备。例如,某个串可以基于MAC地址、硬盘ID、或另一种类型的硬件标识符。所述串也可以基于机器名。为将表示ω1和/或υ1的数据绑定到特定人,某个串可以基于例如用户ID或密码或生物特征度量。通过如所指出的将该串包括到白盒实现中,白盒实现不能轻易地被在另一设备上使用或被另一个人使用。
将理解,本发明还扩展到适于实施本发明的计算机程序,尤其是,载体上和/或中的计算机程序。所述程序可以是源代码、目标代码、诸如部分编译了的形式之类的目标代码和代码中间源、或适用于根据本发明的方法的实现中的任何其他形式。还可以理解,这样的程序可以具有许多不同的体系结构设计。例如,实现根据本发明的方法或系统的功能的程序代码可以细分为一个或多个子例程。在这些子例程之间分配功能的许多不同的方式对本领域技术人员将是显而易见的。这些子例程可以一起存储在一个可执行文件中,以形成独立的程序。这样的可执行文件可以包括计算机可执行指令,例如,处理器指令和/或解释器指令(例如,Java解释器指令)。替代地,子例程中的一个或多个或全部可以存储在至少一个外部库文件中,并静态地或者动态地,例如,在运行时(at run-time),与主程序链接。主程序包含对至少一个子例程的至少一个调用。此外,子例程可以包括对彼此的函数调用。涉及计算机程序产品的实施例包括与所阐述的方法中的至少一个方法的每一个处理步骤相对应的计算机可执行指令。可以将这些指令细分为子例程,和/或可以将这些指令存储在可以静态地或动态地链接的一个或多个文件中。涉及计算机程序产品的另一实施例包括与所阐述的系统和/或产品中的至少一个的每一个单元相对应的计算机可执行指令。可以将这些指令细分为子例程,和/或可以将这些指令存储在可以静态地或动态地链接的一个或多个文件中。
计算机程序的载体可以是任何能够携带该程序的实体或设备。例如,所述载体可以包括:诸如ROM之类的存储介质,例如,CD ROM或半导体ROM;或磁记录介质,例如,软盘或硬盘。进一步地,所述载体可以是可以通过电缆或光缆或通过无线电或其他手段传送的诸如电信号或光信号之类的可传输的载体。当程序是以这样的信号实施的时,所述载体可以由这样的线缆或其他设备或手段来构成。替代地,所述载体也可以是其中嵌入了程序的集成电路,该集成电路适于执行相关方法,或适于在相关方法的执行中使用。
对“随机数”的任何引用应该解释为包括诸如由确定性算法生成的伪随机数。
应该注意,上文所提及的实施例示出了本发明,并非限制本发明,并且本领域的技术人员将能够设计许多替换实施例而不偏离所附权利要求书的范围。在权利要求书中,放在括号之间的任何参考符号不应该被解释为对权利要求的限制。动词“包括”以及其变形的使用并不排除权利要求中所陈述的那些要素或步骤之外的要素或步骤的存在。要素之前的冠词“a”或“an”(一)不排除多个这样的要素的存在。本发明可以通过包括若干不同的要素,以及通过适当地编程的计算机来实现。在枚举了若干装置的设备权利要求中,这些装置中的一些可以通过一个或同一个硬件来实施。在相互不同的从属权利要求中引述了某些方案这一事实并不表示这些方案的组合不能被有利地使用。

Claims (16)

1.一种使得设备能够计算具有底C和指数x的求幂Cx的结果的方法,所述方法包括:
建立(102)所述求幂的底C和所述求幂的指数x;
建立(104)多个值λi,i=1,2,...,r,其中r是整数且r≥2;
建立(106)满足
Figure FPA00001250578900011
的多个值ωi,i=1,2,...,r;
建立(108)满足
Figure FPA00001250578900012
的多个值
Figure FPA00001250578900013
i=1,2,...,r;
给所述设备提供(110)表示所述多个值ωi的信息;
给所述设备提供(112)表示所述多个值
Figure FPA00001250578900014
的信息;
通过所述设备计算(114)
Figure FPA00001250578900015
2.根据权利要求1所述的方法,
其中,建立多个值λi的步骤包括建立要用作指数x的值的集合V,以及建立值的多个集合W1,W2,...,Wr,以使得 V ⊆ { Σ i = 1 r λ i · w i | ( w 1 , w 2 , · · · , w r ) ∈ W 1 × W 2 × . . . × W r } ;
其中,建立所述多个值
Figure FPA00001250578900017
的步骤包括选择值
Figure FPA00001250578900018
以使得
Figure FPA00001250578900019
i=1,2,...,r;
其中,所述方法包括执行以下步骤:建立所述多个值
Figure FPA000012505789000110
给设备提供表示所述多个值
Figure FPA000012505789000111
的信息,以及,通过设备就多个不同的值x∈V进行计算的步骤。
3.根据权利要求2所述的方法,其中,Wi={0,1},i=1,2,...,r。
4.根据权利要求1所述的方法,还包括:
建立密码的密钥,其中,所述密钥被所述设备用来执行密码操作;以及
根据所述密钥,建立底C。
5.根据权利要求1所述的方法,还包括:
选择要就不同的设备使用的不同的多个值λi和/或不同的值r;
就不同的设备,对于底C和指数x使用相同的值,并使用不同的多个值λi和/或不同的值r,执行以下步骤:建立所述多个值ωi,建立所述多个值
Figure FPA00001250578900021
给所述设备提供表示所述多个值ωi的信息,给所述设备提供表示所述多个值
Figure FPA00001250578900022
的信息,以及通过所述设备计算
Figure FPA00001250578900023
的步骤。
6.一种用于计算具有底C和指数x的求幂Cx的结果的设备(250),所述设备包括:
用于存储多个值ωi的存储器,
用于接收表示多个值
Figure FPA00001250578900024
的信息的输入端;
用于计算
Figure FPA00001250578900025
的计算单元(252);
其中,所述设备被布置用于使用P作为所述求幂Cx的结果。
7.根据权利要求6所述的设备,其中,所述输入端用于进一步接收表示所述多个值ωi中的至少一部分的信息。
8.根据权利要求6所述的设备,还包括用于根据下列各项中的至少一个确定所述多个值ωi中的至少一部分的装置(254):设备的硬件标识符、生物特征度量、以及密码。
9.根据权利要求6所述的设备,还包括用于根据非对称密码执行密码操作的密码单元,其中,所述密码操作涉及所述求幂Cx,其中,所述用于执行所述密码操作的装置被布置用于使用P作为所述求幂Cx的结果。
10.根据权利要求6所述的设备,其中,所述输入端被布置用于接收表示所述多个值ωi中的至少一部分和/或所述多个值
Figure FPA00001250578900031
中的至少一部分的加密的信息,并且其中,所述设备还包括密码单元,用于解密所述加密的信息,以分别获得所述多个值ωi中的至少一部分和/或所述多个值
Figure FPA00001250578900032
中的至少一部分。
11.根据权利要求6所述的设备,其中,所述设备包括计算机、PDA、个人视频记录器、机顶盒、或游戏控制台。
12.根据权利要求9所述的设备,还包括用于使用所述密码单元解密音频和/或视频内容的装置。
13.一种使得设备能够计算具有底C和指数x的求幂Cx的结果的系统(200),所述系统包括:
用于临时存储所述求幂的底C和所述求幂的指数x的存储器;
用于存储多个值λi的存储器,i=1,2,...,r,其中r是整数且r≥2;
用于建立满足
Figure FPA00001250578900033
的多个值ωi的计算单元(202),i=1,2,...,r;
用于建立满足
Figure FPA00001250578900034
的多个值
Figure FPA00001250578900035
的计算单元(204),i=1,2,...,r;以及
输出端,用于给设备提供表示所述多个值ωi的信息和表示所述多个值的信息。
14.一种使得设备能够计算具有底C和指数x的求幂Cx的结果的计算机程序产品,所述计算机程序产品包括用于使机器执行下列步骤的指令:
建立(102)所述求幂的底C;
建立(104)多个值λi,i=1,2,...,r,其中r是整数且r≥2;
建立(108)满足
Figure FPA00001250578900037
的多个值
Figure FPA00001250578900038
i=1,2,...,r;
给所述设备提供(112)表示所述多个值
Figure FPA00001250578900041
的信息。
15.一种使得设备能够计算具有底C和指数x的求幂Cx的结果的计算机程序产品,所述计算机程序产品包括用于使机器执行下列步骤的指令:
建立(102)所述求幂的指数x;
建立(104)多个值λi,i=1,2,...,r,其中r是整数且r≥2;
建立(106)满足
Figure FPA00001250578900042
的多个值ωi,i=1,2,...,r;
给所述设备提供(112)表示所述多个值ωi的信息。
16.一种用于计算具有底C和指数x的求幂Cx的结果的计算机程序产品,所述计算机程序产品包括用于使机器执行下列步骤的指令:
访问多个值ωi
接收表示多个值
Figure FPA00001250578900043
的信息;
计算(114)以及
使用P作为所述求幂Cx的结果。
CN200980114984.3A 2008-03-05 2009-02-27 白盒实现 Active CN102067080B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
EP08152276 2008-03-05
EP08152276.5 2008-03-05
PCT/IB2009/050795 WO2009109880A1 (en) 2008-03-05 2009-02-27 White-box implementation

Publications (2)

Publication Number Publication Date
CN102067080A true CN102067080A (zh) 2011-05-18
CN102067080B CN102067080B (zh) 2015-01-28

Family

ID=40674101

Family Applications (1)

Application Number Title Priority Date Filing Date
CN200980114984.3A Active CN102067080B (zh) 2008-03-05 2009-02-27 白盒实现

Country Status (9)

Country Link
US (2) US8670559B2 (zh)
EP (1) EP2252932B1 (zh)
JP (1) JP5599728B2 (zh)
KR (1) KR101657062B1 (zh)
CN (1) CN102067080B (zh)
AT (1) ATE533104T1 (zh)
CA (1) CA2717622C (zh)
TW (1) TW200945097A (zh)
WO (1) WO2009109880A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104025104B (zh) * 2012-01-09 2018-05-29 皇家飞利浦有限公司 具有密钥驱动的混淆的虚拟机设备和方法

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130114805A1 (en) * 2010-04-29 2013-05-09 Dongguk University Industry-Academic Cooperate Foundation Encryption system using discrete chaos function
KR101906225B1 (ko) 2011-11-30 2018-12-10 삼성전자 주식회사 복호장치와, 복호장치의 암호문 복호화 방법
US9641337B2 (en) * 2014-04-28 2017-05-02 Nxp B.V. Interface compatible approach for gluing white-box implementation to surrounding program
KR101527329B1 (ko) * 2014-09-12 2015-06-09 삼성에스디에스 주식회사 데이터 암호화 장치 및 방법
CN106716345A (zh) 2014-09-30 2017-05-24 皇家飞利浦有限公司 用于执行混淆算术的电子计算设备
JP2018503113A (ja) * 2014-11-27 2018-02-01 コーニンクレッカ フィリップス エヌ ヴェKoninklijke Philips N.V. 難読化された演算を実行するための電子計算装置
WO2016092097A1 (en) 2014-12-12 2016-06-16 Koninklijke Philips N.V. Electronic generation device
JP6387466B2 (ja) 2014-12-22 2018-09-05 コーニンクレッカ フィリップス エヌ ヴェKoninklijke Philips N.V. 電子計算装置
US9906505B2 (en) * 2015-05-08 2018-02-27 Nxp B.V. RSA decryption using multiplicative secret sharing
US20180351918A1 (en) * 2017-06-06 2018-12-06 Nxp B.V. Method for distributing a software application and encryption program for a white-box implementation
KR102602696B1 (ko) * 2017-10-13 2023-11-16 삼성전자주식회사 암호화 장치 및 복호화 장치, 이들의 동작방법
CN108259506B (zh) * 2018-02-08 2019-04-26 上海交通大学 Sm2白盒密码实现方法
KR102319699B1 (ko) 2019-08-02 2021-11-02 국민대학교산학협력단 안티-인버전 함수를 이용한 화이트박스 암호 인코딩 장치 및 방법
JP7383985B2 (ja) * 2019-10-30 2023-11-21 富士電機株式会社 情報処理装置、情報処理方法及びプログラム
CN114095148B (zh) * 2021-10-28 2023-09-26 重庆邮电大学 一种基于本地差分隐私保护的白盒密码加密方法
KR20230095750A (ko) 2021-12-22 2023-06-29 국민대학교산학협력단 일방향 함수를 이용한 암호 운영모드 기반의 화이트박스 암호화 방법 및 장치
CN116668007B (zh) * 2023-08-01 2023-10-31 中电信量子科技有限公司 基于白盒sm4算法的加密通信方法、终端及系统

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030070074A1 (en) * 2000-03-17 2003-04-10 Avner Geller Method and system for authentication
CN1516385A (zh) * 1998-06-25 2004-07-28 皇家菲利浦电子有限公司 数据流发生程序和存储介质加密数据项流信号和记录载体
US20050002532A1 (en) * 2002-01-30 2005-01-06 Yongxin Zhou System and method of hiding cryptographic private keys
WO2007105126A2 (en) * 2006-03-10 2007-09-20 Koninklijke Philips Electronics N.V. Method and system for obfuscating a cryptographic function

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0619393A (ja) * 1992-03-31 1994-01-28 Toshiba Corp 依頼計算装置
AU2001269086A1 (en) 2000-07-04 2002-01-14 Koninklijke Philips Electronics N.V. Substitution-box for symmetric-key ciphers
JP2002108210A (ja) * 2000-09-28 2002-04-10 Hitachi Software Eng Co Ltd 依頼計算方法
KR101089121B1 (ko) * 2005-03-31 2011-12-02 재단법인서울대학교산학협력재단 빠른 집합 검증 방법 및 그 장치
WO2007031894A2 (en) * 2005-09-15 2007-03-22 Koninklijke Philips Electronics N.V. Improved cryptographic method and system
US7769165B2 (en) * 2005-10-14 2010-08-03 Microsoft Corporation Semi-public white-box cipher
KR20080113277A (ko) * 2006-04-28 2008-12-29 파나소닉 주식회사 프로그램 난독화시스템, 프로그램 난독화장치 및 프로그램 난독화방법
US20090119744A1 (en) * 2007-11-01 2009-05-07 Microsoft Corporation Device component roll back protection scheme
US8165286B2 (en) * 2008-04-02 2012-04-24 Apple Inc. Combination white box/black box cryptographic processes and apparatus

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1516385A (zh) * 1998-06-25 2004-07-28 皇家菲利浦电子有限公司 数据流发生程序和存储介质加密数据项流信号和记录载体
US20030070074A1 (en) * 2000-03-17 2003-04-10 Avner Geller Method and system for authentication
US20050002532A1 (en) * 2002-01-30 2005-01-06 Yongxin Zhou System and method of hiding cryptographic private keys
WO2007105126A2 (en) * 2006-03-10 2007-09-20 Koninklijke Philips Electronics N.V. Method and system for obfuscating a cryptographic function

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
MENEZES A ET AL: "《Handbook of applied cryptography》", 31 December 1997, CRC PRESS, BOCA RATON *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104025104B (zh) * 2012-01-09 2018-05-29 皇家飞利浦有限公司 具有密钥驱动的混淆的虚拟机设备和方法

Also Published As

Publication number Publication date
JP5599728B2 (ja) 2014-10-01
CA2717622C (en) 2017-10-17
KR20100122107A (ko) 2010-11-19
JP2011513787A (ja) 2011-04-28
US20140153716A1 (en) 2014-06-05
WO2009109880A1 (en) 2009-09-11
US8670559B2 (en) 2014-03-11
KR101657062B1 (ko) 2016-09-13
US20110150213A1 (en) 2011-06-23
TW200945097A (en) 2009-11-01
EP2252932A1 (en) 2010-11-24
CN102067080B (zh) 2015-01-28
EP2252932B1 (en) 2011-11-09
CA2717622A1 (en) 2009-09-11
ATE533104T1 (de) 2011-11-15

Similar Documents

Publication Publication Date Title
CN102067080B (zh) 白盒实现
CN102099780B (zh) 指数模糊
US20180198613A1 (en) Homomorphic white box system and method for using same
US20050002532A1 (en) System and method of hiding cryptographic private keys
US11323255B2 (en) Methods and systems for encryption and homomorphic encryption systems using Geometric Algebra and Hensel codes
CN102484581A (zh) 使用中间数据更改的具有可配置密钥的白盒密码系统
KR20020025630A (ko) 비밀 정보의 처리 장치, 프로그램 또는 시스템
US7434898B2 (en) Computer system, computer program, and addition method
CN102461058A (zh) 具有输入相关编码的白盒密码系统
KR20100138986A (ko) 암호 시스템
US20070214370A1 (en) Portable terminal
CN105721156A (zh) 用于模幂加密方案的通用编码函数
KR101906225B1 (ko) 복호장치와, 복호장치의 암호문 복호화 방법
KR101440680B1 (ko) 중국인 나머지 정리에 기반한 준동형 암복호화 방법 및 이를 이용한 장치
CN115412246A (zh) 不经意传输方法、装置、设备和存储介质
US8306220B2 (en) Method to generate a private key in a boneh-franklin scheme
CN101889412B (zh) 在Boneh-Franklin方案中生成私钥的方法
KR101006358B1 (ko) 실수체 기반의 타원 곡선 암호 시스템 및 그 방법
Hafsa et al. Hardware Implementation of an Improved Hybrid Cryptosystem for Numerical Image Encryption and Authenticity
CN116226874A (zh) 一种数据处理方法、解密终端、加密终端及存储介质
CN117394983A (zh) 用于实现对称加密和非对称加密的轻量级同态加密方法
CN115865531A (zh) 一种代理重加密数字资产授权方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
ASS Succession or assignment of patent right

Owner name: IRDETO B.V.

Free format text: FORMER OWNER: IRDETO BV

Effective date: 20150127

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

Effective date of registration: 20150127

Address after: Holland Hoofddorp

Patentee after: Irdeto B.V.

Address before: Holland Hoofddorp

Patentee before: Irdeto Corporate B. V.

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.