一种基于分组密码算法的加密处理方法

文档序号:7644784阅读:188来源:国知局
专利名称:一种基于分组密码算法的加密处理方法
技术领域
本发明涉及一种基于分组密码算法的加密处理方法。
技术背景分组密码算法主要包括DES算法、3DES算法、AES算法、IDEA算法、SMS4 算法等。实现分组密码算法的关键部件是密钥扩展单元、加密单元和子密钥阵 列存储单元。密钥扩展单元与加密单元的内部结构及处理过程基本相同。其中 加密单元主要由数据寄存部件、数据转换部件构成。数据寄存部件主要采用通用触发器,用于数据的寄存。在一个时钟周期内, 该部件所寄存的数据不改变。通用触发器是数据暂存器件,其在时钟上升沿或 下降沿把数据输入端的数据输至触发器输出端,而在其他时刻触发器输出端的 数据不发生变化。数据转换部件是按照分组密码算法要求进行数据处理的部件。例如,按照 国家的SMS4密码算法要求进行数据处理的部件。数据转换部件完成的操作中只 有一次密码算法所规定的合成置换。子密钥阵列存储单元用来存储子密钥阵列。现有技术中的子密钥阵列一般 是加解处理之前已经准备好的、由密钥扩展单元生成的数据阵列。在SMS4密码 算法中子密钥阵列存储单元的数据是按照地址高低顺序排列的,可命名为rk0, rkl, …rk31。参见图1,目前按照SMS4密码算法要求进行加解密数据处理的过程包括两 个独立的阶段密钥扩展阶段和数据加密阶段。首先由密钥扩展单元将密钥扩 展成子密钥阵列并按照先后顺序存储于子密钥阵列存储单元,然后才是加密单 元利用密钥扩展生成的子密钥阵列完成数据的加密工作。A、密钥扩展阶段-1) 密钥输入密钥扩展单元数据寄存部件外部密钥经过初步处理输入密钥扩展单元数据寄存部件100寄存;2) 进行数据转换处理密钥扩展单元数据寄存部件100寄存的数据输入密钥扩展单元数据转换部
件101进行转换处理; 3)数据迭代处理将上次转换处理后的数据存入密钥扩展单元数据转换部件100,同时将得到 的子密钥存入子密钥阵列存储单元2的第一行,然后密钥扩展单元数据寄存部件100寄存的数据再次输入密钥扩展单元数据转换部件101再次进行数据转换, 并将处理得到的子密钥存入子密钥阵列存储单元2的下一行,重复处理32次数 据转换得32X32bit二1024bit的子密钥阵列。B、数据加密阶段1) 外部数据输入加密单元数据寄存部件外部数据输入至加密单元数据寄存部件300进行寄存;2) 数据转换处理加密单元数据寄存部件300寄存的数据输入加密单元数据转换部件301,同 时子密钥阵列存储单元2所存储的子密钥阵列的第一行对应的数据输入加密单 元数据转换部件301进行转换处理;3) 数据迭代处理将前次数据转换处理后的数据再次寄存到加密单元数据寄存部件300,然后 加密单元数据寄存部件300寄存的数据再次输入加密单元数据寄存部件301,同 时子密钥阵列存储单元2的下一行子密钥也输入至加密单元数据转换部件301, 进行再次数据转换处理,重复进行32次处理得到最终的数据处理结果。这样处 理一组数据需要32个时钟周期,效率较低。为了改善上述加密效率较低的情况,又提出了通过增加数据转换部件个数 的方案来提高处理效率的方法,参见图2。图2中方案16个时钟周期可以处理 一组128bit的数据。在这些现有技术方案中子密钥阵列存储部件是其必须部件。 1024bit的子密钥阵列存储部件在集成电路中可以用寄存器实现,这将消耗1万 门左右的逻辑资源(图1的方案中总的资源消耗为2. 5万门左右),占据总资源 的40%左右,极大的增加了实现成本;也可以用嵌入RAM块的方法实现,但会 增加集成电路设计的复杂度,增加风险。 发明内容本发明的目的是提供一种低成本高效率的基于分组密码算法的加密处理方
法,其解决了现有基于分组密码算法的加密处理方法加密效率低、实现成本高 的技术问题。本发明的技术解决方案是一种基于分组密码算法的加密处理方法,包括以下步骤1]外部密钥寄存在一个时钟周期的时钟沿到来时,将经过处理的外部密 钥输入至密钥扩展单元数据寄存部件100寄存;2]外部数据寄存在该时钟周期的时钟沿到来时,将一组外部数据输入至 加密单元数据寄存部件300寄存;3]密钥扩展在该时钟周期内,将密钥扩展单元数据寄存部件100的寄存 数据输入至密钥扩展单元数据转换部件101进行密钥扩展,将得到的子密钥输 入至加密单元数据转换部件301;4]数据加密转换在该时钟周期内,将加密单元数据寄存部件300的寄存数据输入至加密单元数据转换部件301,加密单元数据转换部件301进行数据加 密转换;5]内部数据寄存在下一时钟周期的时钟沿到来时,将密钥扩展单元数据 转换部件101得到的数据输入至密钥扩展单元数据寄存部件100寄存;将加密单元数据转换部件301得到的数据输入至加密单元数据寄存部件300寄存;6]数据迭代处理重复密钥扩展步骤、数据加密转换步骤和内部数据寄存 步骤,直到将数据进行分组密码算法规定的转换次数,该组数据加密完毕。上述密钥扩展步骤为在该时钟周期内,将密钥扩展单元数据寄存部件100 的寄存数据输入至密钥扩展单元数据转换部件101进行密钥扩展,将得到的子密钥输入至加密单元数据转换部件301,同时将密钥扩展单元数据转换部件101的输出数据输入至下一个密钥扩展单元数据转换部件101;多个密钥扩展单元数 据转换部件101依次进行密钥扩展;所述数据加密转换步骤为在该时钟周期内,将加密单元数据寄存部件300的寄存数据输入至加密单元数据转换部件301, 加密单元数据转换部件301进行数据加密转换,将加密单元数据转换部件301的输出数据输入至下一个加密单元数据转换部件301;多个加密单元数据转换部 件301依次进行数据加密;所述内部数据寄存步骤为在下一时钟周期的时钟沿到来时,将最后一个密钥扩展单元数据转换部件101的输出数据输入至密钥
扩展单元数据寄存部件100寄存;将最后一个加密单元数据转换部件301的输 出数据输入至加密单元数据寄存部件300寄存。上述外部密钥寄存步骤和外部数据寄存步骤之间还可包括密钥预先扩展步骤和密钥缓冲寄存步骤;所述密钥预先扩展步骤为在外部密钥寄存步骤所在 时钟周期内,将密钥扩展单元数据寄存部件100的寄存数据输入至密钥扩展单 元数据转换部件101进行密钥扩展,并将得到的子密钥输入与之相连的子密钥 寄存部件401的输入端;将密钥扩展单元数据转换部件101转换得到的数据输 入至密钥扩展单元数据寄存部件100的输入端;所述密钥缓冲寄存步骤为在 外部密钥寄存步骤后的下一个时钟周期的时钟沿到来时,将密钥扩展单元数据 转换部件101转换得到的数据输入至密钥扩展单元数据寄存部件100寄存;将 密钥扩展单元数据转换部件101的子密钥输入至子密钥寄存部件401寄存。所 述外部数据寄存步骤为外部密钥寄存步骤后的下一个时钟周期的时钟沿到来 时,将一组外部数据输入至加密单元数据寄存部件300寄存;所述密钥扩展步 骤为在该时钟周期内,将密钥扩展单元数据寄存部件100的寄存数据输入至 密钥扩展单元数据转换部件101进行密钥扩展,并将得到的子密钥输入与之相连的子密钥寄存部件401的输入端,同时将密钥扩展单元数据转换部件101的输出数据输入至密钥扩展单元数据寄存部件100的输入端;将子密钥寄存部件 401输出的子密钥输入至加密单元数据转换部件301;所述数据加密转换步骤为在该时钟周期内,将加密单元数据寄存部件300的寄存数据输入至加密单元数 据转换部件301;加密单元数据转换部件301进行数据加密转换,将加密单元数 据转换部件301的输出数据输入至加密单元数据寄存部件300的输入端;所述 内部数据寄存步骤为在下一个时钟周期的时钟沿到来时,将密钥扩展单元数 据转换部件101转换得到的数据输入至密钥扩展单元数据寄存部件100寄存; 将密钥扩展单元数据转换部件101的子密钥输入至子密钥寄存部件401寄存;将加密单元数据转换部件301转换得到的数据输入至加密单元数据寄存部件300寄存。上述密钥预先扩展步骤还可为在外部密钥寄存步骤所在时钟周期内,将密钥扩展单元数据寄存部件100的寄存数据输入至第一个密钥扩展单元数据转 换部件101进行密钥扩展,并将得到的子密钥输入至与之相连的第一子密钥寄
存部件401的输入端,同时将第一个密钥扩展单元数据转换部件101的输出数据输入至下一个密钥扩展单元数据转换部件101,进行第二次密钥扩展;多个密钥扩展单元数据转换部件101依次进行转换,并将生成的子密钥输入与之相连 的子密钥寄存部件401的输入端,最后一个密钥扩展单元数据转换部件101的输出数据输入至密钥扩展单元数据寄存部件100的输入端;所述密钥缓冲寄存 步骤为在外部密钥寄存步骤后的下一个时钟周期的时钟沿到来时,将最后一 个密钥扩展单元数据转换部件101转换得到的数据输入至密钥扩展单元数据寄 存部件100寄存;将密钥扩展单元数据转换部件101的子密钥输入与之对应子 密钥寄存部件401寄存;所述密钥扩展步骤为在该时钟周期内,将密钥扩展 单元数据寄存部件100的寄存数据输入至第一个密钥扩展单元数据转换部件101进行密钥扩展,并将得到的子密钥输入与之相连的第一个子密钥寄存部件401 的输入端,同时将第一个密钥扩展单元数据转换部件101的输出数据输入至下 一个密钥扩展单元数据转换部件101,进行第二次密钥扩展;多个密钥扩展单元 数据转换部件101依次进行密钥扩展,并将生成的子密钥输入与之相连的子密 钥寄存部件401的输入端,最后一个密钥扩展单元数据转换部件101的输出数 据输入至密钥扩展单元数据寄存部件100的数据输入端;所述数据加密转换步 骤为在该时钟周期内,将加密单元数据寄存部件300的寄存数据输入至第一个加密单元数据转换部件301,第一个子密钥寄存部件401的子密钥输入至第一 个加密单元数据转换部件301,第一个加密单元数据转换部件301进行数据加密 转换,将第一个加密单元数据转换部件301的加密转换数据输入至第二个加密 单元数据转换部件301,第二个子密钥寄存部件401的子密钥输入至第二个加密 单元数据转换部件301,第二个加密单元数据转换部件301进行数据加密转换; 与密钥扩展单元数据转换部件101对应的多个加密单元数据转换部件301依次 进行数据加密转换,最后一个加密单元数据转换部件301的加密转换数据输入 至加密单元数据寄存部件300的数据输入端;所述内部数据寄存步骤为在下 一个时钟周期的时钟沿到来时,将最后一个密钥扩展单元数据转换部件101转换得到的数据输入至密钥扩展单元数据寄存部件100寄存;将密钥扩展单元数 据转换部件101的子密钥输入与之对应子密钥寄存部件401寄存;将最后一个加密单元数据转换部件301转换得到的数据输入至加密单元数据寄存部件300寄存。上述分组密码算法具体为SMS4算法。本发明具有如下优点1、 由于去掉了子密钥阵列存储单元,在保持现有技术的高效率的前提下, 本发明加密处理方法能够有效降低资源消耗,进而降低设备的实现成本。2、 利用本发明加密处理方法,在转换部件的个数为1时,资源消耗只有现有方法资源消耗的60%,在转换部件个数为2时,资源消耗只有现有方法资源 消耗的70%。3、 增加子密钥寄存单元,在集成电路实现时能够减小关键路径,提高加密 处理设备的时钟主频,进而提高本发明方法的处理能力。


图1为现有加解密处理方法所用设备的第一种结构示意图; 图2为现有加解密处理方法所用设备的第二种结构示意图; 图3为本发明加密处理方法所用设备的第一种结构示意图; 图4为本发明加密处理方法所用设备的第二种结构示意图; 图5为本发明加密处理方法所用设备的第三种结构示意图; 图6为本发明加密处理方法所用设备的第四种结构示意图; 其中l一密钥扩展单元;100—密钥扩展单元数据寄存部件;101—密钥扩 展单元数据转换部件;2—子密钥阵列存储单元;3—加密单元;300—加密单元 数据寄存部件;301—加密单元数据转换部件;4一子密钥寄存单元;401—子密钥寄存部件。
具体实施方式
本发明方法主要通过基于分组密码算法的加密处理设备来实现。现结合附 图具体说明如下。第一种基于分组密码算法的加密处理设备,如图3所示,包括密钥扩展单元1和加密单元3;密钥扩展单元1包括密钥扩展单元数据寄存部件100和一个 密钥扩展单元数据转换部件101;密钥扩展单元数据寄存部件100的输出端与密
钥扩展单元数据转换部件101的输入端相连,密钥扩展单元数据转换部件101的输出端与密钥扩展单元数据寄存部件100输入端相连;加密单元3包括加密单元数据寄存部件300和一个加密单元数据转换部件301;加密单元数据寄存部 件300的输出端与加密单元数据转换部件301的输入端相连接,加密单元数据 转换部件301的输出端与加密单元数据寄存部件300的输入端连接,密钥扩展 单元数据转换部件101的子密钥输出端与加密单元数据转换部件301的子密钥 输入端相连;参见图3,通过第一种基于分组密码算法的加密处理设备来实现本发明方法 的实施例的步骤如下1]外部密钥寄存在一个时钟周期的时钟沿到来时,将经过处理的外部密 钥输入至密钥扩展单元数据寄存部件100寄存;2]外部数据寄存在该时钟周期的时钟沿到来时,将一组外部数据输入至 加密单元数据寄存部件300寄存;3]密钥扩展在该时钟周期内,将密钥扩展单元数据寄存部件100的寄存数据输入至密钥扩展单元数据转换部件101进行密钥扩展,将得到的子密钥输入至加密单元数据转换部件301;4]数据加密转换在该时钟周期内,将加密单元数据寄存部件300的寄存 数据输入至加密单元数据转换部件301,加密单元数据转换部件301进行数据加 密转换;5]内部数据寄存在下一时钟周期的时钟沿到来时,将密钥扩展单元数据 转换部件101得到的数据输入至密钥扩展单元数据寄存部件100寄存;将加密单元数据转换部件301得到的数据输入至加密单元数据寄存部件300寄存;6]数据迭代处理重复密钥扩展步骤、数据加密转换步骤和内部数据寄存步骤,直到将数据进行分组密码算法规定的转换次数,该组数据加密完毕。第二种基于分组密码算法的加密处理设备,如图4所示,包括密钥扩展单元1和加密单元3;密钥扩展单元1包括密钥扩展单元数据寄存部件100和两个 密钥扩展单元数据转换部件101;密钥扩展单元数据寄存部件100的输出端与第一个密钥扩展单元数据转换部件101的输入端相连,两个密钥扩展单元数据转 换部件io)依次连接,第二个密钥扩展单元数据转换部件101的输出端与密钥扩
展单元数据寄存部件100输入端相连;加密单元3包括加密单元数据寄存部件300和两个加密单元数据转换部件301;加密单元数据寄存部件300的输出端与 第一个加密单元数据转换部件301的输入端相连接,两个加密单元数据转换部 件301依次连接,第二个加密单元数据转换部件301的输出端与加密单元数据 寄存部件300的输入端连接,第一个密钥扩展单元数据转换部件101的子密钥 输出端与第一个加密单元数据转换部件301的子密钥输入端相连,第二个密钥 扩展单元数据转换部件101的子密钥输出端与第二个加密单元数据转换部件301 的子密钥输入端相连。密钥扩展单元数据转换部件101数量和加密单元数据转换部件301数量相 等,还可以是3个、4个直至32个或48个, 一般优选1或2或4个。参见图4,通过第二种基于分组密码算法的加密处理设备来实现本发明方法 的实施例的步骤如下1]外部密钥寄存在一个时钟周期的时钟沿到来时,将经过处理的外部密钥输入至密钥扩展单元数据寄存部件100寄存;2]外部数据寄存在该时钟周期的时钟沿到来时,将一组外部数据输入至 加密单元数据寄存部件300寄存;3]密钥扩展在该时钟周期内,将密钥扩展单元数据寄存部件100的寄存数据输入至密钥扩展单元数据转换部件101进行密钥扩展,将得到的子密钥输 入至加密单元数据转换部件301,同时将密钥扩展单元数据转换部件101的输出数据输入至下一个密钥扩展单元数据转换部件101;多个密钥扩展单元数据转换 部件101依次进行密钥扩展;4]数据加密转换在该时钟周期内,将加密单元数据寄存部件300的寄存 数据输入至加密单元数据转换部件301,加密单元数据转换部件301进行数据加 密转换,将加密单元数据转换部件301的输出数据输入至下一个加密单元数据转换部件301;多个加密单元数据转换部件301依次进行数据加密;5]内部数据寄存在下一时钟周期的时钟沿到来时,将最后一个密钥扩展 单元数据转换部件101的输出数据输入至密钥扩展单元数据寄存部件100寄存;将最后一个加密单元数据转换部件301的输出数据输入至加密单元数据寄存部件300寄存;
6]数据迭代处理重复密钥扩展步骤、数据加密转换步骤和内部数据寄存 步骤,直到将数据进行分组密码算法规定的转换次数,该组数据加密完毕。第三种基于分组密码算法的加密处理设备,如图5所示,包括密钥扩展单 元1、子密钥寄存单元4和加密单元3;密钥扩展单元1包括密钥扩展单元数据 寄存部件100和一个密钥扩展单元数据转换部件101;密钥扩展单元数据寄存部件100的输出端与密钥扩展单元数据转换部件101的输入端相连,密钥扩展单元数据转换部件101的输出端与密钥扩展单元数据寄存部件100输入端相连;子密钥寄存单元4包括一个子密钥寄存部件401;加密单元3包括加密单元数据 寄存部件300和一个加密单元数据转换部件301;加密单元数据寄存部件300的 输出端与加密单元数据转换部件301的输入端相连接,加密单元数据转换部件 301的输出端与加密单元数据寄存部件300的输入端连接;密钥扩展单元数据转 换部件101的子密钥输出端与子密钥寄存部件401的输入端相连,子密钥寄存 部件401的输出端与加密单元数据转换部件301的子密钥输入端相连。其中子 密钥寄存部件401为通用触发器或寄存器。参见图5,通过第三种基于分组密码算法的加密处理设备来实现本发明方法 的实施例的步骤如下1]外部密钥寄存在一个时钟周期的时钟沿到来时,将经过处理的外部密 钥输入至密钥扩展单元数据寄存部件100寄存;2]密钥预先扩展在外部密钥寄存步骤所在时钟周期内,将密钥扩展单元数据寄存部件100的寄存数据输入至密钥扩展单元数据转换部件101进行密钥扩展,并将得到的子密钥输入与之相连的子密钥寄存部件401的输入端;将密钥扩展单元数据转换部件101转换得到的数据输入至密钥扩展单元数据寄存部件100的输入端;3]密钥缓冲寄存在外部密钥寄存步骤后的下一个时钟周期的时钟沿到来 时,将密钥扩展单元数据转换部件101转换得到的数据输入至密钥扩展单元数 据寄存部件100寄存;将密钥扩展单元数据转换部件101的子密钥输入至子密 钥寄存部件401寄存;4]外部数据寄存外部密钥寄存步骤后的下一个时钟周期的时钟沿到来 时,将一组外部数据输入至加密单元数据寄存部件300寄存; 5]密钥扩展在该时钟周期内,将密钥扩展单元数据寄存部件100的寄存 数据输入至密钥扩展单元数据转换部件101进行密钥扩展,并将得到的子密钥输入至与之相连的子密钥寄存部件401的输入端,同时将密钥扩展单元数据转换部件101的输出数据输入至密钥扩展单元数据寄存部件100的输入端;将子密钥寄存部件401输出的子密钥输入至加密单元数据转换部件301;6]数据加密转换在该时钟周期内,将加密单元数据寄存部件300的寄存 数据输入至加密单元数据转换部件301;加密单元数据转换部件301进行数据加 密转换,将加密单元数据转换部件301的输出数据输入至加密单元数据寄存部件300的输入端;7]内部数据寄存在下一个时钟周期的时钟沿到来时,将密钥扩展单元数 据转换部件101转换得到的数据输入至密钥扩展单元数据寄存部件100寄存; 将密钥扩展单元数据转换部件101的子密钥输入至子密钥寄存部件401寄存;将加密单元数据转换部件301转换得到的数据输入至加密单元数据寄存部件300 寄存;8]数据迭代处理重复密钥扩展步骤、数据加密转换步骤和内部数据寄存步骤,直到将数据进行分组密码算法规定的转换次数,该组数据加密完毕。第四种基于分组密码算法的加密处理设备,如图6所示,包括密钥扩展单元1、子密钥寄存单元4和加密单元3;密钥扩展单元1包括密钥扩展单元数据 寄存部件100和两个密钥扩展单元数据转换部件101;密钥扩展单元数据寄存部件100的输出端与第一个密钥扩展单元数据转换部件101的输入端相连,两个 密钥扩展单元数据转换部件101依次连接,第二个密钥扩展单元数据转换部件 101的输出端与密钥扩展单元数据寄存部件100输入端相连;子密钥寄存单元4包括两个子密钥寄存部件401;加密单元3包括加密单元数据寄存部件300和两 个加密单元数据转换部件301;加密单元数据寄存部件300的输出端与第一个加 密单元数据转换部件301的输入端相连接,两个加密单元数据转换部件301依 次连接,第二个加密单元数据转换部件301的输出端与加密单元数据寄存部件 300的输入端连接;第一个密钥扩展单元数据转换部件101的子密钥输出端与第 一个子密钥寄存部件401的输入端相连,第二个密钥扩展单元数据转换部件101 的子密钥输出端与第二个子密钥寄存部件401的输入端相连,第一个子密钥寄 存部件401的输出端与第一个加密单元数据转换部件301的子密钥输入端相连; 第二个子密钥寄存部件401的输出端与第二个加密单元数据转换部件301的子 密钥输入端相连。其中子密钥寄存部件401为通用触发器或寄存器。密钥扩展单元数据转换部件101数量、子密钥寄存部件401数量以及加密 单元数据转换部件301数量都相等,还可以是3个、4个直至32个或48个,一 般优选1或2或4个。参见图6,通过第四种基于分组密码算法的加密处理设备来实现本发明方法 的实施例的步骤如下1]外部密钥寄存在一个时钟周期的时钟沿到来时,将经过处理的外部密钥输入至密钥扩展单元数据寄存部件100寄存;2]密钥预先扩展在外部密钥寄存步骤所在时钟周期内,将密钥扩展单元数据寄存部件100的寄存数据输入至第一个密钥扩展单元数据转换部件101进 行密钥扩展,并将得到的子密钥输入至与之相连的第一子密钥寄存部件401的 输入端,同时将第一个密钥扩展单元数据转换部件101的输出数据输入至下一个密钥扩展单元数据转换部件IOI,进行第二次密钥扩展;多个密钥扩展单元数 据转换部件101依次进行转换,并将生成的子密钥输入与之相连的子密钥寄存 部件401的输入端,最后一个密钥扩展单元数据转换部件101的输出数据输入至密钥扩展单元数据寄存部件100的输入端;3]密钥缓冲寄存在外部密钥寄存步骤后的下一个时钟周期的时钟沿到来 时,将最后一个密钥扩展单元数据转换部件101转换得到的数据输入至密钥扩展单元数据寄存部件100寄存;将密钥扩展单元数据转换部件101的子密钥输 入与之对应子密钥寄存部件401寄存;4]外部数据寄存外部密钥寄存步骤后的下一个时钟周期的时钟沿到来 时,将一组外部数据输入至加密单元数据寄存部件300寄存;5]密钥扩展在该时钟周期内,将密钥扩展单元数据寄存部件100的寄存数据输入至第一个密钥扩展单元数据转换部件101进行密钥扩展,并将得到的 子密钥输入与之相连的第一个子密钥寄存部件401的输入端,同时将第一个密 钥扩展单元数据转换部件101的输出数据输入至下一个密钥扩展单元数据转换 部件IOI,进行第二次密钥扩展;多个密钥扩展单元数据转换部件101依次进行
密钥扩展,并将生成的子密钥输入与之相连的子密钥寄存部件401的输入端, 最后一个密钥扩展单元数据转换部件101的输出数据输入至密钥扩展单元数据寄存部件100的数据输入端;6]数据加密转换在该时钟周期内,将加密单元数据寄存部件300的寄存 数据输入至第一个加密单元数据转换部件301,第一个子密钥寄存部件401的子 密钥输入至第一个加密单元数据转换部件301,第一个加密单元数据转换部件 301进行数据加密转换,将第一个加密单元数据转换部件301的加密转换数据输 入至第二个加密单元数据转换部件301,第二个子密钥寄存部件401的子密钥输 入至第二个加密单元数据转换部件301,第二个加密单元数据转换部件301进行 数据加密转换;与密钥扩展单元数据转换部件101对应的多个加密单元数据转 换部件301依次进行数据加密转换,最后一个加密单元数据转换部件301的加 密转换数据输入至加密单元数据寄存部件300的数据输入端;7]内部数据寄存在下一个时钟周期的时钟沿到来时,将最后一个密钥扩 展单元数据转换部件101转换得到的数据输入至密钥扩展单元数据寄存部件100 寄存;将密钥扩展单元数据转换部件101的子密钥输入与之对应子密钥寄存部 件401寄存;将最后一个加密单元数据转换部件301转换得到的数据输入至加 密单元数据寄存部件300寄存;8]数据迭代处理重复密钥扩展步骤、数据加密转换步骤和内部数据寄存步骤,直到将数据进行分组密码算法规定的转换次数,该组数据加密完毕。如果加密设备有多个密钥扩展单元数据转换部件101、多个子密钥寄存部件 401和多个加密单元数据转换部件301,则它们分别按照连接关系的先后依次进 行密钥扩展、数据加密。如果分组密码算法具体采用的是SMS4算法,则以上四种加密处理方法在进 行数据迭代处理时的转换次数具体为32次。
权利要求
1、一种基于分组密码算法的加密处理方法,其特征在于其包括以下步骤1]外部密钥寄存在一个时钟周期的时钟沿到来时,将经过处理的外部密钥输入至密钥扩展单元数据寄存部件(100)寄存;2]外部数据寄存在该时钟周期的时钟沿到来时,将一组外部数据输入至加密单元数据寄存部件(300)寄存;3]密钥扩展在该时钟周期内,将密钥扩展单元数据寄存部件(100)的寄存数据输入至密钥扩展单元数据转换部件(101)进行密钥扩展,将得到的子密钥输入至加密单元数据转换部件(301);4]数据加密转换在该时钟周期内,将加密单元数据寄存部件(300)的寄存数据输入至加密单元数据转换部件(301),加密单元数据转换部件(301)进行数据加密转换;5]内部数据寄存在下一时钟周期的时钟沿到来时,将密钥扩展单元数据转换部件(101)得到的数据输入至密钥扩展单元数据寄存部件(100)寄存;将加密单元数据转换部件(301)得到的数据输入至加密单元数据寄存部件(300)寄存;6]数据迭代处理重复密钥扩展步骤、数据加密转换步骤和内部数据寄存步骤,直到将数据进行分组密码算法规定的转换次数,该组数据加密完毕。
2、 根据权利要求1所述的基于分组密码算法的加密处理方法,其特征在于 所述密钥扩展步骤为在该时钟周期内,将密钥扩展单元数据寄存部件(IOO)的寄存数据输入至密钥扩展单元数据转换部件(101)进行密钥扩展,将得到的子 密钥输入至加密单元数据转换部件(301),同时将密钥扩展单元数据转换部件(101)的输出数据输入至下一个密钥扩展单元数据转换部件(IOI);多个密钥扩 展单元数据转换部件(101)依次进行密钥扩展;所述数据加密转换步骤为在该时钟周期内,将加密单元数据寄存部件(300)的寄存数据输入至加密单元数据转换部件(301),加密单元数据转换部件(301) 进行数据加密转换,将加密单元数据转换部件(301)的输出数据输入至下一个加 密单元数据转换部件(301);多个加密单元数据转换部件(301)依次进行数据加 密;所述内部数据寄存步骤为在下一时钟周期的时钟沿到来时,将最后一个 密钥扩展单元数据转换部件(101)的输出数据输入至密钥扩展单元数据寄存部 件(100)寄存;将最后一个加密单元数据转换部件(301)的输出数据输入至加密单元数据寄存部件(300)寄存。
3、 根据权利要求1所述的基于分组密码算法的加密处理方法,其特征在于 所述外部密钥寄存步骤和外部数据寄存步骤之间还包括密钥预先扩展步骤和密钥缓冲寄存步骤;所述密钥预先扩展步骤为在外部密钥寄存步骤所在时钟周期内,将密钥扩展单元数据寄存部件(ioo)的寄存数据输入至密钥扩展单元数据转换部件(101)进行密钥扩展,并将得到的子密钥输入与之相连的子密钥寄存部件(401)的输入端;将密钥扩展单元数据转换部件(101)转换得到的数据输 入至密钥扩展单元数据寄存部件(100)的输入端;所述密钥缓冲寄存步骤为在 外部密钥寄存步骤后的下一个时钟周期的时钟沿到来时,将密钥扩展单元数据 转换部件(101)转换得到的数据输入至密钥扩展单元数据寄存部件(100)寄存;将密钥扩展单元数据转换部件(101)的子密钥输入至子密钥寄存部件(401)寄存。
4、 根据权利要求3所述的基于分组密码算法的加密处理方法,其特征在于 所述外部数据寄存步骤为外部密钥寄存步骤后的下一个时钟周期的时钟沿到来时,将一组外部数据输入至加密单元数据寄存部件(300)寄存;所述密钥扩展步骤为在该时钟周期内,将密钥扩展单元数据寄存部件(IOO) 的寄存数据输入至密钥扩展单元数据转换部件(101)进行密钥扩展,并将得到的子密钥输入与之相连的子密钥寄存部件(401)的输入端,同时将密钥扩展单元数 据转换部件(101)的输出数据输入至密钥扩展单元数据寄存部件(100)的输入 端;将子密钥寄存部件(401)输出的子密钥输入至加密单元数据转换部件(301); 所述数据加密转换步骤为在该时钟周期内,将加密单元数据寄存部件(300)的寄存数据输入至加密单元数据转换部件(301);加密单元数据转换部件(301) 进行数据加密转换,将加密单元数据转换部件(301)的输出数据输入至加密单元 数据寄存部件(300)的输入端;所述内部数据寄存步骤为在下一个时钟周期的时钟沿到来时,将密钥扩 展单元数据转换部件(101)转换得到的数据输入至密钥扩展单元数据寄存部件(100) 寄存;将密钥扩展单元数据转换部件(101)的子密钥输入至子密钥寄存部件(401)寄存;将加密单元数据转换部件(301)转换得到的数据输入至加密单元 数据寄存部件(300)寄存。
5、根据权利要求4所述的基于分组密码算法的加密处理方法,其特征在于 包括以下步骤所述密钥预先扩展步骤为在外部密钥寄存步骤所在时钟周期内,将密钥 扩展单元数据寄存部件(100)的寄存数据输入至第一个密钥扩展单元数据转换 部件(101)进行密钥扩展,并将得到的子密钥输入至与之相连的第一子密钥寄存部件(401)的输入端,同时将第一个密钥扩展单元数据转换部件(101)的输出数 据输入至下一个密钥扩展单元数据转换部件(IOI),进行第二次密钥扩展;多个密钥扩展单元数据转换部件(101)依次进行转换,并将生成的子密钥输入与之相 连的子密钥寄存部件(401)的输入端,最后一个密钥扩展单元数据转换部件(IOI)的输出数据输入至密钥扩展单元数据寄存部件(IOO)的输入端;所述密钥缓冲寄存步骤为在外部密钥寄存步骤后的下一个时钟周期的时钟沿到来时,将最后一个密钥扩展单元数据转换部件(101)转换得到的数据输入至密钥扩展单元数据寄存部件(100)寄存;将密钥扩展单元数据转换部件(IOI) 的子密钥输入与之对应子密钥寄存部件(401)寄存;所述密钥扩展步骤为在该时钟周期内,将密钥扩展单元数据寄存部件(IOO) 的寄存数据输入至第一个密钥扩展单元数据转换部件(101)进行密钥扩展,并将得到的子密钥输入与之相连的第一个子密钥寄存部件(401)的输入端,同时将第 一个密钥扩展单元数据转换部件(101)的输出数据输入至下一个密钥扩展单元 数据转换部件UOl),进行第二次密钥扩展;多个密钥扩展单元数据转换部件(101) 依次进行密钥扩展,并将生成的子密钥输入与之相连的子密钥寄存部件 (401)的输入端,最后一个密钥扩展单元数据转换部件(101)的输出数据输入至密钥扩展单元数据寄存部件(IOO)的数据输入端;所述数据加密转换步骤为在该时钟周期内,将加密单元数据寄存部件(300)的寄存数据输入至第一个加密单元数据转换部件(301),第一个子密钥寄存部件 (401)的子密钥输入至第一个加密单元数据转换部件(301),第一个加密单元数 据转换部件(301)进行数据加密转换,将第一个加密单元数据转换部件(301)的 加密转换数据输入至第二个加密单元数据转换部件(301),第二个子密钥寄存部 件(401)的子密钥输入至第二个加密单元数据转换部件(301),第二个加密单元 数据转换部件(301)进行数据加密转换;与密钥扩展单元数据转换部件(101)对 应的多个加密单元数据转换部件(301)依次进行数据加密转换,最后一个加密单 元数据转换部件(301)的加密转换数据输入至加密单元数据寄存部件(300)的数 据输入端;所述内部数据寄存步骤为在下一个时钟周期的时钟沿到来时,将最后一 个密钥扩展单元数据转换部件(101)转换得到的数据输入至密钥扩展单元数据 寄存部件(100)寄存;将密钥扩展单元数据转换部件(101)的子密钥输入与之对 应子密钥寄存部件(401)寄存;将最后一个加密单元数据转换部件(301)转换得到的数据输入至加密单元数据寄存部件(300)寄存。
6、根据权利要求1至5之任一权利要求所述的基于分组密码算法的加密处 理方法,其特征在于所述分组密码算法具体为SMS4算法。
全文摘要
本发明为一种基于分组密码算法的加密处理方法,包括以下步骤外部密钥寄存、外部数据寄存、密钥扩展、数据加密转换、内部数据寄存、数据迭代处理,解决了现有基于分组密码算法的加密处理方法加密效率低、实现成本高的技术问题,具有在保持现有技术的高效率的前提下,有效降低资源消耗,进而降低设备的实现成本;在转换部件的个数为1时,资源消耗只有现有方法资源消耗的60%,在转换部件个数为2时,资源消耗只有现有方法资源消耗的70%;增加子密钥寄存单元,在集成电路实现时能够减小关键路径,提高加密处理设备的时钟主频,进而提高本发明方法的处理能力。
文档编号H04L9/14GK101159545SQ200710019109
公开日2008年4月9日 申请日期2007年11月19日 优先权日2007年11月19日
发明者军 曹, 伟 王, 湘 颜 申请人:西安西电捷通无线网络通信有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1