[发明专利]一种明密文等长的AES加解密的装置有效
申请号: | 201610388115.1 | 申请日: | 2016-06-02 |
公开(公告)号: | CN105897406B | 公开(公告)日: | 2019-04-12 |
发明(设计)人: | 李高超;徐晓燕;周渊;张露晨;马秀娟;唐积强;徐小磊;毛洪亮;刘俊贤;苏沐冉;刘庆良;杨帆;何万江 | 申请(专利权)人: | 北京赛思信安技术股份有限公司;国家计算机网络与信息安全管理中心 |
主分类号: | H04L9/06 | 分类号: | H04L9/06 |
代理公司: | 北京永创新实专利事务所 11121 | 代理人: | 姜荣丽 |
地址: | 100125 北京*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | 本发明公开了一种明密文等长的AES加解密的装置,涉及信息安全技术领域。所述装置包括加密模块、解密模块及密钥管理模块;加密模块包括至少一个第一数据输入模块、至少一个第一数据管理模块、至少一个AES算法加密模块和至少一个第一数据发送模块;解密模块包括至少一个第二数据输入模块、至少一个第二数据管理模块、至少一个AES算法解密模块和至少一个第二数据发送模块。密钥管理模块用于存储主机下发的密钥,并且可以根据主机的申请将多组密钥下发给加密模块或解密模块。本发明中各核心模块均通过FPGA进行实现,FPGA通过Pcie接口与主机进行通讯,主机不可读取密钥管理模块所存储的密钥,从而避免了密钥暴露的风险,提高了安全性。 | ||
搜索关键词: | 一种 明密文 aes 解密 装置 | ||
【主权项】:
1.一种明密文等长的AES加解密的装置,其特征在于:包括加密模块、解密模块及密钥管理模块;其中加密模块包括:至少一个第一数据输入模块,用于从主机获取待加密的数据和队列信息;至少一个第一数据管理模块,用于规整数据块,并将规整后的数据送入AES算法加密模块;将密文规整并送入第一数据发送模块;至少一个AES算法加密模块,用于将第一数据管理模块送入的规整后的数据进行加密,形成密文,并将密文回送给第一数据管理模块;至少一个第一数据发送模块,用于将密文及队列信息回送给主机;解密模块包括:至少一个第二数据输入模块,用于从主机获取待解密的数据和队列信息;至少一个第二数据管理模块,用于规整数据块,并将规整后的数据送入AES算法解密模块;将明文规整并送入第二数据发送模块;至少一个AES算法解密模块,用于将第二数据管理模块送入的规整后的数据进行解密,形成明文,并将明文密文回送给第二数据管理模块;至少一个第二数据发送模块,用于将密文及队列信息回送给主机;密钥管理模块用于存储主机下发的密钥,并且根据主机的申请将多组密钥下发给加密模块或解密模块;对数据进行加密的流程为:步骤1:主机输入队列信息,指明本次加密操作的明文长度、密钥序号、操作序列号及回传主机的偏移地址;第一数据输入模块通过分析队列信息来控制明文的接收及密钥的获取;步骤2:根据队列信息中的密钥序号向密钥管理模块申请密钥,并将密钥发送给AES算法加密模块;步骤3:主机输入明文,由于输入的明文位宽为64位,而AES能够处理的数据位宽为128位,所以第一数据输入模块在缓存明文时,将主机输入的64位明文重新拼接为128位明文,拼接的规则为先输入的数据缓存到高64位,后输入的数据缓存到低64位,当输入的有效明文不足128位时,将在有效明文后添加0进行补足并缓存;当缓存至少一个128位的明文后,通知第一数据管理模块对明文进行处理;步骤4:当第一数据管理模块收到第一数据输入模块的通知后,根据要加密的明文长度从第一数据输入模块的缓存中读取数据,每次读取一个数据块,即128位的明文,如果本次读取的有效明文为128位,则将明文送入到AES算法加密模块进行加密,当加密操作完成后,将密文从AES算法加密模块取回并进行缓存,同时将取回的密文送入到第一数据发送模块;再次从第一数据输入模块缓存中读取数据,并重复以上操作;当从第一数据输入模块缓存中读取的有效明文不足128位时,将对明文和上次取回的密文进行拼接,拼接成128位的数据块,重新初始化AES算法加密模块,将拼接后的数据送入AES算法加密模块进行加密,将本次取回的密文与上次取回的密文进行拼接和移位,将拼接和移位后的密文送入到第一数据发送模块;通知第一数据发送模块所有明文已加密完成并进行发送;从而完成一整段的明文等长加密;步骤5:当第一数据发送模块收到第一数据管理模块的发送请求后,根据发送请求的长度、发送偏移地址信息,首先将队列信息作为第一个发送单元进行发送,然后从缓存中逐个读取密文进行发送,当最后一个有效密文发送完成后,再次发送一个队列信息单元来结束本次发送,同时通知第一数据输入模块本次加密操作完成,第一数据输入模块进入新的接收数据状态;对数据进行解密的流程为:步骤1:主机输入队列信息,指明本次解密操作的密文长度、密钥序号、操作序列号及回传主机的偏移地址;第二数据输入模块通过分析队列信息来控制密文的接收及密钥的获取;步骤2:根据队列信息中的密钥序号向密钥管理模块申请密钥,并将密钥发送给AES算法解密模块;步骤3:主机输入密文,由于输入的密文位宽为64位,而AES能够处理的数据位宽为128位,所以第二数据输入模块在缓存密文时,将主机输入的64位密文重新拼接为128位明文,拼接的规则为先输入的数据缓存到高64位,后输入的数据缓存到低64位,当输入的有效密文不足128位时,将在有效密文后添加0进行补足并缓存;当所有密文缓存完成后,根据密文的长度对密文进行重新拼接;步骤4:当第二数据管理模块收到第二数据输入模块的通知后,首先分析本次要解密的密文长度,如果密文长度为128位的整数倍,则根据长度从第二数据输入模块的缓存中读取数据,每次读取一个数据块,即128位的密文,将密文送入到AES算法解密模块进行解密,当解密操作完成后,将明文从AES算法加密模块取回并送入到第二数据发送模块;再次从第二数据输入模块缓存中读取数据,并重复以上操作;直到所有密文块处理完成后通知第二数据发送模块进行发送;如果密文长度非128位的整数倍,则首先从第二数据输入模块缓存中读取最后一个缓存的密文,送入AES算法解密模块进行首次解密,将解密后的明文进行缓存;再次初始化AES算法解密模块,从第二数据输入模块缓存中逐个读取密文,送入AES算法解密模块进行解密,将解密后的明文送入第二数据发送模块进行缓存;当读取到最后一个密文时,将首次解密的明文中的高位部分取出,与最后一个密文进行拼接,再送入AES算法解密模块进行解密,将该次解密得到的明文与首次解密的明文进行拼接,送入到第二数据发送模块进行发送,从而完成一次解密操作;步骤5:当第二数据发送模块收到第二数据管理模块的发送请求后,根据发送请求的长度、发送地址信息,首先将队列信息作为第一个发送单元进行发送,然后从缓存中逐个读取明文进行发送,当最后一个有效明文发送完成后,再次发送一个队列信息单元来结束本次发送,同时通知第二数据输入模块本次解密操作完成,第二数据输入模块进入新的接收数据状态。
下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京赛思信安技术股份有限公司;国家计算机网络与信息安全管理中心,未经北京赛思信安技术股份有限公司;国家计算机网络与信息安全管理中心许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/patent/201610388115.1/,转载请声明来源钻瓜专利网。
- 上一篇:加密数据输入方法及装置
- 下一篇:针对SNOW 3G加密算法的密码分析方法