CN109474425A - 一种基于多个共享密钥获得任意指定长度派生密钥的方法 - Google Patents
一种基于多个共享密钥获得任意指定长度派生密钥的方法 Download PDFInfo
- Publication number
- CN109474425A CN109474425A CN201811599017.8A CN201811599017A CN109474425A CN 109474425 A CN109474425 A CN 109474425A CN 201811599017 A CN201811599017 A CN 201811599017A CN 109474425 A CN109474425 A CN 109474425A
- Authority
- CN
- China
- Prior art keywords
- key
- derivative
- index
- bit string
- shared
- 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
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/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0816—Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
- H04L9/0838—Key agreement, i.e. key establishment technique in which a shared key is derived by parties as a function of information contributed by, or associated with, each of these
-
- 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/0869—Generation of secret information including derivation or calculation of cryptographic keys or passwords involving random numbers or seeds
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Computer Security & Cryptography (AREA)
- Theoretical Computer Science (AREA)
- Mathematical Physics (AREA)
- Physics & Mathematics (AREA)
- Pure & Applied Mathematics (AREA)
- Mathematical Optimization (AREA)
- Computing Systems (AREA)
- Mathematical Analysis (AREA)
- General Physics & Mathematics (AREA)
- Algebra (AREA)
- Storage Device Security (AREA)
Abstract
本发明公开一种基于多个共享密钥获得任意指定长度派生密钥的方法,所述方法包括通信发起方和通信接收方双方确立派生密钥生成过程中使用的单向函数、所述通信发起方和通信接收方双方实现批量的密钥共享、选取多个共享密钥、基于所选的多个共享密钥及辅助输入生成指定长度的派生密钥。本发明方法可根据具体应用中密钥所需安全强度要求选择不同数量的共享密钥来进行密钥派生。
Description
技术领域
本发明涉及信息安全领域的一种派生密钥生成方法,具体涉及一种基于多个共享密钥获得任意指定长度派生密钥的方法。
背景技术
密码学在信息安全领域起着至关重要的核心作用,现代密码学普遍遵循的基尔霍夫原则(Kerckhoff′s principle)指出“密码系统的安全性仅依赖于密钥的保密性,除密钥外其他所有因素均可公开”,而密钥的安全性取决于密钥空间的大小以及密钥的随机性。一次一密是目前已知的信息论意义安全的加解密方法,通信双方每次使用不同的与明文消息等长的共享密钥对数据进行加解密;而更普遍的数据加解密算法则使用固定长度的共享密钥对任意长度的数据进行加解密,比如流加解密算法中通过将固定长度的种子密钥扩展成任意长度的流密钥来加解密数据,而分组加解密算法中使用固定长度的分组密钥配合加密模式来加解密任意长度的数据。为简化对密钥的管理,实际应用中加解密双方常基于共享密钥使用密钥派生函数(Key Derivation Function,KDF)来生成多个固定长度的派生密钥或一个任意给定长度的派生密钥,并使用派生密钥应用于不同的数据加解密中。现有的密钥派生函数通常只基于单独的一个共享密钥进行密钥派生。由于派生密钥的安全强度不会超过其基于的共享密钥的安全强度,使用现有密钥派生函数得到的派生密钥的安全强度是固定的(若共享密钥的长度为分组密钥长度,则派生密钥的安全强度不超过一个分组密钥的安全强度)。因此,设计基于多个共享密钥的可按需获得给定安全强度的派生密钥的密钥派生方法具有重要应用价值。
经过对现有技术的文献检索发现,国际标准组织IETF(Internet EngineeringTask Force,互联网工程任务组)的rfc8018标准“PKCS#5:Password-Based CryptographySpecification,Version 2.1”(公钥密码第5号标准:基于口令的密码应用规范,版本2.1)提出的PBKDF2(Password-Based Key Derivation Function 2,基于口令的密钥派生函数2),利用伪随机函数,从用户口令出发获得指定长度的派生密钥。这种方法使用单独的一个用户口令可获得任意指定长度的派生密钥,通过在算法中引入随机盐数据及进行多重迭代来增加攻击的计算复杂度,虽然从相同的用户口令出发可以获得不同的随机派生密钥,但获得的派生密钥安全性与用户口令的安全性相当。
中华人民共和国密码行业标准GM/T0003-2012“SM2椭圆曲线公钥密码算法”及GM/T0044-2016“SM9标识密码算法”中提出了一种密钥派生算法。这种方法利用密码杂凑函数,将共享密钥派生获得指定长度的派生密钥。与PBKDF2方法类似,这种方法使用单独的一个共享密钥获得的任意指定长度的派生密钥,所获派生密钥的安全性与共享密钥的安全性相当。
美国国家标准局(American National Standard Institute,ANSI)发布的ANSIX9.24-1:2009标准“Retail Financial Service Symmetric Key Management Part 1:Using Symmetric Techniques”(零售金融服务中的对称密钥管理第1部分:使用对称技术)中提出的DUKPT(Derive Unique Key Per Transaction,一交易一密钥密钥派生)设计中,客户端使用固定个数的密钥寄存器,从单独的一个共享密钥开始,为每笔交易产生一个唯一的交易密钥,在确保交易密钥前向安全的同时,使得服务端可在不超过固定次数的伪随机函数调用的条件下获得相同的该笔交易密钥。该方法使用单独的一个共享密钥可获得固定数量的多个交易密钥,其产生的交易密钥具有前向安全性,即从后续编号的交易密钥出发无法获得前导编号的交易密钥,该方法所获的每个派生密钥的安全性与共享密钥的安全性相当。
Brier E等人在论文“A Forward-Secure Symmetric-Key Derivation Protocol:How to Improve Classic DUKPT”(一种前向安全对称密钥派生协议:如何改进经典DUKPT)(ASIACRYPT 2010,pp.250--267,2010)(2010年亚密会论文集250--267页)中提出的O-DUKPT(Optimal Derive Unique Key Per Transaction,一交易一密钥最优密钥派生)的设计对ANSI X9.24-1:2009标准的DUKPT进行了优化。该改进方法相对于原DUKPT协议增加了可派生密钥的规模,产生的派生密钥具有前向安全性,所获的每个派生密钥的安全性与共享密钥的安全性相当。
发明内容
为了克服上述问题,本发明给出了一种基于多个共享密钥获得任意指定长度派生密钥的方法。
在一种实施方式中,本发明提供一种基于多个共享密钥获得任意指定长度派生密钥的方法,所述方法包括下步骤:
步骤1:通信发起方和通信接收方双方确立派生密钥生成过程中使用的单向函数H:单向函数H的输入可以是任意长度的比特串,输出是固定长度v的比特串;所述{0,1}表示由0和1组成的集合,用于表示比特值;所述v表示一个固定的正整数;所述{0,1}v表示长度恰为v的比特串组成的集合;所述*表示任意的非负整数;所述{0,1}*表示任意长度的比特串组成的集合;
步骤2:所述通信发起方和通信接收方双方实现批量的密钥共享,并将共享的密钥按索引进行组织;
步骤3:所述通信发起方和通信接收方双方根据安全要求确认所需的共享密钥个数,选取多个共享密钥,设置辅助输入,并设置输出派生密钥比特长度;其中所述辅助输入是指所述通信发起方加入的与共享密钥k1,k2,…,kn无关的可公开的任意信息,k1,k2,…,kn为各个所述共享密钥的比特串;
步骤4:所述通信发起方和通信接收方双方根据所述单向函数H,调用组合密钥派生函数,基于所选的多个共享密钥及辅助输入生成指定长度的派生密钥;所述组合密钥派生函数是指一种输入为单向函数H、正整数n、n个比特串k1,k2,…,kn、辅助输入aux、正整数l,输出为长度l的比特串的函数。
在一种实施方式中,所述单向函数H:选用国密标准GM/T0004-2012中的SM3密码杂凑算法,所述v=256。
在一种实施方式中,所述通信发起方和通信接收方双方通过共享密钥预置、或量子密钥分发技术在线分发、或密钥协商,实现双方成批量的密钥共享。
在一种实施方式中,所述通信发起方和通信接收方双方以(idx,len,key)的逻辑方式对共享密钥进行组织,其中idx为密钥的索引,双方可通过该索引引用对应的共享密钥;len为对应密钥的比特长度;key为对应密钥的值,该值在实际存储实体中使用密码手段进行保护。
在一种实施方式中,所述辅助输入设置为通信发起方当前的时间戳数值。
在一种实施方式中,所述组合密钥派生函数使用不同的表示方法对同一数据对象进行表示,使得可以在任意的比特串或字节串上定义运算,其包括:根据单向函数输出的比特数v,获得中的v次不可约多项式r(x),基于r(x)构造有限域所述为系数取值于有限域的以x为变元的一元多项式组成的集合;获得迭代轮数及索引值定长比特串表示位数m;计算以i为索引的密钥派生随机矩阵生成元素种子ti,i为密钥组织中的索引整数;计算以i,j为索引的密钥派生随机矩阵元素tij,i,j为密钥组织中的索引整数;计算以i,w为索引的轮种子密钥riw,i为密钥组织中的索引整数,w为密钥组织中的轮序号索引;计算以i,w为索引的派生密钥分片siw,i为密钥组织中的索引整数,w为密钥组织中的轮序号索引;输出派生密钥k。
在一种实施方式中,所述对同一数据对象的多种表示方法包括定长字节串表示、8倍定长比特串表示、二进制表示、中多项式表示、整数表示;所述各表示方法均以现有计算机系统对字节的表示为基础。
在一种实施方式中,所述有限域是指:记 为中具有最小整数表示的次数为v的不可约多项式;记为有限域即:中的元素为中次数低于v的多项式,其中元素a(x)与b(x)的加法定义为a(x)+b(x)mod r(x),乘法定义为a(x)b(x)mod r(x),a(x)及b(x)代表中的任意两个元素,即中次数低于v的任意两个多项式;对于v位比特串h,其中多项式表示也被称为h的元素表示,简称为h元素。
在一种实施方式中,所述迭代轮数是指算法中产生派生密钥分片的次数,所述索引值定长比特串表示位数m是指为表示索引对应数值而使用的比特位数,具有而言: 为满足内最小整数;所述l为所需派生密钥的比特长度;所述n为生成派生密钥使用的共享密钥的个数;所述v为所述单向函数H的输出比特长度。
在一种实施方式中,所述以i为索引的密钥派生随机矩阵生成元素种子ti是指:对每个i=1,…,n,计算ti=H(ki||aux||(2m-1)),这里(2m-1)代表整数2m-1的m位比特串表示;所述密钥派生随机矩阵生成元素种子用于生成密钥派生随机矩阵元素;所述ki为第i个共享密钥比特串;所述aux为辅助输入;所述的m为索引值定长比特串表示位数。
在一种实施方式中,所述以i,j为索引的密钥派生随机矩阵元素tij是指:在中计算元素这里tj代表tj的元素表示;所述密钥派生随机矩阵元素被用于生成派生密钥分片;所述为所述有限域;所述tj为所述以j为索引的密钥派生随机矩阵生成元素种子。
在一种实施方式中,所述以i,w为索引的轮种子密钥riw是指:对每个轮索引及每个i=1,…,n,计算riw=H(ki||aux||(((w-1)n+(i-1))v));这里(((w-1)n+(i-1))v)代表整数((w-1)n+(i-1))v的m位比特串表示;所述为迭代轮数;所述n为生成派生密钥使用的共享密钥的个数;所述H为所述单向函数;所述ki为第i个共享密钥比特串;所述aux为辅助输入;所述v为单向函数H的输出比特长度。
在一种实施方式中,所述以i,w为索引的派生密钥分片siw是指:对每个轮索引及每个i=1,…,n,计算中元素这里rjw代表rjw的元素表示;所述派生密钥分片是派生密钥的组成部分,全部派生密钥分片一起组成派生密钥。
在一种实施方式中,所述派生密钥k是指:记 则k为的前l个比特构成的比特串;所述n为生成派生密钥使用的共享密钥的个数;所述为迭代轮数。
在一种实施方式中,本发明的方法还包括所述通信发起方和通信接收方双方根据应用需求,在应用中使用步骤4输出的全部派生密钥或派生密钥的一部分。
本发明方法可根据具体应用中密钥所需安全强度要求选择不同数量的共享密钥来进行密钥派生。本发明方法通过使用安全单向函数,基于所选的全部共享密钥构建密钥派生随机矩阵,根据所需派生密钥长度,基于共享密钥及序号信息获得多轮种子密钥,并使用密钥派生随机矩阵作用于每轮种子密钥而获得派生密钥分片,最终形成派生密钥。本发明方法获得的派生密钥具有如下特点:由于密钥派生随机矩阵的使用,派生密钥的每个比特与所基于的全部共享密钥相关;由于单向函数及密钥派生随机矩阵的使用,派生密钥的安全强度与基于的全部共享密钥安全强度相当;由于轮种子密钥可直接通过共享密钥及序号信息快速获得,本发明方法可快速获得部分派生密钥,使得应用可更灵活的使用派生密钥。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请中记载的一些实施例,对于本领域普通技术人员来说,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
图1本发明方法流程架构图;
图2本发明方法的组合密钥派生函数PKDF派生密钥生成的操作流程图。
具体实施方式
为了使本领域技术领域人员更好地理解本申请中的技术方案,下面将结合实施例对本发明作进一步说明,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都应当属于本申请保护的范围。下面结合附图及实施例对本发明作进一步描述。
实施例一本发明基于多个共享密钥获得任意指定长度派生密钥方法的基本流程
使用本发明方法生成及使用派生密钥的流程如图1所示。本发明方法主要涉及两个通信实体:通信发起方Alice和通信接收方Bob;通信双方Alice及Bob进行密钥派生并使用派生密钥的流程大致可分为5个阶段,分别为系统参数确立阶段、共享密钥分发阶段、派生密钥参数选择阶段、派生密钥生成阶段、及派生密钥使用阶段,其中前4个阶段与本发明方法有关。具体步骤如下:
步骤1:系统参数确认阶段。通信发起方Alice和通信接收方Bob确立派生密钥生成过程中使用的单向函数H:比如选用国密标准GM/T0004-2012中的SM3密码杂凑算法,此时v=256。
步骤2:共享密钥分发阶段。通信双方通过共享密钥预置、或量子密钥分发技术在线分发、或密钥协商,实现双方成批量的密钥共享,并以(idx,len,key)的逻辑方式对共享密钥进行组织。
步骤3:派生密钥参数选择阶段。通信发起方Alice和通信接收方Bob根据安全要求确认所需的共享密钥个数n及派生密钥长度l,Alice选取n个共享密钥,获得共享密钥对应的索引idx1,…,idxn,设置辅助输入aux,并通过认证信道将(n;idx1,…,idxn;aux;l)发送给Bob。
步骤4:派生密钥生成阶段。通信双方Alice及Bob根据步骤3选择的参数,以步骤2所述的方法获得密钥索引idx1,…,idxn对应的n个共享密钥k1,k2,…,kn,连同步骤1所述单向函数H,步骤3选择的共享密钥个数n,辅助输入aux及派生密钥长度l作为参数,调用组合密钥派生函数PKDF(Package Key Derivation Function),生成比特长度为l的派生密钥。
步骤5:派生密钥使用阶段。通信双方Alice及Bob根据应用需求,在实际应用中使用步骤4输出的全部派生密钥或派生密钥的一部分。
实施例二本发明方法中的组合密钥派生函数PKDF
本发明方法步骤4所述的组合密钥派生函数PKDF,该方法根据给定的n个共享密钥k1,k2,…,kn,辅助输入aux,利用单向函数H:构造指定比特长度l的派生密钥k。
组合密钥派生函数记号:k=PKDF(H;n;k1,k2,…,kn;aux;l)
输入条件:
1.单向函数H:
2.共享密钥个数n
3.n个共享密钥比特串k1,k2,…,kn
4.辅助输入比特串aux
5.派生密钥的比特长度l
输出:比特长度为l的派生密钥k
符号说明与约定:
1.记为底函数,即表示不高于实数x的最大整数。
2.对比特串x,y,比特串x||y代表x后串联y形成的比特串。
3.同一数据对象的定长字节串表示、8倍定长比特串表示、二进制表示、中多项式表示、整数表示。以现有计算机系统对字节的表示为基础,即:设字节B各比特位i,(i=0,…,7)(0为最低比特位,7为最高比特位)取值为bi,则B的2进制表示为(b7…b1b0)2,B的16进制表示为XY,其中X,Y分别代表数值b723+b622+b521+b420及b323+b222+b121+b020,比如16进制表示为d9的字节对应的2进制表示为(11011001)2。下面以字节长度为3的一个数据对象为例来说明其不同的表示方法,设该数据对象的第1个字节的2进制表示为B0=(b7…b1b0)2,第2个字节的2进制表示为B1=(b15…b9b8)2,第3个字节的2进制表示为B2=(0000000b16)2,则该数据对象的不同表示方法如下
3字节串表示:B0B1B2
24位比特串表示:b7…b1b0b15…b9b80000000b16
二进制表示:(b16b15b14…b1b0)2
中多项式表示:
整数表示:
PKDF派生密钥生成过程说明:PKDF的操作流程如图2所示。PKDF基于给定的单向函数,多个共享密钥,辅助输入及派生密钥比特长度等输入进行派生密钥的生成流程大致可分为7个阶段,分别为有限域选定阶段、迭代轮数及索引值定长比特串表示位数确定阶段、密钥派生随机矩阵生成元素种子确定阶段、密钥派生随机矩阵元素确定阶段、轮种子密钥计算阶段、派生密钥分片计算阶段、派生密钥输出阶段。具体步骤如下:
步骤1.对于输入:单向函数H:共享密钥个数n;n个共享密钥比特串k1,k2,…,kn;辅助输入比特串aux;及派生密钥的比特长度l。
步骤2.根据单向函数H的输出比特长度v,设置有限域及其运算规则:记为中具有最小整数表示的次数为v的不可约多项式。在下面的描述中,我们记为有限域即:中的元素为中次数低于v的多项式,其中元素a(x)与b(x)的加法定义为a(x)+b(x)mod r(x),乘法定义为a(x)b(x)mod r(x),a(x)及b(x)代表中的任意两个元素,即中次数低于v的任意两个多项式。对于v位比特串h,其中多项式表示也被称为h的元素表示,简称为h元素。
步骤3.根据派生密钥比特长度l,共享密钥个数n,单向函数H的输出比特长度v,计算迭代轮数及索引值定长比特串表示位数m:令迭代轮数 为满足的最小整数;则索引值定长比特串表示位数
步骤4.利用单向函数H,共享密钥ki,(i=1,…,n),辅助输入aux,及索引值定长比特串表示位数m,计算密钥派生随机矩阵生成元素种子ti:对每个i=1,…,n,计算密钥派生随机矩阵生成元素种子ti=H(ki||aux||(2m-1))。这里(2m-1)代表整数2m-1的m位比特串表示。
步骤5.利用密钥派生随机矩阵生成元素种子ti,(i=1,…,n),在中计算密钥派生随机矩阵元素tij,(i,j∈{1,…,n}):在中计算密钥派生随机矩阵元素这里tj代表tj的元素表示。
步骤6.轮序号w初始化:设置w=1。
步骤7.判断是否成立:若不成立转到步骤11;否则转到步骤8。
步骤8.利用单向函数H,共享密钥ki,(i=1,…,n),辅助输入aux,当前轮序号w及索引值定长比特串表示位数m,计算第w轮的轮种子密钥riw:对每个i=1,…,n,计算轮种子密钥riw=H(ki||aux||(((w-1)n+(i-1))v))。这里(((w-1)n+(i-1))v)代表整数((w-1)n+(i-1))v的m位比特串表示。
步骤9.利用密钥派生随机矩阵元素tij,(i,j∈{1,…,n}),以及第w轮的轮种子密钥rjw,(j=1,…,n),在中计算第w轮的派生密钥分片siw,(i=1,…,n):对每个i=1,…,n,在中计算派生密钥分片这里rjw代表rjw的元素表示。
步骤10.轮序号w自增:w=w+1。然后转到步骤7。
步骤11.将派生密钥分片串联,取其中前l个比特构成的比特串作为本次派生密钥输出k:记 则派生密钥k为的前l个比特构成的比特串。
步骤12.输出派生密钥k,结束本次组合密钥派生函数的执行。
实施例三本发明基于多个共享密钥获得任意指定长度派生密钥的具体实例
本实施例采用的单向函数H为国密标准GM/T0004-2012中的SM3密码杂凑算法,此时v=256。本实例的其他输入条件如下:给定的n=3个共享密钥k1,k2,k3均具有16字节长度,辅助输入aux具有4字节长度,要求输出的派生密钥比特长度为l=1016。k1,k2,k3及aux的字节串16进制表示分别为
基于本实例的输入条件,PKDF派生密钥生成过程如下:
1.获得中具有最小整数表示的次数为v=256的不可约多项式r(x)=x256+x10+x5+x2+1。接下来记为有限域
2.计算迭代轮数记为满足 的最小整数;计算索引值定长比特串表示位数
3.对每个i=1,…,n,计算密钥派生随机矩阵生成元素种子ti=H(ki||aux||(2m-1))。这里(2m-1)代表整数2m-1的m位比特串表示。即:
1)整数2m-1的m位比特串表示对应如下7字节串16进制表示
ff ff ff ff ff ff ff
2)以ki||aux||(2m-1)为输入调用H,即SM3密码杂凑算法,获得ti的32字节串16进制表示如下
4.在中计算密钥派生随机矩阵元素这里tj代表tj的元素表示。即:
1)t11=t12=t13=1
2)t21=t1,t22=t2,t23=t3
3)的32字节串16进制表示为
5.对每个对每个i=1,…,n,计算轮种子密钥riw=H(ki||aux||(((w-1)n+(i-1))v)),这里(((w-1)n+(i-1))v)代表整数((w-1)n+(i-1))v的m位比特串表示;对每个i=1,…,n,在中计算派生密钥分片这里rjw代表rjw的元素表示。即:
1)对w=1及i=1,2,3,获得整数((w-1)n+(i-1))v的7字节串16进制表示,如下
2)对w=1及i=1,2,3,以ki||aux||(((w-1)n+(i-1))v)为输入调用H,即SM3密码杂凑算法,获得r11,r21,r31的32字节串16进制表示,如下
3)对w=1及i=1,2,3,在中计算siw=ti1r1w+ti2r2w+ti3r3w,获得s11,s21,s31的32字节串16进制表示,如下
4)对w=2及i=1,2,3,获得整数((w-1)n+(i-1))v的7字节串16进制表示,如下
5)对w=2及i=1,2,3,以ki||aux||(((w-1)n+(i-1))v)为输入调用H,即SM3密码杂凑算法,获得r12,r22,r32的32字节串16进制表示,如下
6)对w=2及i=1,2,3,在中计算siw=ti1r1w+ti2r2w+ti3r3w,获得s12,s22,s32的32字节串16进制表示,如下
6.记即的192字节串16进制表示为
7.则派生密钥k为的前l=1016个比特构成的比特串,即k的127字节串16进制表示为
本领域的技术人员容易理解的是,在不冲突的前提下,上述各有利方式可以自由地组合、叠加。以上仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。以上仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明技术原理的前提下,还可以做出若干改进和变型,这些改进和变型也应视为本发明的保护范围。
Claims (15)
1.一种基于多个共享密钥获得任意指定长度派生密钥的方法,其特征在于,所述方法包括以下步骤:
步骤1:通信发起方和通信接收方双方确立派生密钥生成过程中使用的单向函数单向函数H的输入可以是任意长度的比特串,输出是固定长度v的比特串;所述{0,1}表示由0和1组成的集合,用于表示比特值;所述v表示一个固定的正整数;所述{0,1}v表示长度恰为v的比特串组成的集合;所述*表示任意的非负整数;所述{0,1}*表示任意长度的比特串组成的集合;
步骤2:所述通信发起方和通信接收方双方实现批量的密钥共享,并将共享的密钥按索引进行组织;
步骤3:所述通信发起方和通信接收方双方根据安全要求确认所需的共享密钥个数,选取多个共享密钥,设置辅助输入,并设置输出派生密钥比特长度;其中所述辅助输入是指所述通信发起方加入的与共享密钥k1,k2,…,kn无关的可公开的任意信息,k1,k2,…,kn为各个所述共享密钥的比特串;
步骤4:所述通信发起方和通信接收方双方根据所述单向函数H,调用组合密钥派生函数,基于所选的多个共享密钥及辅助输入生成指定长度的派生密钥;所述组合密钥派生函数是指一种输入为单向函数H、正整数n、n个比特串k1,k2,…,kn、辅助输入aux、正整数l,输出为长度l的比特串的函数。
2.根据权利要求1所述的方法,其特征在于,所述单向函数 选用国密标准GM/T0004-2012中的SM3密码杂凑算法,所述v=256。
3.根据权利要求1所述的方法,其特征在于,所述通信发起方和通信接收方双方通过共享密钥预置、或量子密钥分发技术在线分发、或密钥协商,实现双方成批量的密钥共享。
4.根据权利要求1所述的方法,其特征在于,所述通信发起方和通信接收方双方以(idx,len,key)的逻辑方式对共享密钥进行组织,其中idx为密钥的索引,双方可通过该索引引用对应的共享密钥;len为对应密钥的比特长度;key为对应密钥的值,该值在实际存储实体中使用密码手段进行保护。
5.根据权利要求1所述的方法,其特征在于,所述辅助输入设置为通信发起方当前的时间戳数值。
6.根据权利要求1所述的方法,其特征在于,所述组合密钥派生函数使用不同的表示方法对同一数据对象进行表示,使得可以在任意的比特串或字节串上定义运算,其包括:根据单向函数输出的比特数v,获得中的v次不可约多项式r(x),基于r(x)构造有限域所述为系数取值于有限域 的以x为变元的一元多项式组成的集合;获得迭代轮数及索引值定长比特串表示位数m;计算以i为索引的密钥派生随机矩阵生成元素种子ti,i为密钥组织中的索引整数;计算以i,j为索引的密钥派生随机矩阵元素tij,i,j为密钥组织中的索引整数;计算以i,w为索引的轮种子密钥riw,i为密钥组织中的索引整数,w为密钥组织中的轮序号索引;计算以i,w为索引的派生密钥分片siw,i为密钥组织中的索引整数,w为密钥组织中的轮序号索引;输出派生密钥k。
7.根据权利要求6所述的方法,其特征在于,所述对同一数据对象的多种表示方法包括定长字节串表示、8倍定长比特串表示、二进制表示、中多项式表示、整数表示;所述各表示方法均以现有计算机系统对字节的表示为基础。
8.根据权利要求6所述的方法,其特征在于,所述有限域是指:记为中具有最小整数表示的次数为v的不可约多项式;记为有限域即:中的元素为中次数低于v的多项式,其中元素a(x)与b(x)的加法定义为a(x)+b(x)mod r(x),乘法定义为a(x)b(x)mod r(x),a(x)及b(x)代表中的任意两个元素,即中次数低于v的任意两个多项式;对于v位比特串h,其中多项式表示也被称为h的元素表示,简称为h元素。
9.根据权利要求6所述的方法,其特征在于,所述迭代轮数是指算法中产生派生密钥分片的次数,所述索引值定长比特串表示位数m是指为表示索引对应数值而使用的比特位数,具体而言: 为满足的最小整数;所述l为所需派生密钥的比特长度;所述n为生成派生密钥使用的共享密钥的个数;所述v为所述单向函数H的输出比特长度。
10.根据权利要求6所述的方法,其特征在于,所述以i为索引的密钥派生随机矩阵生成元素种子ti是指:对每个i=1,…,n,计算ti=H(ki||aux||(2m-1)),这里(2m-1)代表整数2m-1的m位比特串表示;所述密钥派生随机矩阵生成元素种子用于生成密钥派生随机矩阵元素;所述ki为第i个共享密钥比特串;所述aux为辅助输入;所述m为索引值定长比特串表示位数。
11.根据权利要求6所述的方法,其特征在于,所述以i,j为索引的密钥派生随机矩阵元素tij是指:在中计算元素这里tj代表tj的元素表示;所述密钥派生随机矩阵元素被用于生成派生密钥分片;所述为所述有限域;所述tj为所述以j为索引的密钥派生随机矩阵生成元素种子。
12.根据权利要求6所述的方法,其特征在于,所述以i,w为索引的轮种子密钥riw是指:对每个轮索引及每个i=1,…,n,计算riw=H(ki||aux||(((w-1)n+(i-1))v));这里(((w-1)n+(i-1))v)代表整数((w-1)n+(i-1))v的m位比特串表示;所述为迭代轮数;所述n为生成派生密钥使用的共享密钥的个数;所述H为所述单向函数;所述ki为第i个共享密钥比特串;所述aux为辅助输入;所述v为单向函数H的输出比特长度。
13.根据权利要求6所述的方法,其特征在于,所述以i,w为索引的派生密钥分片siw是指:对每个轮索引及每个i=1,…,n,计算中元素这里rjw代表rjw的元素表示;所述派生密钥分片是派生密钥的组成部分,全部派生密钥分片一起组成派生密钥。
14.根据权利要求6所述的方法,其特征在于,所述派生密钥k是指:记则k为的前l个比特构成的比特串;所述n为生成派生密钥使用的共享密钥的个数;所述为迭代轮数。
15.根据权利要求1-14任一所述的方法,其特征在于,所述方法还包括以下步骤:所述通信发起方和通信接收方双方根据应用需求,在应用中使用步骤4输出的全部派生密钥或派生密钥的一部分。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811599017.8A CN109474425B (zh) | 2018-12-25 | 2018-12-25 | 一种基于多个共享密钥获得任意指定长度派生密钥的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811599017.8A CN109474425B (zh) | 2018-12-25 | 2018-12-25 | 一种基于多个共享密钥获得任意指定长度派生密钥的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109474425A true CN109474425A (zh) | 2019-03-15 |
CN109474425B CN109474425B (zh) | 2021-06-25 |
Family
ID=65676619
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811599017.8A Active CN109474425B (zh) | 2018-12-25 | 2018-12-25 | 一种基于多个共享密钥获得任意指定长度派生密钥的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109474425B (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111818525A (zh) * | 2020-07-13 | 2020-10-23 | 清华大学 | 面向空间信息网络的密钥更新方法和系统 |
CN112713997A (zh) * | 2020-12-28 | 2021-04-27 | 北京握奇数据股份有限公司 | 密钥协商方法和系统 |
CN114553399A (zh) * | 2020-11-18 | 2022-05-27 | 澜起电子科技(上海)有限公司 | 芯片内置密钥的派生方法及其装置 |
CN116707804A (zh) * | 2023-08-07 | 2023-09-05 | 中电信量子科技有限公司 | 增强ff1格式保留加密安全性的方法及设备 |
CN117650883A (zh) * | 2024-01-30 | 2024-03-05 | 中国科学技术大学 | 一种基于动态密钥采样的连续安全密钥派生方法和系统 |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070180247A1 (en) * | 2005-12-21 | 2007-08-02 | Nortel Networks Limited | System and method for providing identity hiding in a shared key authentication protocol |
CN101494640A (zh) * | 2008-01-23 | 2009-07-29 | 华为技术有限公司 | 保护移动ip路由优化信令的方法、系统、节点和家乡代理 |
WO2015184991A1 (en) * | 2014-06-04 | 2015-12-10 | Jintai Ding | Improvements on cryptographic systems using pairing with errors |
US20150358157A1 (en) * | 2014-06-05 | 2015-12-10 | Wuhan University | ASYMMETRIC-COMPUTING TYPE SHARED KEY ESTABLISHING METHOD SUITABLE FOR CLOUD COMPUTING AND IoT |
CN105743642A (zh) * | 2016-04-26 | 2016-07-06 | 南通大学 | 一种抗密钥连续辅助输入泄漏的基于属性加密方法 |
CN105790950A (zh) * | 2015-12-04 | 2016-07-20 | 郭操 | 基于对称密码算法的预共享多个密钥的认证方法和系统 |
EP3082356A1 (en) * | 2015-04-17 | 2016-10-19 | Gemalto SA | Method to check and prove the authenticity of an ephemeral public key |
CN106850191A (zh) * | 2017-02-19 | 2017-06-13 | 郑州云海信息技术有限公司 | 分布式存储系统通信协议的加密、解密方法及装置 |
CN108462579A (zh) * | 2018-05-23 | 2018-08-28 | 东南大学 | 一种基于密钥矩阵的密钥分配方法 |
CN109067814A (zh) * | 2018-10-31 | 2018-12-21 | 苏州科达科技股份有限公司 | 媒体数据加密方法、系统、设备及存储介质 |
-
2018
- 2018-12-25 CN CN201811599017.8A patent/CN109474425B/zh active Active
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070180247A1 (en) * | 2005-12-21 | 2007-08-02 | Nortel Networks Limited | System and method for providing identity hiding in a shared key authentication protocol |
CN101494640A (zh) * | 2008-01-23 | 2009-07-29 | 华为技术有限公司 | 保护移动ip路由优化信令的方法、系统、节点和家乡代理 |
WO2015184991A1 (en) * | 2014-06-04 | 2015-12-10 | Jintai Ding | Improvements on cryptographic systems using pairing with errors |
US20150358157A1 (en) * | 2014-06-05 | 2015-12-10 | Wuhan University | ASYMMETRIC-COMPUTING TYPE SHARED KEY ESTABLISHING METHOD SUITABLE FOR CLOUD COMPUTING AND IoT |
EP3082356A1 (en) * | 2015-04-17 | 2016-10-19 | Gemalto SA | Method to check and prove the authenticity of an ephemeral public key |
CN105790950A (zh) * | 2015-12-04 | 2016-07-20 | 郭操 | 基于对称密码算法的预共享多个密钥的认证方法和系统 |
CN105743642A (zh) * | 2016-04-26 | 2016-07-06 | 南通大学 | 一种抗密钥连续辅助输入泄漏的基于属性加密方法 |
CN106850191A (zh) * | 2017-02-19 | 2017-06-13 | 郑州云海信息技术有限公司 | 分布式存储系统通信协议的加密、解密方法及装置 |
CN108462579A (zh) * | 2018-05-23 | 2018-08-28 | 东南大学 | 一种基于密钥矩阵的密钥分配方法 |
CN109067814A (zh) * | 2018-10-31 | 2018-12-21 | 苏州科达科技股份有限公司 | 媒体数据加密方法、系统、设备及存储介质 |
Non-Patent Citations (2)
Title |
---|
GALBRAITH S: ""On the security of supersingular isogeny cryptosystems"", 《INTERNATIONAL CONFERENCE ON THE THEORY AND APPLICATION OF CRYPTOLOGY AND INFORMATION SECURITY》 * |
来齐齐: ""数据加密方案的KDM安全性研究"", 《中国优秀硕士学位论文全文数据库》 * |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111818525A (zh) * | 2020-07-13 | 2020-10-23 | 清华大学 | 面向空间信息网络的密钥更新方法和系统 |
CN111818525B (zh) * | 2020-07-13 | 2021-10-26 | 清华大学 | 面向空间信息网络的密钥更新方法和系统 |
CN114553399A (zh) * | 2020-11-18 | 2022-05-27 | 澜起电子科技(上海)有限公司 | 芯片内置密钥的派生方法及其装置 |
CN112713997A (zh) * | 2020-12-28 | 2021-04-27 | 北京握奇数据股份有限公司 | 密钥协商方法和系统 |
CN112713997B (zh) * | 2020-12-28 | 2022-04-22 | 北京握奇数据股份有限公司 | 密钥协商方法和系统 |
CN116707804A (zh) * | 2023-08-07 | 2023-09-05 | 中电信量子科技有限公司 | 增强ff1格式保留加密安全性的方法及设备 |
CN116707804B (zh) * | 2023-08-07 | 2023-10-31 | 中电信量子科技有限公司 | 增强ff1格式保留加密安全性的方法及设备 |
CN117650883A (zh) * | 2024-01-30 | 2024-03-05 | 中国科学技术大学 | 一种基于动态密钥采样的连续安全密钥派生方法和系统 |
CN117650883B (zh) * | 2024-01-30 | 2024-04-12 | 中国科学技术大学 | 一种基于动态密钥采样的连续安全密钥派生方法和系统 |
Also Published As
Publication number | Publication date |
---|---|
CN109474425B (zh) | 2021-06-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109474425A (zh) | 一种基于多个共享密钥获得任意指定长度派生密钥的方法 | |
Kuwakado et al. | Security on the quantum-type Even-Mansour cipher | |
CN104104500B (zh) | 一种量子保密传输的方法和装置 | |
KR19990087103A (ko) | 암호키 공유방법 | |
Zhao et al. | Block cipher design: generalized single-use-algorithm based on chaos | |
Mewada et al. | Classification of efficient symmetric key cryptography algorithms | |
CN113141247B (zh) | 一种同态加密方法、装置、系统及可读存储介质 | |
CN111600661B (zh) | 基于实时更新的混沌密钥分发的三维加密ofdm光系统 | |
Muruganantham et al. | Quantum cryptography for secured communication networks. | |
CN103346875A (zh) | 混沌保密通信系统中数字混沌密码的产生方法 | |
Achkoun et al. | SPF-CA: A new cellular automata based block cipher using key-dependent S-boxes | |
Khan et al. | Human psychological disorder towards cryptography: True random number generator from EEG of schizophrenics and its application in block encryption’s substitution box | |
Salman et al. | Creation of S-Box based One-Dimensional Chaotic Logistic Map: Colour Image Encryption Approach. | |
CN109344627A (zh) | 一种新型香农完美保密方法 | |
Pandey et al. | Particle swarm optimization in cryptanalysis of DES | |
CN108270565A (zh) | 一种数据混合加密方法 | |
Allawi et al. | Color image encryption using LFSR, DNA, and 3D chaotic maps | |
CN104601323B (zh) | 基于bdd解决社会主义百万富翁问题的方法 | |
CN103220130A (zh) | 数字混沌保密通信的加密及解密方法 | |
Mandal et al. | An adaptive neural network guided random block length based cryptosystem for online wireless communication (ANNRBLC) | |
Yin et al. | Efficient quantum dialogue without information leakage | |
CN110061832B (zh) | 以汉字作为密码的对称密码算法的实现方法 | |
CN108777614B (zh) | 一种加解密装置和基于通用散列函数的加解密方法 | |
CN103297221B (zh) | 基于数字混沌编码算法的混沌保密通信系统 | |
CN112422278A (zh) | 面向字节的随机多表替换加密与解密方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | 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 |