CN111669269B - Blk数据加密方法、装置及存储介质 - Google Patents
Blk数据加密方法、装置及存储介质 Download PDFInfo
- Publication number
- CN111669269B CN111669269B CN202010513987.2A CN202010513987A CN111669269B CN 111669269 B CN111669269 B CN 111669269B CN 202010513987 A CN202010513987 A CN 202010513987A CN 111669269 B CN111669269 B CN 111669269B
- Authority
- CN
- China
- Prior art keywords
- variable
- data
- encrypted
- preset
- group
- 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
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/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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/602—Providing cryptographic facilities or services
-
- 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/0643—Hash functions, e.g. MD5, SHA, HMAC or f9 MAC
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Theoretical Computer Science (AREA)
- Bioethics (AREA)
- Health & Medical Sciences (AREA)
- General Health & Medical Sciences (AREA)
- Computer Hardware Design (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Power Engineering (AREA)
- Storage Device Security (AREA)
Abstract
本发明实施例提供一种BLK数据加密方法、装置及存储介质,属于计算机技术领域,解决了现有技术中由于明文特征明显,导致穷举密钥成为可能的问题。所述方法包括:利用设定字节的第一预设密钥以及哈希密钥,通过非线性模Q移存器,得到第一组和第二组运算参数变量;将待加密数据转换为设定字节长度的待加密字节;利用第一组运算参数变量、第二组运算参数变量、预设置换表以及预设代替表,对待加密字节进行加密,得到密文;根据待加密数据的字节长度,将密文转换为与字节长度相同长度的密码,其中,第一预设密钥、哈希密钥、第一组运算参数变量、第二组运算参数变量、预设置换表以及预设代替表均为字符型变量。本发明实施例适用于数据加密过程。
Description
技术领域
本发明涉及计算机技术领域,具体地涉及一种BLK(BLOCK CIPHER,分组密钥)数据加密方法、装置及存储介质。
背景技术
在量子时代,数据加密受两个方面的攻击,一是对密钥的攻击,二是对密文的攻击。对于密文的攻击方法一般是通过穷举密钥,进行脱密攻击。由于明文有明显的特征,很容易成为判别条件,使得穷举成为可能。因此,亟需一种脱密的结果不能显示明文特点,不能提供穷举的判别依据的加密方法。
发明内容
本发明实施例的目的是提供一种BLK数据加密方法、装置、设备及存储介质,实现了经加密后不破坏原数据结构,不引起数据扩张的前提下,利用字符型变量对数据进行加密,不提供穷举的判别依据。
为了实现上述目的,本发明实施例提供一种BLK数据加密方法,所述方法包括:利用设定字节的第一预设密钥以及哈希密钥,通过非线性模Q移存器,得到第一组运算参数变量和第二组运算参数变量;将待加密数据转换为所述设定字节长度的待加密字节;利用所述第一组运算参数变量、所述第二组运算参数变量、预设置换表以及预设代替表,对所述待加密字节进行加密,得到所述待加密字节对应的密文;根据所述待加密数据的字节长度,将所述密文转换为与所述字节长度相同长度的密码,得到所述待加密数据经加密后的密码,其中,所述第一预设密钥、哈希密钥、第一组运算参数变量、第二组运算参数变量、预设置换表以及预设代替表均为字符型变量。
进一步地,所述利用设定字节的第一预设密钥以及哈希密钥,通过非线性模Q移存器,得到第一组运算参数变量和第二组运算参数变量包括:将所述第一预设密钥作为所述非线性模Q移存器的第一初值,由所述非线性模Q移存器循环移位,得到所述第一组运算参数变量;利用所述哈希密钥,将所述第一组运算参数变量中的最后一个参数变量经哈希变换,得到所述非线性模Q移存器的第二初值;根据所述第二初值,由所述非线性模Q移存器循环移位,得到所述第二组运算参数变量。
进一步地,所述非线性模Q移存器为8级模256移存器,在循环移位时,所述非线性模Q移存器的第8端的输出值经预设mmm代替表,将代替值与所述非线性模Q移存器的第1端的数值相加后作为反馈到所述非线性模Q移存器的第1级输入端。
进一步地,所述将待加密数据转换为所述设定字节长度的待加密字节包括:判断所述待加密数据的数据长度是否大于所述设定字节长度;当所述待加密数据的数据长度大于所述设定字节长度时,将所述待加密数据划分为所述设定字节长度的待加密字节;当所述待加密数据的数据长度不大于所述设定字节长度时,将所述待加密数据扩展为所述设定字节长度的待加密字节。
进一步地,所述利用所述第一组运算参数变量、所述第二组运算参数变量、预设置换表以及预设代替表,对所述待加密字节进行加密,得到所述待加密字节对应的密文包括:将所述待加密字节与所述第一组运算参数变量中的第一参数变量相加取模运算,得到第一变量;将所述第一变量中的数据左向累加取模运算,得到第二变量;将所述第二变量与所述第一组运算参数变量中的第二参数变量相加取模运算,得到第三变量;根据所述第一组运算参数变量中的第七参数变量,确定所述预设置换表中的置换向量,并根据所述置换向量将所述第三变量转换为第四变量;将所述第四变量与所述第一组运算参数变量中的第三参数变量相加取模运算,得到第五变量;将所述第五变量中的数据右向累加取模运算,得到第六变量;将所述第六变量与所述第一组运算参数变量中的第四参数变量相加取模运算,得到第七变量;将所述第七变量中的数据进行数据集中转换,得到第八变量;将所述第八变量与所述第一组运算参数变量中的第五参数变量相加取模运算,得到第九变量;根据所述第九变量中的数据,确定所述预设代替表中的替代变量,并由所述替代变量确定第十变量;将所述第十变量与所述第一组运算参数变量中的第六参数变量相加取模运算,得到第一组运算结果;将所述第一组运算结果作为第二组运算初始值,根据所述第二组运算参数变量、所述预设置换表以及所述预设代替表,得到所述待加密字节对应的密文。
进一步地,所述根据所述第一组运算参数变量中的第七参数变量,确定所述预设置换表中的置换向量,并根据所述置换向量将所述第三变量转换为第四变量包括:提取所述第一组运算参数变量中的第七参数变量的第一字节;将所述第一字节转换为二进制数值,并根据所述二进制数值的第7和6分位得到所述预设置换表的表号、根据所述二进制数值的第5、4和3分位得到所述表号对应的置换表中的对应列号以及根据所述二进制数值的第2、1和0分位得到所述列号对应的列向量中的置换起点;由所述置换起点得到所述列号对应的列向量重新排列的置换向量;根据所述置换向量,按照从高位到低位的顺序重新排列所述第三变量,得到所述第四变量。
进一步地,所述将所述第七变量中的数据进行数据集中转换,得到第八变量包括:当所述待加密数据的数据长度不大于所述设定字节长度时,将所述第七变量的数据长度集中为与所述待加密数据的数据长度一致,得到第八变量;当所述待加密数据的数据长度等于所述设定字节长度时,将所述第七变量中每一字节的高位与低位互换,得到第八变量。
进一步地,所述根据所述第九变量中的数据,确定所述预设代替表中的替代变量,并由所述替代变量确定第十变量包括:根据所述九变量中的每一字节的数据,确定所述预设代替表中的行号和列号;根据所述行号和列号对应的数据,确定所述第十变量。
进一步地,当所述待加密数据为表格数据中的记录时,所述第一预设密钥为预设表格密钥与记录名之和;当所述待加密数据为表格数据中记录中的字段时,所述第一预设密钥为预设表格密钥与字段名之和;当所述待加密数据为表格数据中记录中字段中的变量时,所述第一预设密钥为预设表格密钥与变量所属记录名、字段名之和。
进一步地,所述方法还包括:当要对待存储文档加密时,将所述待存储文档与预设初态之和作为所述待加密数据。
相应的,本发明实施例还提供一种BLK数据加密装置,所述装置包括:存储模块,用于存储计算机可执行指令;以及控制模块,用于执行所述计算机可执行指令,以执行以下操作:利用设定字节的第一预设密钥以及哈希密钥,通过非线性模Q移存器,得到第一组运算参数变量和第二组运算参数变量;将待加密数据转换为所述设定字节长度的待加密字节;利用所述第一组运算参数变量、所述第二组运算参数变量、预设置换表以及预设代替表,对所述待加密字节进行加密,得到所述待加密字节对应的密文;根据所述待加密数据的字节长度,将所述密文转换为与所述字节长度相同长度的密码,得到所述待加密数据经加密后的密码,其中,所述第一预设密钥、哈希密钥、第一组运算参数变量、第二组运算参数变量、预设置换表以及预设代替表均为字符型变量。
进一步地,所述控制模块还执行所述计算机可执行指令以执行以下操作:将所述第一预设密钥作为所述非线性模Q移存器的第一初值,由所述非线性模Q移存器循环移位,得到所述第一组运算参数变量;利用所述哈希密钥,将所述第一组运算参数变量中的最后一个参数变量经哈希变换,得到所述非线性模Q移存器的第二初值;根据所述第二初值,由所述非线性模Q移存器循环移位,得到所述第二组运算参数变量。
进一步地,所述非线性模Q移存器为8级模256移存器,在循环移位时,所述非线性模Q移存器的第8端的输出值经预设mmm代替表,将代替值与所述非线性模Q移存器的第1端的数值相加后作为反馈到所述非线性模Q移存器的第1级输入端。
进一步地,所述控制模块还执行所述计算机可执行指令以执行以下操作:判断所述待加密数据的数据长度是否大于所述设定字节长度;当所述待加密数据的数据长度大于所述设定字节长度时,将所述待加密数据划分为所述设定字节长度的待加密字节;当所述待加密数据的数据长度不大于所述设定字节长度时,将所述待加密数据扩展为所述设定字节长度的待加密字节。
进一步地,所述控制模块还执行所述计算机可执行指令以执行以下操作:将所述待加密字节与所述第一组运算参数变量中的第一参数变量相加取模运算,得到第一变量;将所述第一变量中的数据左向累加取模运算,得到第二变量;将所述第二变量与所述第一组运算参数变量中的第二参数变量相加取模运算,得到第三变量;根据所述第一组运算参数变量中的第七参数变量,确定所述预设置换表中的置换向量,并根据所述置换向量将所述第三变量转换为第四变量;将所述第四变量与所述第一组运算参数变量中的第三参数变量相加取模运算,得到第五变量;将所述第五变量中的数据右向累加取模运算,得到第六变量;将所述第六变量与所述第一组运算参数变量中的第四参数变量相加取模运算,得到第七变量;将所述第七变量中的数据进行数据集中转换,得到第八变量;将所述第八变量与所述第一组运算参数变量中的第五参数变量相加取模运算,得到第九变量;根据所述第九变量中的数据,确定所述预设代替表中的替代变量,并由所述替代变量确定第十变量;将所述第十变量与所述第一组运算参数变量中的第六参数变量相加取模运算,得到第一组运算结果;将所述第一组运算结果作为第二组运算初始值,根据所述第二组运算参数变量、所述预设置换表以及所述预设代替表,得到所述待加密字节对应的密文。
进一步地,所述控制模块还执行所述计算机可执行指令以执行以下操作:提取所述第一组运算参数变量中的第七参数变量的第一字节;将所述第一字节转换为二进制数值,并根据所述二进制数值的第7和6分位得到所述预设置换表的表号、根据所述二进制数值的第5、4和3分位得到所述表号对应的置换表中的对应列号以及根据所述二进制数值的第2、1和0分位得到所述列号对应的列向量中的置换起点;由所述置换起点得到所述列号对应的列向量重新排列的置换向量;根据所述置换向量,按照从高位到低位的顺序重新排列所述第三变量,得到所述第四变量。
进一步地,所述控制模块还执行所述计算机可执行指令以执行以下操作:当所述待加密数据的数据长度不大于所述设定字节长度时,将所述第七变量的数据长度集中为与所述待加密数据的数据长度一致,得到第八变量;当所述待加密数据的数据长度等于所述设定字节长度时,将所述第七变量中每一字节的高位与低位互换,得到第八变量。
进一步地,所述控制模块还执行所述计算机可执行指令以执行以下操作:根据所述九变量中的每一字节的数据,确定所述预设代替表中的行号和列号;根据所述行号和列号对应的数据,确定所述第十变量。
进一步地,当所述待加密数据为表格数据中的记录时,所述第一预设密钥为预设表格密钥与记录名之和;当所述待加密数据为表格数据中记录中的字段时,所述第一预设密钥为预设表格密钥与字段名之和;当所述待加密数据为表格数据中记录中字段中的变量时,所述第一预设密钥为预设表格密钥与变量所属记录名、字段名之和。
进一步地,所述控制模块还执行所述计算机可执行指令以执行以下操作:当要对待存储文档加密时,将所述待存储文档与预设初态之和作为所述待加密数据。
相应的,本发明实施例还提供一种机器可读存储介质,该机器可读存储介质上存储有指令,该指令用于使得机器执行如上所述的BLK数据加密方法。
通过上述技术方案,利用设定字节的第一预设密钥以及哈希密钥,通过非线性模Q移存器,得到第一组运算参数变量和第二组运算参数变量,并将待加密数据转换为所述设定字节长度的待加密字节,然后利用所述第一组运算参数变量、所述第二组运算参数变量、预设置换表以及预设代替表,对所述待加密字节进行加密,得到所述待加密字节对应的密文,然后根据所述待加密数据的字节长度,将所述密文转换为与所述字节长度相同长度的密码,得到所述待加密数据经加密后的密码。本发明实施例实现了经加密后不破坏原数据结构,不引起数据扩张的前提下,利用字符型变量对数据进行加密,不提供穷举的判别依据。
本发明实施例的其它特征和优点将在随后的具体实施方式部分予以详细说明。
附图说明
附图是用来提供对本发明实施例的进一步理解,并且构成说明书的一部分,与下面的具体实施方式一起用于解释本发明实施例,但并不构成对本发明实施例的限制。在附图中:
图1是本发明实施例提供的一种BLK数据加密方法的流程示意图;
图2是本发明实施例提供的非线性模Q移存器的逻辑关系的示意图;
图3是本发明实施例提供的一种BLK数据加密装置的结构示意图。
具体实施方式
以下结合附图对本发明实施例的具体实施方式进行详细说明。应当理解的是,此处所描述的具体实施方式仅用于说明和解释本发明实施例,并不用于限制本发明实施例。
首先,在实施本发明实施例之前,需要设定预设置换表以及预设代替表。所述预设置换表是指示位置变换关系的表,分正表和反表,正表用于加密,反表用于脱密。正表用disk8e表示,反表用disk8d表示。所述预设置换表共4页,以0…3标记。以disk8e[0]为例,8列对应8个置换轮,每个置换轮有8个起点,不同轮和不同起点构成不同置换关系,如下所示,为本发明实施例提供的4页预设置换表示例:
另外,所述预设代替表sub8e是16x16的单代表,如下所示为本发明实施例中的预设代替表的示例:
预设代替表Subst8e
0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | A | B | C | D | E | F | |
0 | 0B | 9A | 43 | CD | 17 | B4 | 2A | 84 | 77 | FF | 52 | 8E | 70 | 03 | A7 | 34 |
1 | D6 | 3C | 93 | 1D | DD | 4B | C6 | A6 | 42 | 9F | C5 | 11 | B3 | 83 | 5C | 07 |
2 | 82 | F4 | 0A | E3 | 64 | C4 | 16 | 8D | D5 | 25 | CC | 7C | 33 | 29 | 9E | 4D |
3 | 6D | DE | 4A | BE | 81 | 10 | A5 | 6F | 3D | B5 | 6A | 1F | 5B | BD | 12 | 7B |
4 | 9B | AB | 24 | 2B | D7 | B2 | 41 | 92 | EF | 51 | 00 | 89 | D4 | 4C | 99 | 38 |
5 | 18 | FC | 53 | C3 | 3B | 78 | F5 | 06 | 5A | CB | 44 | E2 | 15 | 94 | 2F | 6C |
6 | 49 | B1 | 1E | D3 | 01 | E0 | 57 | 32 | EE | 63 | 9D | 28 | BC | 66 | AA | 56 |
7 | 58 | BA | 80 | 9C | F3 | 37 | E7 | 7D | 1C | D2 | 02 | A2 | 5D | E8 | 20 | DC |
8 | C8 | 6E | FE | 0F | AF | 48 | A1 | 88 | 50 | 76 | F0 | 71 | B7 | 0C | ED | 62 |
9 | 05 | 2C | 91 | E6 | 69 | FD | 79 | 13 | 8F | A9 | 39 | 40 | 95 | 75 | A8 | 3F |
A | 8C | F6 | 59 | BB | CA | 23 | AD | 65 | D8 | 08 | C7 | AE | 1B | F9 | 47 | 8B |
B | 36 | 14 | D1 | 87 | 26 | E1 | 72 | BF | 45 | B6 | 6B | CE | 7A | 2D | DB | 67 |
C | DF | 60 | A0 | 68 | E9 | 7E | 0E | B8 | 4E | E4 | 5E | 21 | F2 | 54 | 8A | C1 |
D | 4F | C9 | AC | 09 | D9 | 5F | EC | 97 | F7 | 1A | A3 | EA | 55 | FB | 96 | 30 |
E | 27 | C2 | 73 | B9 | 46 | F8 | 31 | E5 | 3A | CF | F1 | 2E | DA | 85 | 0D | EB |
F | 74 | B0 | 19 | 90 | A4 | 04 | D0 | 35 | FA | 22 | C0 | 7F | 3E | 98 | 61 | 86 |
在下面的实施例中将详细描述上述预设置换表以及预设代替表的使用方法。
图1是本发明实施例提供的一种BLK数据加密方法的流程示意图。如图1所示,所述方法包括如下步骤:
步骤101,利用设定字节的第一预设密钥以及哈希密钥,通过非线性模Q移存器,得到第一组运算参数变量和第二组运算参数变量;
步骤102,将待加密数据转换为所述设定字节长度的待加密字节;
步骤103,利用所述第一组运算参数变量、所述第二组运算参数变量、预设置换表以及预设代替表,对所述待加密字节进行加密,得到所述待加密字节对应的密文;
步骤104,根据所述待加密数据的字节长度,将所述密文转换为与所述字节长度相同长度的密码,得到所述待加密数据经加密后的密码,
其中,所述第一预设密钥、哈希密钥、第一组运算参数变量、第二组运算参数变量、预设置换表以及预设代替表均为字符型变量。
其中,在进行加密之前,在步骤101中,需要将所述第一预设密钥作为所述非线性模Q移存器的第一初值,由所述非线性模Q移存器循环移位,得到所述第一组运算参数变量。然后,利用所述哈希密钥,将所述第一组运算参数变量中的最后一个参数变量经哈希变换,得到所述非线性模Q移存器的第二初值,并根据所述第二初值,由所述非线性模Q移存器循环移位,得到所述第二组运算参数变量。
其中,在本发明实施例中所述非线性模Q移存器为8级模256移存器,在循环移位时,所述非线性模Q移存器的第8端的输出值经预设mmm代替表,将代替值与所述非线性模Q移存器的第1端的数值相加后作为反馈到所述非线性模Q移存器的第1级输入端。如图2所示,为所述非线性模Q移存器的逻辑关系,所述预设mmm代替表是16*16的单代表,如下表1所示的示例,用于密钥变量的派生,其中所述非线性模Q移存器的第1级输入端=(mmm(第8端输出)+第1端输出)mod 28。
表1
0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | A | B | C | D | E | F | |
0 | CC | 87 | F0 | 75 | BC | 1F | F8 | 52 | 00 | 3A | 8E | 57 | AC | 6E | F5 | 23 |
1 | 17 | 2B | 89 | D5 | 12 | FC | A3 | EF | 67 | 94 | 5C | C7 | 9E | DF | 56 | DA |
2 | C2 | FF | 47 | 83 | E6 | 2C | 39 | 02 | AD | 1E | E4 | 07 | 51 | 1D | A6 | 0A |
3 | 3B | A8 | 11 | 20 | 62 | CB | B3 | B5 | 22 | D2 | 2A | EE | D8 | F4 | 9F | 86 |
4 | FB | 63 | AE | 58 | FE | 10 | 7E | 35 | E5 | 4F | 7F | 55 | 5B | 8D | 4B | 7A |
5 | 90 | E1 | 53 | E0 | 95 | 48 | 4E | 66 | 31 | F6 | C8 | 6D | 06 | 3E | C6 | BF |
6 | 46 | 04 | F7 | 38 | 01 | C0 | 0B | A1 | 8F | 0F | 43 | 85 | AB | F9 | 68 | 93 |
7 | A2 | AF | 73 | DB | 6F | 16 | 9A | 6C | 72 | A7 | D1 | 1B | 65 | 1C | 79 | 3F |
8 | 21 | 33 | 0C | 45 | B8 | 5D | 76 | 29 | BB | 2E | 61 | DE | 99 | B6 | 5F | E3 |
9 | 9B | 82 | 7B | E7 | 27 | 54 | 9D | DD | 81 | E9 | E2 | 78 | BD | 37 | ED | 30 |
A | 74 | 59 | D4 | 32 | 8B | BA | 0D | 26 | 13 | 7D | 05 | C5 | 15 | 71 | B2 | CF |
B | 34 | E8 | 18 | C1 | F1 | 40 | 92 | AA | 8A | C9 | B1 | 44 | A5 | EC | 24 | 69 |
C | 88 | 28 | CD | 03 | 6A | 64 | D7 | 42 | FA | 5E | 3D | F2 | 8C | 08 | D9 | B7 |
D | 6B | D6 | 3C | CA | DC | FD | 2D | EA | 19 | 96 | CE | 14 | 25 | D0 | 80 | 4A |
E | B9 | A9 | C3 | 7C | A4 | 4C | B0 | 84 | C4 | 77 | EB | A0 | D3 | 49 | BE | 98 |
F | 41 | 9C | 4D | B4 | 1A | 91 | 70 | 0E | 5A | F3 | 36 | 50 | 2F | 97 | 60 | 09 |
其中,所述8字节的第一预设密钥为随机设定的加密密钥,将所述第一预设密钥作为所述非线性模Q移存器的第一初值,所述非线性模Q移存器循环移位,每移一次产生一个状态,分别记为keyb[0],…,keyb[7],作为所述第一组运算参数变量。然后,利用所述哈希密钥,将keyb[7]经哈希变换再作所述非线性模Q移存器的第二初值,每一移位产生一个状态,分别记为keyc[0],…,keyc[7],作为所述第二组运算参数变量,如下所述示例:
所述第一组运算参数变量:
所述第二组运算参数变量:
之后,提取待加密数据,由于本发明实施例中的加密操作均是以设定字节长度执行,例如8字节,因此所述待加密数据均需转换为所述设定字节长度的待加密字节。首先,判断所述待加密数据的数据长度是否大于所述设定字节长度。当所述待加密数据的数据长度大于所述设定字节长度时,将所述待加密数据划分为所述设定字节长度的待加密字节,例如,当所述待加密数据的数据长度为13字节,而设定字节长度为8字节,则将待加密数据划分为8字节和5字节,两个分组加密作业,对于该5字节的加密作业可参考所述待加密数据的数据长度不大于所述设定字节长度时的加密操作。当所述待加密数据的数据长度不大于所述设定字节长度时,将所述待加密数据扩展为所述设定字节长度的待加密字节,例如,所述设定字节长度为8字节,在对1字节的待加密数据加密时,将1字节(每个字节8bit)扩展为8字节(每个字节1bit);在对2字节的待加密数据加密时,将2字节(一共16bit)扩展为8字节(每个字节2bit);以此类推,当7字节的待加密数据加密时,将7字节(一共56bit)扩展为8字节(每个字节7bit)。
在本发明实施例中,以5字节待加密数据为例进行描述,其中将5字节待加密数据data扩展为8字节的待加密字节dd,如下所示:
data:05 04 03 02 01
dd:00 14 02 00 06 00 10 01
其中,5字节中的每个字节用8bit表示,以data中的“01”为例,变换为8bit之后,就是“00000001”,在由5字节扩展为8字节时,每字节为5bit,也就是5个bit为一字节即“00001”,所以从右到左,由十六进制的“05 04 03 02 01”转换为二进制的字节一共40bit后,再从右到左每5bit划分为一个字节,转换为十六进制就得到“00 14 02 00 06 00 1001”。
然后,在步骤103中,利用所述第一组运算参数变量、所述第二组运算参数变量、预设置换表以及预设代替表,对所述待加密字节进行加密,得到所述待加密字节对应的密文。
具体的,还是以上述5字节的待加密数据转换为8字节的待加密字节dd:00 14 0200 06 00 10 01为例。
1)将所述待加密字节与所述第一组运算参数变量中的第一参数变量相加取模运算,得到第一变量,也就是将数据dd:00 14 02 00 06 00 10 01与第一参数变量Keyb[0]:41 ce dd 92 9b 17 24 90对应字节位相加取模运算,即第一变量ee1=(dd+Keyb[0])mod25。
由于在本发明实施例中以5字节的待加密数据为例,因此,在取模运算时,模2的次方数为待加密数据的字节数,若是待加密数据被分为多组,则模2的次方数为划分后的实际字节长度。在步骤103中的取模运算均采取上述方式。
根据dd:00 14 02 00 06 00 10 01与
Keyb[0]:41 ce dd 92 9b 17 24 90,
得到ee1:01 02 1f 12 01 17 14 11。
2)将所述第一变量中的数据左向累加取模运算,得到第二变量。由于左向累加,因此从所述第一变量的第7位数据开始处理,从右向左累加取模运算后得到第二变量:
ee2[7]=ee1[7];
ee2[j]=(ee2[j+1]+ee1[j])mod 25,其中j=6,5,4,…,0
即根据ee1:01 02 1f 12 01 17 14 11,
得到ee2:11 10 0e 0f 1d 1c 05 11。
3)将所述第二变量与所述第一组运算参数变量中的第二参数变量相加取模运算,得到第三变量,也就是将数据ee2与第二参数变量Keyb[1]对应字节位相加取模运算,即第三变量ee3=(ee2+Keyb[1])mod 25。
根据ee2:11 10 0e 0f 1d 1c 05 11与
Keyb[1]:e6 97d2 bf e6 ea f7 ea,
得到ee3:17 07 00 0e 03 06 1c 1b。
4)根据所述第一组运算参数变量中的第七参数变量,确定所述预设置换表中的置换向量,并根据所述置换向量将所述第三变量转换为第四变量。
具体的,提取所述第一组运算参数变量中的第七参数变量的第一字节,即Keyb[6]:d9 d9 6e 7f 13 57 89 29中的第一字节为d9。然后,将所述第一字节转换为二进制数值,并根据所述二进制数值的第7和6分位得到所述预设置换表的表号、根据所述二进制数值的第5、4和3分位得到所述表号对应的置换表中的对应列号以及根据所述二进制数值的第2、1和0分位得到所述列号对应的列向量中的置换起点。也就是说,将d9转换为二进制为“11 011 001”,对应的第7和6分位为“11”,第5、4和3分位为“011”,对应的第2、1和0分位为“001”,从而得到对应的所述预设置换表的表号为“11”转换为十进制为“3”,列号“011”转换为十进制为“3”,对应的置换起点为“001”转换为十进制为“1”,从而由所述置换起点得到所述列号对应的列向量重新排列的置换向量,即表3中的3轮(列号为3),行号为1的数值为置换起点的置换向量。从disk8e[3]表中,3列的向量为“7 3 0 4 1 5 6 2”,行号为1的数值是“3”,因此,从“3”开始的置换向量为“3 0 4 1 5 6 2 7”,按照由左向右输入,则输入的置换向量为“7 2 6 5 1 4 0 3”。然后,根据所述置换向量,按照从高位到低位的顺序重新排列所述第三变量,得到所述第四变量,如下所示:
ee3:17 07 00 0e 03 06 1c 1b
ee4:17 00 0e 06 1b 07 03 1c
5)将所述第四变量与所述第一组运算参数变量中的第三参数变量相加取模运算,得到第五变量,也就是将数据ee4与第三参数变量Keyb[2]对应字节位相加取模运算,即第五变量ee5=(ee4+Keyb[2])mod 25。
根据ee4:17 00 0e 06 1b 07 03 1c与
Keyb[2]:f6 c4 d9 d4 e2 73 f9 33,
得到ee5:0d 04 07 1a 1d 1a 1c 0f。
6)将所述第五变量中的数据右向累加取模运算,得到第六变量。由于右向累加,因此从所述第五变量的第0位数据开始处理,从左向右累加取模运算后得到第六变量:
ee6[0]=ee5[0];
ee6[j]=(ee6[j-1]+ee5[j])mod 25,其中j=1,2,3,…,7
即根据ee5:0d 04 07 1a 1d 1a 1c 0f,
得到ee6:0d 11 18 12 0f 09 05 14。
7)将所述第六变量与所述第一组运算参数变量中的第四参数变量相加取模运算,得到第七变量,也就是将数据ee6与第四参数变量Keyb[3]对应字节位相加取模运算,即第三变量ee7=(ee6+Keyb[3])mod 25。
根据ee6:0d 11 18 12 0f 09 05 14与
Keyb[3]:02 18 c3 a8 6b 8a 4a 4b,
得到ee7:0f 09 1b 1a 1a 13 0f 1f。
8)将所述第七变量中的数据进行数据集中转换,得到第八变量。
具体的,当所述待加密数据的数据长度不大于所述设定字节长度时,将所述第七变量的数据长度集中为与所述待加密数据的数据长度一致,得到第八变量,即所述第八变量的字节长度与所述待加密数据的数据长度一致,例如,当所述待加密数据的数据长度为5字节时,则将所述第七变量转换为5字节的第八变量。当所述待加密数据的数据长度等于所述设定字节长度时,将所述第七变量中每一字节的高位与低位互换,得到第八变量。例如,当所述设定字节长度为8字节时,将所述第七变量中的每一字节在的高4位与低4位互换,从而得到第八变量。在本发明实施例中,待加密数据为5字节,因此,将第七变量转换为5字节的第八变量,如下示例:
根据ee7:0f 09 1b 1a 1a 13 0f 1f,
得到ee8:7a 77 ad 4d ff。
9)将所述第八变量与所述第一组运算参数变量中的第五参数变量相加取模运算,得到第九变量,也就是将数据ee8与第五参数变量Keyb[4]对应字节位相加取模运算,即第九变量ee9=(ee8+Keyb[4])mod 25。其中,由于第八变量为5字节,因此,仅将所述第五参数变量中的前5个字节与所述第八变量的5个字节对应的字节位相加取模运算即可。
根据ee8:7a 77 ad 4d ff,
与Keyb[4]:5b c4 28 2b 34 f3 22 d7,
得到ee9:15 1b 15 18 13。10)根据所述第九变量中的数据,确定所述预设代替表中的替代变量,并由所述替代变量确定第十变量。
具体的,根据所述九变量中的每一字节的数据,确定所述预设代替表中的行号和列号,并根据所述行号和列号对应的数据,确定所述第十变量。例如,ee9:15 1b 15 18 13,其每一字节的数据分别为“15”、“1b”、“15”、“18”、“13”。以第一字节的数据“15”为例,就是查找所述预设代替表中1行5列的数据,为“4B”,以此类推,得到第十变量为ee10:4b 11 4b42 1d。
11)将所述第十变量与所述第一组运算参数变量中的第六参数变量相加取模运算,得到第一组运算结果,也就是将第六参数变量Keyb[5]中的前5个字节与数据ee10中的5个字节对应字节位相加取模运算,即第一组运算结果dd1=(ee10+Keyb[5])mod 25。
根据ee10:4b 11 4b 42 1d,
与Keyb[5]:94 67 2a 39 8f a4 95 aa,
得到dd1:1f 18 15 1b 0c。
然后,将所述第一组运算结果作为第二组运算初始值,根据所述第二组运算参数变量、所述预设置换表以及所述预设代替表,得到所述待加密字节对应的密文。即将从步骤1)-11)中的Keyb替换为Keyc,再重复上面的步骤1)-11),最终步骤11)的结果为所述待加密字节对应的密文,也就是说,分别在步骤1)中利用Keyc[0]、步骤3)中利用Keyc[1]、步骤4)中利用Keyc[6]、步骤5)中利用Keyc[2]、步骤7)中利用Keyc[3]、步骤9)中利用Keyc[4]、步骤11)中利用Keyc[5],并在步骤2)执行相应的左向累加、在步骤6)中执行相应的右向累加、在步骤8)中进行数据集中转换、在步骤10)中利用替换变量进行替换,最终在步骤11)中得到最后的密文。
通过上述步骤,得到了待加密字节对应的密文,由于加密后的密文的数据长度与加密之前的数据长度相同,如上述示例所述,均为5字节,因此,没有破坏原数据结构。若是原有的待加密数据是属于其数据长度大于所述设定字节长度,则所述待加密数据是被划分为所述设定字节长度的待加密字节进行加密的,因此,将加密后的多组密文组合后,即为与待加密数据对应的加密后的密码。例如,原有待加密数据的数据长度为13字节,被划分为8字节的待加密字节和5字节的待加密字节,在经过上述步骤所述的加密操作之后,得到的密文的长度仍分别是8字节与5字节,则将上述8字节密文与5字节密文组合之后,得到的密码仍为13字节,与原数据长度相同,没有引起数据扩张。
另外,加密后的密文为字符型,如果需要汉字加密后仍保持汉字类型,或数字加密后仍需要保持数字类型,若是要保留符号位,则8比特字节变为7比特字节,进行7字节作业,经加密后恢复符号位,就可以做到加密前的类型和加密后的类型保持一致,没有显示明文的特点,实现了不提供穷举的判别依据。
在利用BLK进行数据加密时,存在块型加密和串型加密。
块型加密一般适用于表格加密,表格由记录构成,而每一记录包括几个字段,每个字段包括多个变量,当对表格数据中的记录进行加密时,则所述第一预设密钥为预设表格密钥与记录名之和,即记录密钥=表格密钥+记录名;当对记录中的字段进行加密时,则所述第一预设密钥为预设表格密钥与字段名之和,即字段密钥=表格密钥+字段名;当对字段中的变量进行加密时,则所述第一预设密钥为预设表格密钥与变量所属记录名、字段名之和,即变量密钥=表格密钥+记录名+字段名。
串型加密一般适用于字段很长的文档,例如对待存储文档进行加密时,密钥变量除了第一预设密钥与哈希密钥之外,还包括预设初态,将待存储文档与所述预设初态之和作为待加密数据进行处理。例如,明文plain加密之前,明文与预设初态initial相加,得到待加密数据deform,即plain+initial=deform,然后对待加密数据deform进行加密。
可选的,当存储文件时,对存储文件加密后,需要对加密所使用的密钥key(包括第一预设密钥以及哈希密钥、预设初态)进行加密,则设置启动口令pw1与开机口令pw,且启动口令在开机口令下加密保存Epw(pw1)=codpw1,利用哈希密钥分别对开机口令pw和启动口令pw1进行哈希变换Hashkey(pw)=r0,Hashkey(pw1)=r1,然后r1*r0*G=R3,r2*G=R2。
将密钥key利用R3进行加密:ER3(key)=code。
然后,对于加密后的密文cipher与密钥的存放形式为{cipher,R2,code}。
其中,E为加密函数。
对于脱密作业,在获取启动指令pw1与哈希密钥时,从而得到r1,由R3=r1*R2,利用R3得到密钥DR3(code)=key,知道密钥key即可对密文进行脱密。其中,D为脱密函数。
相应地,图3是本发明实施例提供的一种BLK数据加密装置的结构示意图。如图3所示,所述装置包括存储模块31,用于存储计算机可执行指令;以及控制模块32,用于执行所述计算机可执行指令,以执行以下操作:
利用设定字节的第一预设密钥以及哈希密钥,通过非线性模Q移存器,得到第一组运算参数变量和第二组运算参数变量;
将待加密数据转换为所述设定字节长度的待加密字节;
利用所述第一组运算参数变量、所述第二组运算参数变量、预设置换表以及预设代替表,对所述待加密字节进行加密,得到所述待加密字节对应的密文;
根据所述待加密数据的字节长度,将所述密文转换为与所述字节长度相同长度的密码,得到所述待加密数据经加密后的密码,
其中,所述第一预设密钥、哈希密钥、第一组运算参数变量、第二组运算参数变量、预设置换表以及预设代替表均为字符型变量。
进一步地,所述控制模块还执行所述计算机可执行指令以执行以下操作:将所述第一预设密钥作为所述非线性模Q移存器的第一初值,由所述非线性模Q移存器循环移位,得到所述第一组运算参数变量;利用所述哈希密钥,将所述第一组运算参数变量中的最后一个参数变量经哈希变换,得到所述非线性模Q移存器的第二初值;根据所述第二初值,由所述非线性模Q移存器循环移位,得到所述第二组运算参数变量。
进一步地,所述非线性模Q移存器为8级模256移存器,在循环移位时,所述非线性模Q移存器的第8端的输出值经预设mmm代替表,将代替值与所述非线性模Q移存器的第1端的数值相加后作为反馈到所述非线性模Q移存器的第1级输入端。
进一步地,所述控制模块还执行所述计算机可执行指令以执行以下操作:判断所述待加密数据的数据长度是否大于所述设定字节长度;当所述待加密数据的数据长度大于所述设定字节长度时,将所述待加密数据划分为所述设定字节长度的待加密字节;当所述待加密数据的数据长度不大于所述设定字节长度时,将所述待加密数据扩展为所述设定字节长度的待加密字节。
进一步地,所述控制模块还执行所述计算机可执行指令以执行以下操作:将所述待加密字节与所述第一组运算参数变量中的第一参数变量相加取模运算,得到第一变量;将所述第一变量中的数据左向累加取模运算,得到第二变量;将所述第二变量与所述第一组运算参数变量中的第二参数变量相加取模运算,得到第三变量;根据所述第一组运算参数变量中的第七参数变量,确定所述预设置换表中的置换向量,并根据所述置换向量将所述第三变量转换为第四变量;将所述第四变量与所述第一组运算参数变量中的第三参数变量相加取模运算,得到第五变量;将所述第五变量中的数据右向累加取模运算,得到第六变量;将所述第六变量与所述第一组运算参数变量中的第四参数变量相加取模运算,得到第七变量;将所述第七变量中的数据进行数据集中转换,得到第八变量;将所述第八变量与所述第一组运算参数变量中的第五参数变量相加取模运算,得到第九变量;根据所述第九变量中的数据,确定所述预设代替表中的替代变量,并由所述替代变量确定第十变量;将所述第十变量与所述第一组运算参数变量中的第六参数变量相加取模运算,得到第一组运算结果;将所述第一组运算结果作为第二组运算初始值,根据所述第二组运算参数变量、所述预设置换表以及所述预设代替表,得到所述待加密字节对应的密文。
进一步地,所述控制模块还执行所述计算机可执行指令以执行以下操作:提取所述第一组运算参数变量中的第七参数变量的第一字节;将所述第一字节转换为二进制数值,并根据所述二进制数值的第7和6分位得到所述预设置换表的表号、根据所述二进制数值的第5、4和3分位得到所述表号对应的置换表中的对应列号以及根据所述二进制数值的第2、1和0分位得到所述列号对应的列向量中的置换起点;由所述置换起点得到所述列号对应的列向量重新排列的置换向量;根据所述置换向量,按照从高位到低位的顺序重新排列所述第三变量,得到所述第四变量。
进一步地,所述控制模块还执行所述计算机可执行指令以执行以下操作:当所述待加密数据的数据长度不大于所述设定字节长度时,将所述第七变量的数据长度集中为与所述待加密数据的数据长度一致,得到第八变量;当所述待加密数据的数据长度等于所述设定字节长度时,将所述第七变量中每一字节的高位与低位互换,得到第八变量。
进一步地,所述控制模块还执行所述计算机可执行指令以执行以下操作:根据所述九变量中的每一字节的数据,确定所述预设代替表中的行号和列号;根据所述行号和列号对应的数据,确定所述第十变量。
进一步地,当所述待加密数据为表格数据中的记录时,所述第一预设密钥为预设表格密钥与记录名之和;当所述待加密数据为表格数据中记录中的字段时,所述第一预设密钥为预设表格密钥与字段名之和;当所述待加密数据为表格数据中记录中字段中的变量时,所述第一预设密钥为预设表格密钥与变量所属记录名、字段名之和。
进一步地,所述控制模块还执行所述计算机可执行指令以执行以下操作:当要对待存储文档加密时,将所述待存储文档与预设初态之和作为所述待加密数据。
需要说明的是,本装置的操作过程,与上述BLK数据加密方法的步骤相一致,故相关实施细节及效果可参考上述BLK数据加密方法,在此则不再赘述。
相应的,本发明实施例还提供一种机器可读存储介质,该机器可读存储介质上存储有指令,该指令用于使得机器执行如上所述的BLK数据加密方法。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。存储器是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括要素的过程、方法、商品或者设备中还存在另外的相同要素。
以上仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。
Claims (19)
1.一种分组密钥BLK数据加密方法,其特征在于,所述方法包括:
利用设定字节的第一预设密钥以及哈希密钥,通过非线性模Q移存器,得到第一组运算参数变量和第二组运算参数变量;
将待加密数据转换为所述设定字节长度的待加密字节;
利用所述第一组运算参数变量、所述第二组运算参数变量、预设置换表以及预设代替表,对所述待加密字节进行加密,得到所述待加密字节对应的密文;
根据所述待加密数据的字节长度,将所述密文转换为与所述字节长度相同长度的密码,得到所述待加密数据经加密后的密码,
其中,所述第一预设密钥、哈希密钥、第一组运算参数变量、第二组运算参数变量、预设置换表以及预设代替表均为字符型变量;
所述将待加密数据转换为所述设定字节长度的待加密字节包括:
判断所述待加密数据的数据长度是否大于所述设定字节长度;
当所述待加密数据的数据长度大于所述设定字节长度时,将所述待加密数据划分为所述设定字节长度的待加密字节;
当所述待加密数据的数据长度不大于所述设定字节长度时,将所述待加密数据扩展为所述设定字节长度的待加密字节。
2.根据权利要求1所述的BLK数据加密方法,其特征在于,所述利用设定字节的第一预设密钥以及哈希密钥,通过非线性模Q移存器,得到第一组运算参数变量和第二组运算参数变量包括:
将所述第一预设密钥作为所述非线性模Q移存器的第一初值,由所述非线性模Q移存器循环移位,得到所述第一组运算参数变量;
利用所述哈希密钥,将所述第一组运算参数变量中的最后一个参数变量经哈希变换,得到所述非线性模Q移存器的第二初值;
根据所述第二初值,由所述非线性模Q移存器循环移位,得到所述第二组运算参数变量。
3.根据权利要求2所述的BLK数据加密方法,其特征在于,所述非线性模Q移存器为8级模256移存器,在循环移位时,所述非线性模Q移存器的第8端的输出值经预设mmm代替表,将代替值与所述非线性模Q移存器的第1端的数值相加后作为反馈到所述非线性模Q移存器的第1级输入端。
4.根据权利要求1所述的BLK数据加密方法,其特征在于,所述利用所述第一组运算参数变量、所述第二组运算参数变量、预设置换表以及预设代替表,对所述待加密字节进行加密,得到所述待加密字节对应的密文包括:
将所述待加密字节与所述第一组运算参数变量中的第一参数变量相加取模运算,得到第一变量;
将所述第一变量中的数据左向累加取模运算,得到第二变量;
将所述第二变量与所述第一组运算参数变量中的第二参数变量相加取模运算,得到第三变量;
根据所述第一组运算参数变量中的第七参数变量,确定所述预设置换表中的置换向量,并根据所述置换向量将所述第三变量转换为第四变量;
将所述第四变量与所述第一组运算参数变量中的第三参数变量相加取模运算,得到第五变量;
将所述第五变量中的数据右向累加取模运算,得到第六变量;
将所述第六变量与所述第一组运算参数变量中的第四参数变量相加取模运算,得到第七变量;
将所述第七变量中的数据进行数据集中转换,得到第八变量;
将所述第八变量与所述第一组运算参数变量中的第五参数变量相加取模运算,得到第九变量;
根据所述第九变量中的数据,确定所述预设代替表中的替代变量,并由所述替代变量确定第十变量;
将所述第十变量与所述第一组运算参数变量中的第六参数变量相加取模运算,得到第一组运算结果;
将所述第一组运算结果作为第二组运算初始值,根据所述第二组运算参数变量、所述预设置换表以及所述预设代替表,得到所述待加密字节对应的密文。
5.根据权利要求4所述的BLK数据加密方法,其特征在于,所述根据所述第一组运算参数变量中的第七参数变量,确定所述预设置换表中的置换向量,并根据所述置换向量将所述第三变量转换为第四变量包括:
提取所述第一组运算参数变量中的第七参数变量的第一字节;
将所述第一字节转换为二进制数值,并根据所述二进制数值的第7和6分位得到所述预设置换表的表号、根据所述二进制数值的第5、4和3分位得到所述表号对应的置换表中的对应列号以及根据所述二进制数值的第2、1和0分位得到所述列号对应的列向量中的置换起点;
由所述置换起点得到所述列号对应的列向量重新排列的置换向量;
根据所述置换向量,按照从高位到低位的顺序重新排列所述第三变量,得到所述第四变量。
6.根据权利要求4所述的BLK数据加密方法,其特征在于,所述将所述第七变量中的数据进行数据集中转换,得到第八变量包括:
当所述待加密数据的数据长度不大于所述设定字节长度时,将所述第七变量的数据长度集中为与所述待加密数据的数据长度一致,得到第八变量;
当所述待加密数据的数据长度等于所述设定字节长度时,将所述第七变量中每一字节的高位与低位互换,得到第八变量。
7.根据权利要求4所述的BLK数据加密方法,其特征在于,所述根据所述第九变量中的数据,确定所述预设代替表中的替代变量,并由所述替代变量确定第十变量包括:
根据所述九变量中的每一字节的数据,确定所述预设代替表中的行号和列号;
根据所述行号和列号对应的数据,确定所述第十变量。
8.根据权利要求1所述的BLK数据加密方法,其特征在于,
当所述待加密数据为表格数据中的记录时,所述第一预设密钥为预设表格密钥与记录名之和;
当所述待加密数据为表格数据中记录中的字段时,所述第一预设密钥为预设表格密钥与字段名之和;
当所述待加密数据为表格数据中记录中字段中的变量时,所述第一预设密钥为预设表格密钥与变量所属记录名、字段名之和。
9.根据权利要求1所述的BLK数据加密方法,其特征在于,所述方法还包括:
当要对待存储文档加密时,将所述待存储文档与预设初态之和作为所述待加密数据。
10.一种分组密钥BLK数据加密装置,其特征在于,所述装置包括:
存储模块,用于存储计算机可执行指令;以及
控制模块,用于执行所述计算机可执行指令,以执行以下操作:
利用设定字节的第一预设密钥以及哈希密钥,通过非线性模Q移存器,得到第一组运算参数变量和第二组运算参数变量;
将待加密数据转换为所述设定字节长度的待加密字节;
利用所述第一组运算参数变量、所述第二组运算参数变量、预设置换表以及预设代替表,对所述待加密字节进行加密,得到所述待加密字节对应的密文;
根据所述待加密数据的字节长度,将所述密文转换为与所述字节长度相同长度的密码,得到所述待加密数据经加密后的密码,
其中,所述第一预设密钥、哈希密钥、第一组运算参数变量、第二组运算参数变量、预设置换表以及预设代替表均为字符型变量;
所述控制模块还执行所述计算机可执行指令以执行以下操作:
判断所述待加密数据的数据长度是否大于所述设定字节长度;
当所述待加密数据的数据长度大于所述设定字节长度时,将所述待加密数据划分为所述设定字节长度的待加密字节;
当所述待加密数据的数据长度不大于所述设定字节长度时,将所述待加密数据扩展为所述设定字节长度的待加密字节。
11.根据权利要求10所述的BLK数据加密装置,其特征在于,所述控制模块还执行所述计算机可执行指令以执行以下操作:
将所述第一预设密钥作为所述非线性模Q移存器的第一初值,由所述非线性模Q移存器循环移位,得到所述第一组运算参数变量;
利用所述哈希密钥,将所述第一组运算参数变量中的最后一个参数变量经哈希变换,得到所述非线性模Q移存器的第二初值;
根据所述第二初值,由所述非线性模Q移存器循环移位,得到所述第二组运算参数变量。
12.根据权利要求11所述的BLK数据加密装置,其特征在于,所述非线性模Q移存器为8级模256移存器,在循环移位时,所述非线性模Q移存器的第8端的输出值经预设mmm代替表,将代替值与所述非线性模Q移存器的第1端的数值相加后作为反馈到所述非线性模Q移存器的第1级输入端。
13.根据权利要求10所述的BLK数据加密装置,其特征在于,所述控制模块还执行所述计算机可执行指令以执行以下操作:
将所述待加密字节与所述第一组运算参数变量中的第一参数变量相加取模运算,得到第一变量;
将所述第一变量中的数据左向累加取模运算,得到第二变量;
将所述第二变量与所述第一组运算参数变量中的第二参数变量相加取模运算,得到第三变量;
根据所述第一组运算参数变量中的第七参数变量,确定所述预设置换表中的置换向量,并根据所述置换向量将所述第三变量转换为第四变量;
将所述第四变量与所述第一组运算参数变量中的第三参数变量相加取模运算,得到第五变量;
将所述第五变量中的数据右向累加取模运算,得到第六变量;
将所述第六变量与所述第一组运算参数变量中的第四参数变量相加取模运算,得到第七变量;
将所述第七变量中的数据进行数据集中转换,得到第八变量;
将所述第八变量与所述第一组运算参数变量中的第五参数变量相加取模运算,得到第九变量;
根据所述第九变量中的数据,确定所述预设代替表中的替代变量,并由所述替代变量确定第十变量;
将所述第十变量与所述第一组运算参数变量中的第六参数变量相加取模运算,得到第一组运算结果;
将所述第一组运算结果作为第二组运算初始值,根据所述第二组运算参数变量、所述预设置换表以及所述预设代替表,得到所述待加密字节对应的密文。
14.根据权利要求13所述的BLK数据加密装置,其特征在于,所述控制模块还执行所述计算机可执行指令以执行以下操作:
提取所述第一组运算参数变量中的第七参数变量的第一字节;
将所述第一字节转换为二进制数值,并根据所述二进制数值的第7和6分位得到所述预设置换表的表号、根据所述二进制数值的第5、4和3分位得到所述表号对应的置换表中的对应列号以及根据所述二进制数值的第2、1和0分位得到所述列号对应的列向量中的置换起点;
由所述置换起点得到所述列号对应的列向量重新排列的置换向量;
根据所述置换向量,按照从高位到低位的顺序重新排列所述第三变量,得到所述第四变量。
15.根据权利要求13所述的BLK数据加密装置,其特征在于,所述控制模块还执行所述计算机可执行指令以执行以下操作:
当所述待加密数据的数据长度不大于所述设定字节长度时,将所述第七变量的数据长度集中为与所述待加密数据的数据长度一致,得到第八变量;
当所述待加密数据的数据长度等于所述设定字节长度时,将所述第七变量中每一字节的高位与低位互换,得到第八变量。
16.根据权利要求13所述的BLK数据加密装置,其特征在于,所述控制模块还执行所述计算机可执行指令以执行以下操作:
根据所述九变量中的每一字节的数据,确定所述预设代替表中的行号和列号;
根据所述行号和列号对应的数据,确定所述第十变量。
17.根据权利要求10所述的BLK数据加密装置,其特征在于,
当所述待加密数据为表格数据中的记录时,所述第一预设密钥为预设表格密钥与记录名之和;
当所述待加密数据为表格数据中记录中的字段时,所述第一预设密钥为预设表格密钥与字段名之和;
当所述待加密数据为表格数据中记录中字段中的变量时,所述第一预设密钥为预设表格密钥与变量所属记录名、字段名之和。
18.根据权利要求10所述的BLK数据加密装置,其特征在于,所述控制模块还执行所述计算机可执行指令以执行以下操作:
当要对待存储文档加密时,将所述待存储文档与预设初态之和作为所述待加密数据。
19.一种机器可读存储介质,该机器可读存储介质上存储有指令,该指令用于使得机器执行上述权利要求1-9任一项所述的BLK数据加密方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010513987.2A CN111669269B (zh) | 2020-06-08 | 2020-06-08 | Blk数据加密方法、装置及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010513987.2A CN111669269B (zh) | 2020-06-08 | 2020-06-08 | Blk数据加密方法、装置及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111669269A CN111669269A (zh) | 2020-09-15 |
CN111669269B true CN111669269B (zh) | 2023-08-15 |
Family
ID=72385772
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010513987.2A Active CN111669269B (zh) | 2020-06-08 | 2020-06-08 | Blk数据加密方法、装置及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111669269B (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2005027358A (ja) * | 2000-03-09 | 2005-01-27 | Hitachi Ltd | 共通鍵暗号方法及び装置 |
CN101571873A (zh) * | 2009-06-16 | 2009-11-04 | 北京易恒信认证科技有限公司 | 一种数据库数据加密系统和方法 |
CN101848078A (zh) * | 2010-04-30 | 2010-09-29 | 中国科学院软件研究所 | 一种密钥流序列扰动方法及加密方法 |
CN104380245A (zh) * | 2013-02-28 | 2015-02-25 | 皇家飞利浦有限公司 | 随机数生成器和流密码 |
CN109981249A (zh) * | 2019-02-19 | 2019-07-05 | 吉林大学珠海学院 | 基于拉链式动态散列和nlfsr的加密解密方法及装置 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2008203548A (ja) * | 2007-02-20 | 2008-09-04 | Oki Electric Ind Co Ltd | 二次双曲線群を使用する鍵生成方法、復号方法、署名検証方法、鍵ストリーム生成方法および装置。 |
GB2551865B (en) * | 2017-01-14 | 2020-03-18 | PQ Solutions Ltd | Improved stream cipher system |
-
2020
- 2020-06-08 CN CN202010513987.2A patent/CN111669269B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2005027358A (ja) * | 2000-03-09 | 2005-01-27 | Hitachi Ltd | 共通鍵暗号方法及び装置 |
CN101571873A (zh) * | 2009-06-16 | 2009-11-04 | 北京易恒信认证科技有限公司 | 一种数据库数据加密系统和方法 |
CN101848078A (zh) * | 2010-04-30 | 2010-09-29 | 中国科学院软件研究所 | 一种密钥流序列扰动方法及加密方法 |
CN104380245A (zh) * | 2013-02-28 | 2015-02-25 | 皇家飞利浦有限公司 | 随机数生成器和流密码 |
CN109981249A (zh) * | 2019-02-19 | 2019-07-05 | 吉林大学珠海学院 | 基于拉链式动态散列和nlfsr的加密解密方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN111669269A (zh) | 2020-09-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5744377B2 (ja) | 対称鍵データ暗号化の方法 | |
Zhou et al. | Parallel image encryption algorithm based on discretized chaotic map | |
US8737603B2 (en) | Cryptographic processing apparatus, cryptographic processing method, and computer program | |
CN112291056B (zh) | 加密密钥生成器及传输系统 | |
US20110211688A1 (en) | Data converter, data conversion method and program | |
US20150215114A1 (en) | Method for generating a secure cryptographic hash function | |
JP2007199156A (ja) | 暗号処理装置、暗号処理装置製造装置、および方法、並びにコンピュータ・プログラム | |
CN105790930A (zh) | 用于移动终端的信息加密方法、信息加密装置和移动终端 | |
CN115276989A (zh) | 基于方向置乱的序列化数据加密方法 | |
EP3272060B1 (en) | Datastream block encryption | |
US10505715B2 (en) | Method and system of synchronous encryption to render computer files and messages impervious to pattern recognition and brute force attacks | |
CN101571873B (zh) | 一种数据库数据加密系统和方法 | |
CN111669269B (zh) | Blk数据加密方法、装置及存储介质 | |
CN111314054B (zh) | 一种轻量级eceg分组密码实现方法、系统及存储介质 | |
CN107493164B (zh) | 一种基于混沌系统的des加密方法和系统 | |
US7103180B1 (en) | Method of implementing the data encryption standard with reduced computation | |
CN115022000B (zh) | 铁路信号系统的通信方法、装置及电子设备 | |
CN115658148A (zh) | 一种sm4分组密码算法的加速方法及指令集处理器 | |
Sastry et al. | A Block Cipher Involving a Key Applied on Both the Sides of the Plain Text | |
CN110247754B (zh) | 一种分组密码fbc的实现方法及装置 | |
CN110532763B (zh) | 一种基于高阶正形置换的密码构造方法及系统 | |
CN110086619A (zh) | 密钥流生成方法及装置 | |
CN115801227B (zh) | 一种生成置换表的方法及装置 | |
CN113779614B (zh) | 基于改进的aes算法的加密方法和计算机可读存储介质 | |
CN115225254B (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 |