CN1926508A - 一种用于执行加密操作的方法和装置 - Google Patents
一种用于执行加密操作的方法和装置 Download PDFInfo
- Publication number
- CN1926508A CN1926508A CNA2005800068376A CN200580006837A CN1926508A CN 1926508 A CN1926508 A CN 1926508A CN A2005800068376 A CNA2005800068376 A CN A2005800068376A CN 200580006837 A CN200580006837 A CN 200580006837A CN 1926508 A CN1926508 A CN 1926508A
- Authority
- CN
- China
- Prior art keywords
- bits
- multiplication
- key
- factor
- factors
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 56
- 238000004364 calculation method Methods 0.000 claims abstract description 7
- 230000006870 function Effects 0.000 claims description 14
- 230000008569 process Effects 0.000 claims description 6
- 238000012795 verification Methods 0.000 description 17
- 230000007246 mechanism Effects 0.000 description 13
- 230000008901 benefit Effects 0.000 description 6
- 238000006073 displacement reaction Methods 0.000 description 6
- 238000010367 cloning Methods 0.000 description 2
- 238000003860 storage Methods 0.000 description 2
- XUIMIQQOPSSXEZ-UHFFFAOYSA-N Silicon Chemical compound [Si] XUIMIQQOPSSXEZ-UHFFFAOYSA-N 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 230000001174 ascending effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000003780 insertion Methods 0.000 description 1
- 230000037431 insertion Effects 0.000 description 1
- 238000009434 installation Methods 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000003825 pressing Methods 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 229910052710 silicon Inorganic materials 0.000 description 1
- 239000010703 silicon Substances 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
- G06F7/52—Multiplying; Dividing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/06—Cryptographic 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
- H04L9/065—Encryption by serially and continuously modifying data stream elements, e.g. stream cipher systems, RC4, SEAL or A5/3
- H04L9/0656—Pseudorandom key sequence combined element-for-element with data sequence, e.g. one-time-pad [OTP] or Vernam's cipher
- H04L9/0662—Pseudorandom key sequence combined element-for-element with data sequence, e.g. one-time-pad [OTP] or Vernam's cipher with particular pseudorandom sequence generator
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
- G06F7/52—Multiplying; Dividing
- G06F7/523—Multiplying only
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/58—Random or pseudo-random number generators
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/06—Cryptographic 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3247—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/56—Financial cryptography, e.g. electronic payment or e-cash
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computational Mathematics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- General Engineering & Computer Science (AREA)
- Computing Systems (AREA)
- Storage Device Security (AREA)
- Diaphragms For Electromechanical Transducers (AREA)
- Pinball Game Machines (AREA)
- Control Of Vending Devices And Auxiliary Devices For Vending Devices (AREA)
Abstract
用于由外部执行的安全应用程序控制的装置执行加密操作的方法,包括:通过计算在装置中生成密码值(y),该计算包括包含与装置相关的密钥(s)以及安全应用程序提供的质询值(c)的第一和第二因子之间进行的至少一个乘法,第一乘法因子包括以二进制表示的确定比特数(L),第二因子被限制以使得其包括设定为1的若干比特,在这些设定为1的每对连续比特之间具有至少L-1个设定为0的序列,根据第二因子中被设定为1的比特的位置对第一因子的二进制版本分别进行移位以实现该乘法。
Description
技术领域
本发明涉及在安全应用程序框架内的装置中用于执行加密操作的一种方法。本发明具体涉及在一外部应用与芯片之间的事务处理中防止电子芯片欺诈的加密方法。
本发明发现了一个非常先进的应用,其可以防止针对具有硬连线逻辑的集成电路芯片的欺诈,特别是那些用于在各种各样的事务处理中使用的预付费卡中的芯片,用预付费卡进行各种各样的事项处理包括,例如,电话通信安装付费,从自动售货机中购物支付费用,向汽车停放中心为租停车位付费,用于各种服务付费,例如,为公共交通付费或为各种基础设施的服务付费(例如,付过路费、为参观博物馆付费,进图书馆付费,等等),或者那些用于射频终端(RFID tags)中的芯片,例如货架、大宗消费品、纸币等的跟踪器。
背景技术
当前,具有硬连线逻辑电路的芯片被用于各种形式的欺诈。第一种形式的欺诈存在于未经允许的复制,技术术语“克隆”通常用来描述该行为。第二种形式的欺诈存在于改变卡上附着的数据,特别是改变登录在卡中的信贷总额。为了防止这些欺诈,就采用了加密,一方面通过验证的方式来保证对卡的验证和/或用数字签名方式来保证对数据的验证,另一方面,用加密的方式来保证数据适当的机密性。加密包括两个实体,即在验证的场合下为验证者和被验证的对象,所述加密可以是对称的也可以是非对称的。当加密为对称时(或者,在“密钥”的基础上,这两个技术术语是同义语),上述两个实体共享相同的信息,特别是密钥。当加密为非对称时(或者,在“公共密钥”的基础上,这两个技术术语是同义语),两个实体中的一个具有一对密钥,其中之一是私人的,而另一个是公共的;并不共享私人密钥。在许多系统中,特别是当芯片是“硬连线逻辑”型芯片时,只有对称加密才能用预付费卡实现,因为非对称加密既慢又贵。以对称加密开发的第一验证机制包括只计算一次并且对所有卡片的验证值,每张卡的验证值是不同的,包括将其存储在卡的存储器中,包括在每次事务中对其读取并通过询问一个支持该事务的网络应用程序来进行验证,在该应用程序内所述已经被分配的验证值被存储或重新计算。这些机制不能提供充分的保护,因为该验证值能够被欺诈地窥测(snooped)、再生(reprodcued)和再使用(replayed),由于其对一特定的卡始终是相同的,从而可能会克隆该卡。为了防止克隆,用于验证卡的被动机制被可以保证数据完整性的主动验证机制所代替。
对称的、主动验证机制的通常原理描述如下:在验证过程中,在每次验证时,电子芯片和应用程序计算一验证值,其是应用于一自变量列表上的函数的结果,而该等自变量在每次验证中都分别被确定。该自变量列表可以包括随机数,也就是说,在每次验证时由应用程序所确定的数据项,包含在电子芯片中的数据项和密钥对于电子芯片和应用程序都是已知的。当电子芯片所计算的验证值与应用程序所计算的验证值一致时,电子芯片被认为通过验证,且电子芯片与应用程序之间的事务处理被授权。
这些验证机制是公知的,但是,大多数要求计算能力至少要与微处理器的计算能力等同。因此,这些机制适用于微处理器芯片,但是,很少适用于那些具有极其原始计算装置的硬连线逻辑芯片。
当可以使对称的、主动的验证机制集成到硬连线逻辑芯片中时,第一阶段被实现了。例如,专利文献FR-A-2826531描述了可以实现这些机制的方法。需要注意的是,由这些机制所产生的验证值也可以被解释成伪随机比特序列,通过改变至少一个输入参数,验证值的计算方法就变成生成伪随机比特的方法。
但是,对于验证单元而言,密钥机制必须控制芯片的验证来获取所述芯片自身独有的密钥,例如,在公用电话、电子付费终端或其他的公共运输入口处。这会造成主要的缺陷,即,如果希望该单元能够验证与应用程序连接的任何芯片,其要么必须存储所有芯片的保密密钥要么必须存储基本密钥,也称作母钥或主密钥,该基本密钥可以从任何芯片中恢复密钥。在两种情况下,这些单元中的每个单元均存储足够的信息以恢复所有芯片发布的密钥,因此要存储足够的信息以便能够生成其中任何一个的克隆物。因此,对任何一个验证单元的成功窃密会从整体上破坏应用程序的安全性。
但是有迫切的需要使得具有公共密钥的主动验证机制集成入硬连线逻辑芯片内,特别是在使用大量芯片的应用中,此时通常会应用硬连线逻辑芯片,因为这些芯片的价格非常低廉。
这些机制并不存在,因为公共密钥方案通常需要与大数字相关的操作,从而导致将其整体集成到硬连线逻辑芯片中是不适当的,这些芯片中的硅区域极小,其计算逻辑电路简化至极为基础操作的硬连线。而且,这些基本操作通常被顺序执行,也就是说,运算数被一比特接一比特地串行引入,即,该等逐步引入将改变内部寄存器的状态,其最终值作为所述函数结果的计算基础。
例如,众所公知地,通过执行操作y=r+s.c(或y=r-s.c)来计算验证值,式中的r是随机项,密钥s属于非对称的密钥对(s,p),c是应用程序所选择的所谓的“质询(challenge)”值,其不能超过一个确定阈值,r的值始终保持大于将加到其上的值(或从其上减去的值)。这就会造成在之前的随机整数s和c之间执行至少一个乘法。但是,该乘法是相对比较复杂的操作,超出了大多数硬连线逻辑芯片的能力范围。
发明内容
本发明的目的是提供一种计算密码值的方法,例如验证值,该方法使芯片不必直接执行乘法操作,而所获得的密级有相对显著地提高,例如,密级达到32比特数量级,这是一个广泛应用的密级,特别是在金融事务处理的保护中被应用。
本发明提供一种在安全应用程序控制下的装置中执行加密操作的方法,其中,通过计算,一密码值(y)在该装置中被生成,该计算至少包括两个因子之间的一个乘法,该等因子包含与该装置相关的至少一密钥(s)的一部分。根据本发明,该乘法的两个因子中的第一因子具有以二进制表示的确定数量L个比特,该乘法的两个因子中的第二因子被限定以使得其包括以二进制表示的、被设定为1的多个比特,在每对被设定为1的连续比特之间是被设定为0的至少L-1个比特的序列。该乘法不必根据一个复杂的算法而被执行,其足以通过将第一因子的分别根据第二因子中被设定为1的比特的位置移位而得到的二进制版本进行汇编(assembling)操作而完成。
根据本发明方法的其他有益特征:
-所述密钥形成与所述装置相关的一非对称密钥对的一部分;
-所述装置包括一芯片,该芯片包含用于生成所述密码值的硬连线逻辑(hard-wired logic);
-所述密码值的计算还包括伪随机数和乘法结果之间的加或减运算;
-第一、第二因子(s,c)以及伪随机数(r)被确定(demensioned)以使得伪随机数(r)大于所述乘法的结果,第二因子中被设定为1的比特数可以,尤其地,在多数情况下被选择成为小于或等于s1/L的最大整数,其中s1是小于以二进制表示的伪随机数(r)的比特数的预定阈值;
-所述乘法的两个因子包括通过在所述装置外部执行的安全应用程序提供给所述装置的数值以及密钥的所述部分;
-该密钥的所述部分是该乘法的所述第一因子或第二因子;
-当保密密钥的所述部分是所述乘法的第一因子时,所述二进制版本被放置于,例如各自的相似比特长度的间隔中,该比特长度对应于可用空间的整个长度被按该乘法第二因子中的被设定为1的比特数目划分,每个二进制版本均作为根据该第二因子中被设定1的比特的位置的移位处理的函数,而被放置在各自的间隔中;
-当密钥是所述乘法的第二因子时,通过对比特的数量进行编码该密钥被存储在支持所述装置的存储器支持(support)中,这些比特数量为分别分开了(S-1)/(n-1)个比特的间隔的下界和分配给所述乘法的第一因子(c)的比特块的下界的比特的数量,其中每一个比特块被放置于相关的间隔中,S是密钥的比特数,n是密钥中被设定为1的比特数;
-作为一个变化,通过对比特数进行编码所述密钥可以被存储到所述装置的存储器支持中,每一个比特表示将分配给所述乘法的第一因子的连续比特的两个比特块分开的比特数;
-当该密钥的所述部分是所述乘法的第二因子时,通过其中被设定为1的比特的位置进行编码,所述密钥可以被存储到所述装置的存储器支持中;
-当该密钥的所述部分是所述乘法的第二因子时,第一因子可以是所述装置中生成的伪随机数,密码值可以在电子签名的伪装中生成。
-在另一个应用中,所述密码值(y)被生成以便在一个通过在所述装置外部执行的安全应用程序的执行中来验证所述装置。
本发明还提供一种具有加密功能的装置,包括:与一安全应用程序接口的装置以及用于生成一密码值的计算装置,所述计算装置包括在两个因子间进行乘法运算的乘法装置,该等因子包含与所述装置相关的至少一密钥的一部分。根据本发明,该乘法的两个因子中的第一因子具有以二进制表示的确定数量L个比特,且该乘法的两个因子中的第二因子被限定以使得其包括以二进制表示的、被设定为1的多个比特,在每对被设定为1的连续比特之间是被设定为0的至少L-1个比特的序列。所述乘法装置包括通过将第一因子的分别根据第二因子中被设定为1的比特的位置移位而得到的二进制版本进行汇编(assembling)操作而完成乘法的装置。
本发明的优点是,用密码保护其自身来防止欺诈,从而获得装置的良好密级,特别是在硬连线逻辑电子芯片与该电子芯片外部的安全应用程序之间的事务处理过程中能获得良好的密级。
本发明的另一个优点是,由于不需要在很小面积的电子芯片中进行难以实现的、价格昂贵的乘法装置,因此,简化了其实现,该乘法装置可以通过用于对密钥或质询的移位进行求和的加法装置来代替。具体地说,一个整数与2的幂的乘法结果等于将该整数的二进制比特左移。
附图说明
通过参考如下附图来详细地描述优选实施例,本发明的上述以及其他优点将变得更为明显,附图如下:
-图1是描述一个加密验证实例的流程图;
-图2描述了本发明所提供方法的一个实施例;
-图3描述了本发明所提供方法的第一变化实施例;
-图4描述了本发明所提供方法的第二变化实施例;
-图5描述了根据本发明存储密钥的第一变化;
-图6描述了根据本发明存储密钥的第二变化;
-图7描述了实现本发明第一实施例的具有加密功能的典型装置;以及
-图8描述了根据本发明的具有加密功能装置的典型实施例。
具体实施方式
图1描述了在一个装置外部执行的安全应用程序控制下的装置中执行加密操作方法的流程图,特别是具有硬连线逻辑的电子芯片。
特别是,该方法应用于电子芯片与应用程序之间的事务处理。该方法也可以被用于计算构成数字签名的密码值。
在一第一步骤中,该方法包括,通过包括在电子芯片中的伪随机生成器在电子芯片中生成称作随机项的伪随机数r。该随机项r用于一个事务处理。
在一第二步骤中,该方法包括在函数f的基础上,例如x=f(r),将与随机项r相关的参数x从电子芯片传送到安全应用程序中,f与电子芯片和安全应用程序所知的公共密钥相关。参数x可以进一步被计算并存储在芯片的存储器中,每个参数x分别与伪随机数r相关。
例如,g是安全应用程序所知的数值,函数f通常的形式是:x=f(r)=gr。另一个可能是,也是本领域技术人员所公知的,在f函数中使用一个加密哈希函数h以及与应用(例如,事务总量)相关的数据D的函数:x=f(r)=h(gr,D)。f函数的其他例子也可以被使用。
在一第三步骤中,该方法包括,按照下面将要说明的发明方法,用乘法装置在电子芯片中计算密码值y,该乘法装置具有输入参数,这些参数至少包括特定于事务处理的随机项r和属于一对非对称密钥(s,p)的私人密钥,例如通过p=gs。该密码值组成验证数值V的全部或部分。
在一第四步骤中,该方法包括,将验证值V传送到应用程序中。
在一第五步骤中,该方法包括,通过安全应用程序以一个验证函数验证验证值V,该函数的输入参数包括包含至少一个公共密钥p的公共参数。如果验证值被安全应用程序验证通过,那么事务处理被授权。
本发明的目的是,通过执行y=r+f1*f2(或等同的y=r-f1*f2)操作来计算密码值,式中的r是用包含在电子芯片中的伪随机生成器计算获得的随机项,(f1,f2)是包含由保密应用所提供的密钥s和所谓的质询值c的一对因子。因子f1、f2的二进制表示满足这样的条件:因子f1具有表示为L个比特,因子f2被设定为1的连续比特始终位于被设定为0的至少L-1个比特的序列之间。
因此,因子f1、f2的乘法相当于分别按第二因子f2中被设定为1的比特的位置对数量为n的第一因子f1的二进制版本b[1]、b[2]、…、b[n]进行移位的总和。数量n取决于第二因子f2中被设定为1的比特数。给定这些位移,通过将b[h]值汇编成表示乘法结果的二进制数值,就可以极简单地得出总和
在以下的描述中,将描述本发明方法的第一实施例,其中,第一因子f1是L个比特的密钥,第二因子f2是安全应用程序所提供的伪随机质询值c。因此,通过执行以下操作确定密码值y:
y=r+s*(2i[1]+…+2i[n])
式中i[1]、…、i[n]中的n是由应用程序所选择的整数,其具有两个限制条件:
-数值i[1]、…、i[n]必须全部小于或等于表示为s1的阈值,所以,数值r始终保持大于将加到其上(或从其上减去)的数值,然后,所述阈值在r比特上定义一个可用的空间。
-第二限制条件包括要求各种数值i[1]、…、i[n]保持至少等于密钥比特数的距离。
因此,密钥包括L比特,并且假设各整数i[1]、…、i[n]按升序排列,安全应用程序提供这些数值i[1]、…、i[n]以保证i[1]+L≤i[2],i[2]+L≤i[3],…,i[n-1]+L≤i[n],并且i[n]<s1。
因此,在多数情况下,第二因子中被设定为1的比特数n选择为等于小于或等于s1/L的最大整数。
表示为u的最大值通常不是很大,例如u=5或6,该最大值基于数值n并通过上述的两个限制条件而获得。优选地,数值n被取为与最大值u相等。
图2描述了n=5时本发明所提供方法的典型使用。图表B1表示具有L+s1个比特的可用空间EU的随机项r。图表B2表示要加到r上或要从r上减去的乘法s*c=s*(2i[1]+…+2i[n])的结果。密钥s被按照质询值c中被设定为1的比特的位置来移位。因此,分别由i[1]、i[2]、i[3]、i[4]和i[5]的比特移位,从而获得二进制版本b1至b5。
本发明的优点是基于用该方法提高密级,因为猜测整数i[h]以及数值n的各种数值是非常困难的,而如果安全应用程序没有确定数值n,那么猜测数字n本身还是有可能的。
本发明的另一个优点是,根据本发明,不需要对密码数值y进行非常复杂的计算,就能提高密级,因为在密钥与质询值之间的乘法相当于汇编移位操作(或二进制版本),而该等计算是串行进行的。
根据该方法的第一变化,密钥的位移n被要求全部置于相同大小的间隔中。该大小最好是最大值,即等于可用空间的总容量除以n,或者,如果该数值不是整数,则为小于该数值得最大整数。由应用程序选择的、对应于密钥移位的比特块与放置这些相对应的比特块的间隔的下界之间的差异被表示为j[1]、j[2]、…、j[n]。
更正式地,假设k是可使用空间的总长度(等于s1+L),然后,n是所希望使密钥以分开的方式出现在k个可使用的比特之间的次数。假设k可以被n整除(在相反的情况下,k值被稍微增加,所以可以保证这种假设成立)。
可使用的总空间可以被分成大小相同的n个间隔,每个间隔包括如下所述的k/n个位置:
[0,k/n-1]U[k/n,2k/n-1]U…U[(n-1)k/n,k-1]
使用本变化,可以确定共有[(k/n)-L+1]n个不同数值可以被加到随机项r上。
具体地说,每个间隔包括k/n个位置,其中L被用于写密钥的位移。因此,在每个间隔中剩余k/n-L个空闲位置被用来分布被移位所使用的比特块。因此,对任何满足1≤h≤n的h,j[h]是位于0与(k/n)-L之间的数值,并且对应于第(h-1)(k/n)个位置与位移的第一位之间的比特数。因此,每个j[h]存在(k/n)-L+1个可能的数值。最终,不同的n元组(n-tuple)(j[1],j[2],…,j[n])的数量为((k/n)-L+1)n。
其他的方式,密码值y被通过以下的操作计算:
y=r+(2j[1].s+2k/n+j[2].s+22k/n+j[3].s+…+2(n-1)k/n+j[n].s)
式中,对所有的h以j[h]ε[0,(k/n)-L]的方式通过安全应用程序选择n个数值(j[1],j[2],…,j[n])。
每个二进制版本b[h]被移位j[h],其与间隔的下界相关。
图3中,当n=5时,在第一个变化的实施例的的特定情况下,I[h]=[(h-1)k/n,hk/n-1]表示第h个问隔。图表B3表示具有可使用空间EU的随机项r,而图表B4表示加(或减)的数值。因此,获得了分别位于间隔I[h]中的密钥s的二进制版本b[h],即b[1]、[b2]、b[3]、b[4]和b[5]。每个二进制版本b[h]被移位j[h],j[h]与间隔I[h]的下界相关。
根据本发明所提供方法的第二变化,不同的n个值j[1]、j[2]、…、j[n]被安全应用程序以可以表示对应于密钥的两个位移相关的连续块之间的差的方式所选择。与该方法的第一变化一样,可以在间隔[0,(k/n)-L]中取出n个值。
密码值被通过执行以下的操作计算:
y=r+(2j[1].s+2L+j[1]+j[2].s+22L+j[1]+j[2]+j[3].s+…+2(n-1)L+j[1]+j[2]+…+ j[n].s)。
图4描述了当n=5时本发明所提供方法的第二变化的典型使用。图表B5表示具有可使用空间EU的随机项r,而图表B6表示加(或减)的数值。因此,获得了密钥s的5个二进制版本b[1]、[b2]、b[3]、b[4]和b[5],其分别被移位j[1]、j[2]、j[3]、j[4]和j[5]个比特。
在某些情况下,在不脱离本发明的范围的前提下,以芯片的硬连线逻辑变得复杂从而造成价格的一定增加为代价,可以稍微放松对设定为0的比特数的限制,这些比特数被用于将质询值c中被设定为1的两个连续比特分开。例如,我们假设,装置的密钥s=f1为L个比特,且具有n=6。假设强加上这样的条件:采用质询值c=2i[1]+2i[2]+2i[3]+2i[4]+2i[5]+2i[6]中被设定为“1”的两个连续比特总是被至少L/2个比特的设定为0的至少L/2个比特所分开(即:i[1]+L/2<i[2],…,i[5]+L<i[6]<s1),则很容易将该质询值c分成两项:c=f2+f‘2,或f2=2i[1]+2i[3]+2i[5]且f‘2=2i[2]+2i[4]+2i[6]。这两项f2、f‘2中的每一项都满足本发明所提供方法中作为乘法的第二因子所要求的条件:对于f2而言,i[1]+L<i[3]<i[5]-L;对于f‘2而言,i[2]+L<i[4]<i[6]-L。将被执行的加密操作可以是y=r+s.f2+s.f‘2,两个乘法s.f2,s.f′2中的每一个均根据本发明通过对s的位移版本进行汇编(assembling)操作而获得。因此,硬连线逻辑必须包括两个加法器(或减法器)电路。
本发明的另一个实施例中,在所述乘法中,s和c的任务被颠倒:第一因子f1是伪随机数c,而第二因子f2是密钥s。因此,密码值y通过执行以下操作被计算:
y=r+c*(2i[1]+…+2i[n])
式中r是随机项,c是由安全应用程序选择的质询值,n个值i[1]、…、i[n]与所述装置相关密钥的非0比特的位置,或者该密钥的一部分,相对应。其他的方式,密钥s是2i[1]+2i[2]+…+2i[n]。n个值i[1]、…、i[n]必须满足第一实施例中所述的那些相同限制条件。
计算该密码值的方法与前面第一实施例中描述的方法一致。
但是,由于是一个传统的密钥,密钥s=2i[1]+2i[2]+…+2i[n]对所有的验证一致。在第二实施例中会出现两种情况:
-密钥专用于要求固定密级L0的特别应用中。这种情况下,密钥s的结构通过使用具有被至少(L0-1)个比特分开的非0比特的密钥而获得;或者,
-密钥用在要求不同密级的应用中。此时,有必要考虑最高的密级。具体地说,相反的情况下,具有由(L0-1)个比特分开的非0比特密钥的结构会提高大小量L1>L0的质询值,使得质询值的位移不再是不连续的。因此,需要将密钥的非0比特由至少L-1个比特分开,L表示在密钥s的使用过程中可能会遇到的最高密级。
为了存储密钥,第一个解决方案包括在其中完全存储密钥。但是,尤其出于经济上的考虑,高的密级所带来的密钥的长度,会受到物理上的限制,特别是电子芯片的存储器的容量限制,也就限制了可能的存储空间。
第二个解决方案包括通过仅存储密钥的非0比特的位置,从而从2i[1]+2i[2]+…+2i[n]类型的密钥结构中获得好处。该第二解决方案可以被改进,以使得存储更少的比特。两种方案都是可能的。
假设s是具有非0比特的密钥的大小,假设s-1被n-1整除。第一个非0位置于s-1位置上来获得所期望大小的加密。此后,密钥的其他s-1个比特被分隔成(s-1)/(n-1)个比特的n-1个间隔I[1]、I[2]、…、I[n-1]。
在每一个间隔I[h]中,每个均放置一个比特块,每个比特块被分配给表示L大小的质询值的比特块。因此,每个间隔包含(s-1)/(n-1)-L个未用的比特,这些比特分布于所分配的比特块的左侧和右侧。最多(s-1)/(n-1)-L个比特可以被放置在间隔的下界与所分配的块之间。
在不存储非0比特的位置i[h]的情况下,则可以存储比特于每个间隔的下界与位于所考虑的间隔中的所述被分配比特块之间的比特数p[h]。
图5描述了具有5个非0比特的密钥的典型存储。此时,p[1]、p[2]、p[3]、p[4]和p[5]的比特数被存储(此例中p[4]的比特数为0)。
第二个步骤包括存储位于被分配给与质询值有关块的两个连续比特块以及位于每个末尾(在第一个被分配的块之前并在最后一个被分配的块之后)的比特数之间的比特数。
图6描述了包含5个非0比特的密钥的过程。此时,数值p[1]、p[2]、p[3]、p[4]、p[5]和p[6]被存储在电子芯片的存储器支持中。该例子并非对本发明的限制,且部分数值p[h]可以是0。
在本发明的第二实施例中,在某些情况下,在不脱离本发明的范围的前提下,以芯片的硬连线逻辑变得复杂从而造成价格的一定增加为代价,可以稍微放松对设定为0的比特数的限制,这些比特数用于将密钥s中被设定为1的两个连续比特分开。
本发明方法可以用于计算密码数值以对付设备的欺诈,特别是一种硬连线逻辑的芯片,在该设备外部的安全应用程序的控制下,防止在这些设备与实体之间执行事务处理过程中被欺诈。
该方法也可以用于计算密码值来构建数字签名。在这种情况下,数值c,即所谓的质询值不是由安全应用程序所提供的,而是根据将要被签名的信息通过电子芯片计算获得。
图7描述了实现本发明第一实施例的具有加密功能的典型装置。
装置10,例如电子芯片,包括:
-伪随机数生成器12,生成专用于事务处理的随机项r,该随机项r与参数x相关;
-第一存储器16,用于存储密钥s;
-第二存储器14,用于存储参数x;
-接口24,用于按照其本身已知的方式与外部的安全应用程序交换数据;
-电路22,用于对密钥s与质询值c进行乘法;以及
-加法器26(或减法器),用于将所述乘法结果和伪随机数生成器12生成的伪随机数进行算术运算处理。
在图7所示的实施例中,乘法电路22根据本发明的要求移位第一因子f1,特别是密钥s,然后,按一比特接一比特的方式顺序地将所获得的结果传送到加法器26。
并行地,伪随机数生成器12按一比特接一比特的方式将随机项r传送到加法器26。
因此,加法器26一比特接一比特的顺序地将随机项r和乘法电路22提供的结果相加。
装置10中所包含的不同装置均可以作为硬连线逻辑而被实现。
参考图8,其中描述了装置10被安装在支架28上,例如,以信用卡的形式。例如,支架28可以被插入提供安全应用程序34的主阅读器30中。
在一个典型的应用中,将支架28插入阅读器30时自动启动安全应用程序34,该程序唤醒电子芯片并向该程序传送数据,特别是质询值c。电子芯片通过向该程序提供根据本发明所提供方法计算的密码值y(或V)来验证自身。如图1所示,与r相关的参数x被传送至安全应用程序。
然后,在数值x和V或(y)的基础上,安全应用程序继续进行验证处理。
在一个通常的方式中,当参数x是x=gr的形式时,如果密码值是y=r-sc形式,则当密码值是y=r+sc或gy.pc=x的形式时,安全应用程序所满足的等式可以是gy=x.pc的形式。
在参数x转换到哈希函数(x=h(gr,D))的情况下,当密码值是y=r+sc的形式时,验证等式通常是h(gy/pc,D)=x。优选地,y=r-sc形式的密码值被使用以使得验证等式不包含任何除法:h(gy.pc,D)=x。
当验证值被证实为有效时,那么芯片的验证是正确的,安全应用程序将通知电子芯片,这样,在安全应用程序与电子芯片之间的事务处理就被批准了。
Claims (23)
1.在安全应用程序(34)控制下的一个设备(10)中执行加密操作的方法,其中,通过计算,一密码值(y)在该设备中被生成,该计算至少包括两个因子之间的一个乘法,这两个因子包含与该设备相关的至少一密钥(s)的一部分,其特征在于,该乘法的两个因子中的第一因子具有以二进制表示的确定数量L个比特,该乘法的两个因子中的第二因子被限定以使得其包括以二进制表示的、被设定为1的多个比特,在每对被设定为1的连续比特之间是被设定为0的至少L-1个比特的序列,并且,该乘法通过将第一因子的分别根据第二因子中被设定为1的比特的位置移位而得到的二进制版本进行汇编(assembling)操作而完成。
2.根据权利要求1所述的方法,其特征在于,所述密钥(s)形成与设备(10)相关的一个非对称密钥对的一部分。
3.根据权利要求1或2所述的方法,其特征在于,所述设备(10)包括一个芯片,该芯片包含用于生成所述密码值的硬连线逻辑(hard-wiredlogic)。
4.根据以上权利要求中任一项所述的方法,其特征在于,所述密码值的计算还包括伪随机数(r)和该乘法结果之间的加或减运算。
5.根据权利要求4所述的方法,其特征在于,第一、第二因子(s,c)以及伪随机数(r)被确定以使得伪随机数(r)大于所述乘法的结果。
6.根据权利要求5所述的方法,其特征在于,第二因子中被设定为1的比特数目被选择为小于或等于s1/L的最大整数,其中s1是小于以二进制表示的伪随机数(r)的比特数目的预定阈值。
7.根据以上权利要求中任一项所述的方法,其特征在于,所述乘法的两个因子包括通过在所述设备外部执行的安全应用程序提供给所述设备的数值(c)以及密钥(s)的所述部分。
8.根据权利要求1~6中任一项所述的方法,其特征在于,所述乘法的两个因子包括通过所述设备提供的数值(c)以及所述密钥(s)。
9.根据以上权利要求中任一项所述的方法,其特征在于,该密钥(s)的所述部分是该乘法的所述第一因子。
10.根据权利要求9的方法,其特征在于,所述的二进制版本被放置于各自的相似比特长度的间隔中,该比特长度对应于可用空间的整个长度被按该乘法第二因子中的被设定为1的比特数目划分,每个二进制版本均作为根据该第二因子中被设定1的比特的位置的移位处理的函数,而被放置在各自的间隔中。
11.根据权利要求1~8中任一项所述的方法,其特征在于,该密钥(s)的所述部分是所述乘法的第二因子。
12.根据权利要求11所述的方法,其特征在于,通过对该密钥(s)的被设定为1的比特的位置进行编码,所述密钥(s)被存储在所述设备的存储器中。
13.根据权利要求11~12中任一项所述的方法,其特征在于,通过对比特数量进行编码,所述密钥(s)被存储在所述设备的存储器支持(16)中,所述比特数量为分别分开了(S-1)/(n-1)个比特的间隔的下界和分配给所述乘法的第一因子(c)的比特块的下界的比特的数量,其中每一个比特块被放置于相关的间隔中,S是密钥的比特数,n是密钥中被设定为1的比特数。
14.根据权利要求11~12中任一项所述的方法,其特征在于,通过对比特数量进行编码,所述密钥(s)被存储到所述设备的存储器支持(16)中,每个比特数量代表将分配给第一乘法因子(c)的两个连续比特块区分开来的比特的数量。
15.根据以上权利要求中任一项所述的方法,其特征在于,所述密码值(y)被生成,以便在一个通过在该设备外部执行的安全应用程序的处理过程中来验证所述设备。
16.根据权利要求1~14中任一项所述的方法,其特征在于,所述密码值(y)在电子签名的伪装中被生成。
17.一种具有加密功能的设备,包括:与一安全应用程序(34)接口的装置(24)以及用于生成一密码值(y)的计算(12,22,26)装置,所述计算装置包括在两个因子间进行乘法运算的乘法装置(22),这些因子包含与所述装置相关的至少一密钥(s)的一部分,其特征在于,该乘法的两个因子中的第一因子具有以二进制表示的确定数量L个比特,且该乘法的两个因子中的第二因子被限定以使得其包括以二进制表示的、被设定为1的多个比特,在每对被设定为1的连续比特之间是被设定为0的至少L-1个比特的序列,所述乘法装置包括将第一因子的分别根据第二因子中被设定为1的比特的位置移位而得到的二进制版本进行汇编(assembling)操作的装置。
18.根据权利要求17所述的设备,还包括生成一个伪随机数(r)的装置(12),包括用于将所述乘法结果加到所述伪随机数(r)上或从所述伪随机数(r)上减去所述乘法结果的装置(26)的计算装置。
19.根据权利要求18所述的设备,其特征在于,第一、第二因子(s,c)以及伪随机数(r)被确定以使得伪随机数(r)大于所述乘法的结果。
20.根据权利要求17~19中任一项所述的设备,其特征在于,计算装置(12,22,26)包含硬连线逻辑。
21.根据权利要求17~20中任一项所述的设备,其特征在于,该密钥(s)的所述部分是所述乘法的第一因子。
22.根据权利要求17~20中任一项所述的设备,其特征在于,该密钥(s)的所述部分是所述乘法的第二因子。
23.根据权利要求22所述的设备,还包括一个存储器(16),用于存储对所述密钥(s)中被设定为1的比特的位置进行编码的数据。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
FR0402146 | 2004-03-02 | ||
FR0402146A FR2867289A1 (fr) | 2004-03-02 | 2004-03-02 | Procede et dispositif pour accomplir une operation cryptographique |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1926508A true CN1926508A (zh) | 2007-03-07 |
CN100561422C CN100561422C (zh) | 2009-11-18 |
Family
ID=34854982
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB2005800068376A Active CN100561422C (zh) | 2004-03-02 | 2005-02-24 | 一种用于执行加密操作的方法和装置 |
Country Status (9)
Country | Link |
---|---|
US (1) | US7822199B2 (zh) |
EP (1) | EP1721246B1 (zh) |
JP (1) | JP4772775B2 (zh) |
KR (1) | KR101117680B1 (zh) |
CN (1) | CN100561422C (zh) |
AT (1) | ATE419577T1 (zh) |
DE (1) | DE602005012060D1 (zh) |
FR (1) | FR2867289A1 (zh) |
WO (1) | WO2005096135A2 (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2005348306A (ja) * | 2004-06-07 | 2005-12-15 | Yokosuka Telecom Research Park:Kk | 電子タグシステム、電子タグ、電子タグリーダライタ、およびプログラム |
US8923519B2 (en) * | 2009-05-29 | 2014-12-30 | Alcatel Lucent | Method of efficient secure function evaluation using resettable tamper-resistant hardware tokens |
EP2697732B1 (en) | 2011-04-11 | 2015-06-24 | Hewlett-Packard Development Company, L.P. | Mass serialization |
KR101501508B1 (ko) * | 2013-09-16 | 2015-03-12 | 김정훈 | 데이터 암호화를 통한 인증방법 및 시스템 |
DE102016104771A1 (de) * | 2016-03-15 | 2017-10-05 | Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. | Verfahren zum Erzeugen einer Authentifizierungsnachricht, Verfahren zum Authentifizieren, Authentifizierungsgerät und Authentifizierungsbasisgerät |
Family Cites Families (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4338675A (en) * | 1980-02-13 | 1982-07-06 | Intel Corporation | Numeric data processor |
US4878027A (en) * | 1987-08-03 | 1989-10-31 | Hewlett-Packard Company | Direct frequency synthesizer using powers of two synthesis techniques |
EP0383985A1 (de) | 1989-02-24 | 1990-08-29 | Claus Peter Prof. Dr. Schnorr | Verfahren zur Identifikation von Teilnehmern sowie zur Generierung und Verifikation von elektronischen Unterschriften in einem Datenaustauschsystem |
US5309382A (en) * | 1992-10-01 | 1994-05-03 | Silicon Graphics, Inc. | Binary shifter |
FR2726667B1 (fr) * | 1994-11-08 | 1997-01-17 | Sgs Thomson Microelectronics | Procede de mise en oeuvre de multiplication modulaire selon la methode montgomery |
US6064740A (en) * | 1997-11-12 | 2000-05-16 | Curiger; Andreas | Method and apparatus for masking modulo exponentiation calculations in an integrated circuit |
ATE548819T1 (de) * | 1998-06-03 | 2012-03-15 | Cryptography Res Inc | Symmetrisches kryptographisches rechenverfahren und vorrichtung zur verlustminimierung bei chipkarten und anderen verschlüsselungssystemen |
EP1084548B1 (en) * | 1998-06-03 | 2008-12-17 | Cryptography Research Inc. | Secure modular exponentiation with leak minimization for smartcards and other cryptosystems |
JP4541485B2 (ja) * | 1999-03-15 | 2010-09-08 | パナソニック株式会社 | べき乗演算装置、べき乗剰余演算装置、楕円べき倍点演算装置、並びのそれらの方法、記録媒体 |
FR2806858B1 (fr) * | 2000-03-22 | 2002-05-03 | France Telecom | Procede cryptographique de protection contre la fraude |
FR2809894B1 (fr) * | 2000-05-31 | 2002-10-25 | France Telecom | Procede de cryptographie, microcircuit pour carte a puce et cartes a puce incluant un tel microcircuit |
US6691491B2 (en) * | 2000-08-18 | 2004-02-17 | Pacmac, Inc. | Vertical form, fill and seal packaging machine |
US6745220B1 (en) * | 2000-11-21 | 2004-06-01 | Matsushita Electric Industrial Co., Ltd. | Efficient exponentiation method and apparatus |
FR2826531B1 (fr) * | 2001-06-26 | 2003-10-24 | France Telecom | Procede cryptographique pour la protection d'une puce electronique contre la fraude |
FR2828780B1 (fr) * | 2001-08-20 | 2004-01-16 | France Telecom | Procede de realisation d'une unite cryptographique pour un systeme de cryptographie asymetrique utilisant une fonction logarithme discret |
GB0127205D0 (en) | 2001-11-13 | 2002-01-02 | Ibm | Method and system for authentication of a user |
US7062043B1 (en) * | 2002-06-28 | 2006-06-13 | The United States Of America As Represented By The National Security Agency | Method of elliptic curve digital signature using coefficient splitting |
US7724898B2 (en) * | 2002-10-17 | 2010-05-25 | Telefonaktiebolaget L M Ericsson (Publ) | Cryptography using finite fields of odd characteristic on binary hardware |
US7739521B2 (en) * | 2003-09-18 | 2010-06-15 | Intel Corporation | Method of obscuring cryptographic computations |
-
2004
- 2004-03-02 FR FR0402146A patent/FR2867289A1/fr not_active Withdrawn
-
2005
- 2005-02-24 AT AT05730807T patent/ATE419577T1/de not_active IP Right Cessation
- 2005-02-24 CN CNB2005800068376A patent/CN100561422C/zh active Active
- 2005-02-24 KR KR1020067017942A patent/KR101117680B1/ko active IP Right Grant
- 2005-02-24 DE DE602005012060T patent/DE602005012060D1/de active Active
- 2005-02-24 US US10/590,794 patent/US7822199B2/en active Active
- 2005-02-24 EP EP05730807A patent/EP1721246B1/fr active Active
- 2005-02-24 WO PCT/FR2005/000443 patent/WO2005096135A2/fr active Application Filing
- 2005-02-24 JP JP2007501305A patent/JP4772775B2/ja active Active
Also Published As
Publication number | Publication date |
---|---|
EP1721246A2 (fr) | 2006-11-15 |
KR20060132923A (ko) | 2006-12-22 |
EP1721246B1 (fr) | 2008-12-31 |
US7822199B2 (en) | 2010-10-26 |
CN100561422C (zh) | 2009-11-18 |
US20080137844A1 (en) | 2008-06-12 |
WO2005096135A8 (fr) | 2005-12-08 |
DE602005012060D1 (de) | 2009-02-12 |
JP4772775B2 (ja) | 2011-09-14 |
WO2005096135A3 (fr) | 2006-04-06 |
FR2867289A1 (fr) | 2005-09-09 |
WO2005096135A2 (fr) | 2005-10-13 |
KR101117680B1 (ko) | 2012-04-02 |
ATE419577T1 (de) | 2009-01-15 |
JP2007526703A (ja) | 2007-09-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR102417067B1 (ko) | 블록 체인 네트워크의 노드에서 수행되는 블록 생성 방법 및 장치 | |
US8374345B2 (en) | Data processing system and data processing method | |
US7613915B2 (en) | Method for programming on-chip non-volatile memory in a secure processor, and a device so programmed | |
US20100172493A1 (en) | Method and device for processing data | |
EP2082346A2 (en) | Protection against side channel attack with an integrity check | |
CN1518270A (zh) | 保护电子芯片免受欺骗的公钥加密方法 | |
CN1648967A (zh) | 加密装置、加密方法及其存储介质 | |
US20120210406A1 (en) | Forming credentials | |
CN1638327A (zh) | 加密设备以及与之一起使用的程序和方法 | |
US8094813B2 (en) | System and method for modulus obfuscation | |
US9886597B2 (en) | Method for encoding data on a chip card by means of constant-weight codes | |
US20120204034A1 (en) | Data transmission method using an acknowledgement code comprising hidden authentication bits | |
RU2276465C2 (ru) | Криптографический способ и чип-карта для его осуществления | |
CN1926508A (zh) | 一种用于执行加密操作的方法和装置 | |
EP2103033B1 (en) | Efficient data integrity protection | |
US9053480B1 (en) | Secure validation using hardware security modules | |
US8291491B2 (en) | Password system, method of generating a password, and method of checking a password | |
US8051097B2 (en) | System and method for authentication using a shared table and sorting exponentiation | |
JP2009505147A (ja) | 暗号計算を実行する回路装置及び方法 | |
Karageorgos et al. | Chip-to-chip authentication method based on SRAM PUF and public key cryptography | |
US20110142231A1 (en) | Prime number generating device, prime number generating method, and computer readable storage medium | |
CN1411644A (zh) | 使用rsa类型公开密钥加密算法的电子部件中的对策方法 | |
US11899826B2 (en) | Security controller and method for processing data elements of a data array | |
CN101465726B (zh) | 用于秘钥的反破解方法及执行此方法的控制器与储存装置 | |
WO2002071687A1 (en) | Recursive cryptoaccelerator and recursive vhdl design of logic circuits |
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 |