CN105281898A - 密钥生成装置及方法 - Google Patents
密钥生成装置及方法 Download PDFInfo
- Publication number
- CN105281898A CN105281898A CN201410737927.3A CN201410737927A CN105281898A CN 105281898 A CN105281898 A CN 105281898A CN 201410737927 A CN201410737927 A CN 201410737927A CN 105281898 A CN105281898 A CN 105281898A
- Authority
- CN
- China
- Prior art keywords
- key
- symbol
- precomputation
- sub
- arrangement
- 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 48
- 125000004122 cyclic group Chemical group 0.000 claims description 23
- 230000006870 function Effects 0.000 claims description 21
- 230000011218 segmentation Effects 0.000 claims description 16
- 238000009795 derivation Methods 0.000 claims description 8
- 238000004364 calculation method Methods 0.000 description 8
- 238000005516 engineering process Methods 0.000 description 3
- 101100217298 Mus musculus Aspm gene Proteins 0.000 description 2
- 230000001174 ascending effect Effects 0.000 description 2
- 238000006243 chemical reaction Methods 0.000 description 2
- 238000004590 computer program Methods 0.000 description 2
- 238000005192 partition Methods 0.000 description 2
- 230000001419 dependent effect Effects 0.000 description 1
- 230000004069 differentiation Effects 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000000638 solvent extraction Methods 0.000 description 1
Classifications
-
- 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/30—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
-
- 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/0618—Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
- H04L9/0631—Substitution permutation network [SPN], i.e. cipher composed of a number of stages or rounds each involving linear and nonlinear transformations, e.g. AES algorithms
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
- H04L12/40—Bus networks
- H04L12/40052—High-speed IEEE 1394 serial bus
- H04L12/40104—Security; Encryption; Content protection
-
- 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/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0861—Generation of secret information including derivation or calculation of cryptographic keys or passwords
-
- 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/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0861—Generation of secret information including derivation or calculation of cryptographic keys or passwords
- H04L9/0866—Generation of secret information including derivation or calculation of cryptographic keys or passwords involving user or device identifiers, e.g. serial number, physical or biometrical information, DNA, hand-signature or measurable physical characteristics
-
- 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/30—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
- H04L9/3066—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy involving algebraic varieties, e.g. elliptic or hyper-elliptic curves
- H04L9/3073—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy involving algebraic varieties, e.g. elliptic or hyper-elliptic curves involving pairings, e.g. identity based encryption [IBE], bilinear mappings or bilinear pairings, e.g. Weil or Tate pairing
-
- 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/3226—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 using a predetermined code, e.g. password, passphrase or PIN
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Theoretical Computer Science (AREA)
- Computing Systems (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Mathematical Physics (AREA)
- Pure & Applied Mathematics (AREA)
- Algebra (AREA)
- Physics & Mathematics (AREA)
- Mobile Radio Communication Systems (AREA)
- Storage Device Security (AREA)
Abstract
本发明公开一种密钥生成装置及方法。根据示例性实施例,提供一种密钥生成装置,包括:输入分析器,由用户ID信息识别多个符号,并由所述多个符号导出至少一个排列(permutation);密钥生成器,获取多个预计算密钥,所述多个预计算密钥包括分别对应于所述多个符号的多个第一预计算密钥以及分别对应于所述至少一个排列的至少一个第二预计算密钥,并由所述多个预计算密钥生成对应于所述用户ID信息的加密密钥。
Description
技术领域
本发明公开的实施例涉及密钥的生成和颁发,具体而言涉及一种基于用户ID信息而生成用户的私钥(privatekey)之类的加密密钥(cryptographickey)的技术。
背景技术
与通常的基于公钥(publickey)的加密方法不同,大多数基于ID的加密(IdentityBasedCryptography:IBC)方法为了加密和解密而需要配对(pairing)运算。作为替代方案,介绍有利用陷门离散对数(TrapdoorDiscreteLogarithm:TDL)群的IBC方法。对于这样的TDL-IBC方式而言,由于在客户端侧执行加密/解密时伴随着比配对运算简单的运算,因此如果应用于移动通信终端之类的装置则可能比其它IBC方式更加有用。
TDL-IBC方式是利用在关于陷门的信息不被知晓的情况下实际上难以求解的离散对数问题而生成密钥。只是,如果根据这一方式,则在提取对应于用户ID的私钥的过程中可能会需要数量庞大的资源,且颁发私钥所需的时间也可能过长。这意味着随着用户数量的增加将会产生更加过多的费用。因此,需要一种用于实际应用基于TDL群之类的离散对数循环群的IBC方法的新路径。
[现有技术文献]
[专利文献]
韩国授权专利公报第10-1166129号(2012.07.10授权登记)
发明内容
本发明公开的实施例用于提供一种基于用户ID信息而生成加密密钥并预先计算所需的特定信息的改善的技术方案。
根据示例性实施例,提供一种密钥生成装置,包括:输入分析器,由用户ID信息识别多个符号,并由所述多个符号导出至少一个排列(permutation);密钥生成器,获取多个预计算密钥,所述多个预计算密钥包括分别对应于所述多个符号的多个第一预计算密钥以及分别对应于所述至少一个排列的至少一个第二预计算密钥,并由所述多个预计算密钥生成对应于所述用户ID信息的加密密钥。
所述多个预计算密钥可分别表示循环群内的元素的值,所述值可以与所述多个符号中的一个或所述至少一个排列中的一个相关。
所述密钥生成器可构成为对所述多个预计算密钥应用数学变换以生成所述加密密钥。
所述多个符号分别可以是多个候选符号中的一个,所述至少一个排列分别可以是多个候选排列中的一个,所述多个候选排列分别可以由所述多个候选符号中的至少一部分导出。
所述密钥生成装置还可以包括存储有多个子密钥的存储单元,所述多个子密钥可排列为预先设定的第一个数的子密钥组,所述密钥生成器可构成为对预先设定的第一个数的子密钥组中的一个或多个子密钥组进行检索以从所述存储单元获取所述多个第一预计算密钥以及所述至少一个第二预计算密钥,所述预先设定的第一个数的子密钥组分别可包括多个第一子密钥和多个第二子密钥,且所述多个第一子密钥中的各个第一子密钥可对应于所述多个候选符号中的各个候选符号以用于从所述存储单元获取所述多个第一预计算密钥,而所述多个第二子密钥中的各个第二子密钥可对应于所述多个候选排列中的各个候选排列以用于从所述存储单元获取所述至少一个第二预计算密钥。
所述多个候选排列分别可以是预先设定的第二个数的符号索引的至少一部分的排列,且所述输入分析器可将所述多个符号分别与多个符号索引关联起来以作为所述至少一个排列而导出所述预先设定的第二个数的符号索引中的多个符号索引的排列。
所述预先设定的第一个数为1。
所述多个候选排列分别可以是预先设定的第二个数的符号索引中的至少一部分的排列,所述输入分析器可将所述多个符号分段为多个符号组,且所述至少一个排列可包括分别对应于所述多个符号组的多个排列,而所述多个符号组中的各个符号组包括所述多个符号中的至少一个符号,所述输入分析器可针对所述各个符号组而将所述至少一个符号分别与至少一个符号索引关联起来,以作为所述多个排列中的对应排列而导出所述预先设定的第二个数的符号索引中的至少一个符号索引的排列。
所述预先设定的第一个数可以是2以上,所述密钥生成器可构成为识别对应的子密钥组,以用于针对所述各个符号组而通过检索所述多个子密钥组中的对应子密钥组而从所述存储单元获取所述多个第一预计算密钥中的至少一个第一预计算密钥以及所述至少一个第二预计算密钥中的一个第二预计算密钥,而且所述至少一个第一预计算密钥分别可以对应于所述至少一个符号,且所述一个第二预计算密钥可对应于所述至少一个符号索引的所述排列。
所述密钥生成装置还可以包括:预计算器,在所述输入分析器识别所述多个符号之前计算所述多个子密钥而存储于所述存储单元。
所述各个第一子密钥可表示离散对数循环群内的第一元素的第一离散对数值,所述各个第二子密钥可表示所述离散对数循环群内的第二元素的第二离散对数值,且所述预计算器可由所述各个候选符号生成所述第一元素以计算所述第一离散对数值,并由所述各个候选排列生成所述第二元素以计算所述第二离散对数值。
所述预计算器可将哈希函数应用于所述各个候选符号以生成所述第一元素,并将所述哈希函数应用于所述各个候选排列以生成所述第二元素。
根据另一示例性实施例,提供一种密钥生成方法,包括如下步骤:由用户ID信息识别多个符号;由所述多个符号导出至少一个排列;获取多个预计算密钥,所述多个预计算密钥包括分别对应于所述多个符号的多个第一预计算密钥以及分别对应于所述至少一个排列的至少一个第二预计算密钥;由所述多个预计算密钥生成对应于所述用户ID信息的加密密钥。
所述多个预计算密钥分别可以表示循环群内的元素的值,所述值可以与所述多个符号中的一个或所述至少一个排列中的一个相关。
所述密钥生成方法还可以包括如下步骤:对所述多个预计算密钥应用数学变换以生成所述加密密钥。
所述多个符号分别可以是多个候选符号中的一个,所述至少一个排列分别可以是多个候选排列中的一个,所述多个候选排列分别可以由所述多个候选符号中的至少一部分导出。
所述密钥生成方法还可以包括将多个子密钥存储于存储单元的步骤,且所述多个子密钥可排列为预先设定的第一个数的子密钥组,所述密钥生成方法还可以包括对预先设定的第一个数的子密钥组中的一个或多个子密钥组进行检索以从所述存储单元获取所述多个第一预计算密钥以及所述至少一个第二预计算密钥的步骤,所述预先设定的第一个数的子密钥组分别可以包括多个第一子密钥和多个第二子密钥,且所述多个第一子密钥中的各个第一子密钥可对应于所述多个候选符号中的各个候选符号以用于从所述存储单元获取所述多个第一预计算密钥,而所述多个第二子密钥中的各个第二子密钥可对应于所述多个候选排列中的各个候选排列以用于从所述存储单元获取所述至少一个第二预计算密钥。
所述多个候选排列分别可以是预先设定的第二个数的符号索引的至少一部分的排列,且所述密钥生成方法还可以包括如下步骤:将所述多个符号分别与多个符号索引关联起来以作为所述至少一个排列而导出所述预先设定的第二个数的符号索引中的多个符号索引的排列。
所述预先设定的第一个数可以是1。
所述多个候选排列分别可以是预先设定的第二个数的符号索引中的至少一部分的排列,所述密钥生成方法还可以包括将所述多个符号分段为多个符号组的步骤,且所述至少一个排列可包括分别对应于所述多个符号组的多个排列,而所述多个符号组中的各个符号组可包括所述多个符号中的至少一个符号,所述密钥生成方法还可以包括如下步骤:针对所述各个符号组而将所述至少一个符号分别与至少一个符号索引关联起来,以作为所述多个排列中的对应排列而导出所述预先设定的第二个数的符号索引中的至少一个符号索引的排列。
所述预先设定的第一个数可以是2以上,所述密钥生成方法还可以包括识别对应的子密钥组的步骤,以用于针对所述各个符号组而通过检索所述多个子密钥组中的对应子密钥组而从所述存储单元获取所述多个第一预计算密钥中的至少一个第一预计算密钥以及所述至少一个第二预计算密钥中的一个第二预计算密钥,而且所述至少一个第一预计算密钥分别可以对应于所述至少一个符号,且所述一个第二预计算密钥可对应于所述至少一个符号索引的所述排列。
所述密钥生成方法在进行所述识别的步骤之前,还可以包括如下步骤:计算所述多个子密钥以将所述多个子密钥存储于所述存储单元。
所述各个第一子密钥可表示离散对数循环群内的第一元素的第一离散对数值,所述各个第二子密钥可表示所述离散对数循环群内的第二元素的第二离散对数值,且所述密钥生成方法还可以包括如下步骤:由所述各个候选符号生成所述第一元素以计算所述第一离散对数值;由所述各个候选排列生成所述第二元素以计算所述第二离散对数值。
所述密钥生成方法还可以包括如下步骤:将哈希函数应用于所述各个候选符号以生成所述第一元素;将所述哈希函数应用于所述各个候选排列以生成所述第二元素。
根据又一示例性实施例,提供一种存储于介质的计算机程序,用于与硬件结合而执行如下步骤:由用户ID信息识别多个符号;由所述多个符号导出至少一个排列;获取多个预计算密钥,所述多个预计算密钥包括分别对应于所述多个符号的多个第一预计算密钥以及分别对应于所述至少一个排列的至少一个第二预计算密钥;由所述多个预计算密钥生成对应于所述用户ID信息的加密密钥。
根据预定的实施例,基于用户ID而生成私钥之类的加密密钥所需的时间可以显著减少,并能够实时颁发那样的密钥。
根据预定的实施例,可减少现有技术中的TDL-IBC所要求的相当多的数量的预计算。
根据预定的实施例,可以用低成本构建有效的密钥颁发服务器。
附图说明
图1为表示根据示例性实施例的密钥生成系统的图。
图2为用于说明根据示例性实施例而由用户ID信息内的符号导出排列的情形的图。
图3为用于说明根据示例性实施例而将用户ID信息内的符号分段为符号组并针对各个符号组而导出排列的情形的图。
图4为表示根据示例性实施例而生成对应于用户ID信息的私钥的过程的图。
符号说明:
100:密钥生成系统120:输入分析器
140:密钥生成器160:预计算器
180:存储单元
具体实施方式
以下,参照附图说明本发明的具体实施方式。以下的详细说明是为了有助于全面理解本说明书中记载的方法、装置和/或系统而提供的。然而这只不过是示例,本发明并不局限于此。
在说明本发明的实施例时,如果认为对有关本发明的公知技术的具体说明有可能对本发明的主旨造成不必要的混乱,则省略其详细说明。另外,后述的术语为考虑到在本发明中的功能而定义的术语,其可能因使用者、运用者的意图或惯例等而不同。因此要将整个说明书的内容作为基础而对其进行定义。在详细说明中使用的术语只是用于描述本发明的实施例,决不能认为是限定性的。除非另有明确的区分,单数形态的表述包括复数形态的含义。在本说明书中,“包括”或“具有”之类的表述用于表示某些特性、数字、步骤、操作、要素及其一部分或者组合,不能解释为排除所记载的内容以外的一个或一个以上的其他特性、数字、步骤、操作、要素及其一部分或组合的存在或者存在的可能性。
图1表示根据示例性实施例的密钥生成系统。
示例性的密钥生成系统100构成为由用户ID信息102生成加密密钥104。这样的密钥生成系统100可以使用于通过应用基于ID的加密技术方法(例如,TDL-IBC技术方法)而将私钥颁发给用户。
提供给密钥生成系统100的用户ID信息102可包括构成用户ID的多个符号。可利用于用户ID的符号的典型示例为英文字母(大写字母和/或小写字母)、数字、英文句号(“.”)之类的特殊字符或者其他多位(bit)字符之类的字符(character)。这种符号的另一示例为预定个数的位(bit)的字符串(string)。
用户ID信息102还可以包括附加性的符号。在一些实施例中,用户ID信息102可具有表示用户ID的符号及与之连接的添补符(padding)的形态。例如,添补符可包括表示日期的符号(例如,表示年、月、日和/或季度的至少一个字符的集合)和/或表示版本(version)的符号。
密钥生成系统100可如下所述地基于用户ID而生成用户的私钥。当离散对数循环群(例如TDL群)内的特定元素H=gxmodq(g为构造函数,q为素数)为对应于用户ID的一种公钥时,生成为用于表示元素H的离散对数值x的密钥在密码学角度上足够安全。因此,可将该密钥作为私钥颁发给用户。密钥生成系统100中可以预先计算好分别对应于表示用户ID信息102方面可利用的所有符号(每一符号在以下也可称为“候选符号”)的离散对数值。如果给定用户ID信息102,则密钥生成系统100可利用预先计算的一些离散对数值而将元素H的离散对数值x作为对应于用户ID信息102的私钥生成。据此,密钥生成系统100可在非常短的时间内(例如以实时方式)生成对应于用户ID信息102的私钥而将其颁发给用户。而且,还可通过少量的事先计算而生成好分别对应于候选符号的离散对数值。进而,为了在可利用于用户ID信息102的候选符号的总数并不十分庞大的情况下也能够在密码学角度上确保足够的安全性,密钥生成系统100可利用针对用户ID信息102内的符号的排列(permutation),或者利用用户ID信息102内的符号的分段(partitioning)以及针对各个分支段(Partition)内的符号的排列。
更具体而言,如图1所示,示例性的密钥生成系统100可包括输入分析器120、密钥生成器140、预计算器160以及存储单元180。密钥生成系统100的各个组件可通过硬件(例如处理器、存储器、输入输出接口等)实现。
输入分析器120可接收包含符号的用户ID信息102。为了便于说明,以下假定一个符号为从“a”到“z”的英文小写字母、从“A”到“Z”的英文大写字母、从“0”到“9”的数字以及英文句号“.”所构成的总共为63个的字符中的一个。换言之,在以下说明中,上述63个字符分别为候选符号,包含于用户ID信息102中的多个符号中的每一个为63个候选符号中的一个。只是以下说明毕竟为示例性的,并不排除利用其他个数和/或形态的候选符号(例如,给定由26个英文小写字母和10个个位数字构成的总共为36个的候选符号的情形,或者由两个以上的字符构成一个候选符号的情形)。
在一些实施例中,用户ID信息102内的符号的总数可以受限。另外,该总数可具有下限以防止安全漏洞。例如,可以要求用户ID信息102包含8个以上、20个以下的符号。
输入分析器120可以由接收的用户ID信息102识别符号,并由识别的符号导出至少一个排列。由于识别的符号中的每一个为候选符号中的一个,因此导出的至少一个排列中的每一个可以是能够由候选符号的至少一部分导出的排列(每一个排列以下也可称为“候选排列”)中的一个。
密钥生成器140可获取预先计算的密钥,并由获取的预先计算的密钥生成对应于用户ID信息102的加密密钥104。各个预先计算的密钥可表示离散对数循环群内元素的离散对数值。预先计算的密钥可包括分别对应于识别的符号的第一预计算密钥。并且,预先计算的密钥可包括分别对应于导出的至少一个排列的至少一个第二预计算密钥。
在输入分析器120识别用户ID信息102内的符号之前,预计算器160可预先计算生成加密密钥104时能够利用的预计算密钥(每一个预计算密钥以下也可称为“子密钥”)而存储于存储单元180。各个候选符号可对应于这些子密钥中的至少一个,且各个候选排列可对应于这些子密钥中的至少一个,于是密钥生成器140可从存储单元180获取生成加密密钥104所需的预计算密钥。
存储于存储单元180中的子密钥可排列为一个以上的子密钥组。子密钥组的总数可根据预定的策略(例如,是否对用户ID信息102应用分段、如果应用那样的分段则各个分支段内的符号的最大个数为多少、以及用户ID信息102内的符号的总数的上限为多少等)而预先设定。各个子密钥组可包括一一对应于候选符号的第一子密钥,并由此可以从存储单元180获取生成加密密钥104所需的第一预计算密钥。而且,各个子密钥组可包括一一对应于候选排列的第二子密钥,并由此可以从存储单元180获取生成加密密钥104所需的至少一个第二预计算密钥。
以下对密钥生成系统100的示例性实现进行更为详细的阐述。
利用排列生成密钥的示例性路径
作为用于说明的示例,输入分析器120可接收图2的用户ID信息201(即,包含11个符号的“hj1230.yoon”),并由接收的用户ID信息201识别其符号。如图2所示,用户ID信息201还可以表现为可出现相同符号(2个“o”)的符号序列。
输入分析器120可将识别的符号分别与相同个数的符号索引关联起来。这样一一对应于用户ID信息201内的符号的符号索引可以是预先设定的个数的符号索引中的至少一部分。例如,当要求输入到输入分析器120的任何用户ID信息都要包含最多20个、最少8个的符号时,输入分析器120可从由“1”到“20”的20个符号索引中选择从符号索引“1”开始到表示该用户ID信息内的符号的总数的符号索引为止的符号索引,并将选择的符号索引分别与该符号关联起来而进行标引(indexing)。据此,如图2所示,用户ID信息201可具有自己的符号索引集231。参照图2可知,用户ID信息201内的11个符号“h”,“j”、“1”、“2”、“3”、“0”、“.”、“y”、“o”、“o”以及“n”分别对应于符号索引集231内的11个符号索引“1”、“2”、“3”、“4”、“5”、“6”、“7”、“8”、“9”、“10”以及“11”。
接着,输入分析器120可以导出符号索引集231内的11个符号索引的所有可能的排列中的一种排列。在一些实施例中,输入分析器120可按照特定的顺序排布用户ID信息201内的11个符号。例如,当以数字、英文大写字母、英文小写字母以及英文句号的顺序由高到低设置优先级且数字和英文字母按升序排布时,输入分析器120可如图2所示地导出符号索引集231内的11个符号索引的排列251(即,{“6”、“3”、“4”、“5”、“1”、“2”、“11”、“9”、“10”、“8”、“7”})。符号列241以图解方式表示基于排列251的用户ID信息201内的符号的位置关系。
如前所述,密钥生成器140可以由预先计算的密钥生成对应于用户ID信息102的加密密钥104。为了示例性说明,假定加密密钥104被定义为基于如下的数学式而给定的哈希值H(ID)的离散对数值x。
[数学式1]
H(ID)=f{h1(s1),...,hn(sn),h′(π)}
其中,ID可以是用户ID信息102,n可以是包含于用户ID信息102的符号的总数,si(其中,1≤i≤n)可以是包含于用户ID信息102的符号,π可以是由包含于用户ID信息102的符号导出的排列、hi(其中,1≤i≤n)和h′可以是在离散对数循环群中定义的哈希函数(例如,在密码学角度上安全的SHA1、SHA-256、SHA-512等)。
在一些实施例中,各个hi和各个h′可以是相同的哈希函数h,且f可定义为各个因子的乘积。在此情况下,H(ID)将会由如下的数学式给定。
[数学式2]
H(ID)=h(s1)*...*h(sn)*h(π)
此时,如果将作为离散对数循环群内的元素的哈希函数值h(z)的离散对数值表示为x(z),则对应于用户ID信息102的加密密钥104将会由如下的数学式给定。
[数学式3]
x=x(s1)+...+x(sn)+x(π)
由上面的数学式可知,x可以由离散对数值(x(s1),...,x(sn),x(π))计算出,该离散对数值中的每一个可视为与包含于用户ID信息102的符号中的一个符号或者由用户ID信息102内的符号导出的排列所对应的密钥。这样的离散对数值可在用户ID信息102输入到输入分析器120之前被预计算器160计算出,且被预先存储于存储单元180。密钥生成器140可通过访问存储单元180而获取需要的离散对数值,并利用获取的离散对数值(例如,通过对获取的离散对数值应用数学变换(mathematicaltransformation)的方式)而生成加密密钥104。
在此情况下,对应于图2的用户ID信息201的H(ID)可以由如下的数学式表示。
[数学式4]
H(″hj1230.yoon″)=
h(″h″)*h(″j″)*h(″1″)*h(″2″)**h(″3″)*h(″0″)
*h(″.″)*h(″y″)*h(″o″)*h(″o″)*h(″n″)
*h({″6″,″3″,″4″,″5″,″1″,″2″,″11″,″9″,″10″,″8″,″7″})
于是,对应于图2的用户ID信息201的私钥x可根据如下的数学式导出。
[数学式5]
x=x(″h″)+x(″j″)+x(″1″)+x(″2″)+x(″3″)+x(″0″)
+x(″.″)+x(″y″)+x(″o″)+x(″o″)+x(″n″)
+x({″6″,″3″,″4″,″5″,″1″,″2″,″11″,″9″,″10″,″8″,″7″})
其中,x(z)为哈希值h(z)的离散对数值(其中,z为符号或排列)。为此,密钥生成器140可从存储单元180获取离散对数值x(z),并将获取的离散对数值求和而计算出x。计算出的x可作为加密密钥104而颁发。
为此,在一些实施例中,预计算器160可执行如下所述的操作。
预计算器160可计算分别对应于63个候选符号的第一子密钥。例如,预计算器160可以(例如通过对符号“A”应用哈希函数的方式)由该符号生成离散对数循环群内的特定元素。接着,预计算器160可计算该元素的离散对数值。预计算器160可将计算的离散对数值作为对应于符号“A”的第一子密钥存储于存储单元180。
并且,预计算器160可计算分别对应于候选排列的第二子密钥。例如,预计算器160可以(例如通过对排列{“2”、“1”、“3”、“4”、“5”、“6”、“7”、“8”}应用哈希函数的方式)由该排列生成离散对数循环群内的特定元素。接着,预计算器160可计算该元素的离散对数值。预计算器160可将计算的离散对数值作为对应于符号{“2”、“1”、“3”、“4”、“5”、“6”、“7”、“8”}的第二子密钥存储于存储单元180。
如前所述,用户ID信息102内的符号可分别对应于从“1”到“20”的20个符号索引中的至少一部分。例如,一一对应于符号的符号索引可以是从“1”到表示符号总数N(其中,8≤N≤20)的符号索引为止的N个依序符号索引。据此,候选排列除了包括20个符号索引(“1”至“20”)的20!个排列之外,还可以包括从8个符号索引(“1”至“8”)的排列到19个为止的符号索引(“1”至“19”)的排列。因此,如果如上所述地设定候选排列,则针对“bacdefghi”这一用户ID信息的排列{“2”、“1”、“3”、“4”、“5”、“6”、“7”、“8”、“9”}与针对“bacdefgh”这一另外的用户ID信息的排列{“2”、“1”、“3”、“4”、“5”、“6”、“7”、“8”}将会分别对应于不同的哈希值,且由该哈希值导出的离散对数值也将互不相同。
由预计算器160预先计算而存储于存储单元180的子密钥可排列为预先设定的个数的子密钥组。例如,前述的第一子密钥和第二子密钥可包含于一个子密钥组。据此,密钥生成器140可检索子密钥组以从存储单元180获取生成加密密钥104所需的预先计算的密钥。
利用排列和分段生成密钥的示例性路径
如图3所示,输入分析器120可以与图2相同地接收用户ID信息201(即,包含11个符号的“hj1230.yoon”),并由接收的用户ID信息201识别其符号。而且,输入分析器120可将识别的符号分段为多个符号组。各个符号组可包括用户ID信息102所包含的符号中的至少一个。各个符号组内的符号的最大可能个数可预先设定。如果预先设定为各个符号组内的符号的最大可能个数为4个,则输入分析器120可如图3所示地将用户ID信息201分段为3个符号组321、322、323。如此,某些符号组(例如符号组323)所包含的符号的个数可以小于所述最大可能个数。
输入分析器120可将各个符号组内的至少一个符号分别与相同个数的符号索引关联起来。如此与各个符号组内的至少一个符号一一对应的至少一个符号索引可以是预先设定的个数的符号索引中的至少一部分。例如,当要求任何符号组都最多包含4个符号时,输入分析器120可以从由“1”到“4”的4个符号索引中选择从符号索引“1”到表示该符号组内的符号总数的符号索引为止的至少一个符号索引,并将选择的至少一个符号索引分别与该符号组内的至少一个符号关联起来而进行标引。据此,如图3所示,符号组321、322、323中的每一个可具有自己的符号索引集331、332、333。参照图3可知:(i)符号组321内的符号“h”、“j”、“1”以及“2”一一对应于符号索引集331内的符号索引“1”、“2”、“3”以及“4”,(ii)符号组322内的符号“3”、“0”、“.”以及“y”一一对应于符号索引集332内的符号索引“1”、“2”、“3”以及“4”,(iii)符号组323内的符号“o”、“o”以及“n”一一对应于符号索引集333内的符号索引“1”、“2”以及“3”。
接着,输入分析器120可针对符号组321、322、323中的每一个导出各自的符号索引集331、332、333内的符号索引的所有可能的排列中的一个。这样,导出的排列可分别对应于符号组321、322、323。例如,输入分析器120可根据特定顺序排布符号组321内的4个符号。例如,在以数字、英文大写字母、英文小写字母以及英文句号的顺序由高到低设置优先级且数字和英文字母按升序排布的情况下,输入分析器120可如图3所示地导出符号索引集331内的符号索引的排列351(即,{“3”、“4”、“1”、“2”})。符号列341以图解方式表示基于排列351的符号组321内的符号的位置关系。同理,由符号列342和符号列343可知,可导出符号组322的符号索引集332内的符号索引的排列352以及符号组323的符号索引集333内的符号索引的排列353。
如前所述,密钥生成器140可以由预先计算的密钥生成对应于用户ID信息102的加密密钥104。为了示例性的说明,假定加密密钥104被定义为由如下的数学式给定的哈希值H(ID)的离散对数值x。
[数学式6]
h(ID)=f{h1(s1),...,hn(sn),h′1(π1),...,h′p(πp)}
其中,ID可以是用户ID信息102,n可以是用户ID信息102所包含的符号的总数,p可以是用户ID信息102分段的符号组的总数,si(其中,1≤i≤n)可以是用户ID信息102所包含的符号,πj(其中,1≤j≤p)可以是分别对应于符号组的排列,hi(其中,1≤i≤n)以及h′j(其中,1≤j≤p)可以是离散对数循环群中定义的哈希函数(例如,在密码学角度上安全的SHA1、SHA-256、SHA-512等)。
在一些实施例中,各个hi以及各个h′j可以为相同的哈希函数h,且f可被定义为各个因子的乘积。在此情况下,H(ID)将会由如下的数学式给定。
[数学式7]
H(ID)=h(s1)*...*h(sn)*h(π1)*...*h(πp)
此时,如果将作为离散对数循环群内的元素的哈希函数值h(z)的离散对数值表示为x(z),则对应于用户ID信息102的加密密钥104将会由如下的数学式给定。
[数学式8]
x=x(s1)+...+x(sn)+x(π1)+...+x(πp)
由上面的数学式可知,x可以由离散对数值(x(s1),...,x(sn),x(π1),...,x(πp))计算,各个离散对数值可被视为与用户ID信息102所包含的符号中的一个或者由用户ID信息102内的符号导出而分别应用于符号组的排列中的一个所对应的密钥。这样的离散对数值可在用户ID信息102输入到输入分析器120之前被预计算器160计算出,并可以预先存储于存储单元180。密钥生成器140可通过访问存储单元180而获取所需的离散对数值,并利用获取的离散对数值(例如,通过对获取的离散对数值应用数学变换的方式)而生成加密密钥104。
根据一些实施例,哈希值h(z)可依赖于符号z包含于哪个符号组或者排列z对应于哪个符号组。换言之,哈希值可以由h(z)=h(j,z)给定(1≤j≤p)。为此,密钥生成器140可针对各个符号组而将包含于该符号组的符号以及该符号组所对应的各个排列分别与对应于该符号组的组索引关联起来而进行标引(indexing)。这样地与符号组321、322、323一一对应的组索引361、362、363可以是预先设定的个数的组索引中的至少一部分。例如,当要求输入到输入分析器120的任何用户ID信息都最多包含20个符号且任何符号组都最多包含4个符号时,输入分析器120可采取将该用户ID信息进行分段以使尽量众多的符号组具有4个符号的策略。根据这样的分段策略,该用户ID信息内的符号最多可分段为5个符号组。因此,密钥生成器140可从由“1”到“5”的5个组索引中选择从组索引“1”到表示该用户ID信息内的符号被分段而成的符号组的总数的组索引为止的组索引,并将选择的组索引分别与这些符号组关联起来而进行标引。
作为具体示例,密钥生成器140可针对图3的符号组321而将符号组321内的符号“h、”“j、”“1、”“2”以及符号组321所对应的排列{“3”、“4、”“1、”“2”}分别与名为“1”的组索引361关联起来而进行标引。同理,密钥生成器140可针对符号组322和符号组323分别执行利用名为“2”的组索引362和名为“3”的组索引363的标引操作。
在此情况下,对应于图3的用户ID信息201的H(ID)可以由如下的数学式表示。
[数学式9]
H(″hj1230.yoon″)=
h(1,″h″)*h(1,″j″)*h(1,″1″)*h(1,″2″)*h(1,{″3″,″4″,″1″,″2″})
*h(2,″3″)*h(2,″0″)*h(2,″.″)*h(2,″y″)*h(2,{″2″,″1″,″4″,″3″})
*h(3,″o″)*h(3,″o″)*h(3,″n″)*h(3,{″3″,″1″,″2″})
于是,对应于图3的用户ID信息201的私钥x可根据如下的数学式而导出。
[数学式10]
x=x(1,″h″)+x(1,″j″)+x(1,″1″)+x(1,″2″)+x(1,{″3″,″4″,″1″,″2″})
+x(2,″3″)+x(2,″0″)+x(2,″.″)+x(2,″y″)+x(2,{″2″,″1″,″4″,″3″})
+x(3,″o″)+x(3,″o″)+x(3,″n″)+x(3,{″3″,″1″,″2″})
其中,x(j,z)为哈希值h(j,z)的离散对数值(1≤j≤p)。为此,密钥生成器140可从存储单元180获取离散对数值x(j,z),并将获取的离散对数值进行求和而计算出x。计算出的x可作为加密密钥104而颁发。
对此,以下更加具体地说明预计算器160根据一些实施例而执行的操作。尤其,预计算器160为了预先计算密钥生成器140生成加密密钥104时可能需要的密钥,可以考虑用户ID信息102内的符号究竟包含于预先设定的个数以下的符号组中的哪个符号组,并考虑导出的排列究竟对应于这些符号组中的哪个符号组。例如,用户ID信息102内的符号最多可分段为5个符号组,且那样的符号组可分别对应于从“1”到“5”的5个组索引中的至少一部分。
预计算器160可将63个候选符号中的每一个分别与组索引关联起来而进行标引。而且,预计算器160可计算分别对应于标引的候选符号的第一子密钥。通过与前述的方式相同的方式,预计算器160可以为了计算第一子密钥而生成离散对数循环群内的特定元素并计算对应于该元素的离散对数值。为了生成那样的元素而可以应用哈希函数。只是,需注意即使是相同的符号也可能根据由哪个组索引标引(例如应用不同的哈希函数)而计算出不同的哈希值。
例如,预计算器160可将符号“A”分别与5个组索引“1”、“2”、“3”、“4”、“5”进行标引而生成5个标引的符号。预计算器160通过这样的方式而将总共为63个的符号中的每一个分别与5个索引中的每一个关联起来而进行标引,从而可以生成63×5=315个标引的符号。接着,预计算器160可计算分别对应于315个标引的符号的315个第一子密钥。如此,根据符号“A”包含于哪个符号组(例如,究竟是由名为“1”的组索引进行标引还是由名为“5”的组索引进行标引),对应于该符号的第一子密钥可能变得不同。
进而,预计算器160可将各个候选排列分别与组索引关联起来进行标引。并且,预计算器160可计算分别对应于标引的候选排列的第二子密钥。通过与前述的方式相同的方式,预计算器160可以为了计算第二子密钥而生成离散对数循环群内的特定元素并计算对应于该元素的离散对数值。为了生成那样的元素而可以应用哈希函数。只是,需注意即使是相同的排列也可能根据由哪个组索引标引(例如应用不同的哈希函数)而计算出不同的哈希值。
根据一些实施例,候选排列可以如下所述地给定。如前所述,当各个符号组内的符号的个数为1个以上、4个以下时,各个符号组内的至少一个符号可分别对应于从“1”到“4”的4个符号索引中的至少一部分。例如,一一对应于至少一个符号的至少一个符号索引可以是从“1”到表示这些符号的总数M(其中,1≤M≤4)的符号索引为止的M个依序符号索引。据此,候选排列可包括:(i)由4个符号索引“1”、“2”、“3”、“4”能够导出的4!个排列;(ii)由作为符号索引中的三个的“1”、“2”、“3”能够导出的3!个排列;(iii)由作为符号索引中的两个的“1”和“2”能够导出的2!个排列;(iv)由符号索引中的一个索引“1”能够导出的1个排列{“1”}。因此,如果候选排列被如上所述地设定,则针对“oonx”这一符号组的排列{“3”、“1”、“2”、“4”}以及针对“oon”这一另外的符号组的排列{“3”、“1”、“2”}将会分别对应于不同的哈希值,且由该哈希值导出的离散对数值也将会互不相同。
例如,预计算器160可将排列{“3”、“1”、“2”}分别与5个组索引“1”、“2”、“3”、“4”、“5”进行标引而生成5个标引的排列。预计算器160通过这样的方式而将4!+3!+2!+1!(=33)个排列分别与5个索引关联起来而进行标引,从而可以生成33×5=165个标引的排列。接着,预计算器160可计算分别对应于165个标引的排列的165个第二子密钥。如此,根据排列{“3”、“1”、“2”}对应于哪个符号组(例如,究竟是由名为“1”的组索引进行标引还是由名为“5”的组索引进行标引),对应于该排列的第二子密钥可能变得不同。
被预计算器160预先计算而存储于存储单元180的子密钥可排列为预先设定的个数的子密钥组。例如,当用户ID信息102内的符号最多分段为5个符号组时,前述的第一子密钥和第二子密钥可包含于5个子密钥组中。针对各个符号组,5个子密钥组中对应的子密钥组可包含对应于该符号组的组索引所标引的候选符号所分别对应的第一子密钥以及该组索引所标引的候选排列所分别对应的第二子密钥。据此,密钥生成器140为了从存储单元180获取生成加密密钥104所需的预先计算的密钥而可以检索5个子密钥组中的多个子密钥组(例如,在符号组的总数为三个的情况下,就是分别对应于从“1”到“3”的组索引的三个子密钥组)。例如,再次参照图3,密钥生成器140检索由名为“1”的组索引361标引的符号组321所对应的子密钥组,从而可以从存储单元180获取分别对应于符号组321内的符号“h”、“j”、“1”、“2”的第一预计算密钥以及对应于排列351({“3”、“4”、“1”、“2”})的第二预计算密钥。这对符号组322和符号组323也可同样地适用。
在一些实施例中,密钥生成系统100可实现或包含于计算装置内。这样的计算装置可包括一个以上的处理器以及可被该处理器访问的计算机可读存储介质。计算机可读存储介质可布置于处理器的内部或外部,并可通过熟知的多种多样的方式与处理器连接。计算机可读存储介质中可以存储有计算机可执行的命令。处理器可执行计算机可读存储介质中存储的命令。在那样的命令被处理器执行的情况下,可以使计算装置执行根据示例性实施例的操作。在另外的一些实施例中,输入分析器120和密钥生成器140在一个计算装置中可通过该计算装置的硬件而实现,而预计算器160和存储单元180可在另外的计算装置中通过该计算装置的硬件而实现。
图4表示根据示例性实施例而生成对应于用户ID信息的私钥的过程。例如,包含于示例性过程400的操作可通过密钥生成系统100而执行。
在开始操作过后,过程400进入到操作S410。在操作S410中,预先计算多个子密钥。例如,预计算器160可将能够利用于用户ID信息的候选符号中的每一个分别与预先设定的第一个数的组索引关联起来而进行标引,并计算出分别与标引的候选符号关联的第一子密钥。当用户ID信息内的符号分段为符号组时,预先设定的第一个数可以是这些符号组的最大可能个数。在没有应用那样的分段的情况下,预先设定的第一个数可以是1。并且,预计算器160可将能够从预先设定的第二个数的符号索引中的至少一部分导出的候选排列中的每一个分别与所述组索引关联起来而进行标引,并计算出分别与标引的候选排列关联的第二子密钥。预先设定的第二个数可以是各个符号组内的符号的最大可能个数。
接着,预先计算的多个子密钥被存储于存储单元(S420)。存储的子密钥可排列为一个或多个子密钥组。子密钥组的总数可以是预先设定的第一个数。例如,预计算器160可将第一子密钥和第二子密钥存储于存储单元180。密钥生成器140可利用所存储的子密钥以生成对应于用户ID信息的加密密钥。
在操作S430中,由用户ID信息识别多个符号并由多个符号导出至少一个排列。例如,输入分析器120可由用户ID信息识别多个符号,并将这些符号分段为多个符号组。接着,针对各个符号组而可以导出一一对应于该符号组内的至少一个符号的至少一个符号索引的排列。如果没有应用如上所述的分段,则输入分析器120可由用户ID信息识别多个符号,并导出一一对应于这些符号的符号索引的排列。
在操作S440中,获取分别对应于识别的多个符号的多个第一预计算密钥以及分别对应于导出的至少一个排列的至少一个第二预计算密钥。例如,密钥生成器140可以与前面结合数学式5而说明的一样获取哈希值h(z)的离散对数值x(z)。作为另一例,密钥生成器140可以与前面结合数学式10而说明的一样获取哈希值h(j,z)的离散对数值x(j,z),其中1≤j≤p。
在操作S450中,由预先计算的密钥生成对应于用户ID信息的私钥。例如,密钥生成器140可以与前面结合数学式5而说明的一样通过将离散对数值x(z)求和而生成私钥。作为另一例,密钥生成器140可以与前面结合数学式10而说明的一样通过将离散对数值x(j,z)求和而生成私钥x。
另外,预定的实施例可包括存储有用于在计算机上执行本说明书中记载的过程的程序的计算机可读存储介质。这样的计算机可读存储介质能够以单独或组合的方式包含程序命令、本地数据文件、本地数据结构等。该计算机可读存储介质可以是为了本发明而特别设计并构成的存储介质。计算机可读存储介质的例中包括硬盘、软盘以及磁带之类的磁介质;CD-ROM、DVD之类的光记录介质;光磁碟之类的磁光介质以及ROM、RAM、快闪存储器等为了存储并执行程序命令而特别构成的硬件装置。程序命令的例中不仅包括通过编译器制作的机器语言代码,而且还可以包括借助于解释器等而被计算机执行的高级语言代码。根据另外的实施例,可提供用于执行本说明书中记载的过程的计算机程序。那样的程序可存储于计算机可读存储介质之类的介质以便与硬件结合而执行上述过程。
以上已详细说明本发明的代表性实施例,然而本发明所属的技术领域中具有普通知识的人员相信会理解能够在不脱离本发明范围的限度内对上述的实施例进行多种多样的变形。因此,本发明的权利范围不应局限于所述的实施例而确定,而是要根据权利要求书及其等同内容而进行确定。
Claims (24)
1.一种密钥生成装置,包括:
输入分析器,由用户ID信息识别多个符号,并由所述多个符号导出至少一个排列;
密钥生成器,获取多个预计算密钥,所述多个预计算密钥包括分别对应于所述多个符号的多个第一预计算密钥以及分别对应于所述至少一个排列的至少一个第二预计算密钥,并由所述多个预计算密钥生成对应于所述用户ID信息的加密密钥。
2.如权利要求1所述的密钥生成装置,其中,所述多个预计算密钥分别表示循环群内的元素的值,所述值与所述多个符号中的一个或所述至少一个排列中的一个相关。
3.如权利要求2所述的密钥生成装置,其中,所述密钥生成器构成为对所述多个预计算密钥应用数学变换以生成所述加密密钥。
4.如权利要求1所述的密钥生成装置,其中,所述多个符号分别为多个候选符号中的一个,所述至少一个排列分别为多个候选排列中的一个,所述多个候选排列分别能够由所述多个候选符号中的至少一部分导出。
5.如权利要求4所述的密钥生成装置,其中,
还包括存储有多个子密钥的存储单元,所述多个子密钥排列为预先设定的第一个数的子密钥组,所述密钥生成器构成为对预先设定的第一个数的子密钥组中的一个或多个子密钥组进行检索以从所述存储单元获取所述多个第一预计算密钥以及所述至少一个第二预计算密钥,
所述预先设定的第一个数的子密钥组分别包括多个第一子密钥和多个第二子密钥,且所述多个第一子密钥中的各个第一子密钥对应于所述多个候选符号中的各个候选符号以用于从所述存储单元获取所述多个第一预计算密钥,而所述多个第二子密钥中的各个第二子密钥对应于所述多个候选排列中的各个候选排列以用于从所述存储单元获取所述至少一个第二预计算密钥。
6.如权利要求5所述的密钥生成装置,其中,所述多个候选排列分别为预先设定的第二个数的符号索引的至少一部分的排列,且所述输入分析器将所述多个符号分别与多个符号索引关联起来以作为所述至少一个排列而导出所述预先设定的第二个数的符号索引中的多个符号索引的排列。
7.如权利要求6所述的密钥生成装置,其中,所述预先设定的第一个数为1。
8.如权利要求5所述的密钥生成装置,其中,
所述多个候选排列分别为预先设定的第二个数的符号索引中的至少一部分的排列,
所述输入分析器将所述多个符号分段为多个符号组,且所述至少一个排列包括分别对应于所述多个符号组的多个排列,而所述多个符号组中的各个符号组包括所述多个符号中的至少一个符号,
所述输入分析器针对所述各个符号组而将所述至少一个符号分别与至少一个符号索引关联起来,以作为所述多个排列中的对应排列而导出所述预先设定的第二个数的符号索引中的至少一个符号索引的排列。
9.如权利要求8所述的密钥生成装置,其中,
所述预先设定的第一个数为2以上,
所述密钥生成器构成为识别对应的子密钥组,以用于针对所述各个符号组而通过检索所述多个子密钥组中的对应子密钥组而从所述存储单元获取所述多个第一预计算密钥中的至少一个第一预计算密钥以及所述至少一个第二预计算密钥中的一个第二预计算密钥,而且所述至少一个第一预计算密钥分别对应于所述至少一个符号,且所述一个第二预计算密钥对应于所述至少一个符号索引的所述排列。
10.如权利要求5所述的密钥生成装置,其中,还包括:
预计算器,在所述输入分析器识别所述多个符号之前计算所述多个子密钥而存储于所述存储单元。
11.如权利要求10所述的密钥生成装置,其中,所述各个第一子密钥表示离散对数循环群内的第一元素的第一离散对数值,所述各个第二子密钥表示所述离散对数循环群内的第二元素的第二离散对数值,且所述预计算器由所述各个候选符号生成所述第一元素以计算所述第一离散对数值,并由所述各个候选排列生成所述第二元素以计算所述第二离散对数值。
12.如权利要求11所述的密钥生成装置,其中,所述预计算器将哈希函数应用于所述各个候选符号以生成所述第一元素,并将所述哈希函数应用于所述各个候选排列以生成所述第二元素。
13.一种密钥生成方法,包括如下步骤:
由用户ID信息识别多个符号;
由所述多个符号导出至少一个排列;
获取多个预计算密钥,所述多个预计算密钥包括分别对应于所述多个符号的多个第一预计算密钥以及分别对应于所述至少一个排列的至少一个第二预计算密钥;
由所述多个预计算密钥生成对应于所述用户ID信息的加密密钥。
14.如权利要求13所述的密钥生成方法,其中,所述多个预计算密钥分别表示循环群内的元素的值,所述值与所述多个符号中的一个或所述至少一个排列中的一个相关。
15.如权利要求14所述的密钥生成方法,其中,还包括如下步骤:
对所述多个预计算密钥应用数学变换以生成所述加密密钥。
16.如权利要求13所述的密钥生成方法,其中,所述多个符号分别为多个候选符号中的一个,所述至少一个排列分别为多个候选排列中的一个,所述多个候选排列分别能够由所述多个候选符号中的至少一部分导出。
17.如权利要求16所述的密钥生成方法,其中,
还包括将多个子密钥存储于存储单元的步骤,且所述多个子密钥排列为预先设定的第一个数的子密钥组,所述密钥生成方法还包括对预先设定的第一个数的子密钥组中的一个或多个子密钥组进行检索以从所述存储单元获取所述多个第一预计算密钥以及所述至少一个第二预计算密钥的步骤,
所述预先设定的第一个数的子密钥组分别包括多个第一子密钥和多个第二子密钥,且所述多个第一子密钥中的各个第一子密钥对应于所述多个候选符号中的各个候选符号以用于从所述存储单元获取所述多个第一预计算密钥,而所述多个第二子密钥中的各个第二子密钥对应于所述多个候选排列中的各个候选排列以用于从所述存储单元获取所述至少一个第二预计算密钥。
18.如权利要求17所述的密钥生成方法,其中,
所述多个候选排列分别为预先设定的第二个数的符号索引的至少一部分的排列,且所述密钥生成方法还包括如下步骤:
将所述多个符号分别与多个符号索引关联起来以作为所述至少一个排列而导出所述预先设定的第二个数的符号索引中的多个符号索引的排列。
19.如权利要求18所述的密钥生成方法,其中,所述预先设定的第一个数为1。
20.如权利要求17所述的密钥生成方法,其中,
所述多个候选排列分别为预先设定的第二个数的符号索引中的至少一部分的排列,
所述密钥生成方法还包括将所述多个符号分段为多个符号组的步骤,且所述至少一个排列包括分别对应于所述多个符号组的多个排列,而所述多个符号组中的各个符号组包括所述多个符号中的至少一个符号,
所述密钥生成方法还包括如下步骤:
针对所述各个符号组而将所述至少一个符号分别与至少一个符号索引关联起来,以作为所述多个排列中的对应排列而导出所述预先设定的第二个数的符号索引中的至少一个符号索引的排列。
21.如权利要求20所述的密钥生成方法,其中,
所述预先设定的第一个数为2以上,
所述密钥生成方法还包括识别对应的子密钥组的步骤,以用于针对所述各个符号组而通过检索所述多个子密钥组中的对应子密钥组而从所述存储单元获取所述多个第一预计算密钥中的至少一个第一预计算密钥以及所述至少一个第二预计算密钥中的一个第二预计算密钥,而且所述至少一个第一预计算密钥分别对应于所述至少一个符号,且所述一个第二预计算密钥对应于所述至少一个符号索引的所述排列。
22.如权利要求17所述的密钥生成方法,其中,在进行所述识别的步骤之前,还包括如下步骤:
计算所述多个子密钥以将所述多个子密钥存储于所述存储单元。
23.如权利要求22所述的密钥生成方法,其中,所述各个第一子密钥表示离散对数循环群内的第一元素的第一离散对数值,所述各个第二子密钥表示所述离散对数循环群内的第二元素的第二离散对数值,且所述密钥生成方法还包括如下步骤:
由所述各个候选符号生成所述第一元素以计算所述第一离散对数值;
由所述各个候选排列生成所述第二元素以计算所述第二离散对数值。
24.如权利要求23所述的密钥生成方法,其中,还包括如下步骤:
将哈希函数应用于所述各个候选符号以生成所述第一元素;
将所述哈希函数应用于所述各个候选排列以生成所述第二元素。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020140093303A KR101599144B1 (ko) | 2014-07-23 | 2014-07-23 | 키 생성 장치 및 방법 |
KR10-2014-0093303 | 2014-07-23 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105281898A true CN105281898A (zh) | 2016-01-27 |
CN105281898B CN105281898B (zh) | 2020-06-16 |
Family
ID=55150294
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410737927.3A Active CN105281898B (zh) | 2014-07-23 | 2014-12-05 | 密钥生成装置及方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US9479327B2 (zh) |
KR (1) | KR101599144B1 (zh) |
CN (1) | CN105281898B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2019123248A1 (en) * | 2017-12-19 | 2019-06-27 | International Business Machines Corporation | Multifactor authentication |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9779233B2 (en) * | 2015-03-05 | 2017-10-03 | Ricoh Co., Ltd. | Broker-based authentication system architecture and design |
US10341098B2 (en) * | 2017-01-24 | 2019-07-02 | Nxp B.V. | Method of generating cryptographic key pairs |
US10635792B2 (en) * | 2017-08-31 | 2020-04-28 | Sybase 365, Inc. | Multi-factor authentication with URL validation |
US10903997B2 (en) * | 2017-10-19 | 2021-01-26 | Autnhive Corporation | Generating keys using controlled corruption in computer networks |
CN107580003A (zh) * | 2017-10-31 | 2018-01-12 | 哈尔滨工业大学深圳研究生院 | 工业物联网环境下安全的无证书可搜索公钥加密方案 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040049685A1 (en) * | 2001-03-14 | 2004-03-11 | Laszlo Jaloveczki | Authorisation method for a user of a limited access system having an authorisation centre |
CN102098156A (zh) * | 2009-12-10 | 2011-06-15 | Nxp股份有限公司 | 密码转换数据文本的改进或与之相关的改进 |
CN103457720A (zh) * | 2012-05-31 | 2013-12-18 | 三星Sds株式会社 | 用于基于id的加密系统的密钥生成装置及其方法 |
CN103457732A (zh) * | 2012-05-31 | 2013-12-18 | 三星Sds株式会社 | 私钥生成装置及方法 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7353541B1 (en) * | 1999-09-07 | 2008-04-01 | Sony Corporation | Systems and methods for content distribution using one or more distribution keys |
DE60114833T2 (de) * | 2000-03-24 | 2006-04-13 | Dategrity Corp., Bellevue | Überprüfbare, geheime mischung von verschlüsselten daten wie z. b. elgamal-verschlüsselte daten für gesicherte mehrinstanzwahlen |
WO2004034184A2 (en) * | 2002-08-23 | 2004-04-22 | Exit-Cube, Inc. | Encrypting operating system |
US7596701B2 (en) * | 2004-07-07 | 2009-09-29 | Oracle International Corporation | Online data encryption and decryption |
US8566593B2 (en) * | 2009-07-06 | 2013-10-22 | Intel Corporation | Method and apparatus of deriving security key(s) |
KR101166129B1 (ko) | 2011-05-31 | 2012-07-23 | 서울대학교산학협력단 | 사전계산 테이블을 이용한 이산대수 계산 방법 및 그 장치 |
KR101493212B1 (ko) * | 2012-10-31 | 2015-02-23 | 삼성에스디에스 주식회사 | 아이디 기반 암호화, 복호화 방법 및 이를 수행하기 위한 장치 |
-
2014
- 2014-07-23 KR KR1020140093303A patent/KR101599144B1/ko active IP Right Grant
- 2014-12-05 US US14/561,641 patent/US9479327B2/en active Active
- 2014-12-05 CN CN201410737927.3A patent/CN105281898B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040049685A1 (en) * | 2001-03-14 | 2004-03-11 | Laszlo Jaloveczki | Authorisation method for a user of a limited access system having an authorisation centre |
CN102098156A (zh) * | 2009-12-10 | 2011-06-15 | Nxp股份有限公司 | 密码转换数据文本的改进或与之相关的改进 |
CN103457720A (zh) * | 2012-05-31 | 2013-12-18 | 三星Sds株式会社 | 用于基于id的加密系统的密钥生成装置及其方法 |
CN103457732A (zh) * | 2012-05-31 | 2013-12-18 | 三星Sds株式会社 | 私钥生成装置及方法 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2019123248A1 (en) * | 2017-12-19 | 2019-06-27 | International Business Machines Corporation | Multifactor authentication |
GB2582878A (en) * | 2017-12-19 | 2020-10-07 | Ibm | Multifactor authentication |
Also Published As
Publication number | Publication date |
---|---|
CN105281898B (zh) | 2020-06-16 |
KR20160011956A (ko) | 2016-02-02 |
KR101599144B1 (ko) | 2016-03-02 |
US9479327B2 (en) | 2016-10-25 |
US20160028538A1 (en) | 2016-01-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20230231840A1 (en) | Encryption and decryption techniques using shuffle function | |
CN106850221B (zh) | 信息加密、解密方法及装置 | |
CN105281898A (zh) | 密钥生成装置及方法 | |
CN101340279B (zh) | 数据加密及解密方法、系统及设备 | |
US8345876B1 (en) | Encryption/decryption system and method | |
US8600048B1 (en) | Format-translating encryption systems | |
CN105099652B (zh) | 数据加密、解密方法和装置 | |
Al-Harbi et al. | Security analysis of DNA based steganography techniques | |
US11018855B2 (en) | Multi-factor-protected private key distribution | |
EP3503456A1 (en) | Homomorphic encryption for password authentication | |
CN108632031A (zh) | 密钥生成装置及方法、加密装置及方法 | |
CN108183796A (zh) | 利用白盒库文件和白盒密钥文件进行加解密的方法及装置 | |
CN108134673A (zh) | 一种生成白盒库文件的方法及装置 | |
Lee et al. | Security analysis and modification of ID-based encryption with equality test from ACISP 2017 | |
Blackburn et al. | On the security of the Algebraic Eraser tag authentication protocol | |
CN106656500A (zh) | 加密装置及方法 | |
KR102132685B1 (ko) | 순서 노출 암호화를 위한 장치 및 방법 | |
Beckers et al. | Fault analysis of the chacha and salsa families of stream ciphers | |
CN107968793A (zh) | 一种下载白盒密钥的方法、装置及系统 | |
Saini et al. | S-method: secure multimedia encryption technique in cloud environment | |
Wang et al. | Matrix FHE and its application in optimizing bootstrapping | |
KR20200089832A (ko) | 신뢰기관이 없는 다중 클라이언트 환경의 순서 노출 암호화를 위한 장치 및 방법 | |
CN117294429B (zh) | 基于区块链的公共资源交易数据加解密方法、系统及介质 | |
Lasry | Cracking SIGABA in less than 24 hours on a consumer PC | |
Iskandar et al. | Utility software design to comprehend the cryptography CAST-128 method |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |