本申请涉及密码学,特别是涉及一种可动态调节的sm4流水线硬件系统。
背景技术:
1、数据加密技术是当今保障电子信息安全的重要手段。随着信息量和对信息传递速度的要求日益增加,硬件加密方式已经成为主流。加密算法通常分为对称式加密和非对称式加密。对称式加密算法中,常见的包括aes、des和sm4等;而非对称式加密算法有rsa、ecc等。sm4作为我国第一个可商用的加密算法,凭借其算法结构简单易实现、加解密速度快、安全性高等优点,已经迅速获得了业界的认可,并被广泛应用于数据加密存储和信息加密通信等领域中。
2、在实际应用过程中,sm4加密电路的工作频率受到计算机硬件电路最大工作频率的影响。因此,根据搭载到计算机设备的不同,每次都需要重新选择合适的流水级数的流水线设计。这无疑会增加工作量,减少sm4加解密芯片的通用性。此外,在电路实际工作时,axi总线设备并不能做到每时每刻都以全流水的方式收发数据,这会导致吞吐率不能达到理性性能指标。
技术实现思路
1、基于此,有必要针对上述技术问题,提供一种能够提高sm4加解密芯片的通用性的可动态调节的sm4流水线硬件系统。
2、一种可动态调节的sm4流水线硬件系统,所述系统包括动态监测模块、轮密钥生成模块和加解密模块;
3、动态监测模块用于接收来自用户的密钥和模式选择配置信息,根据密钥和模式选择配置信息实时监测计算机系统电路的工作频率与实际吞吐率,根据频率检测信息和预先设置的级数选择规则选择初始流水线级数信息,并根据实际吞吐率对初始流水线级数信息进行动态调整后传递给加解密模块;
4、轮密钥生成模块用于根据模式选择配置信息和sm4算法生成32轮密钥并将32轮密钥传递给加解密模块;
5、加解密模块用于根据动态调整后的流水线级数信息和多路选择器动态调整内部流水线并根据32轮密钥对明文或密文数据进行加解密处理后将处理结果通过axi总线重新写回存储器。
6、在其中一个实施例中,动态监测模块包括频率检测电路和实际吞吐率检测电路;频率检测电路用于对输入的密钥信息进行频率检测,得到频率检测结果;实际吞吐率检测电路用于检测电路的实际吞吐率。
7、在其中一个实施例中,动态监测模块还用于预先设置4级流水线的工作频率为a,8级流水线的工作频率为b,16级流水线的工作频率为c,32级流水线的工作频率为d,当检测到电路的工作频率x满足(x<3/2a)时选择4级流水线,当检测到电路的工作频率x满足(3/2a<x<3/2b)时选择8级流水线,当检测到电路的工作频率x满足(3/2b<x<3/2c)时选择16级流水线,当检测到电路的工作频率x满足(3/2c<x)时选择32级流水线。
8、在其中一个实施例中,动态监测模块还用于将初始流水线级数信息中4级流水线的最大吞吐率设置为a1,8级流水线的最大吞吐率设置为b1,16级流水线的最大吞吐率设置为c1,32级流水线的最大吞吐率设置为d1,当检测到电路的实际吞吐率y满足(y<3/2a1)时选择4级流水线,当检测到电路的实际吞吐率y满足(3/2a1<y<3/2b1)时选择8级流水线,当检测到电路的实际吞吐率y满足(3/2b1<y<3/2c1)时选择16级流水线,当检测到电路的实际吞吐率y满足(3/2c1<y)时选择32级流水线。
9、在其中一个实施例中,动态监测模块还用于在系统启动时,记录一个初始时间点,并在初始时间点之后的一段时间内对实际吞吐率进行统计和监测,在这段时间内保持输入数据的稳定性,如果实际吞吐率在这段时间内达到了一个稳定值,则根据稳定值来进行流水线级数的动态调节。
10、上述一种可动态调节的sm4流水线硬件系统,本申请通过设置动态监测模块、轮密钥生成模块和加解密模块,利用动态监测模块接收来自用户的密钥和模式选择配置信息,根据密钥和模式选择配置信息实时监测计算机系统电路的工作频率与实际吞吐率,根据频率检测信息预先设置的级数选择规则选择初始流水线级数信息,并根据实际吞吐率对初始流水线级数信息进行动态调整后传递给加解密模块,然后加解密模块根据动态调整后的流水线级数信息和多路选择器动态调整内部流水线并根据32轮密钥对明文或密文数据进行加解密处理后将处理结果通过axi总线重新写回存储器,系统内部可根据动态监测模块根据给出的信息控制流水寄存器使用数目,加解密模块利用多路选择器来实现选择不同级数流水线的功能,通过动态监测模块和加解密模块的配合,动态调整流水线级数,以确保加解密操作在最佳的性能下进行并且能够适用不同的计算机设备,大大提高了加解密的速率和通用性,具有通用性强、功耗低、速度快等优点,并且这种设计方案具有广泛的应用前景,可以应用于各种电子信息安全领域,为保护电子信息安全提供更加可靠的保障。
1.一种可动态调节的sm4流水线硬件系统,其特征在于,所述系统包括:动态监测模块、轮密钥生成模块和加解密模块;
2.根据权利要求1所述的系统,其特征在于,所述动态监测模块包括频率检测电路和实际吞吐率检测电路;所述频率检测电路用于对输入的密钥信息进行频率检测,得到频率检测结果;所述实际吞吐率检测电路用于检测电路的实际吞吐率。
3.根据权利要求1所述的系统,其特征在于,所述动态监测模块还用于预先设置4级流水线的工作频率为a,8级流水线的工作频率为b,16级流水线的工作频率为c,32级流水线的工作频率为d,当检测到电路的工作频率x满足(x<3/2a)时选择4级流水线,当检测到电路的工作频率x满足(3/2a<x<3/2b)时选择8级流水线,当检测到电路的工作频率x满足(3/2b<x<3/2c)时选择16级流水线,当检测到电路的工作频率x满足(3/2c<x)时选择32级流水线。
4.根据权利要求1至3任意一项所述的系统,其特征在于,所述动态监测模块还用于将初始流水线级数信息中4级流水线的最大吞吐率设置为a1,8级流水线的最大吞吐率设置为b1,16级流水线的最大吞吐率设置为c1,32级流水线的最大吞吐率设置为d1,当检测到电路的实际吞吐率y满足(y<3/2a1)时选择4级流水线,当检测到电路的实际吞吐率y满足(3/2a1<y<3/2b1)时选择8级流水线,当检测到电路的实际吞吐率y满足(3/2b1<y<3/2c1)时选择16级流水线,当检测到电路的实际吞吐率y满足(3/2c1<y)时选择32级流水线。
5.根据权利要求1所述的系统,其特征在于,所述动态监测模块还用于在系统启动时,记录一个初始时间点,并在所述初始时间点之后的一段时间内对实际吞吐率进行统计和监测,在这段时间内保持输入数据的稳定性,如果实际吞吐率在这段时间内达到了一个稳定值,则根据所述稳定值来进行流水线级数的动态调节。