CN112202548A - 流加密密钥流生成方法、装置、电路和加密方法 - Google Patents

流加密密钥流生成方法、装置、电路和加密方法 Download PDF

Info

Publication number
CN112202548A
CN112202548A CN202011418785.6A CN202011418785A CN112202548A CN 112202548 A CN112202548 A CN 112202548A CN 202011418785 A CN202011418785 A CN 202011418785A CN 112202548 A CN112202548 A CN 112202548A
Authority
CN
China
Prior art keywords
sequence
key
integer
stream
standard
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.)
Pending
Application number
CN202011418785.6A
Other languages
English (en)
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.)
Zhuo Erzhi Lian Wuhan Research Institute Co Ltd
Original Assignee
Zhuo Erzhi Lian Wuhan Research Institute 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 Zhuo Erzhi Lian Wuhan Research Institute Co Ltd filed Critical Zhuo Erzhi Lian Wuhan Research Institute Co Ltd
Priority to CN202011418785.6A priority Critical patent/CN112202548A/zh
Publication of CN112202548A publication Critical patent/CN112202548A/zh
Pending legal-status Critical Current

Links

Images

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/065Encryption by serially and continuously modifying data stream elements, e.g. stream cipher systems, RC4, SEAL or A5/3
    • 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
    • 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
    • H04L9/0869Generation of secret information including derivation or calculation of cryptographic keys or passwords involving random numbers or seeds

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Storage Device Security (AREA)

Abstract

本申请涉及一种流加密密钥流生成方法、装置、电路和加密方法。所述方法包括:确定当前元素序号,并从第一伪随机整数序列中选取对应当前元素序号的第一元素,从第二伪随机整数序列中选取对应当前元素序号的第二元素;将第一元素和第二元素转换为斐波那契进制标准式,分别得到第一标准式和第二标准式,并从第一标准式中截取出第一中间序列,从第二标准式中截取出第二中间序列;对第一中间序列和第二中间序列的交集位按位进行或操作,得到本轮密钥子序列,递增当前元素序号,得到用于获取下一轮密钥子序列的元素序号,直至遍历伪随机整数序列;按照元素序号的次序对各轮密钥子序列进行并列,得到密钥流,从而可提高密钥流的生成速度。

Description

流加密密钥流生成方法、装置、电路和加密方法
技术领域
本发明涉及加密技术领域,特别是涉及一种流加密密钥流生成方法、装置、电路和加密方法。
背景技术
随着加密技术的发展,出现了流加密。流加密作为对称加密算法的一种,通过在加密侧和解密侧使用相同的伪随机加密数据流作为密钥,在加密时明文数据与密钥进行对应加密生成密文数据,在解密时密文数据与密钥进行对应解密得到明文数据,从而可完成数据安全传输。
然而,发明人发现传统技术中至少存在如下问题:传统技术中存在密钥流生成速度慢的问题。
发明内容
基于此,有必要针对传统技术中存在的密钥流生成速度慢的问题,提供一种能够提高密钥流生成速度的流加密密钥流生成方法、装置、电路和加密方法。
一种流加密密钥流生成方法,包括:
确定当前元素序号,并从第一伪随机整数序列中选取对应当前元素序号的第一元素,以及从第二伪随机整数序列中选取对应当前元素序号的第二元素;
将第一元素和第二元素转换为斐波那契进制标准式,分别得到第一标准式和第二标准式,并从第一标准式中截取出第一中间序列,从第二标准式中截取出第二中间序列;
对第一中间序列和第二中间序列的交集位按位进行或操作,得到本轮密钥子序列,递增当前元素序号,得到用于获取下一轮密钥子序列的元素序号,直至遍历第一伪随机整数序列和第二伪随机整数序列;
按照元素序号的次序对各轮密钥子序列进行并列,得到密钥流。
在其中一个实施例中,从第一标准式中截取出第一中间序列,从第二标准式中截取出第二中间序列的步骤,包括:
根据第一标准式中预设数值的个数,从第一标准式中截取出第一中间序列,以及根据第二标准式中预设数值的个数,从第二标准式中截取出第二中间序列。
在其中一个实施例中,预设数值为1;第一标准式的长度和第二标准式的长度均为
Figure 27288DEST_PATH_IMAGE001
,第一标准式中1的个数为
Figure 153376DEST_PATH_IMAGE002
,第一标准式中1的个数为
Figure 460598DEST_PATH_IMAGE003
根据第一标准式中预设数值的个数,从第一标准式中截取出第一中间序列,以及根据第二标准式中预设数值的个数,从第二标准式中截取出第二中间序列的步骤包括:
将第一标准式中第
Figure 395056DEST_PATH_IMAGE002
位至第
Figure 794945DEST_PATH_IMAGE004
位之间的序列确认为第一中间序列,以及将第二标准式中第
Figure 1804DEST_PATH_IMAGE003
位至第
Figure 676499DEST_PATH_IMAGE005
位之间的序列确认为第二中间序列。
在其中一个实施例中,确定当前元素序号的步骤之前,还包括:
获取第一伪随机整数序列和第二伪随机整数序列;第一伪随机整数序列的元素个数和第二伪随机整数序列的元素个数相等,且均根据明文长度确定。
在其中一个实施例中,获取第一伪随机整数序列和第二伪随机整数序列的步骤,包括:
获取密钥对;密钥对包括第一密钥和第二密钥;
根据第一密钥生成第一伪随机整数序列,并根据第二密钥生成第二伪随机整数序列。
在其中一个实施例中,第一密钥包括第一整数、第二整数和第三整数;第二密钥包括第四整数、第五整数和第六整数;
根据第一密钥生成第一伪随机整数序列,并根据第二密钥生成第二伪随机整数序列的步骤,包括:
采用以下公式处理第一密钥,生成第一伪随机整数序列:
Figure 465464DEST_PATH_IMAGE006
其中,
Figure 347838DEST_PATH_IMAGE007
为第一整数;
Figure 730409DEST_PATH_IMAGE008
为第二整数;
Figure 458062DEST_PATH_IMAGE009
为第三整数;
Figure 367112DEST_PATH_IMAGE010
为元素序号;
Figure 108803DEST_PATH_IMAGE011
为第一伪随机整数序列中第
Figure 290255DEST_PATH_IMAGE010
个元素;
Figure 634649DEST_PATH_IMAGE012
为第一伪随机整数序列中第
Figure 70309DEST_PATH_IMAGE013
个元素;
Figure 509467DEST_PATH_IMAGE014
为元素总个数;
采用以下公式处理第二密钥,生成第二伪随机整数序列:
Figure 663368DEST_PATH_IMAGE015
其中,
Figure 732824DEST_PATH_IMAGE016
为第四整数;
Figure 350887DEST_PATH_IMAGE017
为第五整数;
Figure 496698DEST_PATH_IMAGE018
为第六整数;
Figure 324845DEST_PATH_IMAGE010
为元素序号;
Figure 214304DEST_PATH_IMAGE019
为第二伪随机整数序列中第
Figure 545928DEST_PATH_IMAGE010
个元素;
Figure 924957DEST_PATH_IMAGE020
为第二伪随机整数序列中第
Figure 505980DEST_PATH_IMAGE021
个元素;
Figure 933550DEST_PATH_IMAGE022
为元素总个数。
一种加密方法,包括以下步骤:
获取明文数据;
采用如上述的流加密密钥流生成方法生成密钥流;
将密钥流与明文数据按位进行异或操作,得到密文数据。
一种流加密密钥流生成装置,包括:
元素选取模块,用于确定当前元素序号,并从第一伪随机整数序列中选取对应于当前元素序号的第一元素,以及从第二伪随机整数序列中选取对应于当前元素序号的第二元素;
中间序列截取模块,用于将第一元素和第二元素转换为斐波那契进制标准式,分别得到第一标准式和第二标准式,并从第一标准式中截取出第一中间序列,从第二标准式中截取出第二中间序列;
密钥子序列获取模块,用于对第一中间序列和第二中间序列的交集位按位进行或操作,得到本轮密钥子序列,递增当前元素序号,得到用于获取下一轮密钥子序列的元素序号,直至遍历第一伪随机整数序列和第二伪随机整数序列;
密钥流获取模块,用于按照元素序号的次序对各密钥子序列进行并列,得到密钥流。
一种加密装置,包括:
明文获取模块,用于获取明文数据;
流加密密钥流生成装置,用于采用如上述的流加密密钥流生成方法生成密钥流;
密文获取模块,用于将密钥流与明文数据按位进行异或操作,得到密文数据。
一种流加密密钥生成电路,包括:
第一编码器,将第一元素转换为斐波那契进制标准式,得到第一标准式;
第二编码器,将第二元素转换为斐波那契进制标准式,得到第二标准式;
密钥流生成装置,确定当前元素序号,并从第一伪随机整数序列中选取对应于当前元素序号的第一元素,以及从第二伪随机整数序列中选取对应于当前元素序号的第二元素;以及从第一标准式中截取出第一中间序列,从第二标准式中截取出第二中间序列;对第一中间序列和第二中间序列的交集位按位进行或操作,得到本轮密钥子序列,递增当前元素序号,得到用于获取下一轮密钥子序列的元素序号,直至遍历第一伪随机整数序列和第二伪随机整数序列;按照元素序号的次序对各轮密钥子序列进行并列,得到密钥流。
在其中一个实施例中,还包括:
存储装置,存储有前32位斐波那契数;各斐波那契数用于指示第一编码器将第一元素转换为斐波那契进制标准式,以及第二编码器将第二元素转换为斐波那契进制标准式。
在其中一个实施例中,第一编码器、第二编码器和密钥流生成装置均为FPGA器件。
一种加密设备,包括如上述的流加密密钥生成电路。
一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现上述的方法的步骤。
上述流加密密钥流生成方法、装置、电路和加密方法,确定当前元素序号,并从第一伪随机整数序列中选取对应当前元素序号的第一元素,以及从第二伪随机整数序列中选取对应当前元素序号的第二元素;将第一元素和第二元素转换为斐波那契进制标准式,分别得到第一标准式和第二标准式,并从第一标准式中截取出第一中间序列,从第二标准式中截取出第二中间序列;对第一中间序列和第二中间序列的交集位按位进行或操作,得到本轮密钥子序列,递增当前元素序号,得到用于获取下一轮密钥子序列的元素序号,直至遍历第一伪随机整数序列和第二伪随机整数序列;按照元素序号的次序对各轮密钥子序列进行并列,得到密钥流,从而可提高密钥流的生成速度。
附图说明
为了更清楚地说明本申请实施例或传统技术中的技术方案,下面将对实施例或传统技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为一个实施例中加密密钥流生成方法的第一流程示意图;
图2为一个实施例中获取伪随机整数序列步骤的流程示意图;
图3为一个实施例中加密密钥流生成方法的第二流程示意图;
图4为一个实施例中加密方法的流程示意图;
图5为一个实施例中解密方法的流程示意图;
图6为一个实施例中流加密密钥生成电路的结构框图;
图7为一个实施例中流加密密钥生成电路的RTL电路;
图8为图7所示流加密密钥生成电路的状态转换图;
图9为一个实施例中流加密密钥流生成装置的结构框图;
图10为一个实施例中加密装置的结构框图。
具体实施方式
为了便于理解本申请,下面将参照相关附图对本申请进行更全面的描述。附图中给出了本申请的实施例。但是,本申请可以以许多不同的形式来实现,并不限于本文所描述的实施例。相反地,提供这些实施例的目的是使本申请的公开内容更加透彻全面。
除非另有定义,本文所使用的所有的技术和科学术语与属于本申请的技术领域的技术人员通常理解的含义相同。本文中在本申请的说明书中所使用的术语只是为了描述具体的实施例的目的,不是旨在于限制本申请。
可以理解,“多”可以为两个以上的情况,例如两个、三个或五个等。本申请所使用的术语“第一”、“第二”等可在本文中用于描述各种元件,但这些元件不受这些术语限制。这些术语仅用于将第一个元件与另一个元件区分。举例来说,在不脱离本申请的范围的情况下,可以将第一电阻称为第二电阻,且类似地,可将第二电阻称为第一电阻。第一电阻和第二电阻两者都是电阻,但其不是同一电阻。
可以理解,以下实施例中的“连接”,如果被连接的电路、模块、单元等相互之间具有电信号或数据的传递,则应理解为“电连接”、“通信连接”等。
在此使用时,单数形式的“一”、“一个”和“所述/该”也可以包括复数形式,除非上下文清楚指出另外的方式。还应当理解的是,术语“包括/包含”或“具有”等指定所陈述的特征、整体、步骤、操作、组件、部分或它们的组合的存在,但是不排除存在或添加一个或更多个其他特征、整体、步骤、操作、组件、部分或它们的组合的可能性。同时,在本说明书中使用的术语“和/或”包括相关所列项目的任何及所有组合。
目前流加密一般多采用RC4加密算法来生成密钥流,并利用密钥流对明文数据进行加密,从而得到密文数据。RC4加密算法是一种利用状态向量和暂时向量生成密钥流的加密方法,其中暂时向量可以根据用户输入的初始密钥生成,通过暂时向量来对状态向量中各元素的位置进行置换操作,从而可得到随机性较强的密钥流。但是,发明人发现,在利用RC4随机码流生成器生成密钥流时,存在密钥流生成速度慢的问题。
在一个实施例中,如图1所示,提供了一种流加密密钥流生成方法,包括以下步骤:
步骤110,确定当前元素序号,并从第一伪随机整数序列中选取对应当前元素序号的第一元素,以及从第二伪随机整数序列中选取对应当前元素序号的第二元素。
其中,第一伪随机整数序列可以包括一个或多个整数,各整数构成了第一伪随机整数序列的各个元素;第二伪随机整数序列可以包括一个或者多个整数,各整数构成了第二伪随机整数序列的各个元素。应当理解的是,第一伪随机整数序列和第二伪随机整数序列为两个独立的整数序列,二者之间并无必然联系。
进一步地,第一伪随机整数序列中的元素个数,即第一伪随机整数序列中所包含的整数个数,与第二伪随机整数序列中的元素个数,即第二伪随机整数序列中所包含的整数个数可以相同或者不同。若第一伪随机整数序列的元素个数与第二伪随机整数序列的元素个数不同,则可调整第一伪随机整数序列和/或第二伪随机整数序列,使得两个序列中的元素个数相同。例如,可以对元素个数较多的伪随机整数序列进行截取,或者可以对元素个数较少的伪随机整数序列进行数据填充。
具体地,在确定当前元素序号后,可通过元素序号来确定第一伪随机整数序列和第二伪随机整数序列中所对应的元素。以第一伪随机整数序列为例,当
Figure 260626DEST_PATH_IMAGE023
时,第一伪随机整数序列包含3个元素,
Figure 997507DEST_PATH_IMAGE024
为3,
Figure 550979DEST_PATH_IMAGE025
为5,
Figure 31508DEST_PATH_IMAGE026
为7,若当前元素序号为2时,则第一伪随机整数序列中与当前元素序号对应的元素为5。类似地,第二伪随机整数序列也可通过上述过程确定序列中与当前元素序号对应的元素。
进一步地,分别从第一伪随机整数序列和第二伪随机整数序列中选取出第一元素和第二元素的实施方式,可以采用现有技术中的任意方法进行实现,例如伪随机整数序列可以采用数组方式存储,可通过当前元素序号确定对应的存储地址,访问该存储地址后可获取对应的第一元素和第二元素。
步骤120,将第一元素和第二元素转换为斐波那契进制标准式,分别得到第一标准式和第二标准式,并从第一标准式中截取出第一中间序列,从第二标准式中截取出第二中间序列。
具体地,将自然数表示为一个或多个互异的斐波那契数之和,并将所有斐波那契数按位置映射,生成由0和1组成的比特串,则该比特串为该自然数的斐波那契进制表达。若斐波那契进制表达中,没有相邻的1,且加项中不含
Figure 478670DEST_PATH_IMAGE027
(即第一个斐波那契数),则该式为斐波那契进制标准式。
例如,自然数20可以表达为20 = 2+5+13 =
Figure 606026DEST_PATH_IMAGE028
,则其斐波那契进制表达(以8位长度为例)为0101 0100。自然数20的斐波那契进制表达中
Figure 958378DEST_PATH_IMAGE029
,且没有相邻的1,则0101 0100为20的斐波那契进制标准式。
第一中间序列为第一标准式的部分或全部,也即第一中间序列可以为第一标准式中起始位至结束位之间的一段连续的比特串,例如,1010可以为0101 0100的中间序列。类似地,第二中间序列为第二标准式的部分或全部,也即第二中间序列可以为第二标准式中起始位至结束位之间的一段连续的比特串。应当理解的是,第一中间序列的长度和第二中间序列的长度可以相等或者不等,两个中间序列的长度并无必然联系。
具体而言,在确定第一元素和第二元素后,可将第一元素转换为斐波那契进制标准式,得到第一标准式,将第二元素转换为斐波那契进制标准式,得到第二标准式。需要说明的是,针对同一自然数而言,斐波那契进制标准式的形式可以有一个或者多个,第一标准式和第二标准式可以为其中任意一个。
在得到第一标准式后,可以从第一标准式中截取出第一中间序列,在得到第二标准式后,可以从第二标准式中截取出第二中间序列。进一步地,在第一中间序列中预设数值(如0或者1)出现的概率可以为常数,在第二中间序列中预设数值出现的概率可以为常数。
步骤130,对第一中间序列和第二中间序列的交集位按位进行或操作,得到本轮密钥子序列,递增当前元素序号,得到用于获取下一轮密钥子序列的元素序号,直至遍历第一伪随机整数序列和第二伪随机整数序列。
其中,密钥子序列可以为密钥流的一个组成部分;密钥流可以为随机码流。
具体地,本申请可以根据第一中间序列在第一标准式中的位置,和第二中间序列在第二标准式中的位置确定第一中间序列和第二中间序列的交集位,例如第一中间序列为第一标准式中的第1位至第3位(最低位为第1位),第二中间序列为第二标准式中的第2位至第5位,则交集位可以为第一中间序列的第2-3位(即第一标准式中的第2-3位)和第二中间序列的第1-2位(即第二标准式的第2-3位)。
此外,本申请还可根据第一中间序列的长度和第二中间序列的长度确定交集位,以长度较短的中间序列为标准,最高位对齐或最低位对齐,从而可确定第一中间序列和第二中间序列的交集位。在上述示例中,交集位可以为第一中间序列的第1-3位(即第一标准式中的第1-3位),和第二中间序列的第1-3位(即第二标准式的第2-4位),或者交集位可以为第一中间序列的第1-3位(即第一标准式中的第1-3位),和第二中间序列的第2-4位(即第二标准式的第3-5位)。
在确定交集位之后,可以为交集位按位进行或(OR)操作,对于每一个交集位,将第一中间序列中对应于交集位的值与第二中间序列中对应于交集位的值进行或,直至处理完全部交集位并得到本轮次的密钥子序列。
在得到本轮密钥子序列时,递增当前元素序号,递增的步长可以根据第一伪随机整数序列和第二伪随机整数序列的存储格式进行确定,例如递增步长可以为1。对当前元素序号进行递增后,开始执行步骤110,步骤120和步骤130,并得到下一轮次的密钥子序列。重复执行上述步骤,直至遍历第一伪随机整数序列中的全部元素和第二伪随机整数序列中的全部元素,获得每个元素序号对应的密钥子序列。
步骤140,按照元素序号的次序对各轮密钥子序列进行并列,得到密钥流。
具体地,在遍历第一伪随机整数序列和第二伪随机整数序列后,可按照元素序号的次序将各密钥子序列进行并列,依次将各密钥子序列进行排列并得到一串密钥流。其中,密钥流可用于对明文数据进行加密。例如,元素序号1对应的密钥子序列为123,元素序号2对应的密钥子序列为456,那么在进行并列后得到的密钥流为123456。
上述流加密密钥流生成方法中,上述流加密密钥流生成方法、装置、电路和加密方法,确定当前元素序号,并从第一伪随机整数序列中选取对应当前元素序号的第一元素,以及从第二伪随机整数序列中选取对应当前元素序号的第二元素;将第一元素和第二元素转换为斐波那契进制标准式,分别得到第一标准式和第二标准式,并从第一标准式中截取出第一中间序列,从第二标准式中截取出第二中间序列;对第一中间序列和第二中间序列的交集位按位进行或操作,得到本轮密钥子序列,递增当前元素序号,得到用于获取下一轮密钥子序列的元素序号,直至遍历第一伪随机整数序列和第二伪随机整数序列;按照元素序号的次序对各轮密钥子序列进行并列,得到密钥流,从而可提高密钥流的生成速度。
在一个实施例中,从第一标准式中截取出第一中间序列,从第二标准式中截取出第二中间序列的步骤,包括:
根据第一标准式中预设数值的个数,从第一标准式中截取出第一中间序列,以及根据第二标准式中预设数值的个数,从第二标准式中截取出第二中间序列。
其中,预设数值可以为0或者1,预设数值的个数可以为标准式中出现预设数值的数量。
具体地,第一标准式和第二标准式均为由0和1组成的比特串,本申请可获取第一标准式中预设数值的个数,并根据第一标准式中预设数值的个数从第一标准式中截取出第一中间序列。类似地,可获取第二标准式中预设数值的个数,并根据第二标准式中预设数值的个数从第二标准式中截取出第二中间序列。需要说明的是,第一标准式中预设数值的个数和第二标准式中预设数值的个数可以相等或者不等。
获取标准式中预设数值的个数可以采用现有技术中的任意方法进行实现,例如可以遍历标准式以获取预设数值的个数,或者也采用边沿触发器件或电平触发器件来对标准式中预设数值的个数进行计数。
在一个实施例中,预设数值为1;第一标准式的长度和第二标准式的长度均为L,第一标准式中1的个数为
Figure 931014DEST_PATH_IMAGE002
,第一标准式中1的个数为
Figure 498261DEST_PATH_IMAGE003
根据第一标准式中预设数值的个数,从第一标准式中截取出第一中间序列,以及根据第二标准式中预设数值的个数,从第二标准式中截取出第二中间序列的步骤包括:
将第一标准式中第
Figure 311365DEST_PATH_IMAGE002
位至第
Figure 105009DEST_PATH_IMAGE030
位之间的序列确认为第一中间序列,以及将第二标准式中第
Figure 5969DEST_PATH_IMAGE003
位至第
Figure 286777DEST_PATH_IMAGE031
位之间的序列确认为第二中间序列。
具体地,预设数值可以为1。第一标准式为
Figure 614991DEST_PATH_IMAGE032
位斐波那契进制,第二标准式为
Figure 82881DEST_PATH_IMAGE032
位斐波那契进制。对于长度为
Figure 521953DEST_PATH_IMAGE032
,1的个数为
Figure 470317DEST_PATH_IMAGE033
的斐波那契进制标准式0、1序列,当
Figure 297328DEST_PATH_IMAGE034
时,第
Figure 659039DEST_PATH_IMAGE035
位出现1的概率为常数。
当第一标准式中1的个数
Figure 26435DEST_PATH_IMAGE002
时,可将第一标准式中
Figure 94885DEST_PATH_IMAGE036
之间的序列确认为第一中间序列(不包含第
Figure 499322DEST_PATH_IMAGE002
位和第
Figure 738542DEST_PATH_IMAGE030
位)。当第二标准式中1的个数为
Figure 519416DEST_PATH_IMAGE003
时,可将第二标准式中
Figure 707952DEST_PATH_IMAGE037
之间的序列确认为第二中间序列(不包含第
Figure 673503DEST_PATH_IMAGE003
位和第
Figure 275386DEST_PATH_IMAGE031
位)。
上述流加密密钥流生成方法中,根据第一标准式中预设数值的个数,从第一标准式中截取出第一中间序列,以及根据第二标准式中预设数值的个数,从第二标准式中截取出第二中间序列,从而可确定第一中间序列和第二中间序列中各位置出现预设数值的概率,进而可使得密钥流可用于流加密,提高密钥流的生成速度。经实验证明,采用本申请的流加密密钥生成方法生成密钥,生成速度可较RC4提高4倍。
在一个实施例中,确定当前元素序号的步骤之前,还包括:
获取第一伪随机整数序列和第二伪随机整数序列;第一伪随机整数序列的元素个数和第二伪随机整数序列的元素个数相等,且均根据明文长度确定。
具体地,在步骤110之前,可获取第一伪随机整数序列和第二伪随机整数序列。其中,第一伪随机整数序列中包含的元素个数,与第二伪随机整数序列中包含的元素个数可以相等,并且第一伪随机整数序列和第二伪随机整数序列中的元素个数可以根据明文数据的长度确定。
例如,第一伪随机整数序列可以为
Figure 735317DEST_PATH_IMAGE038
,第二伪随机整数序列可以为
Figure 840676DEST_PATH_IMAGE039
,其中元素个数
Figure 977128DEST_PATH_IMAGE040
可以根据明文数据的长度
Figure 472832DEST_PATH_IMAGE041
确定。
上述流加密密钥流生成方法中,确定当前元素序号的步骤之前,还包括获取第一伪随机整数序列和第二伪随机整数序列;第一伪随机整数序列的元素个数和第二伪随机整数序列的元素个数相等,且均根据明文长度确定,从而可通过第一伪随机整数序列和第二伪随机整数序列生成密钥流,并减少第一伪随机整数序列和第二伪随机整数序列的处理步骤,进而可进一步地提高密钥流生成速度。
在一个实施例中,如图2所示,获取第一伪随机整数序列和第二伪随机整数序列的步骤,包括:
步骤210,获取密钥对;密钥对包括第一密钥和第二密钥;
步骤220,根据第一密钥生成第一伪随机整数序列,并根据第二密钥生成第二伪随机整数序列。
具体地,密钥对中的第一密钥和第二密钥可以相同或者不同,根据第一密钥生成第一伪随机整数序列的步骤,和根据第二密钥生成第二伪随机整数序列的步骤可以相同。例如可对密钥和前一元素进行求模,从而可得到伪随机整数序列中的当前元素,应当理解的是,本申请中根据密钥生成伪随机整数序列的方法还可通过现有技术中的其他实施方式进行实现,并不只局限于上述示例所列出的方式。
在一个实施例中,第一密钥包括第一整数、第二整数和第三整数;第二密钥包括第四整数、第五整数和第六整数;
根据第一密钥生成第一伪随机整数序列,并根据第二密钥生成第二伪随机整数序列的步骤,包括:
采用以下公式处理第一密钥,生成第一伪随机整数序列:
Figure 861088DEST_PATH_IMAGE006
其中,
Figure 957306DEST_PATH_IMAGE007
为第一整数;
Figure 140026DEST_PATH_IMAGE008
为第二整数;
Figure 388604DEST_PATH_IMAGE009
为第三整数;
Figure 439606DEST_PATH_IMAGE010
为元素序号;
Figure 519557DEST_PATH_IMAGE011
为第一伪随机整数序列中第
Figure 748545DEST_PATH_IMAGE010
个元素;
Figure 546736DEST_PATH_IMAGE012
为第一伪随机整数序列中第
Figure 401429DEST_PATH_IMAGE013
个元素;
Figure 7991DEST_PATH_IMAGE014
为元素总个数;
采用以下公式处理第二密钥,生成第二伪随机整数序列:
Figure 798092DEST_PATH_IMAGE015
其中,
Figure 942634DEST_PATH_IMAGE016
为第四整数;
Figure 210805DEST_PATH_IMAGE017
为第五整数;
Figure 140715DEST_PATH_IMAGE018
为第六整数;
Figure 23089DEST_PATH_IMAGE010
为元素序号;
Figure 530294DEST_PATH_IMAGE019
为第二伪随机整数序列中第
Figure 477521DEST_PATH_IMAGE010
个元素;
Figure 386571DEST_PATH_IMAGE020
为第二伪随机整数序列中第
Figure 377530DEST_PATH_IMAGE021
个元素;
Figure 309714DEST_PATH_IMAGE022
为元素总个数。
具体地,密钥对可为
Figure 919687DEST_PATH_IMAGE042
,其中
Figure 807877DEST_PATH_IMAGE043
为第一密钥,
Figure 845103DEST_PATH_IMAGE044
为第二密钥。每个密钥由三个整数组成,即:
Figure 467845DEST_PATH_IMAGE045
其中,
Figure 802881DEST_PATH_IMAGE007
为第一整数;
Figure 686523DEST_PATH_IMAGE008
为第二整数;
Figure 770017DEST_PATH_IMAGE009
为第三整数;
Figure 394902DEST_PATH_IMAGE016
为第四整数;
Figure 346678DEST_PATH_IMAGE017
为第五整数;
Figure 225772DEST_PATH_IMAGE046
为第六整数。进一步地,还可获取第一初值
Figure 526172DEST_PATH_IMAGE047
和第二初值
Figure 982561DEST_PATH_IMAGE048
Figure 347815DEST_PATH_IMAGE047
Figure 206049DEST_PATH_IMAGE048
均为大于零的整数。
Figure 146192DEST_PATH_IMAGE009
Figure 761981DEST_PATH_IMAGE018
可以为相同数量级的两个素数,
Figure 55559DEST_PATH_IMAGE007
<
Figure 892934DEST_PATH_IMAGE009
Figure 613766DEST_PATH_IMAGE008
<
Figure 920113DEST_PATH_IMAGE009
Figure 938754DEST_PATH_IMAGE016
<
Figure 506001DEST_PATH_IMAGE018
Figure 538679DEST_PATH_IMAGE017
<
Figure 191377DEST_PATH_IMAGE018
,则可通过以下公式生成第一伪随机整数序列中的各元素:
Figure 951392DEST_PATH_IMAGE049
其中,
Figure 310829DEST_PATH_IMAGE010
为元素序号;
Figure 639042DEST_PATH_IMAGE011
为第一伪随机整数序列中第
Figure 434829DEST_PATH_IMAGE010
个元素;
Figure 14846DEST_PATH_IMAGE012
为第一伪随机整数序列中第
Figure 291106DEST_PATH_IMAGE013
个元素;
Figure 914855DEST_PATH_IMAGE022
为元素总个数,即明文长度;mod为求模运算。
同时,可通过以下公式生成第二伪随机整数序列中的各元素:
Figure 214249DEST_PATH_IMAGE050
其中,
Figure 191432DEST_PATH_IMAGE019
为第二伪随机整数序列中第
Figure 724131DEST_PATH_IMAGE010
个元素;
Figure 394147DEST_PATH_IMAGE020
为第二伪随机整数序列中第
Figure 180837DEST_PATH_IMAGE021
个元素;mod为求模运算。
例如当所有参数如下所示时,
Figure 86345DEST_PATH_IMAGE051
Figure 602777DEST_PATH_IMAGE052
Figure 319060DEST_PATH_IMAGE053
Figure 655364DEST_PATH_IMAGE054
Figure 364563DEST_PATH_IMAGE055
可按照上述公式分别生成第一伪随机整数序列
Figure 407605DEST_PATH_IMAGE038
和第二伪随机整数序列
Figure 419423DEST_PATH_IMAGE039
,并将其表示为斐波那契进制标准式
Figure 102078DEST_PATH_IMAGE056
Figure 162437DEST_PATH_IMAGE057
。其中
Figure 122303DEST_PATH_IMAGE056
为第一伪随机整数序列中第i个元素的斐波那契进制标准式,长度为L
Figure 226394DEST_PATH_IMAGE057
为第二伪随机整数序列中第i个元素的斐波那契进制标准式,长度为L。在每个标准式的
Figure 678235DEST_PATH_IMAGE058
Figure 604603DEST_PATH_IMAGE059
Figure 543609DEST_PATH_IMAGE060
按位进行逻辑或运算,得到密钥子序列
Figure 162809DEST_PATH_IMAGE061
H个密钥子序列
Figure 836367DEST_PATH_IMAGE061
进行并列,最终得到密钥流
Figure 222218DEST_PATH_IMAGE062
为便于说明本申请的方案,下面通过一个具体的示例进行说明,如图3所示,提供了一种流加密密钥流生成方法,包括:
步骤310,获取密钥对、第一初值和第二初值。
具体地,密钥对
Figure 422255DEST_PATH_IMAGE063
,其中
Figure 87723DEST_PATH_IMAGE064
Figure 842052DEST_PATH_IMAGE065
。第一初值
Figure 500436DEST_PATH_IMAGE066
和第二初值
Figure 227083DEST_PATH_IMAGE067
均为大于零的整数,且满足(1)
Figure 922507DEST_PATH_IMAGE068
Figure 554345DEST_PATH_IMAGE069
可以为相同数量级的两个素数;(2)
Figure 626206DEST_PATH_IMAGE070
Figure 410623DEST_PATH_IMAGE071
;(3)
Figure 463898DEST_PATH_IMAGE072
Figure 458399DEST_PATH_IMAGE073
步骤320,获取第一伪随机整数序列和第二伪随机整数序列。
其中,第一伪随机整数序列可通过以下公式得到:
Figure 209317DEST_PATH_IMAGE074
第二伪随机整数序列可通过以下公式得到:
Figure 972874DEST_PATH_IMAGE075
具体地,元素总个数H可以根据明文数据的长度P确定。
步骤330,将第一伪随机整数序列中的所有元素,和第二伪随机整数序列中的所有元素均采用长度为
Figure 134734DEST_PATH_IMAGE001
的斐波那契进制标准式表达。
其中,
Figure 554214DEST_PATH_IMAGE076
步骤340,根据第一标准式中1的个数,从第一标准式中截取出第一中间序列,以及根据第二标准式中1的个数,从第二标准式中截取出第二中间序列。
具体地,对于长度为
Figure 967878DEST_PATH_IMAGE032
,1的个数为
Figure 710575DEST_PATH_IMAGE033
的斐波那契进制标准式0、1序列,当
Figure 918702DEST_PATH_IMAGE077
时,第
Figure 763161DEST_PATH_IMAGE035
位出现1的概率为常数。针对第一标准式和第二标准式的中间部分
Figure 901888DEST_PATH_IMAGE078
的交集位按位进行或,得到本轮密钥子序列
Figure 640037DEST_PATH_IMAGE079
步骤350,递增当前元素序号,得到用于获取下一轮密钥子序列的元素序号,直至遍历第一伪随机整数序列和第二伪随机整数序列。
步骤360,按照元素序号的次序对各轮密钥子序列进行并列,得到密钥流。
Figure 691169DEST_PATH_IMAGE080
上述流加密密钥流生成方法中。生成的密钥流序列C满足Golomb随机性的假设,可用于进行流加密。
在一个实施例中,如图4所示,提供了一种加密方法,包括以下步骤:
步骤410,获取明文数据;
步骤420,采用上述任一实施例中的流加密密钥流生成方法生成密钥流;
步骤430,将密钥流与明文数据按位进行异或操作,得到密文数据。
具体地,获取到明文数据后,可采用上述任一实施例中的流加密密钥流生成方法生成密钥流,然后将明文数据与密钥流按位进行异或(XOR)操作,得到密文数据。
在一个实施例中,如图5所示,提供了一种解密方法,包括以下步骤:
步骤510,获取密文数据;
步骤520,获取密钥流;密钥流可以采用上述任一实施例中的流加密密钥流生成方法生成;
步骤530,将密钥流与密文数据按位进行异或操作,得到明文数据。
应该理解的是,虽然图1-图5的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图1-图5的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
在一个实施例中,如图6所示,提供了一种流加密密钥生成电路,包括:
第一编码器,将第一元素转换为斐波那契进制标准式,得到第一标准式;
第二编码器,将第二元素转换为斐波那契进制标准式,得到第二标准式;
密钥流生成装置,确定当前元素序号,并从第一伪随机整数序列中选取对应于当前元素序号的第一元素,以及从第二伪随机整数序列中选取对应于当前元素序号的第二元素;以及从第一标准式中截取出第一中间序列,从第二标准式中截取出第二中间序列;对第一中间序列和第二中间序列的交集位按位进行或操作,得到本轮密钥子序列,递增当前元素序号,得到用于获取下一轮密钥子序列的元素序号,直至遍历第一伪随机整数序列和第二伪随机整数序列;按照元素序号的次序对各轮密钥子序列进行并列,得到密钥流。
具体地,流加密密钥生成电路可以包括第一编码器、第二编码器和密钥流生成装置,密钥流生成装置的输出端分别连接第一编码器的输入端和第二编码器的输入端,密钥流生成装置的输入端分别连接第一编码器的输出端和第二编码器的输出端。
密钥流生成装置可从第一伪随机整数序列中选取对应于当前元素序号的第一元素,以及从第二伪随机整数序列中选取对应于当前元素序号的第二元素,并将第一元素传输给第一编码器,将第二元素传输给第二编码器。进一步地,第一元素和第二元素均可为16为二进制数。第一编码器将第一元素转换为斐波那契进制标准式,得到第一标准式,第二编码器将第二元素转换为斐波那契进制标准式,得到第二标准式。
或者,密钥流生成装置可分别获取/生成第一伪随机整数序列和第二伪随机整数序列,并将得到的第一伪随机整数序列传输给第一编码器,将得到的第二伪随机整数序列传输给第二编码器。第一编码器对生成的第一伪随机整数序列进行斐波那契进制标准式编码,得到第一标准式,第二编码器对生成的第二伪随机整数序列进行斐波那契进制标准式编码,得到第二标准式。
第一标准式依次通过第一编码器的输出端和密钥流生成装置的输入端输入至密钥流生成装置中,第二标准式依次通过第二编码器的输出端和密钥流生成装置的输入端输入至密钥流生成装置中。
密钥流生成装置对从第一标准式中截取出第一中间序列,从第二标准式中截取出第二中间序列,并对第一中间序列和第二中间序列的交集位按位进行或操作,得到当前元素序号对应的密钥子序列。递增当前元素序号,分别向第一编码器和第二编码器传输下一第一元素和下一第二元素,进行下一轮密钥子序列的获取,直至遍历第一伪随机整数序列和第二伪随机整数序列。
密钥流生成装置在遍历第一伪随机整数序列和第二伪随机整数序列后,按照元素序号的次序对各轮密钥子序列进行并列,得到密钥流。
在一个实施例中,还包括:
存储装置,存储有前32位斐波那契数;各斐波那契数用于指示第一编码器将第一元素转换为斐波那契进制标准式,以及第二编码器将第二元素转换为斐波那契进制标准式。
具体地,请参阅图7,图7示出了流加密密钥生成电路的RTL(Register TransferLevel,寄存器转换级)电路。存储装置可以为RAM(Random Access Memory,随机存取存储器)装置,其内存储有前32位的斐波那契进制数,即存储有
Figure 272192DEST_PATH_IMAGE081
。存储装置可以分别连接第一编码器和第二编码器。
当进行斐波那契进制编码时,可读取存储装置中的斐波那契数,从而可避免重复计算,进一步提高密钥流生成速度。
在一个实施例中,第一编码器、第二编码器和密钥流生成装置均为FPGA(FieldProgrammable Gate Array,现场可编程逻辑门阵列)器件。
为便于说明本申请的方案,下面通过一个具体的示例进行说明。一种流加密密钥流生成电路,其RTL级电路可如图7所示,状态转换图可如图8所示。
本申请的流加密密钥流生成电路与RC4随机码流生成器的资源占用对比可如表1所示,由表1可见,流加密密钥流生成电路相较于RC4随机码流生成器,其占用3倍的逻辑门和寄存器资源,但是占用1/3的IO引脚。二者在硬件资源布局上更有侧重,并无明显的优劣。
表1 流加密密钥流生成电路和RC4随机码流生成器的FPGA资源占用对比
Figure 762079DEST_PATH_IMAGE082
在时间消耗的对比上,当晶振为50MHz(兆赫兹)时,对于8比特的明文数据,本申请产生随机码流的生成时间为4630ps(皮秒),共231个时钟周期,而RC4随机码流生成时间为15694ps(共783个时钟周期)。也即,本申请的流加密密钥流生成电路随机码流的生成速度比RC4随机码流生成器的生成速度快约3倍。
综合资源消耗和时间占用两方面的对比结果,可以认为虽然寄存器和逻辑门资源占用稍多一些,但流加密密钥流生成电路随机码流生成的速度明显更快,占用的引脚更少,总体来看,优于RC4的随机码流生成方法。
在一个实施例中,提供了一种加密设备,包括上述任一实施例中的流加密密钥生成电路。
进一步地,加密设备还可包括接收明文数据的接收电路以及对密钥流和明文数据进行异或操作的加密电路。
在一个实施例中,如图9所示,提供了一种流加密密钥流生成装置,包括:
元素选取模块,用于确定当前元素序号,并从第一伪随机整数序列中选取对应于当前元素序号的第一元素,以及从第二伪随机整数序列中选取对应于当前元素序号的第二元素。
中间序列截取模块,用于将第一元素和第二元素转换为斐波那契进制标准式,分别得到第一标准式和第二标准式,并从第一标准式中截取出第一中间序列,从第二标准式中截取出第二中间序列。
密钥子序列获取模块,用于对第一中间序列和第二中间序列的交集位按位进行或操作,得到本轮密钥子序列,递增当前元素序号,得到用于获取下一轮密钥子序列的元素序号,直至遍历第一伪随机整数序列和第二伪随机整数序列;
密钥流获取模块,用于按照元素序号的次序对各密钥子序列进行并列,得到密钥流。
在一个实施例中,中间序列截取模块,用于根据第一标准式中预设数值的个数,从第一标准式中截取出第一中间序列,以及根据第二标准式中预设数值的个数,从第二标准式中截取出第二中间序列。
在一个实施例中,预设数值为1;第一标准式的长度和第二标准式的长度均为L,第一标准式中1的个数为
Figure 495680DEST_PATH_IMAGE002
,第一标准式中1的个数为
Figure 311189DEST_PATH_IMAGE003
;中间序列截取模块,用于将第一标准式中第
Figure 910667DEST_PATH_IMAGE083
位至第
Figure 345190DEST_PATH_IMAGE004
位之间的序列确认为第一中间序列,以及将第二标准式中第
Figure 792352DEST_PATH_IMAGE003
位至第
Figure 903396DEST_PATH_IMAGE031
位之间的序列确认为第二中间序列。
在一个实施例中,流加密密钥流生成装置还包括:伪随机码获取模块,用于获取第一伪随机整数序列和第二伪随机整数序列;第一伪随机整数序列的元素个数和第二伪随机整数序列的元素个数相等,且均根据明文长度确定。
在一个实施例中,伪随机码获取模块,还用于获取密钥对;密钥对包括第一密钥和第二密钥;根据第一密钥生成第一伪随机整数序列,并根据第二密钥生成第二伪随机整数序列。
在一个实施例中,第一密钥包括第一整数、第二整数和第三整数;第二密钥包括第四整数、第五整数和第六整数;伪随机码获取模块,还用于采用以下公式处理第一密钥,生成第一伪随机整数序列:
Figure 334378DEST_PATH_IMAGE006
其中,
Figure 103751DEST_PATH_IMAGE007
为第一整数;
Figure 807351DEST_PATH_IMAGE008
为第二整数;
Figure 699083DEST_PATH_IMAGE009
为第三整数;
Figure 227148DEST_PATH_IMAGE010
为元素序号;
Figure 49479DEST_PATH_IMAGE011
为第一伪随机整数序列中第
Figure 736813DEST_PATH_IMAGE010
个元素;
Figure 674813DEST_PATH_IMAGE012
为第一伪随机整数序列中第
Figure 814807DEST_PATH_IMAGE013
个元素;
Figure 378512DEST_PATH_IMAGE014
为元素总个数;
采用以下公式处理第二密钥,生成第二伪随机整数序列:
Figure 592456DEST_PATH_IMAGE015
其中,
Figure 91570DEST_PATH_IMAGE016
为第四整数;
Figure 577915DEST_PATH_IMAGE017
为第五整数;
Figure 820678DEST_PATH_IMAGE018
为第六整数;
Figure 154707DEST_PATH_IMAGE010
为元素序号;
Figure 949357DEST_PATH_IMAGE019
为第二伪随机整数序列中第
Figure 798364DEST_PATH_IMAGE010
个元素;
Figure 454605DEST_PATH_IMAGE020
为第二伪随机整数序列中第
Figure 971037DEST_PATH_IMAGE021
个元素;
Figure 733325DEST_PATH_IMAGE022
为元素总个数。
关于流加密密钥流生成装置的具体限定可以参见上文中对于流加密密钥流生成方法的限定,在此不再赘述。上述流加密密钥流生成装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。需要说明的是,本申请实施例中对模块的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。
在一个实施例中,如图10所示,提供了一种加密装置,包括:
明文获取模块,用于获取明文数据;
流加密密钥流生成装置,用于采用上述任一实施例中的流加密密钥流生成方法生成密钥流;
密文获取模块,用于将所述密钥流与所述明文数据按位进行异或操作,得到密文数据。
具体地,流加密密钥流生成装置可如上述任一实施例所述。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:
确定当前元素序号,并从第一伪随机整数序列中选取对应当前元素序号的第一元素,以及从第二伪随机整数序列中选取对应当前元素序号的第二元素;
将第一元素和第二元素转换为斐波那契进制标准式,分别得到第一标准式和第二标准式,并从第一标准式中截取出第一中间序列,从第二标准式中截取出第二中间序列;
对第一中间序列和第二中间序列的交集位按位进行或操作,得到本轮密钥子序列,递增当前元素序号,得到用于获取下一轮密钥子序列的元素序号,直至遍历第一伪随机整数序列和第二伪随机整数序列;
按照元素序号的次序对各轮密钥子序列进行并列,得到密钥流。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:根据第一标准式中预设数值的个数,从第一标准式中截取出第一中间序列,以及根据第二标准式中预设数值的个数,从第二标准式中截取出第二中间序列。
在一个实施例中,预设数值为1;第一标准式的长度和第二标准式的长度均为L,第一标准式中1的个数为
Figure 944995DEST_PATH_IMAGE002
,第一标准式中1的个数为
Figure 529560DEST_PATH_IMAGE003
;计算机程序被处理器执行时还实现以下步骤:将第一标准式中第
Figure 25132DEST_PATH_IMAGE002
位至第
Figure 771371DEST_PATH_IMAGE004
位之间的序列确认为第一中间序列,以及将第二标准式中第
Figure 735916DEST_PATH_IMAGE003
位至第
Figure 779964DEST_PATH_IMAGE031
位之间的序列确认为第二中间序列。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:获取第一伪随机整数序列和第二伪随机整数序列;第一伪随机整数序列的元素个数和第二伪随机整数序列的元素个数相等,且均根据明文长度确定。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:获取密钥对;密钥对包括第一密钥和第二密钥;根据第一密钥生成第一伪随机整数序列,并根据第二密钥生成第二伪随机整数序列。
在一个实施例中,第一密钥包括第一整数、第二整数和第三整数;第二密钥包括第四整数、第五整数和第六整数;计算机程序被处理器执行时还实现以下步骤:采用以下公式处理第一密钥,生成第一伪随机整数序列:
Figure 270989DEST_PATH_IMAGE006
其中,
Figure 329075DEST_PATH_IMAGE007
为第一整数;
Figure 374391DEST_PATH_IMAGE008
为第二整数;
Figure 222130DEST_PATH_IMAGE009
为第三整数;
Figure 443027DEST_PATH_IMAGE010
为元素序号;
Figure 531069DEST_PATH_IMAGE011
为第一伪随机整数序列中第
Figure 453894DEST_PATH_IMAGE010
个元素;
Figure 856057DEST_PATH_IMAGE012
为第一伪随机整数序列中第
Figure 56094DEST_PATH_IMAGE013
个元素;
Figure 439671DEST_PATH_IMAGE014
为元素总个数;
采用以下公式处理第二密钥,生成第二伪随机整数序列:
Figure 725159DEST_PATH_IMAGE015
其中,
Figure 931012DEST_PATH_IMAGE016
为第四整数;
Figure 110189DEST_PATH_IMAGE084
为第五整数;
Figure 805613DEST_PATH_IMAGE018
为第六整数;
Figure 188184DEST_PATH_IMAGE010
为元素序号;
Figure 260045DEST_PATH_IMAGE019
为第二伪随机整数序列中第
Figure 90467DEST_PATH_IMAGE010
个元素;
Figure 97737DEST_PATH_IMAGE020
为第二伪随机整数序列中第
Figure 92238DEST_PATH_IMAGE085
个元素;
Figure 826844DEST_PATH_IMAGE014
为元素总个数。
在一个实施例中,提供了另一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:
获取明文数据;
采用上述任一实施例中的流加密密钥流生成方法生成密钥流;
将密钥流与明文数据按位进行异或操作,得到密文数据。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(Read-Only Memory,ROM)、磁带、软盘、闪存或光存储器等。易失性存储器可包括RAM或外部高速缓冲存储器。作为说明而非局限,RAM可以是多种形式,比如静态随机存取存储器(StaticRandom Access Memory,SRAM)或动态随机存取存储器(Dynamic Random Access Memory,DRAM)等。
在本说明书的描述中,参考术语“有些实施例”、“其他实施例”、“理想实施例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特征包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性描述不一定指的是相同的实施例或示例。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。

Claims (14)

1.一种流加密密钥流生成方法,其特征在于,包括:
确定当前元素序号,并从第一伪随机整数序列中选取对应所述当前元素序号的第一元素,以及从第二伪随机整数序列中选取对应所述当前元素序号的第二元素;
将所述第一元素和所述第二元素转换为斐波那契进制标准式,分别得到第一标准式和第二标准式,并从所述第一标准式中截取出第一中间序列,从所述第二标准式中截取出第二中间序列;
对所述第一中间序列和所述第二中间序列的交集位按位进行或操作,得到本轮密钥子序列,递增所述当前元素序号,得到用于获取下一轮密钥子序列的元素序号,直至遍历所述第一伪随机整数序列和所述第二伪随机整数序列;
按照元素序号的次序对各轮所述密钥子序列进行并列,得到密钥流。
2.根据权利要求1所述的流加密密钥流生成方法,其特征在于,从所述第一标准式中截取出第一中间序列,从所述第二标准式中截取出第二中间序列的步骤,包括:
根据所述第一标准式中预设数值的个数,从所述第一标准式中截取出第一中间序列,以及根据所述第二标准式中所述预设数值的个数,从所述第二标准式中截取出第二中间序列。
3.根据权利要求2所述的流加密密钥流生成方法,其特征在于,所述预设数值为1;所述第一标准式的长度和所述第二标准式的长度均为L,所述第一标准式中1的个数为
Figure 149413DEST_PATH_IMAGE001
,所述第一标准式中1的个数为
Figure 961380DEST_PATH_IMAGE002
根据所述第一标准式中预设数值的个数,从所述第一标准式中截取出第一中间序列,以及根据所述第二标准式中所述预设数值的个数,从所述第二标准式中截取出第二中间序列的步骤包括:
将所述第一标准式中第
Figure 24014DEST_PATH_IMAGE001
位至第
Figure 836112DEST_PATH_IMAGE003
位之间的序列确认为所述第一中间序列,以及将所述第二标准式中第
Figure 399817DEST_PATH_IMAGE002
位至第
Figure 676078DEST_PATH_IMAGE004
位之间的序列确认为所述第二中间序列。
4.根据权利要求1所述的流加密密钥流生成方法,其特征在于,确定当前元素序号的步骤之前,还包括:
获取所述第一伪随机整数序列和所述第二伪随机整数序列;所述第一伪随机整数序列的元素个数和所述第二伪随机整数序列的元素个数相等,且均根据明文长度确定。
5.根据权利要求4所述的流加密密钥流生成方法,其特征在于,获取所述第一伪随机整数序列和所述第二伪随机整数序列的步骤,包括:
获取密钥对;所述密钥对包括第一密钥和第二密钥;
根据所述第一密钥生成所述第一伪随机整数序列,并根据所述第二密钥生成所述第二伪随机整数序列。
6.根据权利要求5所述的流加密密钥流生成方法,其特征在于,所述第一密钥包括第一整数、第二整数和第三整数;所述第二密钥包括第四整数、第五整数和第六整数;
根据所述第一密钥生成所述第一伪随机整数序列,并根据所述第二密钥生成所述第二伪随机整数序列的步骤,包括:
采用以下公式处理所述第一密钥,生成所述第一伪随机整数序列:
Figure 701758DEST_PATH_IMAGE005
其中,
Figure 63469DEST_PATH_IMAGE006
为所述第一整数;
Figure 821079DEST_PATH_IMAGE007
为所述第二整数;
Figure 483004DEST_PATH_IMAGE008
为所述第三整数;
Figure 74391DEST_PATH_IMAGE009
为元素序号;
Figure 188978DEST_PATH_IMAGE010
为所述第一伪随机整数序列中第
Figure 297748DEST_PATH_IMAGE009
个元素;
Figure 283022DEST_PATH_IMAGE011
为所述第一伪随机整数序列中第
Figure 999305DEST_PATH_IMAGE012
个元素;
Figure 601188DEST_PATH_IMAGE013
为元素总个数;
采用以下公式处理所述第二密钥,生成所述第二伪随机整数序列:
Figure 107124DEST_PATH_IMAGE014
其中,
Figure 87850DEST_PATH_IMAGE015
为所述第四整数;
Figure 21039DEST_PATH_IMAGE016
为所述第五整数;
Figure 703693DEST_PATH_IMAGE017
为所述第六整数;
Figure 826370DEST_PATH_IMAGE009
为元素序号;
Figure 661602DEST_PATH_IMAGE018
为所述第二伪随机整数序列中第
Figure 31273DEST_PATH_IMAGE009
个元素;
Figure 76589DEST_PATH_IMAGE019
为所述第二伪随机整数序列中第
Figure 675061DEST_PATH_IMAGE020
个元素;
Figure 879646DEST_PATH_IMAGE013
为元素总个数。
7.一种加密方法,其特征在于,包括以下步骤:
获取明文数据;
采用如权利要求1至6任一项所述的流加密密钥流生成方法生成密钥流;
将所述密钥流与所述明文数据按位进行异或操作,得到密文数据。
8.一种流加密密钥流生成装置,其特征在于,包括:
元素选取模块,用于确定当前元素序号,并从第一伪随机整数序列中选取对应于所述当前元素序号的第一元素,以及从第二伪随机整数序列中选取对应于所述当前元素序号的第二元素;
中间序列截取模块,用于将所述第一元素和所述第二元素转换为斐波那契进制标准式,分别得到第一标准式和第二标准式,并从所述第一标准式中截取出第一中间序列,从所述第二标准式中截取出第二中间序列;
密钥子序列获取模块,用于对所述第一中间序列和所述第二中间序列的交集位按位进行或操作,得到本轮密钥子序列,递增所述当前元素序号,得到用于获取下一轮密钥子序列的元素序号,直至遍历所述第一伪随机整数序列和所述第二伪随机整数序列;
密钥流获取模块,用于按照元素序号的次序对各所述密钥子序列进行并列,得到密钥流。
9.一种加密装置,其特征在于,包括:
明文获取模块,用于获取明文数据;
流加密密钥流生成装置,用于采用如权利要求1至6任一项所述的流加密密钥流生成方法生成密钥流;
密文获取模块,用于将所述密钥流与所述明文数据按位进行异或操作,得到密文数据。
10.一种流加密密钥生成电路,其特征在于,包括:
第一编码器,将第一元素转换为斐波那契进制标准式,得到第一标准式;
第二编码器,将第二元素转换为斐波那契进制标准式,得到第二标准式;
密钥流生成装置,确定当前元素序号,并从第一伪随机整数序列中选取对应于所述当前元素序号的第一元素,以及从第二伪随机整数序列中选取对应于所述当前元素序号的第二元素;以及从所述第一标准式中截取出第一中间序列,从所述第二标准式中截取出第二中间序列;对所述第一中间序列和所述第二中间序列的交集位按位进行或操作,得到本轮密钥子序列,递增所述当前元素序号,得到用于获取下一轮密钥子序列的元素序号,直至遍历所述第一伪随机整数序列和所述第二伪随机整数序列;按照元素序号的次序对各轮所述密钥子序列进行并列,得到密钥流。
11.根据权利要求10所述的流加密密钥生成电路,其特征在于,还包括:
存储装置,存储有前32位斐波那契数;各所述斐波那契数用于指示所述第一编码器将第一元素转换为斐波那契进制标准式,以及所述第二编码器将第二元素转换为斐波那契进制标准式。
12.根据权利要求10所述的流加密密钥生成电路,其特征在于,所述第一编码器、所述第二编码器和所述密钥流生成装置均为FPGA器件。
13.一种加密设备,其特征在于,包括如权利要求10至12任一项所述的流加密密钥生成电路。
14.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至6中任一项所述的方法的步骤。
CN202011418785.6A 2020-12-07 2020-12-07 流加密密钥流生成方法、装置、电路和加密方法 Pending CN112202548A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011418785.6A CN112202548A (zh) 2020-12-07 2020-12-07 流加密密钥流生成方法、装置、电路和加密方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011418785.6A CN112202548A (zh) 2020-12-07 2020-12-07 流加密密钥流生成方法、装置、电路和加密方法

Publications (1)

Publication Number Publication Date
CN112202548A true CN112202548A (zh) 2021-01-08

Family

ID=74034499

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011418785.6A Pending CN112202548A (zh) 2020-12-07 2020-12-07 流加密密钥流生成方法、装置、电路和加密方法

Country Status (1)

Country Link
CN (1) CN112202548A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116527233A (zh) * 2023-03-13 2023-08-01 安徽合工质能双碳科技有限公司 基于云计算的能源监测数据管理***

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN201936335U (zh) * 2011-01-20 2011-08-17 广东商学院 一种带有保密功能的rfid电子标签芯片
CN102752107A (zh) * 2011-04-19 2012-10-24 中国科学院微电子研究所 实现rc4加/解密的装置及其方法
EP3316125A1 (en) * 2016-10-26 2018-05-02 Nxp B.V. Method of generating an elliptic curve cryptographic key pair
CN111431716A (zh) * 2020-03-30 2020-07-17 卓尔智联(武汉)研究院有限公司 数据传输方法、装置、计算机设备和存储介质
CN111464296A (zh) * 2020-03-30 2020-07-28 卓尔智联(武汉)研究院有限公司 序列密码生成方法、数据加密方法和数据解密方法

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN201936335U (zh) * 2011-01-20 2011-08-17 广东商学院 一种带有保密功能的rfid电子标签芯片
CN102752107A (zh) * 2011-04-19 2012-10-24 中国科学院微电子研究所 实现rc4加/解密的装置及其方法
EP3316125A1 (en) * 2016-10-26 2018-05-02 Nxp B.V. Method of generating an elliptic curve cryptographic key pair
CN111431716A (zh) * 2020-03-30 2020-07-17 卓尔智联(武汉)研究院有限公司 数据传输方法、装置、计算机设备和存储介质
CN111464296A (zh) * 2020-03-30 2020-07-28 卓尔智联(武汉)研究院有限公司 序列密码生成方法、数据加密方法和数据解密方法

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116527233A (zh) * 2023-03-13 2023-08-01 安徽合工质能双碳科技有限公司 基于云计算的能源监测数据管理***
CN116527233B (zh) * 2023-03-13 2023-09-19 安徽合工质能双碳科技有限公司 基于云计算的能源监测数据管理***

Similar Documents

Publication Publication Date Title
Beaulieu et al. The SIMON and SPECK lightweight block ciphers
Li et al. Chaotic encryption scheme for real-time digital video
TWI739090B (zh) 具有物理不可複製功能的真亂數生成系統
US5835600A (en) Block encryption algorithm with data-dependent rotations
US8320557B2 (en) Cryptographic system including a mixed radix number generator with chosen statistical artifacts
EP1583278B1 (en) Stream Cipher Design with Revolving Buffers
JPH04250490A (ja) ケーオス論に基づく暗号化システム
US20090296928A1 (en) Pseudorandom number generating system, encryption system, and decryption system
WO2006033013A2 (en) Substitution boxes
JP2005215688A (ja) S−box演算を用いるハードウェア暗号化/復号化装置及び、その方法
WO2004032098A1 (ja) 疑似乱数発生方法及び疑似乱数発生器
WO2000001111A1 (en) Secure data encoder and decoder
Paar et al. Stream ciphers
Ghazi et al. Robust and efficient dynamic stream cipher cryptosystem
CN112202548A (zh) 流加密密钥流生成方法、装置、电路和加密方法
WO2004086673A1 (ja) 乱数生成、暗号化および復号のための装置、方法、プログラム、並びに記録媒体
CN114826560A (zh) 一种轻量级分组密码cref实现方法及***
Kahri et al. An FPGA implementation and comparison of the SHA-256 and Blake-256
Younes et al. CeTrivium: A Stream Cipher Based on Cellular Automata for Securing Real-TimeMultimedia Transmission.
JPH09288565A (ja) 乱数生成装置及び方法、暗号化装置及び方法、復号装置及び方法、鍵系列生成装置及び方法、並びに記憶媒体
Abumuala et al. A new method for generating cryptographically strong sequences of pseudo random bits for stream cipher
Singh et al. Analysis of 64-bit RC5 Encryption Algorithm for Pipelined Architecture
Franti et al. Design of cellular automata hardware for cryptographic applications
Sonawane et al. Synthesis and simulation of FPGA based hardware design of RC4 stream cipher
Hendricks et al. Polysizemic Encryption: Towards a Variable-Length Output Symmetric-Key Cryptosystem

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
RJ01 Rejection of invention patent application after publication

Application publication date: 20210108

RJ01 Rejection of invention patent application after publication