CN114285584B - 一种加密算法实验系统 - Google Patents

一种加密算法实验系统 Download PDF

Info

Publication number
CN114285584B
CN114285584B CN202111582959.7A CN202111582959A CN114285584B CN 114285584 B CN114285584 B CN 114285584B CN 202111582959 A CN202111582959 A CN 202111582959A CN 114285584 B CN114285584 B CN 114285584B
Authority
CN
China
Prior art keywords
algorithm
encryption
identifier
instruction
module
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.)
Active
Application number
CN202111582959.7A
Other languages
English (en)
Other versions
CN114285584A (zh
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.)
Shandong College Of Information Technology
Beijing Zhengqidun Data Security Technology Co ltd
Original Assignee
Shandong College Of Information Technology
Beijing Zhengqidun Data Security Technology Co ltd
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 Shandong College Of Information Technology, Beijing Zhengqidun Data Security Technology Co ltd filed Critical Shandong College Of Information Technology
Priority to CN202111582959.7A priority Critical patent/CN114285584B/zh
Publication of CN114285584A publication Critical patent/CN114285584A/zh
Application granted granted Critical
Publication of CN114285584B publication Critical patent/CN114285584B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Storage Device Security (AREA)

Abstract

本发明实施例涉及一种加密算法实验系统,所述系统包括:试验程序沙箱和加密算法装置;试验程序沙箱包括程序运行、程序管理、第一通讯模块;程序管理模块分别与程序运行模块和第一通讯模块连接;第一通讯模块与加密算法装置连接;程序运行模块用于提供编译执行环境;程序管理模块用于代码正确性验证处理;程序管理模块还用于进行性能分析处理;加密算法装置包括第二通讯、安全控制、算法处理模块;安全控制模块用于进行随机数产生处理;进行设备验证处理;进行数据加解密处理。通过本发明,解决了当前教学环境中缺乏用于验证算法编码的实验设备问题。

Description

一种加密算法实验系统
技术领域
本发明涉及数据处理技术领域,特别涉及一种加密算法实验系统。
背景技术
近年,随着第五代移动通信(5th generation mobile networks,5G)技术与物联网技术的成熟与发展,许多高校已开始将部分内容纳入到了教学大纲中,其中也涉及到与5G应用相关的多种加密算法。但由于算法的复杂性和抽象性,目前高校所提供的教学内容和教材,仅对算法原理进行教学讲解和介绍,未对算法应用进行编码实现,也未给出检验算法编码正确性和编码性能的实验设备。
发明内容
本发明的目的,就是针对现有技术的缺陷,提供一种加密算法实验系统,该系统包括:试验程序沙箱和加密算法装置;试验程序沙箱用于加载算法编码并提供运行环境对其进行运行,并可调用加密算法装置对算法编码的正确性进行验证,另外还可基于加密算法装置对算法编码的性能进行分析;加密算法装置内嵌了多种与5G应用相关的算法单元,算法范围覆盖多个对称算法、非对称算法和数字摘要算法,并对国密算法给出了支持。通过本发明,解决了当前教学环境中缺乏用于验证算法编码的实验设备问题,对提高教学质量很有帮助。
为实现上述目的,本发明实施例提供了一种加密算法实验系统,包括:试验程序沙箱和加密算法装置;
所述试验程序沙箱包括程序运行模块、程序管理模块和第一通讯模块;所述程序管理模块分别与所述程序运行模块和所述第一通讯模块连接;所述第一通讯模块与所述加密算法装置连接;所述程序运行模块用于提供编程代码的编译执行环境;所述程序管理模块用于导入第一算法代码及其对应的第一配置数据,并调用所述程序运行模块对所述第一算法代码进行编译执行处理生成对应的第一执行结果,并根据所述第一配置数据和所述第一执行结果通过所述第一通讯模块调用所述加密算法装置进行代码正确性验证处理;所述程序管理模块还用于对导入的算法代码进行性能分析处理;
所述加密算法装置包括第二通讯模块、安全控制模块和算法处理模块;所述第二通讯模块分别与所述第一通讯模块和所述安全控制模块连接;所述安全控制模块与所述算法处理模块连接;所述安全控制模块用于通过所述第二通讯模块接收所述试验程序沙箱发送的操作指令;从所述操作指令中提取出指令码和指令参数,并对所述指令码进行识别;当所述指令码为随机数获取指令码时,调用所述算法处理模块进行随机数产生处理;当所述指令码为设备验证指令码时,根据所述指令参数调用所述算法处理模块进行设备验证处理;当所述指令码为加解密计算指令码时,根据所述指令参数调用所述算法处理模块进行数据加解密处理。
优选的,所述程序管理模块具体用于在所述代码正确性验证处理时,设置所述操作指令的所述指令码为随机数获取指令码;并将所述操作指令通过所述第一通讯模块向所述加密算法装置发送,并接收所述加密算法装置回发的第一随机数;按预先与加密算法装置约定的加密算法,使用预设的设备鉴权密钥对所述第一随机数进行加密处理生成对应的第一鉴权数据;设置所述操作指令的所述指令码为设备验证指令码,并设置所述指令参数为所述第一鉴权数据;将所述操作指令向所述加密算法装置发送,并接收所述加密算法装置回发的第一验证状态;当所述第一验证状态为验证成功时,设置所述操作指令的所述指令码为加解密计算指令码,并设置所述指令参数为所述第一配置数据;将所述操作指令向所述加密算法装置发送,并接收所述加密算法装置回发的第一计算结果;判断所述第一计算结果与所述第一执行结果是否匹配,若匹配则输出代码正确性验证结果为代码正确,若不匹配则输出所述代码正确性验证结果为代码错误。
优选的,所述程序管理模块具体用于在所述性能分析处理时,对导入的算法代码在所述程序运行模块上的执行时长进行统计生成对应的第一时长;设置所述操作指令的所述指令码为加解密计算指令码,所述指令参数为与导入的算法代码对应的配置数据;并对所述操作指令在所述加密算法装置上的执行时长进行统计生成对应的第二时长;计算所述第一时长与所述第二时长的比值,生成第一比值;参考预设的加密算法装置与试验程序沙箱的性能对比参数,对所述第一比值进行评估;并将评估结果作为性能分析的输出结果。
优选的,所述程序运行模块提供的编译执行环境至少包括C语言和C++语言编程代码的编译执行环境。
优选的,所述算法处理模块包括随机数发生器单元、数据加密标准DES算法单元、三重数据加密算法3DES算法单元、高级加密标准AES算法单元、RSA算法单元、信息摘要算法MD5算法单元、安全散列算法SHA1算法单元、安全散列算法SHA256算法单元、国密算法SM1算法单元、国密算法SM2算法单元、国密算法SM3算法单元和国密算法SM4算法单元。
优选的,所述安全控制模块具体用于在所述随机数产生处理时,向所述随机数发生器单元发送随机数生成指令,并接收所述随机数发生器单元回发的第一随机数保存于本地;并将存储的所述第一随机数设为未失效状态;并将所述第一随机数通过所述第二通讯模块向所述试验程序沙箱回发。
进一步的,所述安全控制模块还用于在所述随机数产生处理完成时,进行下一条指令监控处理;在所述下一条指令监控处理时,对下一条接收到的所述操作指令的所述指令码是否为设备验证指令码进行判断,若是则进行所述设备验证处理,并停止所述下一条指令监控处理;若否则将本地存储的所述第一随机数设为已失效状态,并停止所述下一条指令监控处理。
优选的,所述安全控制模块具体用于在所述设备验证处理时,对本地存储的所述第一随机数是否为未失效状态进行识别;若为未失效状态则从本地存储介质中读取出所述第一随机数,并从所述指令参数中提取出第一鉴权数据;并调用预先与试验程序沙箱约定的解密算法对应的算法单元,使用预设的沙箱鉴权密钥对所述第一鉴权数据进行解密处理生成对应的第一明文数据;并对所述第一明文数据与所述第一随机数进行比对,比对成功则设置所述第一验证状态为验证成功,比对失败则设置所述第一验证状态为验证失败;并将存储的所述第一随机数设为已失效状态;并将所述第一验证状态通过所述第二通讯模块向所述试验程序沙箱回发。
优选的,所述第一配置数据包括第一加解密类型、第一算法标识、第一算法模式、第一密钥数据和第一加解密数据;
所述第一加解密类型包括加密类型、解密类型和摘要类型;
所述第一算法标识包括DES算法标识、3DES算法标识、AES算法标识、RSA算法标识、MD5算法标识、SHA1算法标识、SHA256算法标识、SM1算法标识、SM2算法标识、SM3算法标识和SM4算法标识;所述DES算法标识与所述数据加密标准DES算法单元对应,所述3DES算法标识与所述三重数据加密算法3DES算法单元对应,所述AES算法标识与所述高级加密标准AES算法单元对应,所述RSA算法标识与所述RSA算法单元对应,所述MD5算法标识与所述信息摘要算法MD5算法单元对应,所述SHA1算法标识与所述安全散列算法SHA1算法单元对应,所述SHA256算法标识与所述安全散列算法SHA256算法单元对应,所述SM1算法标识与所述国密算法SM1算法单元对应,所述SM2算法标识与所述国密算法SM2算法单元对应,所述SM3算法标识与所述国密算法SM3算法单元对应,所述SM4算法标识与所述国密算法SM4算法单元对应;
所述第一算法模式在所述第一算法标识为所述DES算法标识、所述3DES算法标识、所述SM1算法标识或所述SM4算法标识时具体包括ECB模式和CBC模式;所述第一算法模式在所述第一算法标识为所述AES算法标识时具体包括ECB模式和CTR模式。
优选的,所述安全控制模块具体用于在所述数据加解密处理时,从所述指令参数中提取出所述第一加解密类型、所述第一算法标识、所述第一算法模式、所述第一密钥数据和所述第一加解密数据;
当所述第一加解密类型为加密类型或解密类型时,若所述第一算法标识为所述DES算法标识、所述3DES算法标识、所述AES算法标识、所述SM1算法标识或所述SM4算法标识,则调用对应的算法单元,使用所述第一密钥数据对所述第一加解密数据进行与所述第一算法模式对应的指定模式对称密钥算法数据加密或解密运算,并将运算结果作为第一计算结果通过所述第二通讯模块向所述试验程序沙箱回发;若所述第一算法标识为所述RSA算法标识或所述SM2算法标识,则调用对应的算法单元,使用所述第一密钥数据对所述第一加解密数据进行对应的非对称密钥算法数据加密或解密运算,并将运算结果作为所述第一计算结果向所述试验程序沙箱回发;
当所述第一加解密类型为摘要类型时,若所述第一算法标识为所述MD5算法标识、所述SHA1算法标识、所述SHA256算法标识或所述SM3算法标识时,则调用对应的算法单元,对所述第一加解密数据进行对应的摘要报文运算,并将运算结果作为所述第一计算结果向所述试验程序沙箱回发。
优选的,所述第一通讯模块和所述第二通讯模块均包括通用串行总线USB接口单元、串行外设接口SPI接口单元、两线式串行总线I2C接口单元、异步收发传输器UART接口单元和ISO7816接口单元;所述串行外设接口SPI接口单元支持主/从模式切换;所述两线式串行总线I2C接口单元支持标准、快速和高速模式切换;所述ISO7816接口单元支持7816-3通讯协议,支持读卡器模式和卡模式切换。
本发明实施例提供一种加密算法实验系统,该系统包括:试验程序沙箱和加密算法装置;试验程序沙箱用于加载算法编码并提供运行环境对其进行运行,并可调用加密算法装置对算法编码的正确性进行验证,另外还可基于加密算法装置对算法编码的性能进行分析;加密算法装置内嵌了多种与5G应用相关的算法单元,算法范围覆盖多个对称算法、非对称算法和数字摘要算法,并对国密算法给出了支持。通过本发明,解决了当前教学环境中缺乏用于验证算法编码的实验设备问题,对提高教学质量很有帮助。
附图说明
图1为本发明实施例提供的一种加密算法实验系统的模块结构图。
具体实施方式
为了使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明作进一步地详细描述,显然,所描述的实施例仅仅是本发明一部份实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
图1为本发明实施例提供的一种加密算法实验系统的模块结构图,如图1所示,该系统包括:试验程序沙箱11和加密算法装置12。
(一)试验程序沙箱11
试验程序沙箱11包括程序运行模块111、程序管理模块112和第一通讯模块113;程序管理模块112分别与程序运行模块111和第一通讯模块113连接;第一通讯模块113与加密算法装置12连接;程序运行模块111用于提供编程代码的编译执行环境;程序管理模块112用于导入第一算法代码及其对应的第一配置数据,并调用程序运行模块111对第一算法代码进行编译执行处理生成对应的第一执行结果,并根据第一配置数据和第一执行结果通过第一通讯模块113调用加密算法装置12进行代码正确性验证处理;程序管理模块112还用于对导入的算法代码进行性能分析处理。
其中,第一通讯模块113包括通用串行总线(Universal Serial Bus,USB)接口单元、串行外设接口(Serial Peripheral Interface,SPI)接口单元、两线式串行总线(Inter-Integrated Circuit,I2C)接口单元、异步收发传输器(Universal AsynchronousReceiver/Transmitter,UART)接口单元和ISO7816接口单元;SPI接口单元支持主/从模式切换;I2C接口单元支持标准模式(Standard-mode)、快速模式(Fast-mode)和高速模式(Hs-mod)切换;ISO7816接口单元支持7816-3通讯协议,支持读卡器模式和卡模式切换;
第一配置数据包括第一加解密类型、第一算法标识、第一算法模式、第一密钥数据和第一加解密数据;第一加解密类型包括加密类型、解密类型和摘要类型;第一算法标识包括数据加密标准(Data Encryption Standard,DES)算法标识、三重数据加密算法(TripleDES,3DES)算法标识、高级加密标准(Advanced Encryption Standard,AES)算法标识、RSA算法标识、信息摘要算法MD5(Message-Digest Algorithm 5)算法标识、安全散列算法SHA1(Secure Hash Algorithm 1)算法标识、安全散列算法SHA256(Secure Hash Algorithm256)算法标识、国密算法SM1算法标识、国密算法SM2算法标识、国密算法SM3算法标识和国密算法SM4算法标识;第一算法模式在第一算法标识为DES算法标识、3DES算法标识、SM1算法标识或SM4算法标识时具体包括电码本(Electronic Codebook,ECB)模式和密码分组链接(Cipher-block chaining,CBC)模式;第一算法模式在第一算法标识为AES算法标识时具体包括ECB模式和计数器(Counter,CTR)模式;
程序运行模块111提供的编译执行环境至少包括C语言和C++语言编程代码的编译执行环境。
这里,试验程序沙箱11可以为一个虚拟沙箱系统,也可以为一个独立的设备;当试验程序沙箱11为虚拟沙箱系统时,加载在各个计算机操作系统之上,通过计算机的显示组件向教师或学生提供信息显示界面,通过计算机的输入组件对教师或学生输入的算法代码信息和对应的配置数据信息进行导入,并通过调用计算机的通讯接口实现第一通讯模块113的通讯功能;当试验程序沙箱11为虚拟沙箱系统时,其兼容的操作系统至少包括Android操作系统、MacOS/ios操作系统、windows操作系统和Linx操作系统;当试验程序沙箱11为独立设备时,试验程序沙箱11还包括显示模块与信息输入模块,通过显示模块向教师或学生提供信息显示界面,并通过息输入模块对教师或学生输入的算法代码信息和对应的配置数据信息进行导入。
这里,导入的第一算法代码的编程语言应与与程序运行模块111提供的编译执行环境的语言种类一致,在程序运行模块111默认提供的编译执行环境为C语言和C++语言编译执行环境时,第一算法代码的编程语言默认就应为C或C++语言。需要说明的是,程序运行模块111的编译执行环境还可持续升级,对应的第一算法代码的编程语言种类也可持续丰富。
这里,导入的第一配置数据与第一算法代码对应,第一加解密类型用以标识对应算法代码执行的具体功能(加密、解密或摘要计算);第一算法标识用以标识对应算法代码使用的具体算法(DES、3DES、AES、RSA、MD5、SHA1、SHA256、SM1、SM2、SM3或SM4);因为有些算法存在加解密子模式,所以第一算法模式用以标识对应算法代码在加解密计算时使用的具体模式,在第一算法标识为DES、3DES、SM1或SM4算法标识时第一算法模式包括ECB/CBC两种模式,在第一算法标识为AES算法标识时第一算法模式包括ECB/CTR两种模式;在加解密计算时需要对应的密钥,第一密钥数据用以标识对应算法代码执行加解密时所使用的密钥;在加解密计算时,第一加解密数据用以标识对应算法代码中被加解密的数据原文,在摘要计算时,第一加解密数据用以标识对应算法代码中计算摘要的数据原文;通过第一配置数据可以获得第一算法代码计算过程所有必须参数,将第一配置数据送入加密算法装置12计算就可得到第一算法代码的理论输出值,再使用该理论输出值与第一算法代码的实际执行输出也就是第一执行结果进行比对,就可以获知该第一算法代码的编码正确性。
在本发明实施例提供的一个具体现方式中,程序管理模块112具体用于在代码正确性验证处理时,设置操作指令的指令码为随机数获取指令码;并将操作指令通过第一通讯模块113向加密算法装置12发送,并接收加密算法装置12回发的第一随机数;按预先与加密算法装置12约定的加密算法,使用预设的设备鉴权密钥对第一随机数进行加密处理生成对应的第一鉴权数据;设置操作指令的指令码为设备验证指令码,并设置指令参数为第一鉴权数据;将操作指令向加密算法装置12发送,并接收加密算法装置12回发的第一验证状态;当第一验证状态为验证成功时,设置操作指令的指令码为加解密计算指令码,并设置指令参数为第一配置数据;将操作指令向加密算法装置12发送,并接收加密算法装置12回发的第一计算结果;判断第一计算结果与第一执行结果是否匹配,若匹配则输出代码正确性验证结果为代码正确,若不匹配则输出代码正确性验证结果为代码错误。
这里,试验程序沙箱11通过向加密算法装置12发送操作指令的方式来实现对加密算法装置12的调用,具体的就是程序管理模块112通过第一通讯模块113向加密算法装置12发送操作指令。试验程序沙箱11与加密算法装置12间的操作指令的指令码至少包括随机数获取指令码、设备验证指令码和加解密计算指令码。
本发明实施例为设备使用安全起见,在每次进行加密、解密或摘要计算之前,都要求试验程序沙箱11与加密算法装置12做一次类似外部认证的操作,只有认证成功才能使用加密算法装置12的计算功能。该外部认证的顺序是:首先试验程序沙箱11的程序管理模块112通过指令码为随机数获取指令码的操作指令,向加密算法装置12申请一个随机数也就是第一随机数;然后程序管理模块112对第一随机数进行加密得到加密密文也就是第一鉴权数据,再通过指令码为设备验证指令码的操作指令,将第一鉴权数据向加密算法装置12发送以供装置进行验证;然后,只有在加密算法装置12返回的验证状态也就是第一验证状态为验证成功的情况下,程序管理模块112才能通过指令码为加解密计算指令码的操作指令,向加密算法装置12发送第一配置数据,从而获得加密算法装置12返回的计算结果。
可选的,在本发明实施例提供的一个具体现方式中,程序管理模块112具体用于在加密算法装置12返回的第一验证状态不为验证成功时,则立即终止当前的代码正确性验证处理,并向教师或学生显示验证失败错误提示信息。
在本发明实施例提供的另一个具体现方式中,程序管理模块112具体用于在性能分析处理时,对导入的算法代码在程序运行模块111上的执行时长进行统计生成对应的第一时长;设置操作指令的指令码为加解密计算指令码,指令参数为与导入的算法代码对应的配置数据;并对操作指令在加密算法装置12上的执行时长进行统计生成对应的第二时长;计算第一时长与第二时长的比值,生成第一比值;参考预设的加密算法装置12与试验程序沙箱11的性能对比参数,对第一比值进行评估;并将评估结果作为性能分析的输出结果。
这里,预设的加密算法装置12与试验程序沙箱11的性能对比参数是一个以设备的中央处理器(central processing unit,CPU)工作主频为主要计量对象的比对参数,在该比对参数已知的情况下,可基于该比对参数设定一个比对阈值,并基于与该阈值的距离范围划分出多个评估等级,由此就能获得第一比值对应的评估等级,这样就能对算法代码的性能等级以等级提升速度进行分析。
(二)加密算法装置12
加密算法装置12包括第二通讯模块121、安全控制模块122和算法处理模块123;第二通讯模块121分别与第一通讯模块113和安全控制模块122连接;安全控制模块122与算法处理模块123连接;安全控制模块122用于通过第二通讯模块121接收试验程序沙箱11发送的操作指令;从操作指令中提取出指令码和指令参数,并对指令码进行识别;当指令码为随机数获取指令码时,调用算法处理模块123进行随机数产生处理;当指令码为设备验证指令码时,根据指令参数调用算法处理模块123进行设备验证处理;当指令码为加解密计算指令码时,根据指令参数调用算法处理模块123进行数据加解密处理。
其中,第二通讯模块121与第一通讯模块113类似,也包括USB接口单元、SPI接口单元、I2C接口单元、UART接口单元和ISO7816接口单元;SPI接口单元也支持主/从模式切换;I2C接口单元也支持标准、快速和高速模式切换;ISO7816接口单元支持7816-3通讯协议,也支持读卡器模式和卡模式切换;
算法处理模块123包括随机数发生器单元、DES算法单元、3DES算法单元、AES算法单元、RSA算法单元、MD5算法单元、SHA1算法单元、SHA256算法单元、SM1算法单元、SM2算法单元、SM3算法单元和SM4算法单元;
前文中第一算法标识的DES算法标识与算法处理模块123的DES算法单元对应,3DES算法标识与3DES算法单元对应,AES算法标识与AES算法单元对应,RSA算法标识与RSA算法单元对应,MD5算法标识与MD5算法单元对应,SHA1算法标识与SHA1算法单元对应,SHA256算法标识与SHA256算法单元对应,SM1算法标识与SM1算法单元对应,SM2算法标识与SM2算法单元对应,SM3算法标识与SM3算法单元对应,SM4算法标识与SM4算法单元对应。
在本发明实施例提供的另一个具体现方式中,安全控制模块122具体用于在随机数产生处理时,向随机数发生器单元发送随机数生成指令,并接收随机数发生器单元回发的第一随机数保存于本地;并将存储的第一随机数设为未失效状态;并将第一随机数通过第二通讯模块121向试验程序沙箱11回发。
在本发明实施例提供的另一个具体现方式中,安全控制模块122还用于在随机数产生处理完成时,进行下一条指令监控处理;在下一条指令监控处理时,对下一条接收到的操作指令的指令码是否为设备验证指令码进行判断,若是则进行设备验证处理,并停止下一条指令监控处理;若否则将本地存储的第一随机数设为已失效状态,并停止下一条指令监控处理。
这里,如前文所述在每次进行加密、解密或摘要计算之前都要求试验程序沙箱11与加密算法装置12做一次类似外部认证的操作;对于该外部认证的处理过程,为防止过程中受到外部注入式攻击,本发明实施例规定如下:随机数只能用一次,一次用完后失效;指令码为随机数获取指令码的操作指令的下一条操作指令的指令码必须是设备验证指令码,否则随机数也失效。
在本发明实施例提供的另一个具体现方式中,安全控制模块122具体用于在设备验证处理时,对本地存储的第一随机数是否为未失效状态进行识别;若为未失效状态则从本地存储介质中读取出第一随机数,并从指令参数中提取出第一鉴权数据;并调用预先与试验程序沙箱11约定的解密算法对应的算法单元,使用预设的沙箱鉴权密钥对第一鉴权数据进行解密处理生成对应的第一明文数据;并对第一明文数据与第一随机数进行比对,比对成功则设置第一验证状态为验证成功,比对失败则设置第一验证状态为验证失败;并将存储的第一随机数设为已失效状态;并将第一验证状态通过第二通讯模块121向试验程序沙箱11回发。
可选的,在本发明实施例提供的另一个具体现方式中,安全控制模块122具体用于在识别出本地存储的第一随机数为已失效状态时,将设置为随机数已失效的第一验证状态通过第二通讯模块121向试验程序沙箱11回发。
这里,本地存储的第一随机数为未失效状态,说明前一条操作指令的指令码就是随机数获取指令码,且前一条指令产生的第一随机数尚未被使用过。外部过程,在试验程序沙箱11端是按预先与加密算法装置12约定的加密算法使用预设的设备鉴权密钥对第一随机数加密得到第一鉴权数据,对应的在加密算法装置12端就应是按预先与试验程序沙箱11约定的解密算法使用预设的沙箱鉴权密钥对第一鉴权数据解密得到第一明文数据,第一明文数据若与第一随机数一致说明认证成功,反之则失败;这里,试验程序沙箱11与加密算法装置12之间约定的加解密算法若为对称密钥算法,则设备鉴权密钥与沙箱鉴权密钥一致,约定的加解密算法若为非对称密钥算法,则设备鉴权密钥与沙箱鉴权密钥应为一对公私钥;又因为在加密算法装置12端是调用算法处理模块123中对应算法单元,所以,试验程序沙箱11与加密算法装置12之间约定的加解密算法若为对称密钥算法则该算法具体应为DES、3DES、AES、SM1或SM4算法,试验程序沙箱11与加密算法装置12之间约定的加解密算法若为非对称密钥算法则该算法具体应为RSA或SM2算法。
在本发明实施例提供的另一个具体现方式中,安全控制模块122具体用于在数据加解密处理时,从指令参数中提取出第一加解密类型、第一算法标识、第一算法模式、第一密钥数据和第一加解密数据;
当第一加解密类型为加密类型或解密类型时,若第一算法标识为DES算法标识、3DES算法标识、AES算法标识、SM1算法标识或SM4算法标识,则调用对应的算法单元,使用第一密钥数据对第一加解密数据进行与第一算法模式对应的指定模式对称密钥算法数据加密或解密运算,并将运算结果作为第一计算结果通过第二通讯模块121向试验程序沙箱11回发;若第一算法标识为RSA算法标识或SM2算法标识,则调用对应的算法单元,使用第一密钥数据对第一加解密数据进行对应的非对称密钥算法数据加密或解密运算,并将运算结果作为第一计算结果向试验程序沙箱11回发;
当第一加解密类型为摘要类型时,若第一算法标识为MD5算法标识、SHA1算法标识、SHA256算法标识或SM3算法标识时,则调用对应的算法单元,对第一加解密数据进行对应的摘要报文运算,并将运算结果作为第一计算结果向试验程序沙箱11回发。
这里,加密算法装置12会根据指令参数中第一配置数据的第一加解密类型、第一算法标识、第一算法模式、第一密钥数据和第一加解密数据,来确认当次计算的各项计算参数:类型、算法(和或算法模式)、原文数据和或密钥数据;并调用对应的算法单元进行运算;本发明实施例算法处理模块123的各个算法单元的计算功能可由一个集成算法芯片予以实现,也可由多个算法芯片分别或组合实现。
另外,为防止过程中受到外部持续不断的试探攻击,本发明实施例还规定可对认证失败次数设置上限,一旦连续认证失败次数超过该上限则加密算法装置12的安全控制模块122会将所有与试验程序沙箱11的交互指令锁定不再执行,除非根据定制的解锁处理流程完成装置解锁。
可选的,安全控制模块122还用于在本地存储介质上分配一个失败计数器,并将其初始化为0;并在每次设备验证处理失败时对失败计数器作加1操作,在每次设备验证处理成功时对失败计数器作清零操作;并对失败计数器的计数值是否超过预设的锁定次数阈值进行判断,若超过则将本地的锁定开关状态设为开启状态。
可选的,安全控制模块122还用于在本地的锁定开关状态为开启状态时,只响应试验程序沙箱11发送的指令码为解锁指令码的操作指令。
可选的,安全控制模块122还用于在本地的锁定开关状态为开启状态并接收到试验程序沙箱11发送的指令码为解锁指令码的操作指令时,根据指令参数进行对应的解锁验证处理,若解锁验证处理成功则将本地的锁定开关状态设为关闭状态,并将本地存储的失败计数器清零。
需要说明的是,应理解以上装置的各个模块的划分仅仅是一种逻辑功能的划分,实际实现时可以全部或部分集成到一个物理实体上,也可以物理上分开。且这些模块可以全部以软件通过处理元件调用的形式实现;也可以全部以硬件的形式实现;还可以部分模块通过处理元件调用软件的形式实现,部分模块通过硬件的形式实现。例如,上位机通讯模块可以为单独设立的处理元件,也可以集成在上述装置的某一个芯片中实现,此外,也可以以程序代码的形式存储于上述装置的存储器中,由上述装置的某一个处理元件调用并执行以上确定模块的功能。其它模块的实现与之类似。此外这些模块全部或部分可以集成在一起,也可以独立实现。这里所描述的处理元件可以是一种集成电路,具有信号的处理能力。在实现过程中,上述各个模块执行步骤可以通过处理器元件中的硬件的集成逻辑电路或者软件形式的指令完成。
例如,以上这些模块可以是被配置成实施以上模块执行步骤的一个或多个集成电路,例如:一个或多个特定集成电路(Application Specific Integrated Circuit,ASIC),或,一个或多个数字信号处理器(Digital Signal Processor,DSP),或,一个或者多个现场可编程门阵列(Field Programmable Gate Array,FPGA)等。再如,当以上某个模块通过处理元件调度程序代码的形式实现时,该处理元件可以是通用处理器,例如中央处理器(Central Processing Unit,CPU)或其它可以调用程序代码的处理器。再如,这些模块可以集成在一起,以片上系统(System-on-a-chip,SOC)的形式实现。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。该计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行该计算机程序指令时,全部或部分地产生按照本发明实施例所描述的流程或功能。上述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。上述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,上述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线路(Digital Subscriber Line,DSL))或无线(例如红外、无线、蓝牙、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。上述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。上述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘(solid state disk,SSD))等。
本发明实施例提供一种加密算法实验系统,该系统包括:试验程序沙箱和加密算法装置;试验程序沙箱用于加载算法编码并提供运行环境对其进行运行,并可调用加密算法装置对算法编码的正确性进行验证,另外还可基于加密算法装置对算法编码的性能进行分析;加密算法装置内嵌了多种与5G应用相关的算法单元,算法范围覆盖多个对称算法、非对称算法和数字摘要算法,并对国密算法给出了支持。通过本发明,解决了当前教学环境中缺乏用于验证算法编码的实验设备问题,对提高教学质量很有帮助。
专业人员应该还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
结合本文中所公开的实施例描述的执行步骤可以用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
以上所述的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施方式而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (10)

1.一种加密算法实验系统,其特征在于,所述系统包括:试验程序沙箱和加密算法装置;
所述试验程序沙箱包括程序运行模块、程序管理模块和第一通讯模块;所述程序管理模块分别与所述程序运行模块和所述第一通讯模块连接;所述第一通讯模块与所述加密算法装置连接;所述程序运行模块用于提供编程代码的编译执行环境;所述程序管理模块用于导入第一算法代码及其对应的第一配置数据,并调用所述程序运行模块对所述第一算法代码进行编译执行处理生成对应的第一执行结果,并根据所述第一配置数据和所述第一执行结果通过所述第一通讯模块调用所述加密算法装置进行代码正确性验证处理;所述程序管理模块还用于对导入的算法代码进行性能分析处理;
所述加密算法装置包括第二通讯模块、安全控制模块和算法处理模块;所述第二通讯模块分别与所述第一通讯模块和所述安全控制模块连接;所述安全控制模块与所述算法处理模块连接;所述安全控制模块用于通过所述第二通讯模块接收所述试验程序沙箱发送的操作指令;从所述操作指令中提取出指令码和指令参数,并对所述指令码进行识别;当所述指令码为随机数获取指令码时,调用所述算法处理模块进行随机数产生处理;当所述指令码为设备验证指令码时,根据所述指令参数调用所述算法处理模块进行设备验证处理;当所述指令码为加解密计算指令码时,根据所述指令参数调用所述算法处理模块进行数据加解密处理;
其中,所述程序管理模块具体用于在所述代码正确性验证处理时,设置所述操作指令的所述指令码为随机数获取指令码;并将所述操作指令通过所述第一通讯模块向所述加密算法装置发送,并接收所述加密算法装置回发的第一随机数;按预先与加密算法装置约定的加密算法,使用预设的设备鉴权密钥对所述第一随机数进行加密处理生成对应的第一鉴权数据;设置所述操作指令的所述指令码为设备验证指令码,并设置所述指令参数为所述第一鉴权数据;将所述操作指令向所述加密算法装置发送,并接收所述加密算法装置回发的第一验证状态;当所述第一验证状态为验证成功时,设置所述操作指令的所述指令码为加解密计算指令码,并设置所述指令参数为所述第一配置数据;将所述操作指令向所述加密算法装置发送,并接收所述加密算法装置回发的第一计算结果;判断所述第一计算结果与所述第一执行结果是否匹配,若匹配则输出代码正确性验证结果为代码正确,若不匹配则输出所述代码正确性验证结果为代码错误。
2.根据权利要求1所述的加密算法实验系统,其特征在于,
所述程序管理模块具体用于在所述性能分析处理时,对导入的算法代码在所述程序运行模块上的执行时长进行统计生成对应的第一时长;设置所述操作指令的所述指令码为加解密计算指令码,所述指令参数为与导入的算法代码对应的配置数据;并对所述操作指令在所述加密算法装置上的执行时长进行统计生成对应的第二时长;计算所述第一时长与所述第二时长的比值,生成第一比值;参考预设的加密算法装置与试验程序沙箱的性能对比参数,对所述第一比值进行评估;并将评估结果作为性能分析的输出结果。
3.根据权利要求1所述的加密算法实验系统,其特征在于,
所述程序运行模块提供的编译执行环境至少包括C语言和C++语言编程代码的编译执行环境。
4.根据权利要求1所述的加密算法实验系统,其特征在于,
所述算法处理模块包括随机数发生器单元、数据加密标准DES算法单元、三重数据加密算法3DES算法单元、高级加密标准AES算法单元、RSA算法单元、信息摘要算法MD5算法单元、安全散列算法SHA1算法单元、安全散列算法SHA256算法单元、国密算法SM1算法单元、国密算法SM2算法单元、国密算法SM3算法单元和国密算法SM4算法单元。
5.根据权利要求4所述的加密算法实验系统,其特征在于,
所述安全控制模块具体用于在所述随机数产生处理时,向所述随机数发生器单元发送随机数生成指令,并接收所述随机数发生器单元回发的第一随机数保存于本地;并将存储的所述第一随机数设为未失效状态;并将所述第一随机数通过所述第二通讯模块向所述试验程序沙箱回发。
6.根据权利要求5所述的加密算法实验系统,其特征在于,
所述安全控制模块还用于在所述随机数产生处理完成时,进行下一条指令监控处理;在所述下一条指令监控处理时,对下一条接收到的所述操作指令的所述指令码是否为设备验证指令码进行判断,若是则进行所述设备验证处理,并停止所述下一条指令监控处理;若否则将本地存储的所述第一随机数设为已失效状态,并停止所述下一条指令监控处理。
7.根据权利要求5所述的加密算法实验系统,其特征在于,
所述安全控制模块具体用于在所述设备验证处理时,对本地存储的所述第一随机数是否为未失效状态进行识别;若为未失效状态则从本地存储介质中读取出所述第一随机数,并从所述指令参数中提取出第一鉴权数据;并调用预先与试验程序沙箱约定的解密算法对应的算法单元,使用预设的沙箱鉴权密钥对所述第一鉴权数据进行解密处理生成对应的第一明文数据;并对所述第一明文数据与所述第一随机数进行比对,比对成功则设置所述第一验证状态为验证成功,比对失败则设置所述第一验证状态为验证失败;并将存储的所述第一随机数设为已失效状态;并将所述第一验证状态通过所述第二通讯模块向所述试验程序沙箱回发。
8.根据权利要求4所述的加密算法实验系统,其特征在于,
所述第一配置数据包括第一加解密类型、第一算法标识、第一算法模式、第一密钥数据和第一加解密数据;
所述第一加解密类型包括加密类型、解密类型和摘要类型;
所述第一算法标识包括DES算法标识、3DES算法标识、AES算法标识、RSA算法标识、MD5算法标识、SHA1算法标识、SHA256算法标识、SM1算法标识、SM2算法标识、SM3算法标识和SM4算法标识;所述DES算法标识与所述数据加密标准DES算法单元对应,所述3DES算法标识与所述三重数据加密算法3DES算法单元对应,所述AES算法标识与所述高级加密标准AES算法单元对应,所述RSA算法标识与所述RSA算法单元对应,所述MD5算法标识与所述信息摘要算法MD5算法单元对应,所述SHA1算法标识与所述安全散列算法SHA1算法单元对应,所述SHA256算法标识与所述安全散列算法SHA256算法单元对应,所述SM1算法标识与所述国密算法SM1算法单元对应,所述SM2算法标识与所述国密算法SM2算法单元对应,所述SM3算法标识与所述国密算法SM3算法单元对应,所述SM4算法标识与所述国密算法SM4算法单元对应;
所述第一算法模式在所述第一算法标识为所述DES算法标识、所述3DES算法标识、所述SM1算法标识或所述SM4算法标识时具体包括ECB模式和CBC模式;所述第一算法模式在所述第一算法标识为所述AES算法标识时具体包括ECB模式和CTR模式。
9.根据权利要求8所述的加密算法实验系统,其特征在于,
所述安全控制模块具体用于在所述数据加解密处理时,从所述指令参数中提取出所述第一加解密类型、所述第一算法标识、所述第一算法模式、所述第一密钥数据和所述第一加解密数据;
当所述第一加解密类型为加密类型或解密类型时,若所述第一算法标识为所述DES算法标识、所述3DES算法标识、所述AES算法标识、所述SM1算法标识或所述SM4算法标识,则调用对应的算法单元,使用所述第一密钥数据对所述第一加解密数据进行与所述第一算法模式对应的指定模式对称密钥算法数据加密或解密运算,并将运算结果作为第一计算结果通过所述第二通讯模块向所述试验程序沙箱回发;若所述第一算法标识为所述RSA算法标识或所述SM2算法标识,则调用对应的算法单元,使用所述第一密钥数据对所述第一加解密数据进行对应的非对称密钥算法数据加密或解密运算,并将运算结果作为所述第一计算结果向所述试验程序沙箱回发;
当所述第一加解密类型为摘要类型时,若所述第一算法标识为所述MD5算法标识、所述SHA1算法标识、所述SHA256算法标识或所述SM3算法标识时,则调用对应的算法单元,对所述第一加解密数据进行对应的摘要报文运算,并将运算结果作为所述第一计算结果向所述试验程序沙箱回发。
10.根据权利要求1所述的加密算法实验系统,其特征在于,
所述第一通讯模块和所述第二通讯模块均包括通用串行总线USB接口单元、串行外设接口SPI接口单元、两线式串行总线I2C接口单元、异步收发传输器UART接口单元和ISO7816接口单元;所述串行外设接口SPI接口单元支持主/从模式切换;所述两线式串行总线I2C接口单元支持标准、快速和高速模式切换;所述ISO7816接口单元支持7816-3通讯协议,支持读卡器模式和卡模式切换。
CN202111582959.7A 2021-12-22 2021-12-22 一种加密算法实验系统 Active CN114285584B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202111582959.7A CN114285584B (zh) 2021-12-22 2021-12-22 一种加密算法实验系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111582959.7A CN114285584B (zh) 2021-12-22 2021-12-22 一种加密算法实验系统

Publications (2)

Publication Number Publication Date
CN114285584A CN114285584A (zh) 2022-04-05
CN114285584B true CN114285584B (zh) 2024-01-16

Family

ID=80873964

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111582959.7A Active CN114285584B (zh) 2021-12-22 2021-12-22 一种加密算法实验系统

Country Status (1)

Country Link
CN (1) CN114285584B (zh)

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6523115B1 (en) * 1998-02-18 2003-02-18 Matsushita Electric Industrial Co., Ltd. Encryption device, decryption device, encryption method, decryption method, cryptography system, computer-readable recording medium storing encryption program, and computer-readable recording medium storing decryption program which perform error diagnosis
CN1848129A (zh) * 2005-04-05 2006-10-18 株式会社Ntt都科摩 应用程序验证系统、应用程序验证方法以及计算机程序
CN101635019A (zh) * 2009-08-25 2010-01-27 中国华录集团有限公司 基于安全mcu的嵌入式软件程序的加密系统
CN104700028A (zh) * 2015-03-25 2015-06-10 上海交通大学 一种基于安全沙箱机制的智能密码钥匙密码算法检测系统
CN107465503A (zh) * 2017-07-21 2017-12-12 山东华芯半导体有限公司 一种快速验证安全存储芯片密码算法正确性的方法
CN113038463A (zh) * 2021-03-29 2021-06-25 北京正奇盾数据安全技术有限公司 一种通讯加密认证实验装置
CN113656229A (zh) * 2021-08-17 2021-11-16 中金金融认证中心有限公司 计算机系统密码模块的检测方法、装置及存储介质

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2016135729A1 (en) * 2015-02-26 2016-09-01 Israel Zimmerman A method to identify known compilers functions, libraries and objects inside files and data items containing an executable code
EP3912109B1 (en) * 2019-01-20 2022-07-27 Helios Data Inc. Data sharing architecture

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6523115B1 (en) * 1998-02-18 2003-02-18 Matsushita Electric Industrial Co., Ltd. Encryption device, decryption device, encryption method, decryption method, cryptography system, computer-readable recording medium storing encryption program, and computer-readable recording medium storing decryption program which perform error diagnosis
CN1848129A (zh) * 2005-04-05 2006-10-18 株式会社Ntt都科摩 应用程序验证系统、应用程序验证方法以及计算机程序
CN101635019A (zh) * 2009-08-25 2010-01-27 中国华录集团有限公司 基于安全mcu的嵌入式软件程序的加密系统
CN104700028A (zh) * 2015-03-25 2015-06-10 上海交通大学 一种基于安全沙箱机制的智能密码钥匙密码算法检测系统
CN107465503A (zh) * 2017-07-21 2017-12-12 山东华芯半导体有限公司 一种快速验证安全存储芯片密码算法正确性的方法
CN113038463A (zh) * 2021-03-29 2021-06-25 北京正奇盾数据安全技术有限公司 一种通讯加密认证实验装置
CN113656229A (zh) * 2021-08-17 2021-11-16 中金金融认证中心有限公司 计算机系统密码模块的检测方法、装置及存储介质

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
基于CPLD单片机实验仿真器的设计;高原;陈雅妮;胡广斌;;电子世界(第23期);全文 *

Also Published As

Publication number Publication date
CN114285584A (zh) 2022-04-05

Similar Documents

Publication Publication Date Title
CN108347361B (zh) 应用程序测试方法、装置、计算机设备和存储介质
CN110891061B (zh) 数据的加解密方法、装置、存储介质及加密文件
CN113014539B (zh) 一种物联网设备安全保护系统及方法
CN110995685B (zh) 数据的加解密方法、装置、系统及存储介质
CN109190362B (zh) 安全通信方法及相关设备
CN111628863B (zh) 一种数据签名的方法、装置、电子设备及存储介质
CN113038463B (zh) 一种通讯加密认证实验装置
CN114285584B (zh) 一种加密算法实验系统
CN111127014A (zh) 交易信息处理方法、服务器、用户终端、系统及存储介质
CN107358032B (zh) 一种产品的升级方法、装置及产品升级系统
CN115865495A (zh) 数据传输控制方法、装置、电子设备和可读存储介质
CN112825093B (zh) 安全基线检查方法、主机、服务器、电子设备及存储介质
CN111382050B (zh) 一种网络服务接口测试的方法及装置
CN112054890B (zh) 屏体配置文件导出、导入方法及其装置和播控设备
CN114117388A (zh) 设备注册方法、设备注册装置、电子设备以及存储介质
CN112769764A (zh) 仪表的计量数据传输密钥存储方法及其传输方法、装置
CN112784232B (zh) 一种基于本地化数据执行任务的方法、装置和电子设备
CN114466358B (zh) 一种基于零信任的用户身份持续认证方法及装置
CN118200049B (zh) 一种金融数据的加密方法、加密装置、设备及介质
CN114928756B (zh) 视频数据保护、加密、校验方法及系统、设备
CN116208517A (zh) 一种基于蓝牙的数据采集方法和系统
CN116032532A (zh) 空中下载服务的授权方法、装置、设备及计算机存储介质
CN116760585A (zh) 一种基于特征信息的信息验证方法、装置、服务器及介质
CN116502211A (zh) 电子设备密码设置方法、装置、介质及电子设备
CN115329315A (zh) 服务鉴权方法,装置,存储介质以及电子设备

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant