公开/公告号CN105357218A
专利类型发明专利
公开/公告日2016-02-24
原文格式PDF
申请/专利权人 上海斐讯数据通信技术有限公司;
申请/专利号CN201510881396.X
发明设计人 陈学凯;
申请日2015-12-03
分类号H04L29/06(20060101);
代理机构上海硕力知识产权代理事务所;
代理人郭桂峰
地址 201616 上海市松江区思贤路3666号
入库时间 2023-12-18 14:30:45
法律状态公告日
法律状态信息
法律状态
2018-07-24
授权
授权
2016-03-23
实质审查的生效 IPC(主分类):H04L29/06 申请日:20151203
实质审查的生效
2016-02-24
公开
公开
技术领域
本发明涉及网络安全技术领域,尤其涉及一种路由器及该路由器对数据进行加密/解密的方法。
背景技术
在网络安全方面,路由器是保证数据安全的重要设备,而加密技术是保证数据安全的核心技术和有效手段,可保证数据从一个路由器发送到另一个路由器的安全性。所以在发送一些重要的绝密数据时,加密是必不可少的。如果不加密,能够分析数据流的不法分子会轻而易举的读取传输的数据甚至改变别人发送的数据,极容易造成数据的泄露,给用户带来巨大的损失。故,使用加密手段来保证传输数据的安全性受到了广泛的关注和应用。
路由器作为终端设备和英特网互连设备,位于不可信任网络和可信任网络之间,是数据转发的必经环节,在重要的场所或者转送重要信息时必须考虑对数据的加密保护。虽然一般的路由器都含有嵌入式微处理单元,但其运算能力极低,不能满足高速率对数据流进行加解密处理的要求。
另外,目前,较为常用的加密方式为软件方式,虽然其能够满足个人使用,但若用于政府部门、金融机构等高安全性、大数据量的情况下,软件加密的缺点就暴露出来,包括:软件加密要占用较多主机资源、软件实现速度慢、程序的运行容易被跟踪、密钥口令不易管理、病毒软件特别是木马程序后门程序带来威胁等等。
发明内容
针对上述问题,本发明提供了一种具备硬件加解密功能的路由器及其加解密方法,其通过在将基于现场可编程门阵列(Field-ProgrammableGateArray,以下简称FPGA)的硬件算法集成在传统的路由器上,实现对传输数据的加解密和高速转发。
本发明提供的技术方案如下:
一种具备硬件加解密功能的路由器,包括相互连接的路由功能模块和基于FPGA的硬件加解密模块,所述硬件加解密模块对所述路由功能模块从外界接收的明文进行加密或对路由功能模块从外界接收的密文进行解密,且所述路由功能模块将所述硬件加解密模块加密生成的加密数据或解密生成的解密数据经由无线信道发送出去。
在本技术方案中,在现有的路由器中内置硬件加解密模块,这样,在工作过程中使用该硬件加解密模块对路由器接收到的明文或者密文进行加密或者解密,不但具备通过软件的方式实现加密或解密的灵活性,同时具备高效、快速、强物理安全性、成本低和开发周期短等众多优点。
进一步优选地,所述硬件加解密模块中包括:FPGA处理器、第一数据接收单元、密钥生成器、内置于所述FPGA处理器的第一寄存器、内置于所述FPGA处理器的第一配置单元、加解密单元以及第一数据发送单元,其中,
所述第一数据接收单元,与所述路由功能模块连接,所述第一数据接收单元用于接收所述路由功能模块发送的需要进行加密的明文或需要进行解密的密文、用于接收所述路由功能模块发送的寄存器配置指令以及用于接收所述路由功能模块发送的控制所述密钥生成器产生密钥的控制指令;
所述第一配置单元,用于根据所述寄存器配置指令配置所述第一寄存器的工作模式;
所述密钥生成器,与所述FPGA处理器连接,所述密钥生成器在所述FPGA处理器的控制下根据所述控制指令生成加密密钥或解密密钥;
所述加解密单元,分别与所述FPGA处理器和所述密钥生成器连接,所述加解密单元在所述FPGA处理器的控制下使用所述加密密钥对所述明文进行加密或使用所述解密密钥对所述密文进行解密,并将生成的加密数据或解密数据缓存在所述第一寄存器中;
所述第一数据发送单元,与所述FPGA处理器连接,所述第一数据发送单元在所述FPGA处理器的控制下将所述第一寄存器中缓存的所述加密数据或所述解密数据发送至所述路由功能模块。
在本技术方案中,硬件加解密模块在FPGA处理器的控制下实现明文/密文的接收、加密/解密以及加密数据/解密数据的发送等操作,实现本发明的目的。
进一步优选地,所述密钥生成器中包括:随机数发生单元、密钥扩展单元以及存储单元,其中,
所述随机数发生单元,与所述FPGA处理器连接,所述随机数发生单元在所述FPGA处理器的控制下产生随机密钥,并将所述随机密钥发送至所述第一寄存器中进行缓存;
所述密钥扩展单元,分别与所述FPGA处理器和所述存储单元连接,所述密钥扩展单元在所述FPGA处理器的控制下对所述第一寄存器中缓存的所述随机密钥进行扩展生成加解密密钥,并将所述加解密密钥发送至所述存储单元中进行存储。
进一步优选地,所述第一数据接收单元为一串并转换接口,所述第一数据发送单元为一并串转换接口;所述第一寄存器的工作模式为先进先出模式。
进一步优选地,所述硬件加解密模块中还包括一认证单元,所述认证单元分别与现场可编程门阵列处理器和所述加解密单元连接;
当所述硬件加解密模块接收到所述路由功能模块发送的需要进行解密的密文时,所述加解密单元使用加密该密文过程中缓存在所述第一寄存器中的随机密钥对所述密文的报头进行加密生成第一报头加密信息;同时所述加解密单元使用加密该密文过程中缓存在所述第一寄存器中的随机密钥对缓存在所述第一寄存器中的该密文的报头进行加密生成第二报头加密信息;所述认证单元将所述第一报头加密信息和所述第二报头加密信息进行比对,实现接收的所述密文的认证。
在本技术方案中,在硬件加解密模块中,在对密文进行解密之前,首先要对该密文的报头进行身份认证,只有当身份认证成功了,才会进入后续的解密程序;当身份认证不成功,会将该密文进行丢弃处理。
进一步优选地,所述硬件加解密模块为基于FPGA的高级加密标准(AdvancedEncryptionStandard,以下简称AES)硬件加解密模块。
AES是对数据按128位,也就是16个字节进行分组进行加解密的,每次对一组数据加解密需要运行多轮。而输入密钥的长度可以为128、192和256位,也就是16个字节、24个字节和32个字节,如果用户输入的密钥长度不是这几种长度,则会自动补成这几种长度。无论输入密钥是多少字节,在加解密的过程中还是以16字节的数据一组来进行的,密钥长度的不同影响加密运行的轮数。
进一步优选地,所述路由功能模块中包括:路由微处理单元、内置于所述路由微处理器中的第二配置单元、内置在所述路由微处理单元中的第二寄存器、第二数据接收单元以及第二数据发送单元,所述第二数据接收单元、所述第二数据发送单元和所述第二配置单元分别与所述路由微处理单元连接;
在接收明文或密文的过程中:所述路由功能模块通过所述第二数据接收单元接收外界发送的明文或密文,并将其发送至所述路由微处理单元;所述路由微处理单元对接收到的所述明文或密文进行报文解析,并将经过报文解析后的明文或密文缓存在所述第二寄存器中,最后将缓存在所述第二寄存器中的经过报文解析后的明文或密文通过所述第二数据发送单元发送至所述硬件加解密模块;
在发送经过加解密生成的加密数据或解密数据的过程中:所述路由功能模块通过所述第二数据接收单元接收所述硬件加解密模块生成的加密数据或解密数据并进行封装,并将经过封装的加密数据或解密数据缓存在所述第二寄存器中,最后将缓存在所述第二寄存器中的封装后的加密数据或解密数据经由无线信道发送出去;
所述第二配置单元,用于配置所述路由微处理单元中内置第二寄存器的工作模式。
在本技术方案中可以看出,在对明文或密文进行加密或解密的过程中,路由功能模块实际上用于数据的转发,而不进行加解密的操作。且硬件加解密模块在工作过程中可以看作一个处于电脑端以太网数据和路由器中微处理单元之间可以独自工作的一个小系统,物理隔绝性非常好,不易受到外界的影响。
进一步优选地,所述第二数据接收单元包括以太网数据接口和/或无线收发接口;所述第二寄存器的工作模式为先进先出模式。
本发明还提供了一种路由器加密方法,应用于上述具备硬件加解密功能的路由器,所述路由器加密方法包括以下步骤:
S100路由功能模块从外界接收需要进行加密的明文,并将所述明文发送至所述硬件加解密模块;
S110所述硬件加解密模块对所述明文进行加密,并将加密生成的加密数据发送至所述路由功能模块;
S120所述路由功能模块将所述加密数据经由无线信道发送出去。
进一步优选地,在步骤S100中,具体包括:
S101所述路由功能模块从外界接收需要进行加密的明文;
S102所述路由功能模块对接收到的所述明文进行报文解析;
S103所述路由功能模块对其内置的第二寄存器的工作模式进行配置;
S104所述路由功能模块将经过报文解析后的明文、寄存器配置指令以及控制指令发送至所述硬件加解密模块。
进一步优选地,在步骤S110中,具体包括以下步骤:
S111所述硬件加解密模块接收所述经过报文解析后的明文、寄存器配置指令以及控制指令;
S112缓存所述经过报文解析后的明文;
S113所述硬件加解密模块根据所述寄存器配置指令配置其内置的第一寄存器的工作模式;
S114所述硬件加解密模块根据所述控制指令生成随机密钥,并将所述随机密钥缓存在所述第一寄存器中;
S115所述硬件加解密模块对所述随机密钥进行扩展生成加密密钥,并将所述加密密钥进行存储;
S116所述硬件加解密模块使用所述加密密钥对所述经过报文解析后的明文进行加密生成加密数据,并将所述加密数据缓存在所述第一寄存器中;
S117所述硬件加解密模块将所述加密数据发送至所述路由功能模块。
进一步优选地,在步骤S116中,具体包括:
S1161获取加密总轮数R1;
S1162初始化当前加密轮数r1,将其初始值设定为1;
S1163判断当前加密轮数r1是否大于加密总轮数R1,若不是,跳转至步骤S1163;若是,跳转至步骤S1166;
S1164使用所述加密密钥对所述经过报文解析后的明文进行一轮加密;
S1165将r1=r1+1生成新的当前加密轮数,跳转至步骤S1163;
S1166加密结束。
进一步优选地,在步骤S120中,具体包括以下步骤:
S121所述路由功能模块接收所述加密数据;
S122所述路由功能模块对所述加密数据进行封装;
S123所述路由功能模块将封装后的加密数据经由无线信道发送出去。
本发明还提供了一种路由器解密方法,应用于上述具备硬件加解密功能的路由器,所述路由器解密方法包括以下步骤:
S200路由功能模块从外界接收需要进行解密的密文,并将所述密文发送至所述硬件加解密模块;
S210所述硬件加解密模块对所述密文进行解密,并将解密生成的解密数据发送至所述路由功能模块;
S220所述路由功能模块将所述解密数据经由无线信道发送出去。
进一步优选地,在步骤S200中,具体包括:
S201路由功能模块从外界接收需要进行解密的密文;
S202所述路由功能模块对接收到的所述密文进行报文解析;
S203所述路由功能模块对其内置的第二寄存器的工作模式进行配置;
S204所述路由功能模块将经过报文解析后的密文、寄存器配置指令以及控制指令发送至所述硬件加解密模块。
进一步优选地,在步骤S210中,具体包括以下步骤:
S211所述硬件加解密模块接收所述经过报文解析后的密文、寄存器配置指令以及控制指令;
S212缓存所述经过报文解析后的密文;
S213所述硬件加解密模块根据所述寄存器配置指令配置其内置的第一寄存器;
S214所述硬件加解密模块对所述经过报文解析后的密文的报头进行认证;
S215所述硬件加解密模块根据所述控制指令生成随机密钥,并将所述随机密钥缓存在所述第一寄存器中;
S216所述硬件加解密模块对所述随机密钥进行扩展生成解密密钥,并存储所述解密密钥;
S217所述硬件加解密模块使用所述解密密钥对所述经过报文解析后的密文进行解密生成解密数据,并缓存所述解密数据;
S218所述硬件解密模块将所述解密数据发送至所述路由功能模块。
进一步优选地,在步骤S214中具体包括以下步骤:
S2141使用加密该密文的过程中缓存在第一寄存器中的随机密钥对所述密文的报头进行加密生成第一报头加密信息;
S2142使用加密该密文过程中缓存在所述第一寄存器中的随机密钥对缓存在所述第一寄存器中的该密文的报头进行加密生成第二报头加密信息;
S2142比对所述第一报头加密信息和所述第二报头加密信息,对所述密文进行认证;
S2143若认证成功,跳转至步骤S215。
进一步优选地,在步骤S217中,具体包括:
S2171获取解密总轮数R2;
S2172初始化当前解密轮数r2,将其初始设定为1;
S2173判断当前解密轮数r2是否大于解密总轮数R2,若不是,跳转至步骤S2173;若是,跳转至步骤S2176;
S2174使用所述解密密钥对所述经过报文解析后的密文进行一轮解密;
S2175将r=r+1生成新的当前解密轮数,并跳转至步骤S1163;
S2176解密结束。
进一步优选地,在步骤S220中,具体包括以下步骤:
S221所述路由功能模块接收所述解密数据;
S222所述路由功能模块对所述解密数据进行封装;
S223所述路由功能模块将封装后的解密数据经由无线信道发送出去。
本发明提供的具备硬件加解密功能的路由器及其加解密方法,能够带来以下有益效果:
在本发明中,将基于FPGA的硬件加解密模块集成在传统路由器中,在工作过程中,不使用路由器中自身中的微处理单元对路由器中接收到的明文或密文进行加密或解密,而是使用该硬件加解密模块实现加解密。保证了路由器对接收到的明文或密文进行高速安全硬件加密或硬件解密,同时保证了路由器对加密数据/解密数据的高速有效地转发等。
再有,在本发明中,将硬件加解密模块看作一个处于电脑端以太网数据和路由器中微处理单元之间可以独自工作的一个小系统,物理隔绝性非常好,硬件加解密模块在工作过程中不易受到外界的影响;且在硬件加解密模块中进行的控制逻辑、时序控制、密钥扩展等绝大部分工作都在硬件中完成,难以被跟踪和被破解,进而能够有效地防止不法分子的逆向破解等等,保障了加密数据的绝对安全。
再有,本发明中的硬件加解密模块为基于FPGA的AES硬件加解密模块,将其应用在路由器中,不但使本发明中的路由器具备通过软件的方式实现加密或解密的灵活性,同时具备高效、快速、强物理安全性、成本低和开发周期短等众多优点。
再有,在本发明中,硬件加解密模块在进行加解密的过程中,采用循环迭代结构实现轮函数,当循环迭代的次数达到加密/解密总轮数,输出加密/解密结果,完成硬件加解密模块的加密/解密过程。采用这种方法,将整个过程分划分为前后相连的多级实体,这样同一时间段内有多个数据块同时在各级中处理,进而大大提高了系统的吞吐量。
最后,本发明提供的路由器可适用于各种场合的数据转发环境,尤其适用于对数据有很高保密要求的部门等众多场所。在本发明的硬件基础上只需要把软件稍加更改就可以使这款路由器变成一个高保密的网关设备等等。
附图说明
下面将以明确易懂的方式,结合附图说明优选实施方式,对上述特性、技术特征、优点及其实现方式予以进一步说明。
图1为本发明中提供的具备硬件加解密功能的路由器的第一种实施方式的结构示意图;
图2为本发明中提供的具备硬件加解密功能的路由器的第二种实施方式的结构示意图;
图3为本发明中提供的具备硬件加解密功能的路由器的第三种实施方式的结构示意图;
图4为本发明中提供的具备硬件加解密功能的路由器的第四种实施方式的结构示意图;
图5为本发明中提供的具备硬件加解密功能的路由器的第五种实施方式的结构示意图;
图6为本发明中路由器加密方法流程示意图;
图7为本发明中路由器解密方法流程示意图。
附图标号说明:
100-路由器,110-路由功能模块,120-硬件加解密模块,121-FPGA处理器,122-第一数据接收单元,123-密钥生成器,124-加解密单元,125第一数据发送单元,126-认证单元,1231-随机数发生单元,1232-密钥扩展单元,1233-存储单元,111-路由微处理单元,112-第二数据接收单元,113-第二数据发送单元。
具体实施方式
如图1所示为本发明提供的具备硬件加解密功能的路由器100的第一种实施方式的结构示意图,从图中可以看出,在该路由器100中包括相互连接的路由功能模块110和基于FPGA的硬件加解密模块120。在工作过程中,首先,路由功能模块110从外界接收需要进行加密的明文或接收需要进行解密的密文;随后,路由功能模块110将接收到的明文或密文发送至硬件加解密模块120;硬件加解密模块120接收到了路由功能模块110发送的明文或密文时,随即对其进行加密或解密,并将生产的加密数据或解密数据发送至所述路由功能模块110;最后,路由功能模块110将接收到的加密数据或解密生成的解密数据经由无线信道发送出去。
在一个具体实施例中,在选择型号为MT7620n的传统路由功能模块110的基础上集成基于FPGA的AES硬件加解密模块120,且选用型号为EP1C6Q240的FPGA芯片,在该FPGA芯片中使用VerilogHDL实现硬件加解密的功能。当然,在该实施例中还需要附加一些外围电路内置在该路由器100中,制作成具有高强度数据保密功能的新型路由器100。以下以硬件加解密模块120为AES硬件加解密模块120为例:
在加密过程中,首先,需要进行加密的明文经有线以太网传输到路由器100中的路由功能模块110中;路由功能模块110随即使用无线IEEE802.3协议对该明文进行数据帧的分析后通过SPI(SerialPeripheralInterface,串行外设接口)总线转送到FPGA中的硬件加解密模块120中进行加密得到相应的密文,再将得到的密文转发给路由功能模块110;路由功能模块110通过IEEE802.11MAC协议对其中的数据帧进行封装之后通过无线物理层发送到无线信道之中,经天线辐射到信号覆盖空间;具备无线功能终端(如,智能手机、平板电脑等)就能接收该密文。相对应地,在解密过程中,首先,需要进行解密的密文经有线以太网传输到路由器100中的路由功能模块110中;路由功能模块110随即使用无线IEEE802.3协议对该密文进行数据帧的分析后通过SPI总线转送到FPGA中的硬件加解密模块120中进行解密得到相应的明文,再将得到的明文转发给路由功能模块110;路由功能模块110通过IEEE802.11MAC协议对其中的数据帧进行封装之后通过无线物理层发送到无线信道之中,经天线辐射到信号覆盖空间;具备无线功能终端(如,智能手机、平板电脑等)就能接收该明文。
从上述对具体实施例中加密过程和解密过程的描述中可以看出,在本实施方式中,对路由器100接收到的明文或密文进行加密或解密的过程不在传统路由器100中的路由功能模块110(IEEE802.11MAC层内部实现)中进行,而是通过基于FPGA的AES加解密模块对其进行加密或解密之后转发到路由功能模块110,再由路由功能模块110进行转发即可。
对上述第一种实施方式进行改进得到第二种实施方式,如图2所示,在本实施方式中,硬件加解密模块120中包括:FPGA处理器121、第一数据接收单元122、密钥生成器123、内置于FPGA处理器121的第一寄存器、内置于FPGA处理器121的第一配置单元、加解密单元124以及第一数据发送单元125,其中,第一数据接收单元122与路由功能模块110连接,密钥生成器123与FPGA处理器121连接,加解密单元124分别与FPGA处理器121和第一寄存器连接,第一数据发送单元125分别与FPGA处理器121和第一寄存器连接。在工作过程中,首先,第一数据接收单元122接收路由功能模块110发送的需要进行加密的明文或需要进行解密的密文、接收路由功能模块110发送的寄存器配置指令以及接收路由功能模块110发送的控制密钥生成器123产生密钥的控制指令,且将接收到的明文/密文、寄存器配置指令和控制指令分别缓存在第一寄存器中;随后,第一配置单元第一寄存器中缓存的寄存器配置指令配置第一寄存器的工作模式;密钥生成器123在FPGA处理器121的控制下根据控制指令生成加密密钥或解密密钥;接着,加解密单元124在FPGA处理器121的控制下使用加密密钥对明文进行加密或使用解密密钥对密文进行解密,并将生成的加密数据或解密数据缓存在第一寄存器中;最后,第一数据发送单元125在FPGA处理器121的控制下将第一寄存器中缓存的加密数据或解密数据发送至路由功能模块110。在一个具体实施例中,上述第一数据接收单元122为一串并转换接口、第一数据发送单元125为一并串转换接口;第一寄存器的工作模式为先进先出模式。
对上述第二实施方式进行改进得到第三种实施方式,如图3所示,密钥生成器123中包括:随机数发生单元1231、密钥扩展单元1232以及存储单元1233,其中,随机数发生单元1231与FPGA处理器121连接,密钥扩展单元1232分别与FPGA处理器121和存储单元1233连接。在工作的过程中,当硬件加解密模块120接收到路由功能模块110发送的控制指令之后,FPGA处理器121随即控制随机数发生单元1231产生随机密钥,并将生成的随机密钥缓存在第一寄存器中;随后,FPGA处理器121控制密钥扩展单元1232对随机密钥进行扩展生成加解密密钥,并将加解密密钥发送至存储单元1233中进行存储,这样加解密单元在对明文/密文进行加密/解密的过程中只需要从存储单元1233中获取存储的加解密密钥即可。由第一种实施方式中我们知道,硬件加解密模块120为基于FPGA的AES硬件加解密模块120,基于AES算法的属性,在使用AES加解密模块对明文进行加密或对密文进行解密的过程中,需要对随机数发生单元1231生成的随机密钥进行扩展得到需要的加解密密钥,故在本实施方式中,我们设置了密钥扩展单元实现这一目的。在一个具体实施例中,上述AES算法数据宽度为128bit(比特),密钥长度为192bit,相对应的加密/解密轮数为12。
对上述第三种实施方式进行改进得到第四种实施方式,如图4所示,在本实施方式中,硬件加解密模块120中还包括一分别与第一寄存器以及加解密单元124连接的认证单元126。具体来说,当硬件加解密模块120接收到路由功能模块110发送的需要进行解密的密文时,加解密单元124使用加密该密文过程中缓存在第一寄存器中的随机密钥对密文的报头进行加密生成第一报头加密信息;同时加解密单元124使用加密该密文过程中缓存在第一寄存器中的随机密钥对缓存在第一寄存器中的该密文的报头进行加密生成第二报头加密信息;认证单元126将第一报头加密信息和第二报头加密信息进行比对,实现接收的密文的认证。在该过程中,只有当身份认证成功了,才会进入后续的解密程序;当身份认证不成功,会将该密文进行丢弃处理。当然,在其他实施例中还可以采用其他的方式对接收到密文的报头进行认证,如奇偶校验等,可以根据实际情况进行设定。
对上述第四种实施方式进行改进得到第五种实施方式,如图5所示,路由功能模块110中包括:路由微处理单元111、内置在路由微处理单元111中的第二配置单元、内置在路由微处理单元111中的第二寄存器、第二数据接收单元112以及第二数据发送113单元112,第二数据接收单元112、第二数据发送113单元112和第二配置单元分别与路由微处理单元111连接。在该实施方式中,在接收明文或密文的过程中:路由功能模块110通过第二数据接收单元112接收外界发送的明文或密文,并将其发送至路由微处理单元111;路由微处理单元111对接收到的明文或密文进行报文解析,并将经过报文解析后的明文或密文缓存在第二寄存器中,最后将缓存在第二寄存器中的经过报文解析后的明文或密文通过第二数据发送113单元112发送至硬件加解密模块120。相对应地,在发送经过加解密生成的加密数据或解密数据的过程中:路由功能模块110通过第二数据接收单元112接收硬件加解密模块120生成的加密数据或解密数据并进行封装,并将经过封装的加密数据或解密数据缓存在第二寄存器中,最后将缓存在第二寄存器中的封装后的加密数据或解密数据经由无线信道发送出去。第二配置单元,用于配置路由微处理单元111中内置第二寄存器的工作模式。在具体实施例中,上述第二数据接收单元112包括以太网数据接口和/或无线收发接口;第二寄存器的工作模式为先进先出模式。
作为一个具体实施例,在加密过程中,首先,需要进行加密的明文经有线以太网传输到路由器100中的路由功能模块110的路由微处理单元111中;路由微处理单元111随即使用无线IEEE802.3协议对该明文进行数据帧的分析后通过SPI总线转送到FPGA中的硬件加解密模块120中的加解密模块中进行加密得到相应的密文,再将得到的密文转发给路由微处理单元111;路由微处理单元111通过IEEE802.11MAC协议对其中的数据帧进行封装之后通过无线物理层发送到无线信道之中,经天线辐射到信号覆盖空间;具备无线功能终端(如,智能手机、平板电脑等)就能接收该密文。解密过程为这个反过程,在此不做赘述。
如图6所示,本发明还提供了一种路由器100加密方法,该加密方法应用于上述的具备硬件加解密功能的路由器100,该路由器100加密方法包括以下步骤:
S100路由功能模块110从外界接收需要进行加密的明文,并将明文发送至硬件加解密模块120。具体来说,在该步骤中,包括:
S101路由功能模块110从外界接收需要进行加密的明文。
S102路由功能模块110对接收到的明文进行报文解析。
S103路由功能模块110对其内置的第二寄存器的工作模式进行配置。
S104路由功能模块110将经过报文解析后的明文、寄存器配置指令以及控制指令发送至硬件加解密模块120。
S110硬件加解密模块120对明文进行加密,并将加密生成的加密数据发送至路由功能模块110。具体来说,在该步骤中,包括以下步骤:
S111硬件加解密模块120接收经过报文解析后的明文、寄存器配置指令以及控制指令。
S112缓存经过报文解析后的明文。
S113硬件加解密模块120根据寄存器配置指令配置其内置的第一寄存器的工作模式。
S114硬件加解密模块120根据控制指令生成随机密钥,并将随机密钥缓存在第一寄存器中。
S115硬件加解密模块120对随机密钥进行扩展生成加密密钥,并将加密密钥进行存储。
S116硬件加解密模块120使用加密密钥对经过报文解析后的明文进行加密生成加密数据,并将加密数据缓存在第一寄存器中。更进一步来说,在该步骤中,具体包括:
S1161获取加密总轮数R1;
S1162初始化当前加密轮数r1,将其初始值设定为1;
S1163判断当前加密轮数r1是否大于加密总轮数R1,若不是,跳转至步骤S1163;若是,跳转至步骤S1166;
S1164使用加密密钥对经过报文解析后的明文进行一轮加密;
S1165将r1=r1+1生成新的当前加密轮数,跳转至步骤S1163;
S1166加密结束。
S117硬件加解密模块120将加密数据发送至路由功能模块110。
S120路由功能模块110将加密数据经由无线信道发送出去。具体来说,在该步骤中,具体包括以下步骤:
S121路由功能模块110接收加密数据;
S122路由功能模块110对加密数据中的数据帧进行封装;
S123路由功能模块110将封装后的加密数据经由无线信道发送出去。
在一个具体实施例中,以下我们对硬件加解密模块120中加密的过程进行详细描述,在该过程中,第一寄存器中具体包括2个寄存器,分别为寄存器1和寄存器2:
对路由器100进行上电,初始化该路由器100设备,路由功能模块110中的路由微处理单元111将其内置的第二寄存器配置为先进先出模式。
路由器100通过以太网或无线的方式接收需要进行加密的明文,同时路由功能模块110中的路由微处理单元111对接收到的明文进行报文解析,并将经过解析后的明文缓存在第一寄存器中;接着将进行了报文解析的明文发送至硬件加解密模块120中。
硬件加解密模块120中的FPGA处理器121将接收到的明文缓存在第一寄存器(寄存器1)中;同时控制随机数生成单元产生随机密钥,并将其缓存在内置的第一寄存器(寄存器2)中;之后对生成的随机密钥进行扩展生成加密密钥(这个过程中将寄存器2设置为0,将随机密钥送至密钥扩展单元1232中);接着,硬件加解密模块120中的加解密单元124根据接收到的明文使用加密密钥对其进行加密。
加解密单元124在对其进行加密的过程中,首先得到加密总轮数R1,随后基于该加密总轮数对明文(在这个过程中将寄存器1设置为1,将第一寄存器中存储的明文发送至加解密单元124中)进行一轮一轮的加密,直到加密的轮数达到该加密总轮数R1完成对明文的加密生成加密数据并进行缓存。最后将加密数据反馈回路由微处理单元111中;路由微处理单元111接收到该加密数据之后,对其进行封装再经由无线信道发送出去。具体,在这个实施例中,上述AES算法数据宽度为128bit(比特),密钥长度为192bit,相对应的加密/解密轮数为12(加密总轮数R1),即对明文加密12轮得到密文。
如图7所示,本发明还提供了一种路由器100解密方法,应用于上述具备硬件加解密功能的路由器100,路由器100解密方法包括以下步骤:
S200路由功能模块110从外界接收需要进行解密的密文,并将密文发送至硬件加解密模块120。具体来说,与路由器100加密方法类似,在该步骤中,包括以下步骤:
S201路由功能模块110从外界接收需要进行解密的密文。
S202路由功能模块110对接收到的密文进行报文解析。
S203路由功能模块110对其内置的第二寄存器的工作模式进行配置。
S204路由功能模块110将经过报文解析后的密文、寄存器配置指令以及控制指令发送至硬件加解密模块120。
S210硬件加解密模块120对密文进行解密,并将解密生成的解密数据发送至路由功能模块110。具体来说,与路由器100加密方法类似,在该步骤中,包括以下步骤:
S211硬件加解密模块120接收经过报文解析后的密文、寄存器配置指令以及控制指令。
S212缓存经过报文解析后的密文。
S213硬件加解密模块120根据寄存器配置指令配置其内置的第一寄存器。
S214硬件加解密模块120对经过报文解析后的密文的报头进行认证。具体包括:
S2141使用加密该密文的过程中缓存在第一寄存器中的随机密钥对密文的报头进行加密生成第一报头加密信息;
S2142使用加密该密文过程中缓存在第一寄存器中的随机密钥对缓存在第一寄存器中的该密文的报头进行加密生成第二报头加密信息;
S2142比对第一报头加密信息和第二报头加密信息,对密文进行认证;
S2143若认证成功,跳转至步骤S215。
S215硬件加解密模块120根据控制指令生成随机密钥,并将随机密钥缓存在第一寄存器中。
S216硬件加解密模块120对随机密钥进行扩展生成解密密钥,并存储解密密钥。
S217硬件加解密模块120使用解密密钥对经过报文解析后的密文进行解密生成解密数据,并缓存解密数据。具体包括:
S2171获取解密总轮数R2;
S2172初始化当前解密轮数r2,将其初始设定为1;
S2173判断当前解密轮数r2是否大于解密总轮数R2,若不是,跳转至步骤S2173;若是,跳转至步骤S2176;
S2174使用解密密钥对经过报文解析后的密文进行一轮解密;
S2175将r=r+1生成新的当前解密轮数,并跳转至步骤S1163;
S2176解密结束。
S218硬件解密模块将解密数据发送至路由功能模块110。
S220路由功能模块110将解密数据经由无线信道发送出去。在该步骤中,具体包括以下步骤:
S221路由功能模块110接收解密数据;
S222路由功能模块110对解密数据进行封装;
S223路由功能模块110将封装后的解密数据经由无线信道发送出去。
在一个具体实施例中,以下我们对硬件加解密模块120中解密的过程进行详细描述,在该过程中,第一寄存器中具体包括2个寄存器,分别为寄存器1和寄存器2:
对路由器100进行上电,初始化该路由器100设备,路由功能模块110中的路由微处理单元111将其内置的第二寄存器配置为先进先出模式。
路由器100通过以太网或无线的方式接收需要进行解密的密文,同时路由功能模块110中的路由微处理单元111对接收到的密文进行报文解析,并将经过解析后的密文缓存在第一寄存器中;接着将进行了报文解析的密文发送至硬件加解密模块120中。
硬件加解密模块120中的FPGA处理器121将接收到的密文缓存在第一寄存器(寄存器1)中;且在对该密文进行解密之前首先对该密文的报头进行认证。在认证的过程中,首先,在使用加密该密文的过程中缓存在第一寄存器(寄存器2)中的随机密钥对密文的报头进行加密生成第一报头加密信息;随后,使用加密该密文过程中缓存在第一寄存器(寄存器2)中的随机密钥对缓存在第一寄存器(寄存器1)中的该密文的报头进行加密生成第二报头加密信息;接着,比对第一报头加密信息和第二报头加密信息,对密文进行认证;若比对成功,则说明认证成功,进入解密过程;相反,若比对失败,则说明认证失败,将该密文进行丢弃处理。
之后,FPGA处理器121控制随机数生成单元产生随机密钥,并将其缓存在内置的第一寄存器(寄存器2)中;之后对生成的随机密钥进行扩展生成解密密钥(这个过程中将第一寄存器(寄存器2)设置为0,将随机密钥送至密钥扩展单元1232中);接着,硬件加解密模块120中的加解密单元124根据接收到的密文使用解密密钥对其进行解密。
加解密单元124在对其进行解密的过程中,首先得到解密总轮数R2,随后基于该解密总轮数对密文(在这个过程中将第一寄存器(寄存器1)设置为0,将第一寄存器中存储的密文发送至加解密单元124中)进行一轮一轮的解密,直到解密的轮数达到该解密总轮数R2完成对密文的解密生成解密数据并进行缓存。最后将解密数据反馈回路由微处理单元111中;路由微处理单元111接收到该解密数据之后,对其进行封装再经由无线信道发送出去。具体,在这个实施例中,上述AES算法数据宽度为128bit(比特),密钥长度为192bit,相对应的加密/解密轮数为12(加密总轮数R2),即对密文解密12轮得到明文。
应当说明的是,上述实施例均可根据需要自由组合。以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
机译: 一种实现sms4算法的高效加解密处理方法
机译: 一种实现SMS4算法的高效处理加解密方法。
机译: 一种实现sms4算法的高效加解密处理方法