CN104320420A - 一种基于aes算法的scada文件加密方法 - Google Patents
一种基于aes算法的scada文件加密方法 Download PDFInfo
- Publication number
- CN104320420A CN104320420A CN201410655820.4A CN201410655820A CN104320420A CN 104320420 A CN104320420 A CN 104320420A CN 201410655820 A CN201410655820 A CN 201410655820A CN 104320420 A CN104320420 A CN 104320420A
- Authority
- CN
- China
- Prior art keywords
- box
- file
- module
- key
- scada
- 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
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
- H04L9/0631—Substitution permutation network [SPN], i.e. cipher composed of a number of stages or rounds each involving linear and nonlinear transformations, e.g. AES algorithms
-
- 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/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/6209—Protecting access to data via a platform, e.g. using keys or access control rules to a single file or object, e.g. in a secure envelope, encrypted and accessed using a key, or with access control rules appended to the object itself
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Software Systems (AREA)
- Computer Hardware Design (AREA)
- General Health & Medical Sciences (AREA)
- Health & Medical Sciences (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Bioethics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Storage Device Security (AREA)
Abstract
本发明公开了一种基于AES算法的SCADA文件加密方法,包括,S01实现改进型AES加密解密算法;S02根据文件处理方式选择模块;S03输入密钥K的长度和密钥;S04生成扩展密钥;S05创建加密/解密文件;S06、从等待加密/解密文件中取出16字节,把取出的数据放入中间变量中;S07根据密钥的长度对中间变量中的数据进行解密/解密,并把加密/解密后的数据存在中间变量中;S08如果等待加密/解密的文件已经结束,则关闭文件,回到S02;否则回到S06。本发明提高加密解密抵抗线性攻击能力和其抵抗差分攻击能力,占用的硬件资源比较少,特别适合对原有的设备升级,而不必改动硬件设计。
Description
技术领域
本发明涉及电力监控系统专业技术领域,具体而言,涉及一种基于AES算法的SCADA文件加密方法。
背景技术
数据监控与采集系统(SCADA)是构建众多供电、配网自动化应用系统的基础。随着计算机以及网络应用技术在电力监控系统的日益广泛深入,信息在电力监控系统中的安全存储、安全传输问题日益受到重视。在电力监控平台SCADA中,许多重要数据和配置信息都以文件的形式存储在硬盘上,保护这些重要数据和信息不被轻易泄露成为事关系统安全性能的一个重要因素。这些数据大多以明文形式存在文件中,其安全性没有任何保障,极易被窃取、纂改和删除,因此极需对这些重要数据进行加密保护。
AES算法的前身是Square算法(由面向字节、不包括任何算术运算的具有对称和并行结构的迭代分组密码),AES算法的密钥是由128位,192位或256位二进制数组成的序列,但是其它可用的序列不受标准的限制。而在AES加密算法中运算的基本单元是字节,通常需要把输入,输出和密钥都划分成字节矩阵或字节数组。通常把作为AES加密算法基本单元的二维字节数组上叫做状态矩阵。
为了得到密码学特性非常好的S替换盒,国内外学者一直在做着各种尝试。目前,S替换盒的设计有两种方法,一是用数学的方法构造,二是演化密码的方法。传统的数学方法设计出来的S替换盒虽然具有非常高的非线性度,但是却很难摆脱它先天性的弊病,那就是它的代数结构相对来说比较简单;用演化方法设计出的S替换盒具有天然的随机性,所以这种方法设计出的S替换盒如果没有陷门,是不容易找到弱点的,但此方法设计出的S替换盒的非线性度,差分均匀度却相对较差,尤其是在设计大S替换盒时,差距更加明显。
现有技术中,AES加密算法的S替换盒一般通过数学方法获得的,替换盒存在线性冗余,因为数学方法构造的S替换盒,虽然性能很好,但使得其抵抗代数攻击方面能力相对弱些。
现有技术中,基于AES算法SCADA文件加密在抵抗代数攻击方面的能力就相对弱点,因为AES加密算法官方给出的S替换盒是通过数学方法获得的,故这个替换盒存在线性冗余,因为数学方法构造的S替换盒,虽然性能很好,但还是会存在一些弱点,使得其抵抗代数攻击方面能力相对较弱。
发明内容
针对现有技术中存在的问题,本发明研究了一种基于AES算法的SCADA文件加密方法,提高了S替换盒的非线性度和差分均匀度,占用的硬件资源比较少,特别适合对原有的设备升级,而不必改动硬件设计。
本发明其技术方案为:
一种基于AES算法的SCADA文件加密方法,包括以下步骤:
S01、建立AES算法变换模块,实现改进型AES加密解密算法;
S02、根据文件处理方式选择加密或者解密或者程序退出模块,选择对文件进行加密、对文件解密或是退出程序;文件处理方式包括加密、解密和退出;
S03、输入密钥K的长度和密钥,密钥K的长度为128比特或者192比特或者256比特;
S04、用密钥扩展程序对密钥加以扩张,128比特、192比特、256比特分别对应KeyExpansion128(key)、KeyExpansion192(key)、KeyExpansion256(key),分别生成72bytes,204bytes,236bytes的扩展密钥;
S05、创建加密/解密文件(如果是加密过程:此处的创建的是加密文件,如果是解密过程,此处应创建解密文件),文件都是以文本格式存储;
S06、建立中间变量,从等待加密/解密文件中取出16字节(一次取16个字节,从开始位置取,利用指针偏移的方式来记住下次要取的16个字节的起始地址的),若是未取出16个字节文件结束则在结束处标上文件结束符,把取出的数据放入中间变量STATE中;
S07、依据步骤S01建立的基于改进型AES算法,根据密钥的长度对中间变量STATE中的数据进行解密/解密,128比特、192比特、256比特分别对应Cipher128(InvCipher128),Cipher192(InvCipher192),Cipher256(InvCipher256),并把加密/解密后的数据存在中间变量STATE中,把中间变量STATE中的数据写入加密/解密文件(是S05中的加密/解密文件,如果有个文件需要加密,需要在S05的时候创建一个存放加密内容的文件)中;
S08、如果等待加密/解密的文件已经结束,则关闭文件,回到步骤S02;否则进入步骤S06,继续取下一组16字节的数据。
AES算法变换模块包括字节替换模块(SubBytes)、行移位变换模块(ShiftRows)、列混合变换模块(Mixcolumns)和密钥注入模块(AddRoundKey);
字节替换模块基于S替换盒及其逆盒进行字节替换;
行移位变换模块(ShiftRows)将S替换盒及其逆盒替换变换得到的矩阵进行行移位操作;
列混合变换模块(Mixcolumns)将状态矩阵按列进行相乘操作;
密钥注入模块(AddRoundKey)通过按位异或,把列混合变换模块的输出矩阵与状态矩阵的子密钥进行有限域内相加。
字节替换模块(SubBytes)为S盒替换变换,用S替换盒及其逆盒进行字节替换;
S替换盒为表1-1:
表1-1S替换盒
63 | 7c | 5D | 42 | 1F | 00 | 21 | 3E | 9B | 84 | A5 | BA | E7 | F8 | D9 | C6 |
92 | 8D | AC | B3 | EE | F1 | D0 | CF | 6A | 75 | 54 | 4B | 16 | 09 | 28 | 37 |
80 | 9F | BE | A1 | FC | E3 | C2 | DD | 78 | 67 | 46 | 59 | 04 | 1B | 3A | 25 |
71 | 6E | 4F | 50 | 0D | 12 | 33 | 2C | 89 | 96 | B7 | A8 | F5 | EA | CB | DA |
A4 | BB | 9A | 85 | D8 | C7 | E6 | F9 | 5C | 43 | 62 | 7D | 20 | 3F | 1E | 01 |
55 | 4A | 6B | 74 | 29 | 36 | 17 | 08 | AD | B2 | 93 | 8C | D1 | CE | EF | F0 |
47 | 58 | 79 | 66 | 3B | 24 | 05 | 1A | BF | A0 | 81 | 9E | C3 | DC | FD | E2 |
B6 | A9 | 88 | 97 | CA | D5 | F4 | EB | 4E | 51 | 70 | 6F | 32 | 2D | 0C | 13 |
EC | F3 | D2 | CD | 90 | 8F | AE | B1 | 14 | 0B | 21 | 35 | 68 | 77 | 56 | 49 |
1D | 02 | 23 | 3C | 61 | 7E | 5F | 40 | E5 | FA | DB | C4 | 99 | 86 | A7 | B8 |
0F | 10 | 31 | 2E | 73 | 6C | 4D | 52 | F7 | E8 | C9 | D6 | 8B | 94 | B5 | AA |
FE | E1 | C0 | DF | 82 | 9D | BC | A3 | 06 | 19 | 38 | 27 | 7A | 65 | 44 | 5B |
2B | 34 | 15 | 0A | 57 | 48 | 69 | 76 | D3 | CC | ED | F2 | AF | B0 | 91 | BE |
DA | C5 | E4 | FB | A6 | B9 | 98 | 87 | 22 | 3D | 1C | 03 | 5E | 41 | 60 | 7F |
C8 | D7 | F6 | E9 | B4 | AB | 8A | 95 | 30 | 2F | 0E | 11 | 4C | 53 | 72 | 6D |
39 | 26 | 07 | 18 | 45 | 5A | 7B | 64 | C1 | DE | FF | E0 | BD | A2 | 83 | 9C |
S替换盒的逆盒为表1-2:
表1-2S替换盒的逆盒
05 | 4F | 91 | db | 2c | 66 | b8 | f2 | 57 | 1d | c3 | 89 | 7e | 34 | ea | a0 |
a1 | eb | 35 | 7f | 88 | c2 | 1c | 56 | f3 | b9 | 67 | 2d | da | 90 | 4e | 04 |
4c | 06 | d8 | 92 | 65 | 2f | f1 | bb | 1e | 54 | 8a | c0 | 37 | 7d | a3 | e9 |
e8 | a2 | 7c | 36 | c1 | 8b | 55 | 1f | ba | f0 | 2e | 64 | 93 | d9 | 07 | 4d |
97 | dd | 03 | 49 | be | f4 | 2a | 60 | c5 | 8f | 51 | 1b | ec | a6 | 78 | 32 |
33 | 79 | a7 | ed | 1a | 50 | 8e | c4 | 61 | 2b | f5 | bf | 48 | 02 | dc | 96 |
de | 94 | 4a | 00 | f7 | bd | 63 | 29 | 8c | c6 | 18 | 52 | a5 | ef | 31 | 7b |
7a | 30 | ee | a4 | 53 | 19 | c7 | 8d | 28 | 62 | bc | f6 | 01 | 4b | 95 | df |
20 | 6a | b4 | fe | 09 | 43 | 9d | d7 | 72 | 38 | e6 | ac | 5b | 11 | cf | 85 |
84 | ce | 10 | 5a | ad | e7 | 39 | 73 | d6 | 9c | 42 | 08 | ff | b5 | 6b | 21 |
69 | 23 | fd | b7 | 40 | 0a | d4 | 9e | 3b | 71 | af | e5 | 12 | 58 | 86 | cc |
cd | 87 | 59 | 13 | e4 | ae | 70 | 3a | 9f | d5 | 0b | 41 | b6 | fc | 22 | 68 |
b2 | f8 | 26 | 6c | 9b | d1 | 0f | 45 | e0 | aa | 74 | 3e | c9 | 83 | 5d | 17 |
16 | 5c | 81 | c8 | 3f | 75 | ab | e1 | 44 | 0e | d0 | 9a | 6d | 27 | f9 | b3 |
fb | b1 | 6f | 25 | d2 | 98 | 46 | 0c | a9 | e3 | 3d | 77 | 80 | ca | 14 | 5e |
5f | 15 | cb | 81 | 76 | 3c | e2 | a8 | 0d | 47 | 99 | d3 | 24 | 6e | b0 | fa |
。
行移位变换模块ShiftRows将经过S替换盒及其逆盒变换得到的矩阵进行行移位操作,行移位操作的作用域是经过S替换盒及其逆盒变换得到的状态矩阵,矩阵的4个行螺旋的向左移位,即矩阵的第一行向左移动零个字节,矩阵的第二行向左移动一个字节,矩阵的第三行向左移动两个字节,矩阵的第四行向左移动三个字节。
列混合变换模块Mixcolumns:将状态矩阵(AES加密算法基本单元的二维字节数组叫做状态矩阵)每列看做一个四项多项式,按列对所述四项多项式进行相乘操作,列混合变换是通过状态矩阵的列相乘运算来最终实现的,将从行移位变换后输出的矩阵与以十六进制表示的固定多项式矩阵相乘。
密钥注入模块(AddRoundKey)通过按位异或,把列混合变换模块的输出矩阵与状态矩阵的子密钥(通过密钥调度过程,从密码密钥中获得)进行相异或,也就是有限域内相加。
相比与现有技术,本发明具有以下优点:
(1)本发明分析了整个AES算法的原理及其实现的关键技术,在该加密方法中,本发明线性冗余消除的基于交换S替换盒表中的某些元素的位置,这样做的目的就是消除元素之间的放射等级关系。经过多次重复的交换,就能将S替换盒中的线性冗余完全消除,在消除线性冗余度的同时,考虑替换盒的线性度、差分均匀度和自相关度的下降问题。
(2)本发明将AES算法运用与SCADA文件加解密,实现了SCADA系统文件的密文传输,本发明字节替换模块、移位变换模块、列混合变换模块、密钥注入模块对数据分别进行了字节替换、行变换、列变换和密钥注入,安全性能高。
(3)新的S替换盒主要有如下优势:
a)提高了S替换盒的非线性度,加强了其抵抗线性攻击能力。
b)提高了S替换盒的差分均匀度,加强了其抵抗差分攻击能力。
c)占用的硬件资源比较少,特别适合对原有的设备升级,而不必改动硬件设计。
(4)本发明加密方法提高了UNICON监控系统软件平台关键数据的安全性,而且这种加密方法对硬件资源要求不高,不必改动硬件设计。
附图说明
图1为本发明一种基于AES算法的SCADA文件加密方法流程示意图;
图2为本发明的AES算法加密/解密流程图。
图3为AES算法列混合变换示意图。
具体实施方式
下面结合附图对本发明作更进一步的说明。
实现一种基于AES算法的SCADA文件加密方法,首先需要建立AES算法变换模块,实现改进型AES加密解密算法;本发明改进型AES加密解密算法包括两部分内容。
第一部分,提出新的S替换盒。
AES算法是一种分组密码算法。分组密码算法的核心之一是就是它所采用的S替换盒。S替换盒是分组密码算法中唯一非线性的地方,它的强度决定了这个加密算法的强度。S-box的密码学特性有:差分均匀度、非线性度和自相关度;要改善S替换盒的性能,就要提高非线性度和差分均匀度,来抵抗差分攻击和线性攻击。
本发明线性冗余消除的基于交换S替换盒表中的某些元素的位置,这样做的目的就是消除元素之间的放射等级关系。经过多次重复的交换,就能将S替换盒中的线性冗余完全消除,在消除线性冗余度的同时,考虑替换盒的线性度、差分均匀度和自相关度的下降问题。
作为项目的应用本发明不仅考虑了S替换盒的差分均匀度、非线性度,而且还考虑到S替换盒占用的硬件资源。表1-1和表1-2本发明选用的S替换盒及其逆盒。本发明S替换盒及其逆盒的优势为其占用的硬件资源比较少,特别适合对原有的设备升级,而不必改动硬件设计。
表1-1S换盒
63 | 7c | 5D | 42 | 1F | 00 | 21 | 3E | 9B | 84 | A5 | BA | E7 | F8 | D9 | C6 |
92 | 8D | AC | B3 | EE | F1 | D0 | CF | 6A | 75 | 54 | 4B | 16 | 09 | 28 | 37 |
80 | 9F | BE | A1 | FC | E3 | C2 | DD | 78 | 67 | 46 | 59 | 04 | 1B | 3A | 25 |
71 | 6E | 4F | 50 | 0D | 12 | 33 | 2C | 89 | 96 | B7 | A8 | F5 | EA | CB | DA |
A4 | BB | 9A | 85 | D8 | C7 | E6 | F9 | 5C | 43 | 62 | 7D | 20 | 3F | 1E | 01 |
55 | 4A | 6B | 74 | 29 | 36 | 17 | 08 | AD | B2 | 93 | 8C | D1 | CE | EF | F0 |
47 | 58 | 79 | 66 | 3B | 24 | 05 | 1A | BF | A0 | 81 | 9E | C3 | DC | FD | E2 |
B6 | A9 | 88 | 97 | CA | D5 | F4 | EB | 4E | 51 | 70 | 6F | 32 | 2D | 0C | 13 |
EC | F3 | D2 | CD | 90 | 8F | AE | B1 | 14 | 0B | 21 | 35 | 68 | 77 | 56 | 49 |
1D | 02 | 23 | 3C | 61 | 7E | 5F | 40 | E5 | FA | DB | C4 | 99 | 86 | A7 | B8 |
0F | 10 | 31 | 2E | 73 | 6C | 4D | 52 | F7 | E8 | C9 | D6 | 8B | 94 | B5 | AA |
FE | E1 | C0 | DF | 82 | 9D | BC | A3 | 06 | 19 | 38 | 27 | 7A | 65 | 44 | 5B |
2B | 34 | 15 | 0A | 57 | 48 | 69 | 76 | D3 | CC | ED | F2 | AF | B0 | 91 | BE |
DA | C5 | E4 | FB | A6 | B9 | 98 | 87 | 22 | 3D | 1C | 03 | 5E | 41 | 60 | 7F |
C8 | D7 | F6 | E9 | B4 | AB | 8A | 95 | 30 | 2F | 0E | 11 | 4C | 53 | 72 | 6D |
39 | 26 | 07 | 18 | 45 | 5A | 7B | 64 | C1 | DE | FF | E0 | BD | A2 | 83 | 9C |
表1-2S替换盒的逆盒
05 | 4F | 91 | db | 2c | 66 | b8 | f2 | 57 | 1d | c3 | 89 | 7e | 34 | ea | a0 |
a1 | eb | 35 | 7f | 88 | c2 | 1c | 56 | f3 | b9 | 67 | 2d | da | 90 | 4e | 04 |
4c | 06 | d8 | 92 | 65 | 2f | f1 | bb | 1e | 54 | 8a | c0 | 37 | 7d | a3 | e9 |
e8 | a2 | 7c | 36 | c1 | 8b | 55 | 1f | ba | f0 | 2e | 64 | 93 | d9 | 07 | 4d |
97 | dd | 03 | 49 | be | f4 | 2a | 60 | c5 | 8f | 51 | 1b | ec | a6 | 78 | 32 |
33 | 79 | a7 | ed | 1a | 50 | 8e | c4 | 61 | 2b | f5 | bf | 48 | 02 | dc | 96 |
de | 94 | 4a | 00 | f7 | bd | 63 | 29 | 8c | c6 | 18 | 52 | a5 | ef | 31 | 7b |
7a | 30 | ee | a4 | 53 | 19 | c7 | 8d | 28 | 62 | bc | f6 | 01 | 4b | 95 | df |
20 | 6a | b4 | fe | 09 | 43 | 9d | d7 | 72 | 38 | e6 | ac | 5b | 11 | cf | 85 |
84 | ce | 10 | 5a | ad | e7 | 39 | 73 | d6 | 9c | 42 | 08 | ff | b5 | 6b | 21 |
69 | 23 | fd | b7 | 40 | 0a | d4 | 9e | 3b | 71 | af | e5 | 12 | 58 | 86 | cc |
cd | 87 | 59 | 13 | e4 | ae | 70 | 3a | 9f | d5 | 0b | 41 | b6 | fc | 22 | 68 |
b2 | f8 | 26 | 6c | 9b | d1 | 0f | 45 | e0 | aa | 74 | 3e | c9 | 83 | 5d | 17 |
16 | 5c | 81 | c8 | 3f | 75 | ab | e1 | 44 | 0e | d0 | 9a | 6d | 27 | f9 | b3 |
fb | b1 | 6f | 25 | d2 | 98 | 46 | 0c | a9 | e3 | 3d | 77 | 80 | ca | 14 | 5e |
5f | 15 | cb | 81 | 76 | 3c | e2 | a8 | 0d | 47 | 99 | d3 | 24 | 6e | b0 | fa |
至此,新的S替换盒已经建立,在S替换盒的实现过程中,主要解决了以下几个技术要点:
1)S替换盒中的线性冗余完全消除技术,增强了其抗线性攻击能力。
2)提高S替换盒的差分均匀度,增强了其抗差分攻击能力。
第二部分,SCADA文件加密方法实现。
AES加密算规定了输入矩阵、输出矩阵以及状态矩阵的长度都是128比特,也就是Nb=4个双字(32bit)。但AES算法密钥的长度可以是128、192或256位的。如果用32bit的Nk来表示,那么有Nk=4,6,8。对于AES加密算法来说,算法执行中需要迭代的次数Nr是由密钥的长度决定的,Nk=4时Nr=10;Nk=6时Nr=12;Nk=8时Nk=14。如表1-3所示:
表1-3AES算法迭代次数
密钥长度(Nk) | 数据库长度(Nb) | 迭代次数(Nr) | |
128位字节矩阵 | 4 | 4 | 10 |
192位字节矩阵 | 6 | 4 | 12 |
256位字节矩阵 | 8 | 4 | 14 |
Nb表示数据库长度,Nk表示密钥长度,Nr表示迭代次数。
AES加密和解密算法,采用的是同一种轮函数,包括4种不同的变换组成:1)用S替换盒进行字节替换;2)对状态矩阵各行进行不同偏移量的移位变换;3)对状态矩阵各列进行列混合变换;4)对状态矩阵和子密钥进行数域相加即异或,这一步也可称为密钥注入。但在第一轮和第十轮加密和解密的时候会有所不同,具体如图2所示,AES算法加密/解密流程图。
从图2可以看出,解密算法是加密算法的逆运算,本实施例涉及到的变换模块都一样:SubBytes(字节替换模块),ShiftRows(行移位变换模块),Mixcolumns(列混合变换模块),AddRoundKey(密钥注入模块),其中S替换盒是算法中唯一非线性的部分,又由于S盒有相对应的S逆盒,所以每一轮变换涉及到的变换模块的顺序是可以颠到,保证了加密算法和解密算法在实现时保持形式上的一致。
1)SubBytes(字节替换模块):SubBytes变换(字节变换)也就是S-盒变换,是一个非线性替换,如前所说,AES算法首先将128位明文转化成字节矩阵,前四个字节组成第一列,接下来的4个字节组成第二列,按此类推,组成一个4×4的矩阵。由有限域GF(28)(GF(28)表示有限域)下模乘法求逆运算和GF(2)(GF(2)表示二元域)下仿射变换再加常量‘63’(63为常量)两个部分复合而成。
1对(x表示有限域)中的元素),求(表示x与(x8+x4+x3+x+1)的取模)的乘法求逆,定义如下:
2在GF(28)中元素分别为(x0,x1,x2,x3,x4,x5,x6,x7)(x0,x1,x2,x3,x4,x5,x6,x7表示表示有限域中的元素),仿射变换如下:
S替换盒执行的实际上是输入字节到输出字节的代数转换,y表示代数转换的结果矩阵;
采用字节变换后,字节元素至少有两个比特位发生变化,具有很好的混淆作用。但在计算时,为了保证加解密的速度,一般先预计算GF(28)-->GF(28)的S-盒替换表,加解密时直接查表进行字节替换。
2)ShiftRows(行移位变换模块):经过S盒替换变换得到的矩阵需要经过行移位(ShiftRows)操作,行移位操作的作用域是经过S盒替换变换得到的矩阵,矩阵的4个行螺旋的向左移位,即矩阵的第一行向左移动零个字节,矩阵的第二行向左移动一个字节,矩阵的第三行向左移动两个字节,矩阵的第四行向左移动三个字节。
3)Mixcolumns(列混合变换模块):列混合变换(MixColumn)变换是把状态矩阵每列看做一个四项多项式,并按列对其进行操作,其中每列都是GF(28)域中的一个多项式,将其与固定多项式矩阵相乘后并对x4+1取模。也就是说,列混合(MixColumn)是通过矩阵的相乘运算来最终实现的,将从行移位变换后输出的矩阵与以十六进制表示的固定多项式矩阵相乘,具体操作参数如图3所示,AES算法列混合变换示意图。
将状态矩阵和固定多项式矩阵看成向量则可以表示为公式1.3:
固定多项式矩阵为:
状态矩阵为:
将上式展开得:
c0,i=([02]*b0,i)+([03]*b1,i)+([01]*b2,i)+([01]*b3,i) (1.4)
c1,i=([01]*b0,i)+([02]*b1,i)+([03]*b2,i)+([01]*b3,i) (1.5)
c2,i=([01]*b0,i)+([01]*b1,i)+([01]*b2,i)+([03]*b3,i) (1.6)
c3,i=([03]*b0,i)+([01]*b1,i)+([01]*b2,i)+([02]*b3,i) (1.7)
b0,i~b3,i表示状态矩阵中的元素,c0,i~c3,i表示状态矩阵的元素和固定多项式矩阵中元素计算后的结果,i表示矩阵中的列序号;
经过了多轮字节替换、行移位、列混合操作之后,明文被尽可能的打乱了,同时还降低了输入明文与输出密文之间的相互关联。
4)AddRoundKey(密钥注入模块):AddRoundKey变换可以理解为仅仅是通过非常简单的按位异或,把状态矩阵与相应的子密钥进行相异或,也就是有限域内相加。
建立AES算法变换模块,实现改进型AES加密解密算法后,将其用于对电力监控系统SCADA文件的加密/解密(密钥长度可选),如图1所示,一种基于AES算法的SCADA文件加密方法,操作步骤如下:
S01、建立AES算法变换模块,实现改进型AES加密解密算法;
S02、根据文件处理方式选择加密或者解密或者程序退出模块,选择对文件进行加密、对文件解密或是退出程序;
S03、输入密钥K的长度和密钥,密钥K的长度为128比特或者192比特或者256比特;
S04、用密钥扩展程序对密钥加以扩张,128比特、192比特、256比特分别对应KeyExpansion128(key)、KeyExpansion192(key)、KeyExpansion256(key),分别生成72bytes,204bytes,236bytes的扩展密钥;
S05、创建加密/解密文件(如果是加密过程:此处的创建的是加密文件,如果是解密过程,此处应创建解密文件),文件都是以文本格式存储;
S06、建立中间变量,从等待加密/解密文件中取出16字节(一次取16个字节,从开始位置取,利用指针偏移的方式来记住下次要取的16个字节的起始地址的),若是未取出16个字节文件结束则在结束处标上文件结束符,把取出的数据放入中间变量STATE中;
S07、依据步骤S01建立的基于改进型AES算法,根据密钥的长度对中间变量STATE中的数据进行解密/解密,128比特、192比特、256比特分别对应Cipher128(InvCipher128),Cipher192(InvCipher192),Cipher256(InvCipher256),并把加密/解密后的数据存在中间变量STATE中,把中间变量STATE中的数据写入加密/解密文件(是S05中的加密/解密文件,如果有个文件需要加密,需要在S05的时候创建一个存放加密内容的文件)中;
S08、如果等待加密/解密的文件已经结束,则关闭文件,回到步骤S02;否则进入步骤S06,继续取下一组16字节的数据。
至此,基于AES加密算法的电力监控系统SCADA文件加密方法的几个技术要点都已解决。
以上仅是本发明的优选实施方式,应当指出:对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
Claims (8)
1.一种基于AES算法的SCADA文件加密方法,其特征在于,包括以下步骤:
S01、建立AES算法变换模块,实现改进型AES加密解密算法;
S02、根据文件处理方式选择加密或者解密或者程序退出模块,对文件进行加密、对文件解密或是退出程序;
S03、输入密钥K的长度和密钥;
S04、用密钥扩展程序对密钥进行扩张;
S05、创建加密或者解密文件,所述加密或者解密文件以文本格式存储;
S06、建立中间变量,从等待加密或者解密文件中取出16字节数据,若是未取出16个字节文件结束则在结束处标上文件结束符,把取出的数据放入中间变量中;
S07、依据步骤S01建立的基于改进型AES算法,根据密钥K的长度对中间变量中的数据进行解密或者解密,并把加密或者解密后的数据存在中间变量中,把中间变量中的数据写入加密或者解密文件中;
S08、如果等待加密或者解密的文件已经结束,则关闭文件,回到步骤S02;否则进入步骤S06继续取下一组16个字节数据。
2.根据权利要求1所述的基于AES算法的SCADA文件加密方法,其特征在于:步骤S01所述AES算法变换模块包括字节替换模块、行移位变换模块、列混合变换模块和密钥注入模块;
所述字节替换模块基于S替换盒及其逆盒进行字节替换;
所述行移位变换模块将S替换盒及其逆盒替换变换得到的矩阵进行行移位操作;
所述列混合变换模块将状态矩阵按列对其进行相乘操作;
所述密钥注入模块通过按位异或,把列混合变换模块的输出矩阵与状态矩阵的子密钥进行有限域内相加。
3.根据权利要求2所述的基于AES算法的SCADA文件加密方法,其特征在于:
所述字节替换模块SubBytes为S盒替换变换,用S替换盒及其逆盒进行字节替换;
所述S替换盒为:
4.根据权利要求3所述的基于AES算法的SCADA文件加密方法,其特征在于:所述S替换盒的逆盒为:
。
5.根据权利要求2所述的基于AES算法的SCADA文件加密方法,其特征在于:
行移位变换模块将经过S替换盒及其逆盒变换得到的矩阵进行行移位操作,行移位操作的作用域是经过S替换盒及其逆盒变换得到的状态矩阵,矩阵的4个行螺旋的向左移位。
6.根据权利要求2所述的基于AES算法的SCADA文件加密方法,其特征在于:
列混合变换模块:将状态矩阵每列看做一个四项多项式,按列对所述四项多项式进行相乘操作,将从行移位变换后输出的矩阵与固定多项式矩阵相乘。
7.根据权利要求1所述的基于AES算法的SCADA文件加密方法,其特征在于:所述步骤S03密钥K的长度为128bit或者192bit或者256bit。
8.根据权利要求1所述的基于AES算法的SCADA文件加密方法,其特征在于:所述步骤对密钥扩张具体包括;128bit、192bit、256bit分别生成72bytes,204bytes,236bytes的扩展密钥。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410655820.4A CN104320420A (zh) | 2014-11-17 | 2014-11-17 | 一种基于aes算法的scada文件加密方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410655820.4A CN104320420A (zh) | 2014-11-17 | 2014-11-17 | 一种基于aes算法的scada文件加密方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN104320420A true CN104320420A (zh) | 2015-01-28 |
Family
ID=52375589
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410655820.4A Pending CN104320420A (zh) | 2014-11-17 | 2014-11-17 | 一种基于aes算法的scada文件加密方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104320420A (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106686407A (zh) * | 2016-12-13 | 2017-05-17 | 北京互动百科网络技术股份有限公司 | 一种用于视频数据传输的自动识别加密解密方法及系统 |
CN106788967A (zh) * | 2015-11-23 | 2017-05-31 | 天津九洲云物联科技有限公司 | 智能家居系统中驱动加密的新算法—baes算法 |
CN110535242A (zh) * | 2019-09-11 | 2019-12-03 | 中国南方电网有限责任公司 | 一种基于scada的电网运行数据传输系统 |
CN112055217A (zh) * | 2020-07-27 | 2020-12-08 | 西安空间无线电技术研究所 | 任意字节数据中无损搭载信息的方法 |
CN115208650A (zh) * | 2022-07-05 | 2022-10-18 | 上海江宇信息科技有限公司 | 基于云平台的数据安全实现方法、设备、介质及产品 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1833424A (zh) * | 2003-07-01 | 2006-09-13 | 伊吉斯技术公司 | 用于使监控和数据采集(scada)通信安全的方法、系统和装置 |
CN101581932A (zh) * | 2009-06-23 | 2009-11-18 | 北京旺斯达科技有限公司 | 一种煤矿安全监控系统 |
-
2014
- 2014-11-17 CN CN201410655820.4A patent/CN104320420A/zh active Pending
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1833424A (zh) * | 2003-07-01 | 2006-09-13 | 伊吉斯技术公司 | 用于使监控和数据采集(scada)通信安全的方法、系统和装置 |
CN101581932A (zh) * | 2009-06-23 | 2009-11-18 | 北京旺斯达科技有限公司 | 一种煤矿安全监控系统 |
Non-Patent Citations (1)
Title |
---|
龚进: "AES加密算法在电子系统中的优化及应用研究", 《中国优秀硕士学位论文全文数据库 信息科技辑》 * |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106788967A (zh) * | 2015-11-23 | 2017-05-31 | 天津九洲云物联科技有限公司 | 智能家居系统中驱动加密的新算法—baes算法 |
CN106686407A (zh) * | 2016-12-13 | 2017-05-17 | 北京互动百科网络技术股份有限公司 | 一种用于视频数据传输的自动识别加密解密方法及系统 |
CN106686407B (zh) * | 2016-12-13 | 2019-07-23 | 北京互动百科网络技术股份有限公司 | 一种用于视频数据传输的自动识别加密解密方法及系统 |
CN110535242A (zh) * | 2019-09-11 | 2019-12-03 | 中国南方电网有限责任公司 | 一种基于scada的电网运行数据传输系统 |
CN112055217A (zh) * | 2020-07-27 | 2020-12-08 | 西安空间无线电技术研究所 | 任意字节数据中无损搭载信息的方法 |
CN115208650A (zh) * | 2022-07-05 | 2022-10-18 | 上海江宇信息科技有限公司 | 基于云平台的数据安全实现方法、设备、介质及产品 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102185692B (zh) | 基于aes加密算法的多模式可重构加密方法 | |
CN101764686B (zh) | 一种用于网络与信息安全的加密方法 | |
CN107707343B (zh) | 加解密一致的sp网络结构轻量级分组密码实现方法 | |
US11606189B2 (en) | Method and apparatus for improving the speed of advanced encryption standard (AES) decryption algorithm | |
CN104333446B (zh) | 一种新型超轻量级qtl分组密码实现方法 | |
CN104065474B (zh) | 一种轻量级Surge分组密码实现方法 | |
CN101938351B (zh) | 一种实现分组密码加密的密钥扩展方法 | |
CN104320420A (zh) | 一种基于aes算法的scada文件加密方法 | |
CN104184579A (zh) | 基于双伪随机变换的轻量级分组密码vh算法 | |
CN103051442A (zh) | 采用Feistel-PG结构的密码装置及加密方法 | |
CN107257279A (zh) | 一种明文数据加密方法及设备 | |
Asaad et al. | Advanced Encryption Standard Enhancement with Output Feedback Block Mode Operation | |
CN109861809A (zh) | 一种实用化的分组随机加解密方法 | |
KR101095386B1 (ko) | 이산화된 카오스 함수를 이용한 암호 시스템 | |
CN109921899A (zh) | 一种完全雪崩4×4的s盒实现方法 | |
CN101826959B (zh) | 一种面向字节的密钥流生成方法及加密方法 | |
KR101601684B1 (ko) | 부채널 공격에 대응하는 대칭키 암호 알고리즘 구현 방법 | |
CN105049204A (zh) | 基于ctr模式和分组密码vh的轻量级流密码技术vhc | |
CN106982116A (zh) | 一种基于可逆逻辑电路的aes的本地文件加密方法 | |
CN111614457B (zh) | 基于p置换改进的轻量级分组加解密方法、装置及存储介质 | |
CN112134691A (zh) | 一种部件可重复的nlcs分组密码实现方法、装置及介质 | |
Stoianov | One approach of using key-dependent S-BOXes in AES | |
Yang et al. | A novel chaotic block cryptosystem based on iterating map with output-feedback | |
CN106921486A (zh) | 数据加密的方法和装置 | |
CN105162580A (zh) | 基于ofb模式和分组密码vh的轻量级流密码技术vho |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20150128 |
|
RJ01 | Rejection of invention patent application after publication |