CN114978714B - 基于risc-v的轻量级数据总线加密安全传输方法 - Google Patents
基于risc-v的轻量级数据总线加密安全传输方法 Download PDFInfo
- Publication number
- CN114978714B CN114978714B CN202210576114.5A CN202210576114A CN114978714B CN 114978714 B CN114978714 B CN 114978714B CN 202210576114 A CN202210576114 A CN 202210576114A CN 114978714 B CN114978714 B CN 114978714B
- Authority
- CN
- China
- Prior art keywords
- data
- bus
- module
- chip
- encryption
- 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
Links
- 230000005540 biological transmission Effects 0.000 title claims abstract description 108
- 238000000034 method Methods 0.000 title claims abstract description 99
- 238000013461 design Methods 0.000 claims abstract description 28
- 230000015654 memory Effects 0.000 claims abstract description 19
- 238000004458 analytical method Methods 0.000 claims abstract description 14
- 230000007246 mechanism Effects 0.000 claims description 21
- 230000008569 process Effects 0.000 claims description 14
- 230000003993 interaction Effects 0.000 claims description 6
- 230000007123 defense Effects 0.000 claims description 5
- 230000008260 defense mechanism Effects 0.000 claims description 3
- 238000012938 design process Methods 0.000 claims description 2
- 230000006870 function Effects 0.000 claims description 2
- 238000010586 diagram Methods 0.000 description 14
- 238000004891 communication Methods 0.000 description 3
- 238000013459 approach Methods 0.000 description 2
- 238000002955 isolation Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 241000961374 Sancus Species 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000013524 data verification Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000011156 evaluation Methods 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/04—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
- H04L63/0428—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0861—Generation of secret information including derivation or calculation of cryptographic keys or passwords
- H04L9/0869—Generation of secret information including derivation or calculation of cryptographic keys or passwords involving random numbers or seeds
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0861—Generation of secret information including derivation or calculation of cryptographic keys or passwords
- H04L9/0877—Generation of secret information including derivation or calculation of cryptographic keys or passwords using additional device, e.g. trusted platform module [TPM], smartcard, USB or hardware security module [HSM]
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y04—INFORMATION OR COMMUNICATION TECHNOLOGIES HAVING AN IMPACT ON OTHER TECHNOLOGY AREAS
- Y04S—SYSTEMS INTEGRATING TECHNOLOGIES RELATED TO POWER NETWORK OPERATION, COMMUNICATION OR INFORMATION TECHNOLOGIES FOR IMPROVING THE ELECTRICAL POWER GENERATION, TRANSMISSION, DISTRIBUTION, MANAGEMENT OR USAGE, i.e. SMART GRIDS
- Y04S40/00—Systems for electrical power generation, transmission, distribution or end-user application management characterised by the use of communication or information technologies, or communication or information technology specific aspects supporting them
- Y04S40/20—Information technology specific aspects, e.g. CAD, simulation, modelling, system security
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Storage Device Security (AREA)
Abstract
本发明涉及计算机和电子的技术领域,特别是涉及一种基于RISC‑V的轻量级数据总线加密安全传输方法,其通过轻量级总线加密传输安全方法,实现了强加密内存DRAM,极大的降低了处理器芯片的功率开销,且可以有效的防御针对内存数据的直接物理攻击;包括如下技术方案:1)、设计总线安全分析方法,以分析RISC‑V芯片设计中总线的安全性;2)、搭建基于国密祖冲之算法的轻量级总线加密传输安全方法;3)、设计自动化嵌入轻量级总线传输安全工具,将上述总线加密传输安全方法嵌入到RISC‑V芯片中。
Description
技术领域
本发明涉及计算机和电子的技术领域,特别是涉及一种基于RISC-V的轻量级数据总线加密安全传输方法。
背景技术
RISC-V是一种新兴的指令集架构,适用于从简单的微控制器到高性能CPU的各种应用。近年来,越来越多的商业供应商计划使用该架构构建片上系统,并采用总线传输提高芯片间、芯片和内存之间的数据交互速率。基于RISC-V的片上系统越来越容易受到物理攻击,因此,RISC-V处理器的安全方面成为一个重要的问题。
对于RISC-V,攻击者常见的执行物理攻击方法是直接执行访存操作或在总线传输数据的过程中非法访问并获取数据,从而发生信息泄露。其中,最常见的攻击方式就是通过读取或写入所有类型的非易失性外部存储器(例如,板载闪存芯片、安全数码卡、机械硬盘、固态硬盘等)获取内存中的代码和数据。除此之外,攻击者还可以采用冷启动攻击从内存中提取用户数据。即使在实时系统上,攻击者还可以通过在处理器和内存之间插入调试系统,监听总线通信以获取用户数据。
通常,高端处理器会采用内存加密的方式阻止上述威胁,常见的对策是Intel SGX和AMD SME方案。Intel SGX采用强加密(AES)和消息验证代码(MAC)来维护存储在内存中的数据的机密性和完整性。AMD则采用安全协处理器方案,提出了安全内存加密,安全虚拟化加密以及基于硬件的哈希机制,并采用地址混淆方案实现内存加密和内存保护。上述两种安全机制会显着的提高性能开销,因此该解决方案并不适合延迟敏感和低功耗的嵌入式设备。
然而,嵌入式设备也有相应的防御对策。ARM TurstZone采用“隔离”的思想,将系统划分为安全和不安全两种模式,并规定所有的安全资源只能在安全模式下进行访问,同时,在AXI总线上增加NS标记位以实现模式间的切换。网络嵌入式系统的安全架构Sancus,则提出软件模块隔离、远程证明、安全通信和安全链接等安全属性。其中,安全通信模块通过指定受保护数据部分中的数据和代码只能通过特定的入口地址访问或执行,以此确保受保护的数据部分不被恶意提取,从而保证真实性、完整性。但是,上述两种方案只是从数据访问方面阻止了数据泄漏,还是可以通过数据总线获取用户的数据信息。
综上所述,高端处理器芯片的防御机制性能损耗过大,不适合轻量级的嵌入式设备,然而嵌入式设备的防御方法只是从数据流动层面加以限制,并没有对数据本身进行防御。因此,现有方法还没有实现对RISC-V总线传输安全防御方法。
发明内容
为解决上述技术问题,本发明提供一种通过轻量级总线加密传输安全方法,实现了强加密内存DRAM,极大的降低了处理器芯片的功率开销,且可以有效的防御针对内存数据的直接物理攻击的基于RISC-V的轻量级数据总线加密安全传输方法。
本发明的基于RISC-V的轻量级数据总线加密安全传输方法,包括如下技术方案:
1)、设计总线安全分析方法,以分析RISC-V芯片设计中总线的安全性-通过统计总线防御机制常见的实现特征对芯片设计文档进行分析,进而根据统计特征的数量,确定芯片总线传输的安全性,并给出关于总线传输的分析报告;
2)、搭建基于国密祖冲之算法的轻量级总线加密传输安全方法-对总线两端传输数据的模块增加额外的加密模块,将总线上传输的明文数据通过加密模块生成密文数据再进行传输,待密文到达数据请求模块时解密,从而实现了总线数据的安全传输;
3)、设计自动化嵌入轻量级总线传输安全工具,将上述总线加密传输安全方法嵌入到RISC-V芯片中-针对不同的芯片设计,实现将轻量级总线加密传输安全方法自动化嵌入到已有的RISC-V芯片中。
本发明的基于RISC-V的轻量级数据总线加密安全传输方法,所述设计总线安全分析方法,以分析RISC-V芯片设计中总线的安全性主要统计芯片设计文件中现有总线防护机制的特征模式,之后通过上述特征,评估芯片的总线安全性;
统计芯片设计文件中现有总线防护机制的特征部分,该部分统计的特征模式包括:待增强芯片中所有模块的名称中包含安全、加密、防御等含义的模块;待增强芯片中某一模块中存在成对出现的较大位宽的输入和输出数据信号;待增强芯片中某一模块中存在对另一模块的多次调用或例化;以及待增强芯片中某一模块中存在大量对同一信号的选择性赋值;
统计芯片设计文件中现有总线防护机制的特征部分的具体过程包括:遍历芯片设计文档,将芯片设计文档分为各个模块;在各个模块中检测总线防护机制的特征,并统计各个模块中出现特征的数量。
通过统计安全机制的特征,评估芯片的总线安全性,包括:根据统计特征的数量,确定芯片中包含的总线防护机制模块名称;输出芯片中总线防护机制模块,并给出总线传输的分析报告。
本发明的基于RISC-V的轻量级数据总线加密安全传输方法,所述搭建基于国密祖冲之算法的轻量级总线加密传输安全方法要通过物理不可克隆函数(PUF)模块、随机数生成器、总线数据加密模块和总线数据解密模块四个模块组成,
基于国密祖冲之算法的轻量级总线传输方法整体流程,包括以下步骤:
1)基于国密祖冲之算法的轻量级总线传输加密过程:
数据的发送方使用PUF、随机数生成器和数据加密模块,将原始的32bit数据加密生成128bit数据,并通过总线传输
2)基于国密祖冲之算法的轻量级总线传输解密过程:
数据的接收方使用PUF、随机数生成器和数据解密模块,将从总线获取到的128bit数据通过解密生成32bit原始数据
基于国密祖冲之算法的轻量级总线传输加密过程,包括如下步骤:
1)使用随机数发生器模块产生32bit的随机数;
2)使用PUF模块产生芯片唯一的两组128bit的数据,分别作为加/解密模块的初始密钥和初始向量值;
3)将原始的64bit结果数据与32bit的随机数通过拼接方法进行数据拼接,扩展形成128bit待传输数据;
4)祖冲之算法加密模块使用PUF模块提供的初始向量和初始密钥,生成连续的32位流密钥;
5)使用一个缓冲区,将连续的4个32bit的流密钥组合,产生128bit的加密密钥;
6)使用128bit加密密钥与128bit的待传输数据异或得到密文数据,并将其在总线上传输;
其中,128bit待传输数据的拼接方法,包括如下步骤:
1)64bit结果数据的高32bit和低32bit异或之后与随机数进行异或产生32bit校验数据;
2)组合随机数、校验数据和结果数据形成128bit待传输数据
基于国密祖冲之算法的轻量级总线传输解密过程,包括如下步骤:
1)使用PUF模块产生芯片唯一的256bit的数据,分别作为加/解密模块的初始密钥和初始向量值;
2)从总线上接收到待解密的128bit密文数据;
3)祖冲之算法加密模块使用PUF模块提供的初始向量和初始密钥,生成连续的32位流密钥;
4)使用一个缓冲区,将连续的4个32bit的流密钥组合,产生128bit的解密密钥;
5)使用128bit加密密钥与128bit的密文数据异或得到包含明文的128bit数据;
6)对接收到的128bit数据通过数据校验的方法校验数据完整性,如果数据校验结果正确,则低64bit为原始的数据,否则,数据出错,为了防止被攻击,不传输任何数据;
其中,128bit接收数据的校验方法,包括如下步骤:
1)接收到的128bit数据拆分为4组32bit数据;
2)将第一组、第三组和第四组数据进行异或得到待匹配数据;
3)待匹配数据与第二组32bit数据进行对比;
4)如果结果匹配,将第三组和第四组数据传输给内核;如果结果匹配错误,不传输任何数据。
本发明的基于RISC-V的轻量级数据总线加密安全传输方法,所述设计自动化嵌入轻量级总线传输安全工具包括如下步骤:
1)对用户顶层文件中数据传输信号的检测,检测出芯片中与内存或与其他外部存储设备的数据交互信号:
(1)通过检查芯片中模块的名称,找到名称中包含访存含义的模块;
(2)检查模块中存在较大位宽的输入和输出数据信号;
(3)检查该信号是否被赋值给其他模块的输入或其他寄存器;或被赋值为其他模块的输出或寄存器的值;
(4)取得当前模块的名称,模块内写入或读取数据的信号名以及对应的位宽
2)构造嵌入模块的模板文件包括以下内容:
(1)总线安全传输模块所需的输入信号、中间变量传递信号、控制信号;
(2)声明(1)中信号,赋初值并设定信号的相连;
(3)总线安全传输模块的例化程序
3)嵌入过程中由于不同模块在逻辑设计过程中的差异,存在三种不同的嵌入策略:
(1)待增强芯片需要获取机密数据,嵌入到待增强芯片的总线数据读入部分;
(2)待增强芯片需要传输机密数据给其他模块,嵌入到待增强芯片的总线数据写入部分;
(3)待增强芯片既需要传输机密数据也需要获取机密数据,分别嵌入到待增强芯片的总线数据读入和写入部分
对于将总线传输安全方法模块嵌入到待增强芯片的总线数据读入部分,可以分为以下步骤:
①嵌入总线传输安全方法模块所需的信号;
②将待增强芯片的输入赋值给总线传输安全方法模块的输入;
③声明加密控制信号为1,表示需要解密数据;
④添加总线传输安全方法模块的调用;
将总线传输安全方法模块的输出作为待增强芯片的输入,继续运算。
对于将总线安全传输模块嵌入到待增强芯片的总线数据写入部分,可以分为以下步骤:
①嵌入总线安全模块所需的信号;
②将待增强芯片的输出赋值给总线传输模块的输入;
③声明加密控制信号信号为0,表示需要加密数据;
④添加总线安全模块的调用;
⑤将总线加密模块的输出作为待增强芯片的输出
对于将总线安全传输模块嵌入到待增强芯片的总线数据读入和写入部分,可以分为以下步骤:
①嵌入总线安全模块所需的信号;
②将待增强芯片的输入赋值给总线传输模块的输入,声明加密控制信号信号为0;
③总线加密模块的输出作为待增强芯片的输出后,将加密控制信号信号置1,将待增强芯片的输出数据赋值给总线传输模块的输入;
④添加总线安全模块的调用;
⑤将总线加密模块的输出作为待增强芯片的输出。
与现有技术相比本发明的有益效果为:首先对芯片总线安全性进行分析,并给出分析报告,对于需要增强总线安全的芯片设计,通过对总线两端传输数据的模块增加加密模块,将原始待传输的结果数据通过加密模块生成密文数据再进行传输,待密文到达数据请求模块时解密,从而实现了总线数据的安全传输;同时,针对不同的芯片设计,可以实现自动化嵌入总线传输安全模块;相比于已有的内存加密方法。
附图说明
图1所示为基于RISC-V的轻量级数据总线加密安全传输方法的实施流程示意图;
图2所示为总线分析方法的整体结构图;
图3所示为总线分析方法的实施流程示意图;
图4(a)所示为总线分析方法的统计芯片设计文件中现有总线防护机制的特征的流程示意图;
图4(b)所示为总线分析方法的评估芯片的总线安全性的流程示意图;
图5所示为基于国密祖冲之算法的轻量级总线加密传输安全方法整体结构图;
图6所示为基于国密祖冲之算法的轻量级总线传输方法的实施流程示意图;
图7(a)所示为基于国密祖冲之算法的轻量级总线传输的加密方法流程示意图;
图7(b)所示为基于国密祖冲之算法的轻量级总线传输的解密方法流程示意图;
图8(a)所示为总线加密方法中数据拼接方法的示意图;
图8(b)所示为总线解密方法中数据验证方法的示意图;
图9所示为自动化嵌入基于国密祖冲之算法的轻量级总线加密传输安全方法的实施流程示意图;
图10所示为对待增强芯片的顶层文件中数据传输信号和数据交互信号的检测流程示意图;
图11所示为基于国密祖冲之算法的轻量级总线加密传输安全方法嵌入到RISC-V芯片的三种不同嵌入策略;
图12(a)所示为将基于国密祖冲之算法的轻量级总线加密传输安全方法嵌入到待增强芯片的总线数据读入部分的流程示意图;
图12(b)所示为将基于国密祖冲之算法的轻量级总线加密传输安全方法嵌入到待增强芯片的总线数据写入部分的流程示意图;
图12(c)所示为将基于国密祖冲之算法的轻量级总线加密传输安全方法嵌入到待增强芯片的总线数据读入和写入部分的流程示意图。
具体实施方式
下面结合附图和实施例,对本发明的具体实施方式作进一步详细描述。以下实施例用于说明本发明,但不用来限制本发明的范围。
实施例:
S101.统计芯片设计文件中现有总线防护机制的特征:
S101-1.遍历芯片设计文档,将芯片设计文档分为各个模块;
S101-2.在各个模块中检测总线防护机制的特征,并统计各个模块中出现特征的数量;
S102.通过上述特征,评估芯片的总线安全性:
S102-1.根据统计特征的数量,确定芯片中包含的总线防护机制模块名称;
S102-2.输出芯片中总线防护机制模块,并给出总线传输的分析报告;
S201.基于国密祖冲之算法的轻量级总线传输加密方法:
S201-1.使用随机数发生器模块产生32bit的随机数;
S201-2.使用PUF模块产生芯片唯一的两组128bit的数据,分别作为加密模块的初始密钥和初始向量值;
S201-3.将原始的64bit结果数据与32bit的随机数通过拼接方法进行数据拼接,扩展形成128bit待传输数据:
S201-3-1.64bit结果数据的高32bit和低32bit异或之后与随机数进行异或产生32bit校验数据;
S201-3-2.组合随机数、校验数据和结果数据形成128bit待传输数据;
S201-4.总线数据加密模块使用PUF模块提供的初始向量和初始密钥,生成连续的32位流密钥;
S201-5.使用一个缓冲区,将连续的4个32bit的流密钥组合,产生128bit的加密密钥;
S201-6.使用128bit加密密钥与128bit的待传输数据异或得到密文数据,并将其在总线上传输;
S202.基于国密祖冲之算法的轻量级总线传输解密方法:
S202-1.使用PUF模块产生芯片唯一的两组128bit的数据,分别作为解密模块的初始密钥和初始向量值;
S202-2.从总线上接收到待解密的128bit密文数据;
S202-3.总线数据解密模块使用PUF模块提供的初始向量和初始密钥,生成连续的32位流密钥;
S202-4.使用一个缓冲区,将连续的4个32bit的流密钥组合,产生128bit的解密密钥;
S202-5.使用128bit解密密钥与128bit的密文数据异或得到包含原始数据的128bit数据;
S202-6.对128bit数据通过数据校验的方法校验数据完整性,如果数据校验结果正确,则低64bit为原始的数据,否则,数据出错,为了防止被攻击,不传输任何数据:
S202-6-1.接收到的128bit数据拆分为4组32bit数据;
S102-6-2.将第一组、第三组和第四组数据进行异或得到待匹配数据;
S202-6-3.待匹配数据与第二组32bit数据进行对比;
S202-6-4.如果结果匹配,将第三组和第四组数据传输给内核;如果结果匹配错误,不传输任何数据;
S301.对待增强芯片的顶层文件中数据传输信号的检测,检测出芯片中与内存或与其他外部存储设备的数据交互信号:
S301-1.检查待增强芯片中所有模块的名称,找到名称中包含访存含义的模块:
S303-1-1.嵌入轻量级总线加密传输安全方法模块所需的信号;
S303-1-2.将待增强芯片的输入data_in赋值给总线加密传输安全方法模块的输入zuc_input;
S303-1-3.声明加密控制信号encde_sel为高电平(=1),表示需要解密数据;
S303-1-4.添加总线加密传输安全方法模块的调用;
S303-1-5.将总线加密传输安全方法模块的输出zuc_output作为待增强芯片的输入,继续运算;
S301-2.检查模块中存在较大位宽的输入和输出数据信号:
S303-2-1.嵌入总线加密传输安全方法模块所需的信号;
S303-2-2.将待增强芯片的输出data_out赋值给总线加密传输安全方法模块的输入zuc_input;
S303-2-3.声明加密控制信号encde_sel信号为低电平(=0),表示需要加密数据;
S303-2-4.添加总线加密传输安全方法模块的调用;
S303-2-5.将总线加密传输安全方法模块的输出作为待增强芯片的输出;
S301-3.检查该信号是否被赋值给其他模块的输入或其他寄存器;或被赋值为其他模块的输出或寄存器的值;
S301-4.取得当前模块的名称,模块内写入或读取数据的信号名以及对应的位宽;
S302.构造嵌入模块的模板文件。
S303.根据模板文件嵌入上述总线加密传输安全方法模块,并对数据交互信号进行扩充,以增强提高数据在总线传输安全:
S303-3-1.嵌入总线加密传输安全方法模块所需的信号。
S303-3-2.将待增强芯片的输入data_in赋值给总线传输解密模块的输入zuc_input;声明加密控制信号encde_sel为高电平(=1),表示需要解密数据。
S303-3-3.将总线加密传输安全方法模块的输出作为待增强芯片的输入,继续运算。
S303-3-4.待增强芯片输出数据data_out产生后,将待增强芯片的输出数据data_out赋值给总线传输加密模块的输入zuc_input,将加密控制信号信号encde_sel置低电平(=0),表示需要加密数据。
S303-3-5.将总线加密传输安全方法模块的输出作为待增强芯片的输出。
S303-3-6.添加总线加密传输安全方法模块的调用;
最终,使用自动化设计在VerilogHDL中自动化嵌入轻量级总线传输安全工具,将基于国密祖冲之算法的轻量级总线加密传输安全方法嵌入到RISC-V芯片中。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明技术原理的前提下,还可以做出若干改进和变型,这些改进和变型也应视为本发明的保护范围。
Claims (4)
1.一种基于RISC-V的轻量级数据总线加密安全传输方法,其特征在于,包括如下技术方案:
1)、设计总线安全分析方法,以分析RISC-V芯片设计中总线的安全性-通过统计总线防御机制常见的实现特征对芯片设计文档进行分析,进而根据统计特征的数量,确定芯片总线传输的安全性,并给出关于总线传输的分析报告;
2)、搭建基于国密祖冲之算法的轻量级总线加密传输安全方法-对总线两端传输数据的模块增加额外的加密模块,将总线上传输的明文数据通过加密模块生成密文数据再进行传输,待密文到达数据请求模块时解密,从而实现了总线数据的安全传输;
3)、设计自动化嵌入轻量级总线传输安全工具,将上述总线加密传输安全方法嵌入到RISC-V芯片中-针对不同的芯片设计,实现将轻量级总线加密传输安全方法自动化嵌入到已有的RISC-V芯片中。
2.如权利要求1所述的基于RISC-V的轻量级数据总线加密安全传输方法,其特征在于,所述设计总线安全分析方法,以分析RISC-V芯片设计中总线的安全性,统计芯片设计文件中现有总线防护机制的特征模式,之后通过上述特征,评估芯片的总线安全性;
统计芯片设计文件中现有总线防护机制的特征部分,该部分统计的特征模式包括:待增强芯片中所有模块的名称中包含安全、加密、防御含义的模块;待增强芯片中某一模块中存在成对出现的较大位宽的输入和输出数据信号;待增强芯片中某一模块中存在对另一模块的多次调用或例化;以及待增强芯片中某一模块中存在大量对同一信号的选择性赋值;
统计芯片设计文件中现有总线防护机制的特征部分的具体过程包括:遍历芯片设计文档,将芯片设计文档分为各个模块;在各个模块中检测总线防护机制的特征,并统计各个模块中出现特征的数量;
通过统计安全机制的特征,评估芯片的总线安全性,包括:根据统计特征的数量,确定芯片中包含的总线防护机制模块名称;输出芯片中总线防护机制模块,并给出总线传输的分析报告。
3.如权利要求2所述的基于RISC-V的轻量级数据总线加密安全传输方法,其特征在于,所述搭建基于国密祖冲之算法的轻量级总线加密传输安全方法要通过物理不可克隆函数(PUF)模块、随机数生成器、总线数据加密模块和总线数据解密模块四个模块组成;
基于国密祖冲之算法的轻量级总线传输方法整体流程,包括以下步骤:
1)基于国密祖冲之算法的轻量级总线传输加密过程:
数据的发送方使用PUF、随机数生成器和数据加密模块,将原始的32bit数据加密生成128bit数据,并通过总线传输;
2)基于国密祖冲之算法的轻量级总线传输解密过程:
数据的接收方使用PUF、随机数生成器和数据解密模块,将从总线获取到的128bit数据通过解密生成32bit原始数据;
基于国密祖冲之算法的轻量级总线传输加密过程,包括如下步骤:
1)使用随机数发生器模块产生32bit的随机数;
2)使用PUF模块产生芯片唯一的两组128bit的数据,分别作为加/解密模块的初始密钥和初始向量值;
3)将原始的64bit结果数据与32bit的随机数通过拼接方法进行数据拼接,扩展形成128bit待传输数据;
4)祖冲之算法加密模块使用PUF模块提供的初始向量和初始密钥,生成连续的32位流密钥;
5)使用一个缓冲区,将连续的4个32bit的流密钥组合,产生128bit的加密密钥;
6)使用128bit加密密钥与128bit的待传输数据异或得到密文数据,并将其在总线上传输;
其中,128bit待传输数据的拼接方法,包括如下步骤:
1)64bit结果数据的高32bit和低32bit异或之后与随机数进行异或产生32bit校验数据;
2)组合随机数、校验数据和结果数据形成128bit待传输数据
基于国密祖冲之算法的轻量级总线传输解密过程,包括如下步骤:
1)使用PUF模块产生芯片唯一的256bit的数据,分别作为加/解密模块的初始密钥和初始向量值;
2)从总线上接收到待解密的128bit密文数据;
3)祖冲之算法加密模块使用PUF模块提供的初始向量和初始密钥,生成连续的32位流密钥;
4)使用一个缓冲区,将连续的4个32bit的流密钥组合,产生128bit的解密密钥;
5)使用128bit加密密钥与128bit的密文数据异或得到包含明文的128bit数据;
6)对接收到的128bit数据通过数据校验的方法校验数据完整性,如果数据校验结果正确,则低64bit为原始的数据,否则,数据出错,为了防止被攻击,不传输任何数据;
其中,128bit接收数据的校验方法,包括如下步骤:
1)接收到的128bit数据拆分为4组32bit数据;
2)将第一组、第三组和第四组数据进行异或得到待匹配数据;
3)待匹配数据与第二组32bit数据进行对比;
4)如果结果匹配,将第三组和第四组数据传输给内核;如果结果匹配错误,不传输任何数据。
4.如权利要求3所述的基于RISC-V的轻量级数据总线加密安全传输方法,其特征在于,所述设计自动化嵌入轻量级总线传输安全工具包括如下步骤:
1)对用户顶层文件中数据传输信号的检测,检测出芯片中与内存或与其他外部存储设备的数据交互信号:
(1)通过检查芯片中模块的名称,找到名称中包含访存含义的模块;
(2)检查模块中存在较大位宽的输入和输出数据信号;
(3)检查该信号是否被赋值给其他模块的输入或其他寄存器;或被赋值为其他模块的输出或寄存器的值;
(4)取得当前模块的名称,模块内写入或读取数据的信号名以及对应的位宽;
2)构造嵌入模块的模板文件包括以下内容:
(1)总线安全传输模块所需的输入信号、中间变量传递信号、控制信号;
(2)声明(1)中信号,赋初值并设定信号的相连;
(3)总线安全传输模块的例化程序;
3)嵌入过程中由于不同模块在逻辑设计过程中的差异,存在三种不同的嵌入策略:
(1)待增强芯片需要获取机密数据,嵌入到待增强芯片的总线数据读入部分;
(2)待增强芯片需要传输机密数据给其他模块,嵌入到待增强芯片的总线数据写入部分;
(3)待增强芯片既需要传输机密数据也需要获取机密数据,分别嵌入到待增强芯片的总线数据读入和写入部分;
对于将总线传输安全方法模块嵌入到待增强芯片的总线数据读入部分,分为以下步骤:
①嵌入总线传输安全方法模块所需的信号;
②将待增强芯片的输入赋值给总线传输安全方法模块的输入;
③声明加密控制信号为1,表示需要解密数据;
④添加总线传输安全方法模块的调用;
将总线传输安全方法模块的输出作为待增强芯片的输入,继续运算;
对于将总线安全传输模块嵌入到待增强芯片的总线数据写入部分,分为以下步骤:
①嵌入总线安全模块所需的信号;
②将待增强芯片的输出赋值给总线传输模块的输入;
③声明加密控制信号信号为0,表示需要加密数据;
④添加总线安全模块的调用;
⑤将总线加密模块的输出作为待增强芯片的输出;
对于将总线安全传输模块嵌入到待增强芯片的总线数据读入和写入部分,分为以下步骤:
①嵌入总线安全模块所需的信号;
②将待增强芯片的输入赋值给总线传输模块的输入,声明加密控制信号信号为0;
③总线加密模块的输出作为待增强芯片的输出后,将加密控制信号信号置1,将待增强芯片的输出数据赋值给总线传输模块的输入;
④添加总线安全模块的调用;
⑤将总线加密模块的输出作为待增强芯片的输出。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210576114.5A CN114978714B (zh) | 2022-05-24 | 2022-05-24 | 基于risc-v的轻量级数据总线加密安全传输方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210576114.5A CN114978714B (zh) | 2022-05-24 | 2022-05-24 | 基于risc-v的轻量级数据总线加密安全传输方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114978714A CN114978714A (zh) | 2022-08-30 |
CN114978714B true CN114978714B (zh) | 2023-11-10 |
Family
ID=82956038
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210576114.5A Active CN114978714B (zh) | 2022-05-24 | 2022-05-24 | 基于risc-v的轻量级数据总线加密安全传输方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114978714B (zh) |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN210955077U (zh) * | 2019-10-23 | 2020-07-07 | 华大半导体有限公司 | 一种基于国密算法和puf的总线加解密装置 |
EP3822837A1 (en) * | 2019-11-15 | 2021-05-19 | Commsolid GmbH | Method for increasing security of embedded processors and apparatus performing the method |
CN112865969A (zh) * | 2021-02-07 | 2021-05-28 | 广东工业大学 | 一种数据加密卡的加密方法及装置 |
CN113420309A (zh) * | 2021-07-01 | 2021-09-21 | 广东工业大学 | 基于国密算法的轻量化数据保护系统 |
CN113630255A (zh) * | 2021-08-31 | 2021-11-09 | 北京航空航天大学 | 基于sram puf的轻量级双向认证方法及系统 |
CN113673002A (zh) * | 2021-08-09 | 2021-11-19 | 中国科学院软件研究所 | 一种基于指针加密机制和risc-v协处理器的内存溢出防御方法 |
CN113886857A (zh) * | 2021-10-21 | 2022-01-04 | 上海万向区块链股份公司 | 应用于区块链网络的risc-v软硬件安全系统 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020188856A1 (en) * | 2001-06-11 | 2002-12-12 | Brian Worby | Storage device with cryptographic capabilities |
CN108062288A (zh) * | 2017-12-19 | 2018-05-22 | 杭州中天微系统有限公司 | 基于apb总线的i2c通信装置 |
-
2022
- 2022-05-24 CN CN202210576114.5A patent/CN114978714B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN210955077U (zh) * | 2019-10-23 | 2020-07-07 | 华大半导体有限公司 | 一种基于国密算法和puf的总线加解密装置 |
EP3822837A1 (en) * | 2019-11-15 | 2021-05-19 | Commsolid GmbH | Method for increasing security of embedded processors and apparatus performing the method |
CN112865969A (zh) * | 2021-02-07 | 2021-05-28 | 广东工业大学 | 一种数据加密卡的加密方法及装置 |
CN113420309A (zh) * | 2021-07-01 | 2021-09-21 | 广东工业大学 | 基于国密算法的轻量化数据保护系统 |
CN113673002A (zh) * | 2021-08-09 | 2021-11-19 | 中国科学院软件研究所 | 一种基于指针加密机制和risc-v协处理器的内存溢出防御方法 |
CN113630255A (zh) * | 2021-08-31 | 2021-11-09 | 北京航空航天大学 | 基于sram puf的轻量级双向认证方法及系统 |
CN113886857A (zh) * | 2021-10-21 | 2022-01-04 | 上海万向区块链股份公司 | 应用于区块链网络的risc-v软硬件安全系统 |
Non-Patent Citations (2)
Title |
---|
An Implementation of a World Grid Square Codes Generator on a RISC-V Processor;Rei Watanabe 等;2021 Ninth International Symposium on Computing and Networking Workshops (CANDARW);309-312页 * |
基于PRESENT算法的智能卡芯片存储加密;王亚楠;杨永生;毕海英;高金萍;;清华大学学报(自然科学版)(第12期);1708-1712页 * |
Also Published As
Publication number | Publication date |
---|---|
CN114978714A (zh) | 2022-08-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9537656B2 (en) | Systems and methods for managing cryptographic keys in a secure microcontroller | |
US7092400B2 (en) | Method of transmitting data through a data bus | |
US9996709B2 (en) | Secure computer architecture | |
US10313128B2 (en) | Address-dependent key generator by XOR tree | |
US10943020B2 (en) | Data communication system with hierarchical bus encryption system | |
CN108073837B (zh) | 一种总线安全保护方法及装置 | |
CN112329038B (zh) | 一种基于usb接口的数据加密控制系统及芯片 | |
KR20190033716A (ko) | 블록체인을 이용한 메시지 히스토리 기반의 보안 키를 이용하는 통신 장치 및 방법 | |
CN209803788U (zh) | 一种pcie可信密码卡 | |
US20150363333A1 (en) | High performance autonomous hardware engine for inline cryptographic processing | |
US20230018185A1 (en) | Obfuscating data at-transit | |
CN117640256B (zh) | 一种无线网卡的数据加密方法、推荐装置和存储介质 | |
CN112469036A (zh) | 一种消息加解密方法、装置、移动终端和存储介质 | |
GB2532836A (en) | Address-dependent key generation with substitution-permutation network | |
CN112152802B (zh) | 数据加密方法、电子设备及计算机存储介质 | |
US10491570B2 (en) | Method for transmitting data, method for receiving data, corresponding devices and programs | |
CN115391846A (zh) | Puf密钥传输 | |
US20150363332A1 (en) | Hardware protection of inline cryptographic processor | |
US20150363334A1 (en) | Speculative cryptographic processing for out of order data | |
US11797717B2 (en) | Bus encryption for non-volatile memories | |
CN114978714B (zh) | 基于risc-v的轻量级数据总线加密安全传输方法 | |
CN114969794A (zh) | SoC系统及数据加密方法 | |
KR20020071274A (ko) | Pc기반의 암호칩 및 플래시 메모리를 이용한 유.에스.비보안보조기억장치 | |
US20230418603A1 (en) | System and Method for Securing Nonvolatile Memory for Execute-in-Place | |
CN117494236A (zh) | Spi总线系统中利用循环移位寄存器提升数据传输安全性的方法和系统 |
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 |