CN117411618B - 应用于国际赛事的密钥生成方法、装置及加密方法 - Google Patents

应用于国际赛事的密钥生成方法、装置及加密方法 Download PDF

Info

Publication number
CN117411618B
CN117411618B CN202311668590.0A CN202311668590A CN117411618B CN 117411618 B CN117411618 B CN 117411618B CN 202311668590 A CN202311668590 A CN 202311668590A CN 117411618 B CN117411618 B CN 117411618B
Authority
CN
China
Prior art keywords
box
key
sbox
array
replacement
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.)
Active
Application number
CN202311668590.0A
Other languages
English (en)
Other versions
CN117411618A (zh
Inventor
郑俊
申永生
赵文滟
陈冲杰
韩萌
洪世杰
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.)
Hangzhou City Brain Co ltd
Original Assignee
Hangzhou City Brain Co ltd
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 Hangzhou City Brain Co ltd filed Critical Hangzhou City Brain Co ltd
Priority to CN202311668590.0A priority Critical patent/CN117411618B/zh
Publication of CN117411618A publication Critical patent/CN117411618A/zh
Application granted granted Critical
Publication of CN117411618B publication Critical patent/CN117411618B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/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
    • H04L9/0618Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
    • H04L9/0631Substitution permutation network [SPN], i.e. cipher composed of a number of stages or rounds each involving linear and nonlinear transformations, e.g. AES algorithms
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/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
    • H04L9/0618Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
    • 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/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords

Abstract

本发明提供一种应用于国际赛事的密钥生成方法、装置及加密方法。该方法为基于SM4加密算法的密钥扩展,其包括获取256位初始密钥,基于预设的分组位数依次将低128位划分为多个低位密钥组并将高128位划分为数量相同的多个高位密钥组。异或每一低位密钥组和对应的高位密钥组以得到多个S盒置换密钥;获取当前设备的性能参数并选取S盒动态生成方式以生成S盒,S盒动态生成方式包括对性能要求较低第一动态生成方式和第二动态生成方式。将获得的多个S盒置换密钥输入已生成的S盒内得到多个S盒输出;将每一S盒置换密钥及其它S盒置换密钥所对应的S盒输出进行线性变换以得到对应的子密钥;依次拼接多个子密钥以形成128位的目标密钥。

Description

应用于国际赛事的密钥生成方法、装置及加密方法
技术领域
本发明涉及密码学领域,且特别涉及一种应用于国际赛事的密钥生成方法、装置及加密方法。
背景技术
在国际赛事中往往涉及大量人员涉密数据,包括运动员信息、比赛成绩、荣誉等。这些数据的传输、储存和处理需要高度的安全性以防止恶意访问、篡改、泄露等风险。SM4加密算法是一种加解密性能高、占用存储空间小且成本低易部署的加密算法;传统SM4加密算法已经普遍用在商业用途,加密和解密算法相对已经公开且其仅支持128位的密钥,存在密钥空间较小的安全隐患。此外,现有的SM4加解密算法采用固定S盒来做置换和替换,这种置换方式亦大大增加了其被破解的可能性。
随着密码学技术的不断发展,安全等级更高的加密算法也随之产生,如基于256位密钥的AES-256、Camellia-256等分组加密算法,这些算法也被称为“高级算法”,使用现存量子算法并配合量子计算机也无法破解;因此具有极高的安全性。然而,这些高级算法因复杂的加密方式而对计算机设备和其所处的网络环境具有极高的要求,这将极大限制了这些算法在低算力设备(如网关路由器等边缘设备)和网络环境较差设备上的使用。当前这些低算力设备和网络环境较差设备仍然采用传统的安全隐患较大的SM4加密算法进行数据加密传输。
发明内容
本发明为了克服现有技术的不足,提供一种适用于SM4加密算法且密钥空间较大的应用于国际赛事的密钥生成方法、装置及加密方法。
为了实现上述目的,本发明提供一种应用于国际赛事的密钥生成方法,其包括:
获取256位初始密钥,基于预设的分组位数依次将低128位划分为多个低位密钥组并将高128位划分为数量相同的多个高位密钥组;
将每一低位密钥组分别异或对应的高位密钥组以得到对应的多个S盒置换密钥;
获取当前设备的性能参数并基于获取的设备性能参数选取S盒动态生成方式以动态生成16×16的S盒, S盒动态生成方式包括第一动态生成方式和生成算力要求和网络环境参数均高于第一动态生成方式的第二动态生成方式;
将获得的多个S盒置换密钥输入已生成的S盒内得到多个S盒输出;
每一S盒置换密钥及其它S盒置换密钥所对应的S盒输出进行线性变换以得到每一S盒置换密钥所对应的子密钥;
依次拼接生成的多个子密钥以形成128位的目标密钥。
根据本发明的一实施例,多个低位密钥组和多个高位密钥组均对应异或后获得四个32位的S盒置换密钥, S盒为包括四个S子盒的16×16的矩阵;在获得多个S盒输出时,将四个S盒置换密钥分别输入四个S子盒内,以每一S盒置换密钥的高16位确定行而低16位确定列变换值以得到该S盒置换密钥对应的S盒输出。
根据本发明的一实施例,在获得四个S盒置换密钥ik0、ik1、ik2、ik3分别对应的S盒输出Sboxout0、Sboxout1、Sboxout2、Sboxout3后采用如下线性变换方式得到每一S盒置换密钥所对应的子密钥:
;
;
;
;
其中,MK0为S盒置换密钥ik0对应的子密钥,MK1为S盒置换密钥ik1对应的子密钥,MK2为S盒置换密钥ik2对应的子密钥,MK3为S盒置换密钥ik3对应的子密钥。
根据本发明的一实施例,设备的性能参数包括当前设备的算力参数和设备当前的通信环境参数;当设备算力参数或通信环境参数中的任一者低于其对应的预设值时以第一动态生成方式动态生成S盒。
根据本发明的一实施例,第一动态生成方式动态生成S盒包括如下步骤:
初始化生成16×16的字节矩阵;
将16×16的字节矩阵转换为长度为256的初始sbox数组;
使用Knuth-Durstenfeld Shuffle算法对初始sbox数组进行处理,依次产生随机数x并基于sbox[x]置换初始sbox数组内的所有元素,所有元素一轮置换完成后形成随机打乱后的S盒数组sbox’;
检验打乱后的S盒数组sbox’以判断其内是否存在不动点sbox’[x]= x;
若是,则对打乱后的S盒数组sbox’进行再次打乱和检验,直至打乱后的S盒数组sbox’内不再存在不动点;
保存不再存在不动点的打乱后的S盒数组sbox’以生成S盒。
根据本发明的一实施例,依次产生随机数x并基于sbox[x]置换初始sbox数组内的所有元素包括:
第1轮生成一个随机数,/>并将/>和/>做值交换;
第2轮生成一个随机数,/>,将/>和/>做值交换;
轮生成一个随机数/>,/>其中/>,将/>做值交换;其中/>表示sbox数组长度,故n=256;
时进行最后一轮交换,/>和/>做值交换;至此数组内的所有元素都完成一轮交换以生成随机打乱后的S盒记为/>
根据本发明的一实施例,打乱后的S盒数组sbox’内存在不动点对其再次打乱包括如下步骤:
将存在不动点的打乱后的S盒数组sbox’作为初始sbox数组,使用Knuth-Durstenfeld Shuffle算法对其进行一轮所有元素的置换以形成新的打乱后的S盒数组sbox’;
检验新生成的打乱后的S盒数组sbox’是否存在不动点;
若存在则继续重复上述步骤直至新生成的打乱后的S盒数组sbox’内不再存在不动点。
根据本发明的一实施例,打乱后的S盒数组sbox’内存在不动点对其再次打乱包括如下步骤:
获取不动点在打乱后的S盒数组sbox’内的位置;
产生随机数x并基于sbox[x]与不动点作值交换,其中
另一方面,本发明还提供一种应用于国际赛事的密钥生成装置,其包括初始密钥分组模块、置换密钥生成模块、S盒动态生成模块、置换模块、子密钥生成模块以及目标密钥生成模块。初始密钥分组模块获取256位初始密钥,基于预设的分组位数依次将低128位划分为多个低位密钥组并将高128位划分为数量相同的多个高位密钥组。置换密钥生成模块将每一低位密钥组分别异或对应的高位密钥组以得到对应的多个S盒置换密钥。S盒动态生成模块获取当前设备的性能参数并基于获取的设备性能参数选取S盒动态生成方式以动态生成16×16的S盒, S盒动态生成方式包括第一动态生成方式和生成算力要求和网络环境参数均高于第一动态生成方式的第二动态生成方式。置换模块将获得的多个S盒置换密钥输入已生成的S盒内得到多个S盒输出。子密钥生成模块将每一S盒置换密钥及其它S盒置换密钥所对应的S盒输出进行线性变换以得到每一S盒置换密钥所对应的子密钥。目标密钥生成模块依次拼接生成的多个子密钥以形成128位的目标密钥。
另一方面,本发明还提供一种加密方法,其采用上述应用于国际赛事的密钥生成方法所生成的密钥对明文进行加密。
根据本发明的一实施例,加密方法为包括置换网络结构的加密方法,采用动态的方式生成置换网络内的置换盒且置换盒的动态生成方式与密钥生成方法内S盒的动态生成方式相同。
综上所述,本发明提供的应用于国际赛事的密钥生成方法为基于SM4对称加解密算法的密钥扩展,以密钥长度为256位高级算法密钥长度作为SM4加密算法的初始密钥以拓宽初始密钥空间而大大降低其被破解的可能性。而基于初始密钥内高低128位的分组以及分组后每一低位密钥组和对应高位密钥组的异或操作所得到的S盒置换密钥则实现了密钥长度的转换,以使其能满足SM4加密算法。进一步的,以动态生成S盒的方式对S盒置换密钥进行操作,动态S盒生成的随机性和其对密钥置换的随机性亦大大增强了处理后多个子密钥的安全性以抵抗各种攻击,进而降低密钥被破解的可能性。
而在S盒的动态生成上,本发明提供的密钥生成方法将提供至少两种动态生成方式,采用时间和空间复杂度均较低的第一动态生成方式来动态生成S盒,进而大大降低密钥生成对计算机算力和网络环境参数的要求。当设备为低算力设备或其所处的网络环境较差时则采用第一动态生成方式来生成S盒,在有限的设备资源和网络环境下生成最优的SM4加密算法密钥,从而适用于资源有限的设备和环境,如移动设备、物联网设备等;而当设备算力较高且网络环境优异时则可选取复杂度更高的第二动态生成方式来提高动态生成后S盒的性能,进而进一步增强密钥被破解的难度。
为让本发明的上述和其它目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合附图,作详细说明如下。
附图说明
图1所示为本发明一实施例提供的应用于国际赛事的密钥生成方法的流程示意图。
图2所示为图1中采用第一动态生成方式动态生成S盒的流程示意图。
图3所示为图2中初始化生成16×16的字节矩阵的结构示意图。
图4所示为使用Knuth-Durstenfeld Shuffle算法对初始sbox数组进行处理的步骤示意图。
图5所示为图1中步骤S40将获得的多个S盒置换密钥输入已生成的S盒内得到多个S盒输出的结构示意图。
图6所示为本发明一实施例提供的应用于国际赛事的密钥生成装置的结构示意图。
图7所示为长度为256的整形初始sbox数组的结构示意图。
具体实施方式
.SM4加密算法因其算法简单、占用存储空间小的特性而能很好地兼容设备性能和网络状态,但其亦因密钥空间小而存在安全性低的问题。其它高级算法尽管其安全性性能高但其对设备的性能要求亦很高,进而导致其难以在低算力设备或较差的网络环境内使用。换言之,现有的加密算法难以在密钥安全性和设备性能兼容之间实现均衡。有鉴于此,本实施例提供一种以SM4加密算法为基础、初始密钥空间大、密钥随机性强且能匹配不同设备性能的密钥生成方法、装置及加密方法。
如图1所示,本实施例提供的应用于国际赛事的密钥生成方法包括: 获取256位初始密钥,基于预设的分组位数依次将低128位划分为多个低位密钥组并将高128位划分为数量相同的多个高位密钥组(步骤S10)。将每一低位密钥组分别异或对应的高位密钥组以得到对应的多个S盒置换密钥(步骤S20)。获取当前设备的性能参数并基于获取的设备性能参数选取S盒的动态生成方式以动态生成16×16的S盒,S盒动态生成方式包括第一动态生成方式和生成算力要求和网络环境参数均高于第一动态生成方式的第二动态生成方式(步骤S30)。将获得的多个S盒置换密钥输入已生成的S盒内得到多个S盒输出(步骤S40)。将每一S盒置换密钥及其它S盒置换密钥所对应的S盒输出进行线性变换以得到每一S盒置换密钥所对应的子密钥(步骤S50)。依次拼接生成的多个子密钥以形成128位的目标密钥(步骤S60)。
具体的,在步骤S10中将256位初始密钥拆分成低128位IK和高128位OB,再以32位为一组对IK和OB分别进行分组拆分,以形成四个低位密钥组IK0,IK1,IK2,IK3以及四个高位密钥组OB0,OB1,OB2,OB3。然而,本发明对低位密钥组和高位密钥组的数量不作任何。
在获得四个低位密钥组IK0~ IK3和四个高位密钥组OB0~ OB3后执行步骤S20,将每一低位密钥组异或与其相对应的高位密钥组以得到四个S盒置换密钥ik,即ik0= IK0⊕OB0,ik1= IK1⊕OB1,ik2= IK2⊕OB2,ik3= IK3⊕OB3。初始密钥的高低位拆分以及基于高低位的分别再分组后异或操作以生成S盒置换密钥ik,该设置将256位的初始密钥长度转换成128位以满足SM4加密算法密钥长度要求;即拓宽了SM4加密算法的初始密钥空间,进而大大提升其被破解的难度。
在获得多个S盒置换密钥后执行步骤S30以动态生成S盒。在现有的SM4加密算法中,S盒为初始自定义后所形成的固定矩阵,故而存在被破解的安全隐患。本实施例通过引入动态S盒的方式以自由生成S盒内的元素,当SM4加解密算法输入输出规模很大时使用该方式不仅能抵抗差分攻击而且能抵抗各种已知攻击。对于动态S盒而言,随机性越好其安全性将越高,而考虑到动态S盒随机生成对设备性能的要求,本实施例提供至少两种S盒的动态生成方式且其中一种为对设备算力和网络环境参数要求均较低的第一动态生成方式,而另一种则为算力要求相对较高的第二动态生成方式。
具体的,步骤S30将获取当前设备的性能参数,设备的性能参数包括当前设备的算力参数和设备当前的通信环境参数。算力参数包括该设备的GPU性能参数和内存参数,而通信环境参数包括网络带宽和网关设备性能参数。基于预设的设备性能参数判断当前设备的性能水平,具体的当设备算力参数或通信环境参数中的任一者低于其对应的预设值时则认为当前设备属于低算力设备或处于较差网络环境内,此时该设备的数据处理能力较弱。故基于该判断将选取对算力要求和网络环境参数要求均较低的第一动态生成方式来动态生成S盒。于本实施例中,第一动态生成方式为基于Knuth-Durstenfeld Shuffle算法的动态生成方式;而第二动态生成方式为基于混淆映射的S盒动态生成方式或其它现有数学构造法的S盒动态生成方式。
以下将结合图2来详细说明本实施例提供的轻量化的S盒第一动态生成方式的具体流程。如图2所示,该步骤包括:
步骤S301、初始化生成16×16的字节矩阵,如图3所示。
步骤S302、将16×16的字节矩阵转换为长度为256的整形初始sbox数组,其结构如图7所示。
步骤S303、使用Knuth-Durstenfeld Shuffle算法对初始sbox数组进行处理,依次产生随机数x并基于sbox[x]置换初始sbox数组内的所有元素,所有元素一轮置换完成后形成随机打乱后的S盒数组sbox’。具体的,该置换步骤包括:第1轮生成一个随机数并将/>和/>做值交换;第2轮生成一个随机数/>,将/>和/>做值交换;第/>轮生成一个随机数/>其中/>,将/>和/>做值交换;其中/>表示sbox数组长度,故n=256;当/>时进行最后一轮交换,/>和/>做值交换;至此数组内的所有元素都完成一轮交换以生成随机打乱后的S盒记为sbox’。对于/>经过打乱处理后出现在第/>位置的概率为1/n,出现在第/>位置的概率为:
出现在第位置的概率亦为:
故该算法使原数组内的任一元素在打散后数组中每个位置上能等概率的出现,其交换的流程示意图如图4所示。
之后,执行步骤S304检验打乱后的S盒数组sbox’是否满足SM4加密算法对于S盒的要求。SM4加解密算法要求S盒内不存在不动点,即要满足其中。对经过打乱后的S盒数组sbox’进行遍历判断,若发现存在不动点则将打乱后的S盒数组sbox’作为步骤S303中的初始/>并使用Knuth-Durstenfeld Shuffle算法继续打乱,重复步骤S303和步骤S304直至打乱后的S盒数组sbox’内不再存在不动点。然而,本发明对此不作任何限定。于其它实施例中,对于存在不动点的打乱后的S盒数组sbox’亦可采用如下步骤进行再次打乱:获取不动点在打乱后的S盒数组sbox’内的位置;产生随机数x并基于sbox[x]与不动点作值交换,其中。该再次打乱方式可提高动态S盒生成速率。
步骤S305、保存不再存在不动点的打乱后的S盒数组sbox’以生成S盒。
在步骤S30动态生成S盒后执行步骤S40。于本实施例中,步骤S30生成的动态S盒为一16×16的矩阵,将该矩阵划分为四个结构相同的S子盒Sbox0、Sbox1、Sbox2、Sbox3并将获得的四个S盒置换密钥ik0,ik1,ik2,ik3分别输入至四个S子盒Sbox0、Sbox1、Sbox2、Sbox3内,以每一S盒置换密钥的高16位确定行而低16位确定列变换值以得到该S盒置换密钥所对应的S盒输出。具体的,ik0输入子盒Sbox0内以其高16位确定行而低16位确定列变换值以得到Sboxout0;即,/>,/>,
之后如图5所示,步骤S50将生成四个S盒输出Sboxout0、Sboxout1、Sboxout2、Sboxout3作为线性变换L函数输入,经过线性变换生成SM4的四个子密钥MK0,MK1,MK2,MK3
即:
尽管本实施例以上述线性变换L函数为例进行说明,然而本发明对此不作任何限定。
在获得四个子密钥后执行步骤S60依次拼接生成的多个子密钥以形成128位的目标密钥。
应该理解的是,虽然图1和图2的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行,如步骤S30中当前设备性能参数的获取亦可与步骤S10或步骤S30同步;亦或者优先于步骤S10。而且,图1和图2中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
与上述应用于国际赛事的密钥生成方法相对应的,本实施例还提供一种应用于国际赛事的密钥生成装置。如图6所示,该装置包括初始密钥分组模块10、置换密钥生成模块20、S盒动态生成模块30、置换模块40、子密钥生成模块50以及目标密钥生成模块60。初始密钥分组模块10获取256位初始密钥,基于预设的分组位数依次将低128位划分为多个低位密钥组并将高128位划分为数量相同的多个高位密钥组。置换密钥生成模块20每一低位密钥组分别异或对应的高位密钥组以得到对应的多个S盒置换密钥。S盒动态生成模块30获取当前设备的性能参数并基于获取的设备性能参数选取S盒动态生成方式以动态生成16×16的S盒, S盒动态生成方式包括第一动态生成方式和生成算力要求和网络环境参数均高于第一动态生成方式的第二动态生成方式。置换模块40将获得的多个S盒置换密钥输入已生成的S盒内得到多个S盒输出。子密钥生成模块50将每一S盒置换密钥及其它S盒置换密钥所对应的S盒输出进行线性变换以得到每一S盒置换密钥所对应的子密钥。目标密钥生成模块60依次拼接生成的多个子密钥以形成128位的目标密钥。
关于应用于国际赛事的密钥生成装置的具体限定可以参见上文中对于应用于国际赛事的密钥生成方法中步骤S10至步骤S60的限定,在此不再赘述。上述应用于国际赛事的密钥生成装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
与上述应用于国际赛事的密钥生成方法相对应的,本实施例还提供一种加密方法。该加密方法为SM4加密算法,其采用步骤S10至步骤S60所生成的128位的目标密钥对明文进行加密。而同样的,在解密时亦基于步骤S10至步骤S60所生成的128位的目标密钥对密文进行反向操作而实现解密。
本实施例提供的加密方法还包括置换网络结构的加密方法,采用动态的方式生成置换网络内的置换盒且置换盒的动态生成方式与密钥生成方法内S盒的动态生成方式相同。具体的,置换盒的生成亦基于当前设备的性能(包括算力要求和网络环境参数)而选取第一动生态成方式或第二动态生成方式。基于设备性能的置换网络内置换盒的构造亦从加密步骤上使其能使用不同设备的需求,进而使得本发明优化后的SM4加密算法能更好地部署至不同性能的设备上,尤其是资源有限的移动设备或边缘设备上。对于第一动态生成方式参照本实施例上文中步骤S301至步骤S305的描述;而第二动态生成方式则可为更为复杂的基于混沌映射或数学方法构造的置换盒,本发明在此不作赘述。
综上所述,本发明提供的应用于国际赛事的密钥生成方法为基于SM4对称加解密算法的密钥扩展,以密钥长度为256位高级算法密钥长度作为SM4加密算法的初始密钥以拓宽初始密钥空间而大大降低其被破解的可能性。而基于初始密钥内高低128位的分组以及分组后每一低位密钥组和对应高位密钥组的异或操作所得到的S盒置换密钥则实现了密钥长度的转换,以使其能满足SM4加密算法。进一步的,以动态生成S盒的方式对S盒置换密钥进行操作,动态S盒生成的随机性和其对密钥置换的随机性亦大大增强了处理后多个子密钥的安全性以抵抗各种攻击,进而降低密钥被破解的可能性。
而在S盒的动态生成上,本发明提供的密钥生成方法将提供至少两种动态生成方式,采用时间和空间复杂度均较低的第一动态生成方式来动态生成S盒,进而大大降低密钥生成对计算机算力和网络环境参数的要求。当设备为低算力设备或其所处的网络环境较差时则采用第一动态生成方式来生成S盒,在有限的设备资源和网络环境下生成最优的SM4加密算法密钥,从而适用于资源有限的设备和环境,如移动设备、物联网设备等;而当设备算力较高且网络环境优异时则可选取复杂度更高的第二动态生成方式来提高动态生成后S盒的性能,进而进一步增强密钥被破解的难度。
虽然本发明已由较佳实施例揭露如上,然而并非用以限定本发明,任何熟知此技艺者,在不脱离本发明的精神和范围内,可作些许的更动与润饰,因此本发明的保护范围当视权利要求书所要求保护的范围为准。

Claims (11)

1.一种应用于国际赛事的密钥生成方法,其特征在于,该密钥生成方式适用于SM4加密算法,其包括:
获取256位初始密钥,基于预设的分组位数依次将低128位划分为多个低位密钥组并将高128位划分为数量相同的多个高位密钥组;
将每一低位密钥组分别异或对应的高位密钥组以得到对应的多个S盒置换密钥;
获取当前设备的性能参数并基于获取的设备性能参数选取S盒动态生成方式以动态生成16×16的S盒,所述S盒动态生成方式包括第一动态生成方式和生成算力要求和网络环境参数均高于第一动态生成方式的第二动态生成方式;
将获得的多个S盒置换密钥输入已生成的S盒内得到多个S盒输出;
将每一S盒置换密钥及其它S盒置换密钥所对应的S盒输出进行线性变换以得到每一S盒置换密钥所对应的子密钥;
依次拼接生成的多个子密钥以形成128位的目标密钥。
2.根据权利要求1所述的应用于国际赛事的密钥生成方法,其特征在于,多个低位密钥组和多个高位密钥组均对应异或后获得四个32位的S盒置换密钥,所述S盒为包括四个S子盒的16×16的矩阵;在获得多个S盒输出时,将四个S盒置换密钥分别输入四个S子盒内,以每一S盒置换密钥的高16位确定行而低16位确定列变换值以得到该S盒置换密钥对应的S盒输出。
3.根据权利要求2所述的应用于国际赛事的密钥生成方法,其特征在于,在获得四个S盒置换密钥ik0、ik1、ik2、ik3分别对应的S盒输出Sboxout0、Sboxout1、Sboxout2、Sboxout3后采用如下线性变换方式得到每一S盒置换密钥所对应的子密钥:
其中,MK0为S盒置换密钥ik0对应的子密钥,MK1为S盒置换密钥ik1对应的子密钥,MK2为S盒置换密钥ik2对应的子密钥,MK3为S盒置换密钥ik3对应的子密钥。
4.根据权利要求1所述的应用于国际赛事的密钥生成方法,其特征在于,所述设备的性能参数包括当前设备的算力参数和设备当前的通信环境参数;当设备算力参数或通信环境参数中的任一者低于其对应的预设值时以第一动态生成方式动态生成S盒。
5.根据权利要求1所述的应用于国际赛事的密钥生成方法,其特征在于,所述第一动态生成方式动态生成S盒包括如下步骤:
初始化生成16×16的字节矩阵;
将16×16的字节矩阵转换为长度为256的初始sbox数组;
使用Knuth-Durstenfeld Shuffle算法对初始sbox数组进行处理,依次产生随机数x并基于sbox[x]置换初始sbox数组内的所有元素,所有元素一轮置换完成后形成随机打乱后的S盒数组sbox’;
检验打乱后的S盒数组sbox’以判断其内是否存在不动点sbox’[x]= x;
若是,则对打乱后的S盒数组sbox’进行再次打乱和检验,直至打乱后的S盒数组sbox’内不再存在不动点;
保存不再存在不动点的打乱后的S盒数组sbox’以生成S盒。
6.根据权利要求5所述的应用于国际赛事的密钥生成方法,其特征在于,依次产生随机数x并基于sbox[x]置换初始sbox数组内的所有元素包括:
第1轮生成一个随机数,/>并将/>和/>做值交换;
第2轮生成一个随机数,/>,将/>和/>做值交换;
轮生成一个随机数/>,/>其中/>,将/>做值交换;其中/>表示sbox数组长度,故n=256;
时进行最后一轮交换,/>和/>做值交换;至此数组内的所有元素都完成一轮交换以生成随机打乱后的S盒记为/>
7.根据权利要求6所述的应用于国际赛事的密钥生成方法,其特征在于,打乱后的S盒数组sbox’内存在不动点对其再次打乱包括如下步骤:
将存在不动点的打乱后的S盒数组sbox’作为初始sbox数组,使用Knuth-DurstenfeldShuffle算法对其进行一轮所有元素的置换以形成新的打乱后的S盒数组sbox’;
检验新生成的打乱后的S盒数组sbox’是否存在不动点;
若存在则继续重复上述步骤直至新生成的打乱后的S盒数组sbox’内不再存在不动点。
8.根据权利要求6所述的应用于国际赛事的密钥生成方法,其特征在于,打乱后的S盒数组sbox’内存在不动点对其再次打乱包括如下步骤:
获取不动点在打乱后的S盒数组sbox’内的位置;
产生随机数x并基于sbox[x]与不动点作值交换,其中
9.一种应用于国际赛事的密钥生成装置,其特征在于,包括:
初始密钥分组模块,获取256位初始密钥,基于预设的分组位数依次将低128位划分为多个低位密钥组并将高128位划分为数量相同的多个高位密钥组;
置换密钥生成模块,将每一低位密钥组分别异或对应的高位密钥组以得到对应的多个S盒置换密钥;
S盒动态生成模块,获取当前设备的性能参数并基于获取的设备性能参数选取S盒动态生成方式以动态生成16×16的S盒,所述S盒动态生成方式包括第一动态生成方式和生成算力要求和网络环境参数均高于第一动态生成方式的第二动态生成方式;
置换模块,将获得的多个S盒置换密钥输入已生成的S盒内得到多个S盒输出;
子密钥生成模块,将每一S盒置换密钥及其它S盒置换密钥所对应的S盒输出进行线性变换以得到每一S盒置换密钥所对应的子密钥;
目标密钥生成模块,依次拼接生成的多个子密钥以形成128位的目标密钥。
10.一种加密方法,其特征在于,该加密方法为SM4加密算法,其采用权利要求1~8任一项所述的应用于国际赛事的密钥生成方法所生成的密钥对明文进行加密。
11.根据权利要求10所述的加密方法,其特征在于,所述加密方法为包括置换网络结构的加密方法,采用动态的方式生成置换网络内的置换盒且置换盒的动态生成方式与密钥生成方法内S盒的动态生成方式相同。
CN202311668590.0A 2023-12-07 2023-12-07 应用于国际赛事的密钥生成方法、装置及加密方法 Active CN117411618B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202311668590.0A CN117411618B (zh) 2023-12-07 2023-12-07 应用于国际赛事的密钥生成方法、装置及加密方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202311668590.0A CN117411618B (zh) 2023-12-07 2023-12-07 应用于国际赛事的密钥生成方法、装置及加密方法

Publications (2)

Publication Number Publication Date
CN117411618A CN117411618A (zh) 2024-01-16
CN117411618B true CN117411618B (zh) 2024-02-20

Family

ID=89496475

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202311668590.0A Active CN117411618B (zh) 2023-12-07 2023-12-07 应用于国际赛事的密钥生成方法、装置及加密方法

Country Status (1)

Country Link
CN (1) CN117411618B (zh)

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106209358A (zh) * 2016-07-12 2016-12-07 黑龙江大学 一种基于长密钥的sm4密钥扩展算法的实现系统及其方法
KR102169369B1 (ko) * 2019-10-31 2020-10-23 국민대학교산학협력단 경량 블록 암호화에 대한 1차 부채널 공격에 대응하는 방법 및 이를 이용한 장치
CN112187444A (zh) * 2020-09-02 2021-01-05 中国科学院软件研究所 一种抗侧信道和故障攻击的综合防护方法
CN113259719A (zh) * 2021-05-13 2021-08-13 长春理工大学 一种基于sm4的视频加密方法及系统
CN114598444A (zh) * 2022-03-03 2022-06-07 中国矿业大学 基于sm4和动态s盒的音频加密方法
CN115811398A (zh) * 2022-11-21 2023-03-17 北京电子科技学院 基于动态s盒的分组密码算法、装置、系统及存储介质

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106209358A (zh) * 2016-07-12 2016-12-07 黑龙江大学 一种基于长密钥的sm4密钥扩展算法的实现系统及其方法
KR102169369B1 (ko) * 2019-10-31 2020-10-23 국민대학교산학협력단 경량 블록 암호화에 대한 1차 부채널 공격에 대응하는 방법 및 이를 이용한 장치
CN112187444A (zh) * 2020-09-02 2021-01-05 中国科学院软件研究所 一种抗侧信道和故障攻击的综合防护方法
CN113259719A (zh) * 2021-05-13 2021-08-13 长春理工大学 一种基于sm4的视频加密方法及系统
CN114598444A (zh) * 2022-03-03 2022-06-07 中国矿业大学 基于sm4和动态s盒的音频加密方法
CN115811398A (zh) * 2022-11-21 2023-03-17 北京电子科技学院 基于动态s盒的分组密码算法、装置、系统及存储介质

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
Chuang Wang.An Optimized Isomorphic Design for the SM4 Block Cipher Over the Tower Field.2022 IEEE International Conference on Trust, Security and Privacy in Computing and Communications (TrustCom).2023,全文. *
王传福.基于混沌系统的SM4密钥扩展算法.物理学报 .2016,全文. *
郑俊.无退化混沌系统的理论及其在序列密码中的应用研究.中国博士论文电子期刊网.2023,全文. *

Also Published As

Publication number Publication date
CN117411618A (zh) 2024-01-16

Similar Documents

Publication Publication Date Title
Kumar et al. Development of modified AES algorithm for data security
Feng et al. Cryptanalysis and improvement of the hyper-chaotic image encryption scheme based on DNA encoding and scrambling
CN113940028B (zh) 实现白盒密码的方法和装置
US20120121083A1 (en) Encryption apparatus and method
CN107147487B (zh) 对称密钥随机分组密码
Liu et al. Cryptanalysis and improvement in a plaintext-related image encryption scheme based on hyper chaos
Abd Ali et al. Novel encryption algorithm for securing sensitive information based on feistel cipher
Riman et al. Comparative analysis of block cipher-based encryption algorithms: a survey
RU2591015C1 (ru) Способ нелинейного трехмерного многораундового преобразования данных rdozen
Joshy et al. Text to image encryption technique using RGB substitution and AES
Ahmed et al. Strongest AES with S-Boxes bank and dynamic key MDS matrix (SDK-AES)
Achkoun et al. SPF-CA: A new cellular automata based block cipher using key-dependent S-boxes
Gabr et al. A combination of decimal-and bit-level secure multimedia transmission
Al-Omari Lightweight Dynamic Crypto Algorithm for Next Internet Generation.
Quilala et al. Modified blowfish algorithm
CN111614457B (zh) 基于p置换改进的轻量级分组加解密方法、装置及存储介质
CN117411618B (zh) 应用于国际赛事的密钥生成方法、装置及加密方法
Nissar et al. Implementation of security enhancement in AES by inducting dynamicity in AES s-box
CN115987490A (zh) 一种适用于arx结构的轻量级分组密码算法白盒化构造方法
Faraoun Design of fast one-pass authenticated and randomized encryption schema using reversible cellular automata
RU2503994C1 (ru) Способ нелинейного трехмерного многораундового преобразования данных dozen
RU2683689C1 (ru) Способ нелинейного трехмерного многораундового преобразования данных
Singh et al. Study & analysis of cryptography algorithms: RSA, AES, DES, T-DES, blowfish
Jassbi et al. A new method for image encryption using chaotic permutation
Assaflia et al. The Evaluation of Time-Dependent Initialization Vector Advanced Encryption Standard Algorithm for Image Encryption

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