CN105790926A - 用于wia-pa安全的分组密码算法工作模式实现方法 - Google Patents

用于wia-pa安全的分组密码算法工作模式实现方法 Download PDF

Info

Publication number
CN105790926A
CN105790926A CN201410830365.7A CN201410830365A CN105790926A CN 105790926 A CN105790926 A CN 105790926A CN 201410830365 A CN201410830365 A CN 201410830365A CN 105790926 A CN105790926 A CN 105790926A
Authority
CN
China
Prior art keywords
mode
variable
wia
block cipher
input
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
CN201410830365.7A
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.)
Shenyang Institute of Automation of CAS
Original Assignee
Shenyang Institute of Automation of CAS
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 Shenyang Institute of Automation of CAS filed Critical Shenyang Institute of Automation of CAS
Priority to CN201410830365.7A priority Critical patent/CN105790926A/zh
Publication of CN105790926A publication Critical patent/CN105790926A/zh
Pending legal-status Critical Current

Links

Landscapes

  • Mobile Radio Communication Systems (AREA)

Abstract

本发明涉及用于WIA-PA安全的分组密码算法工作模式实现方法,包括以下步骤:设置加密或解密操作类型;设置工作模式及分组输入的长度;加载密钥和初始化向量并设定反馈缓存变量;加载数据输入变量并生成AES-128加/解密的输入x;将待加/解密的输入x进行AES-128加/解密操作,生成输出y;更新反馈缓存变量值;根据操作类型和工作模式生成数据输出变量。本发明既能单独实现分组密法算法的多种工作模式,还能够支持IEEE 802.15.4协议中CCM*模式的加/解密功能和认证功能,能够满足WIA-PA网络的信息安全功能和需求。解决了传统上控制过程复杂、处理器工作负载繁重的弊端。

Description

用于WIA-PA安全的分组密码算法工作模式实现方法
技术领域
本发明属于加解密技术领域,具体说是一种应用于WIA-PA信息安全的分组密码算法工作模式控制模块的实现方法。
背景技术
WIA-PA(面向工业过程自动化的工业无线网络标准技术)标准是中国工业无线联盟针对过程自动化领域制定的,是基于IEEE802.15.4标准的用于工业过程测量、监视与控制的无线网络系统。
WIA-PA安全体系结构是建立在IEEE802.15.4的安全服务基础上。WIA-PA利用这些安全服务对传输的数据进行加密处理,并提供对接入网络的设备的身份认证、密钥管理等功能,WIA-PA定义的网络层和应用层都包含该安全体系。
IEEE802.15.4安全服务是基于CCM*安全模式生成一系列的安全机制。IEEE802.15.4规定CCM*安全模式中使用的加密函数为128位数据分组长度和128位密钥长度的AES加密算法,即AES-128加密算法。CCM*模式是CCM加密模式的扩展。CCM模式结合了CTR和CBC-MAC而衍生出来的安全模式,既包含了加/解密功能,又包含了认证功能。
分组密码又称块密码算法,是一种对称密码算法,将明文划分成固定长度的分组进行加密。分组密码算法工作模式是分组密码算法的使用方式,主要包括电码本模式(ECB)、密码分组链接模式(CBC)、密码反馈模式(CFB)、输出反馈模式(OFB)、计数器模式(CTR)等。
AES(高级加密标准),是由NIST(美国国家标准与技术研究院)于2001年11月26日发布于FIPSPUB197,并在2002年5月26日成为有效的标准。AES加密算法,又称为Rijndael加密算法,该算法为比利时密码学家JoanDaemen和VincentRijmen所设计,这个标准用来替代原先的DES,己经被多方分析且广为全世界所使用。AES是一个迭代的、对称密钥分组的密码,它可以使用128、192和256位密钥,并且用128位(16字节)分组加密和解密数据。IEEE802.15.4采用固定的128位密钥,记为AES-128。不论对于AES加密算法还是解密算法,都是使用轮变换的操作。轮变换操作次数与密钥的位数有关,AES-128轮数为10轮。IEEE802.15.4协议中只用到了AES-128加密算法,明文首先进行一个密钥加的操作,然后进行10次轮变换操作。轮变换包括4个操作:字节置换、行换位、列混合和密钥加。
传统无线网络节点所采用的安全机制存在一个弊端,大多由软件实现或只实现了AES加解密功能。即在一次加解密或身份认证流程中,处理器必须进行多次干预,既使控制过程复杂化,也增加了处理器的工作负载。
发明内容
本发明提出了一种适用于WIA-PA信息安全的分组密码算法工作模式控制模块的实现方法,以克服上述技术不足。
本发明为实现上述目的所采用的技术方案是:用于WIA-PA安全的分组密码算法工作模式实现方法,包括以下步骤:
1)设置加密或解密操作类型;
2)设置工作模式及分组输入的长度;
3)加载密钥和初始化向量并设定反馈缓存变量;
4)加载数据输入变量并生成AES-128加/解密的输入x;
5)将待加/解密的输入x进行AES-128加/解密操作,生成输出y;
6)更新反馈缓存变量值;当反馈循环计数值小于设定次数时,返回步骤4),否则执行下一步骤;
7)根据操作类型和工作模式生成数据输出变量text_o。
所述生成输出y后,当工作模式为CFB、OFB和CTR时,生成位选取变量j_z和生成密/明文分组长度变量j_blk_o。
所述生成输出y后,当工作模式为CBC时,生成密/明文分组变量blk_o。
所述更新反馈缓存变量值后,当工作模式为CFB、OFB和CTR时,生成分组输出变量blk_o_r。
本发明具有以下有益效果及优点:
1.本发明以AES-128加解密为基础,通过控制信号的控制,既能单独实现分组密法算法的多种工作模式,还能够支持IEEE802.15.4协议中CCM*模式的加/解密功能和认证功能,能够满足WIA-PA网络的信息安全功能和需求。
2.本发明解决了传统上控制过程复杂、处理器工作负载繁重的弊端。
附图说明
图1为本发明的分组密码算法工作模式控制模块示意图;
图2为AES-128加密操作的结构示意图;
图3为AES-128解密操作的结构示意图。
具体实施方式
下面结合附图对本发明做进一步的详细说明。
见图1所示,本发明中分组密码算法工作模式(blockcipheroperationmode)控制模块,由以下几部分组成:
●输入端口:输入端口接收上一级通信链路到达的数据信号、控制信号、密钥和初始化向量,通过该端口实现设置工作模式、设置分组大小、加载密钥、加载初始化向量和加载数据信号等操作步骤;
●输出端口:通过该端口实现读出数据信号操作,使经过加解密处理的数据流入通信链路的下一处理单元;
●AES-128加解密模块:实现数据的加密和解密操作;
●生成数据输入变量等控制逻辑:基于AES-128加解密模块,实现分组密码算法工作模式的控制。
本实施例采用硬件描述语言Verilog编写RTL代码,使用逻辑综合工具designCompiler生成Verilog网表,形成分组密码算法工作模式控制模块电路。控制模块电路包括顺序连接的生成数据输入变量模块、生成AES-128输入变量模块、AES-128加/解密模块、生成AES-128输出变量模块、生成位选取变量模块、生成密/明文分组长度变量模块、更新反馈缓存变量模块、生成分组输出变量模块、判断反馈循环计数值模块、生成数据输出变量模块;所述判断反馈循环计数值模块与生成AES-128输入变量模块连接。
本发明的分组密码算法工作模式控制模块实现方法如下:
步骤1:根据需求设置分组密码算法工作模式控制模块的操作类型。操作类型可分为加密和解密两种。
步骤2:根据需求设置分组密码算法工作模式。本发明中设置了五种常用的分组密码算法工作模式:ECB、CBC、CFB、OFB和CTR。
ECB(电码本工作模式)是分组密码算法的一种工作模式,明文分组直接作为加密算法的输入,对应的输出作为密文分组。
CBC(密码分组链接工作模式)是分组密码算法的一种工作模式,当前的明文分组与前一密文分组进行异或运算后再进行加密得到当前的密文分组。
CFB(密码反馈工作模式)是分组密码算法用于构造序列密码的一种工作模式,用密文依次更新存储该密码算法启动变量的反馈缓冲器。
OFB(输出反馈工作模式)是分组密码算法用于构造序列密码的一种工作模式,用该算法当前时刻的输出作为下一时刻的输入。
CTR(计数器工作模式)是分组密码算法用于构造序列密码的一种工作模式,通过加密不断变化的计数器来产生密钥序列。
步骤3:根据需求设置工作模式为CFB、OFB和CTR时分组输入的长度(单位:bit)。分组输入的长度可以设置为8-bit、16-bit、32-bit、64-bit和128-bit。
同时根据分组输入的长度,设置反馈循环变量。同时根据分组输入的长度,设置反馈循环计数值等于0。
步骤4:加载key(密钥),密钥长度为128-bit。
步骤5:加载iv(初始化向量),初始化向量长度为128-bit。
当工作模式为CBC、CFB、OFB和CTR时,同时设定fb(反馈缓存变量)的初值。
步骤6:加载text_i(数据输入变量),数据输入变量长度为128-bit。
步骤7:生成AES-128加/解密模块的输入x(AES-128输入变量),AES-128输入变量长度为128-bit。
当模块操作类型是加密且工作模式为ECB时,x=text_i;
当模块操作类型是加密且工作模式为CBC时,x=text_i^fb;
当模块操作类型是加密且工作模式为CFB、OFB和CTR时,x=fb;
当模块操作类型是解密且工作模式为ECB和CBC时,x=text_i;
当模块操作类型是解密且工作模式为CFB、OFB和CTR时,x=fb;
步骤8:将待加/解密的x(AES-128输入变量)进行加/解密操作,生成y(AES-128输出变量)。
本发明方法中加密或解密的操作基于现有AES-128算法,每一轮的密钥加等操作采用现有AES-128算法中的方法。
图2可以视为一个AES-128加密操作的循环结构示意图(以2次轮变换为例)。
首先,加载明文数据,以每128位进行分组。
然后是密钥扩展操作,生成用于10次轮变换操作的轮密钥k(0)~k(9)。
接着,待加密的明文数据首先经过一个初始密钥加操作,然后进行10次轮变换,最后生成密文数据。
轮变换由字节置换、行换位、列混合和密钥加共4个操作构成。最后一次轮变换只有字节置换、行换位和密钥加共3个操作。
轮变换及其每一步操作都作用在中间结果上,将该中间结果成为状态。状态可以表示为一个矩形的字节数组,该数组共有4行4列。
字节置换是作用在字节上的砖匠置换。
行换位是一个字节换位,它将4字节行按照不同的偏移量进行循环移位。
列混合是作用在4字节列上的砖匠置换。
密钥加是指中奖结果(状态)与一个轮密钥逐位异或。
图3可以视为一个AES-128解密操作的循环结构示意图(以2次轮变换为例)。
首先,加载密文数据,以每128位进行分组。
然后是密钥扩展操作,生成用于10次轮变换求逆操作的轮密钥k(0)~k(9)。
接着,待解密的密文数据首先进行10次轮变换,最后再使用一个密钥加操作,生成明文数据。
轮变换由密钥加、列混合求逆、行换位求逆和字节置换求逆共4个操作构成。第一次轮变换只有密钥加、行换位求逆和字节置换求逆共3个操作。
步骤9:当工作模式为CFB、OFB和CTR时,生成j_z(位选取变量)。位选取变量的长度由分组输入的长度决定。可参考GB-T17964。
步骤10:当工作模式为CBC时,生成blk_o(密/明文分组变量)。密/明文分组变量的长度为128-bit。
步骤11:当工作模式为CFB、OFB和CTR时,生成j_blk_o(密/明文分组长度变量)。密/明文分组长度变量的长度由分组输入的长度决定。可参考GB-T17964。
步骤12:更新反馈缓存变量fb的值。同时反馈循环计数值加1。
步骤13:当工作模式为CFB、OFB和CTR时,生成blk_o_r(分组输出变量)。分组输出变量的长度为128-bit。
步骤14:比较反馈循环计数值与反馈循环变量的大小。当反馈循环计数值小于反馈循环次数时,返回值步骤7;当反馈循环计数值等于反馈循环次数时,进入下一步骤。
步骤15:生成text_o(数据输出变量)。
数据输出变量的长度为128-bit,并通过输出端口被链路下一单元读取。
当工作模式为ECB和CBC时,text_o=y;
当模块操作类型是加密且工作模式为ECB和CBC时,text_o=y;
当模块操作类型是加密且工作模式为CFB、OFB和CTR时,text_o=blk_o_r;
当模块操作类型是解密且工作模式为ECB时,text_o=y;
当模块操作类型是解密且工作模式为CBC时,text_o=blk_o;
当模块操作类型是解密且工作模式为CFB、OFB和CTR时,text_o=blk_o_r;
以上给出了本发明的一个具体实现方式,目的在于提供一种应用于WIA-PA协议信息安全的分组密码算法工作模式控制模块的实现方法,以克服上述技术不足。该方法以AES-128加解密操作为基础,通过控制信号的控制,既能单独实现分组密法算法的多种工作模式,还能够支持协议中CCM*模式的加密/认证码产生的并行处理功能,以及CCM*模式的解密/认证码确认的并行处理功能。

Claims (4)

1.用于WIA-PA安全的分组密码算法工作模式实现方法,其特征在于包括以下步骤:
1)设置加密或解密操作类型;
2)设置工作模式及分组输入的长度;
3)加载密钥和初始化向量并设定反馈缓存变量;
4)加载数据输入变量并生成AES-128加/解密的输入x;
5)将待加/解密的输入x进行AES-128加/解密操作,生成输出y;
6)更新反馈缓存变量值;当反馈循环计数值小于设定次数时,返回步骤4),否则执行下一步骤;
7)根据操作类型和工作模式生成数据输出变量text_o。
2.根据权利要求1所述的用于WIA-PA安全的分组密码算法工作模式实现方法,其特征在于所述生成输出y后,当工作模式为CFB、OFB和CTR时,生成位选取变量j_z和生成密/明文分组长度变量j_blk_o。
3.根据权利要求1所述的用于WIA-PA安全的分组密码算法工作模式实现方法,其特征在于所述生成输出y后,当工作模式为CBC时,生成密/明文分组变量blk_o。
4.根据权利要求1所述的用于WIA-PA安全的分组密码算法工作模式实现方法,其特征在于所述更新反馈缓存变量值后,当工作模式为CFB、OFB和CTR时,生成分组输出变量blk_o_r。
CN201410830365.7A 2014-12-26 2014-12-26 用于wia-pa安全的分组密码算法工作模式实现方法 Pending CN105790926A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201410830365.7A CN105790926A (zh) 2014-12-26 2014-12-26 用于wia-pa安全的分组密码算法工作模式实现方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201410830365.7A CN105790926A (zh) 2014-12-26 2014-12-26 用于wia-pa安全的分组密码算法工作模式实现方法

Publications (1)

Publication Number Publication Date
CN105790926A true CN105790926A (zh) 2016-07-20

Family

ID=56388996

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410830365.7A Pending CN105790926A (zh) 2014-12-26 2014-12-26 用于wia-pa安全的分组密码算法工作模式实现方法

Country Status (1)

Country Link
CN (1) CN105790926A (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109962766A (zh) * 2017-12-22 2019-07-02 中国科学院沈阳自动化研究所 基于ieee802-15-4标准的安全服务协处理器的实现方法
CN111092716A (zh) * 2018-10-24 2020-05-01 北京嘉楠捷思信息技术有限公司 一种aes算法的加密模式实现方法及装置、设备、介质
CN113055162A (zh) * 2021-03-10 2021-06-29 重庆邮电大学 一种基于国密算法的wia-pa网络安全通信方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080170691A1 (en) * 2005-03-10 2008-07-17 Sung-Cheol Chang Encryption And Decryption Device In Wireless Portable Internet System,And Method Thereof
CN101588233A (zh) * 2008-05-19 2009-11-25 北京大学深圳研究生院 无线传感器网络节点应用中aes协处理器系统与架构
CN101626289A (zh) * 2009-07-14 2010-01-13 青岛科技大学 Aes加密芯片的设计方法及电脑加密机
CN102223228A (zh) * 2011-05-11 2011-10-19 北京航空航天大学 基于fpga的aes加密芯片设计方法及嵌入式加密系统

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080170691A1 (en) * 2005-03-10 2008-07-17 Sung-Cheol Chang Encryption And Decryption Device In Wireless Portable Internet System,And Method Thereof
CN101588233A (zh) * 2008-05-19 2009-11-25 北京大学深圳研究生院 无线传感器网络节点应用中aes协处理器系统与架构
CN101626289A (zh) * 2009-07-14 2010-01-13 青岛科技大学 Aes加密芯片的设计方法及电脑加密机
CN102223228A (zh) * 2011-05-11 2011-10-19 北京航空航天大学 基于fpga的aes加密芯片设计方法及嵌入式加密系统

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
王剑等: "《第四十三讲符合WIA-PA标准的工业无线芯片关键技术研究》", 《仪器仪表标准化与测量》 *

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109962766A (zh) * 2017-12-22 2019-07-02 中国科学院沈阳自动化研究所 基于ieee802-15-4标准的安全服务协处理器的实现方法
CN111092716A (zh) * 2018-10-24 2020-05-01 北京嘉楠捷思信息技术有限公司 一种aes算法的加密模式实现方法及装置、设备、介质
CN113055162A (zh) * 2021-03-10 2021-06-29 重庆邮电大学 一种基于国密算法的wia-pa网络安全通信方法

Similar Documents

Publication Publication Date Title
CN106411518B (zh) 一种密钥不固定的对称白盒加密方法和装置
US8175265B2 (en) Systems and methods for implementing block cipher algorithms on attacker-controlled systems
CN106850221B (zh) 信息加密、解密方法及装置
CN101753292B (zh) 用于链接式加密模式的方法和设备
CN1973481B (zh) 用于进行rc4加密的装置、网络系统和方法
CN100428751C (zh) 安全通信包处理装置及其方法
US8712036B2 (en) System for encrypting and decrypting a plaintext message with authentication
JPH1075240A (ja) データ送信を保護する方法およびデータを暗号化または解読化する装置
CN102223228A (zh) 基于fpga的aes加密芯片设计方法及嵌入式加密系统
CN104065474B (zh) 一种轻量级Surge分组密码实现方法
CN102185692A (zh) 基于aes加密算法的多模式可重构加密方法
CN103621007A (zh) 加密处理装置、加密处理方法和程序
CN107078902A (zh) 基于旋转的密码术
Mohan et al. Performance analysis of AES and MARS encryption algorithms
CN111400730B (zh) 一种基于弱关联性的aes密钥扩展方法
JPH1074044A (ja) デジタルデータを符号化する方法および装置
WO2011123575A1 (en) Cryptographic processor with dynamic update of encryption state
CN107277048B (zh) 一种用于通信认证的加密解密方法
CN116846542A (zh) 一种数据加密和解密方法、装置及电子设备
CN105790926A (zh) 用于wia-pa安全的分组密码算法工作模式实现方法
Misra et al. A new encryption/decryption approach using AES
CN106788968A (zh) 应用于wia-pa协议的安全协处理器的实现方法
John Cryptography for resource constrained devices: A survey
Hasamnis et al. implementation of AES as a custom hardware using NIOS II processor
Mohan et al. Revised aes and its modes of operation

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

Application publication date: 20160720