利索能及
我要发布
收藏
专利号: 2024104155753
申请人: 中国民航大学
专利类型:发明专利
专利状态:已下证
更新日期:2025-12-08
缴费截止日期: 暂无
联系人

摘要:

权利要求书:

1.一种基于有限域积代数的流密码生成方法,其特征在于,所述方法包括以下步骤:S100,获取原始明文密钥QT;其中,QT包括n个字节的字符;

S200,将QT转化为对应的二位矩阵JT;其中,JT包括n行8位的二进制串,第i行对应QT中的第i个字符;i=0,2,…,n‑1;

S300,使用预设的初始密钥生成方法,对JT中的每一列的元素进行逐行异或处理,以得到QT对应的初始密钥K;其中,K包括一个8位二进制串,K的第j位对应于JT的第j列;j=0,

1,…,7;

S400,根据K、A1和A2,确定K对应的第一中间密钥V1和第二中间密钥V2;其中,A1和A2为预设的8×8的奇异矩阵,A1和A2不同;V1=K×A1,V2=K×A2;

S500,依次将V1和V2的每一位元素转化为8位的二进制串,以得到V1对应的二位矩阵H1和V2对应的二位矩阵H2;其中,H1的第r行对应于V1的第r位元素,H2的第r行对应于V2的第r位元素,r=0,1,…,7;

S600,根据待加密文件的大小,确定H1和H2进行积代数运算的次数NUM;

S700,对H1和H2进行NUM次的积代数运算,以得到待加密文件对应的流密码;

步骤S300包括以下步骤:

S310,获取JT中的每一列的所有元素,以得到元素列表集WG=(WG0,WG1,…,WGj,…,WG7);

其中,WGj为JT中的第j列元素对应的元素列表;WGj=(WGj,0,WGj,1,…,WGj,i,…,WGj,n‑1);WGj,i为JT中的第j列的第i个元素;

S320,遍历WG,若WGj中的所有元素均相同,则生成WGj对应的初始密钥元素Kj=0;否则,进入步骤S330;

S330,获取预设值M=0以及预设的中间结果FC=WGj,M;

S340,获取FC=FC⊕WGj,M+1;

S350,若M<n‑1,则获取M=M+1,并进入步骤S340;否则,将FC确定为WGj对应的初始密钥元素Kj;

S360,根据WG中每一元素列表对应的初始密钥元素,确定QT对应的初始密钥K=(K0,K1,…,Kj,…,K)7 ;

步骤S600包括以下步骤:

S610,获取待加密文件的字节数GY;

DT ET GF‑1 GF

S620,若2×64 ≤GY<2×64 ;其中,DT=2 ,ET=2 ;则确定NUM=GF;DT为第一预设中间值,ET为第二预设中间值;GF为预设中间次数,GF为大于0的整数;

步骤S700包括以下步骤:

S710,若NUM=1且GY<128,则在对H1和H2进行积代数运算时,获取生成的流密码的字节数NL;

S711,若NL=GY,则停止对H1和H2的积代数运算;

S712,若NUM=1且GY=128,则对H1和H2进行一次积代数运算,以得到128字节的流密码;

步骤S700还包括以下步骤:

ET

S720,若NUM>1且GY<2×64 ,则对H1和H2进行NUM‑1次积代数运算;进入步骤S721;

S721,对H1和H2进行第NUM次积代数运算,并获取第NUM次积代数运算时本次生成的流密码的字节数WL;

S722,若WL=GY‑QN,则停止对H1和H2的积代数运算;其中,QN为对H1和H2进行NUM‑1次积代数运算得到的流密码的字节数;

步骤S200包括以下步骤:

S210,将QT中的每一字节的字符转化为ASCII码值,以得到QT对应的ASCII码值列表AH=(AH1,AH2,…,AHi,…,AHn‑)1 ;其中,AHi为QT中的第i个字符对应的ASCII码值;

S220,将AH中的每一ASCII码值转化为二进制串,以得到二进制串列表EL=(EL1,EL2,…,ELi,…,ELn‑)1 ;其中,ELi为AHi对应的二进制串;

S230,使用预设的函数,将EL转化为QT对应的二位矩阵JT。

2.根据权利要求1所述的基于有限域积代数的流密码生成方法,其特征在于,预设的函数包括Numerical Python库中的array函数。

3.一种非瞬时性计算机可读存储介质,所述存储介质中存储有至少一条指令或至少一段程序,其特征在于,所述至少一条指令或所述至少一段程序由处理器加载并执行以实现如权利要求1或2中所述的基于有限域积代数的流密码生成方法。

4.一种电子设备,其特征在于,包括处理器和权利要求3所述的非瞬时性计算机可读存储介质。