一文看懂码灵半导体CFW32C7UL系列产品应用(二):国密算法●上篇

本文主要是介绍一文看懂码灵半导体CFW32C7UL系列产品应用(二):国密算法●上篇,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

欢迎再次来到“码灵半导体CFW32C7UL系列产品应用介绍”连载专题。通过上期CFW32C7UL系列启动阶段的特点介绍,相信您对CFW327UL系列启动阶段 的“程序安全启动”特点还有印象。文中提到芯片启动时可支持对经AES或SM4加密过的程序的加载启动,所述的AES和SM4就是人们常说的加解密算法,其中SM4为我国自主设计的一种密码算法,通常也称为国密算法。本期专题聚焦于CFW32C7UL系列硬件所支持的国密算法。
一、国密算法及其重要性
在详细介绍CFW32C7UL系列的国密算法前,我们先普及下什么是密码、密码的作用以及国家对国密的重视。
这里我们所述的密码是指采用特定变换的方法对信息等进行加密保护、安全认证的技术、产品和服务。随着社会信息化的高速发展,信息传输和信息存储对安全的要求变得愈来愈重要,而密码是解决信息安全方面是核心技术手段、是基础支撑保障,是解决网络与信息安全问题最有效、最可靠、最经济的手段。
密码主要有两个大功能:加密保护和安全认证。作为保障网络安全的核心技术,密码算法和密码产品的自主可控是确保我国信息安全的重中之重。但在当前,我国大多采用国外制定的加密算法,存在着大量的不可控因素,一旦被不法分子利用攻击,将产生不可估量的损失。因此密码产品自主可控及相关软硬件国产化的替代,是防止后门漏洞的最有效方法,是保障网络安全的终极举措。
在这里插入图片描述
从国家战略层面讲使用国产密码算法是符合国家信息安全全局战略的。因此在2019年10月26日第十三届全国人民代表大会常务委员会第十四次会议上,通过了《中华人民共和国密码法》,该法自2020年1月1日起施行。
在《密码法》中,将密码分为核心密码、普通密码和商用密码,其中核心密码、普通密码用于保护国家秘密信息(绝密级和机密级),商用密码用于保护不属于国家秘密的信息,如网络和信息安全等。在CFW32C7UL系列硬件集成的国密算法模块即为《密码法》中所提到的商用密码,有SM2,SM3,SM4(本系列芯片内同时集成了真随机数发生器TRNG、国际标准的标准 AES 算法、 AES-CM、AES-F8 算法和SHA签名模块)。
二、CFW32C7UL如何实现国密算法?
目前在嵌入式产品中如何实现国密算法呢?据有关资料统计,目前嵌入式产品在使用国密算法时,近三分之二采用的是外挂国密算法专用芯片来实现,这种实现方式在对嵌入式产品的成本、体积、功耗等方面来及诸多挑战,且数据在主控芯片与国密芯片的传输通道环节也有数据外泄的风险。而码灵半导体的CFW32C7UL系列产品采用了在内部集成国密算法模块的方法,解决了在使用国外MPU芯片因不支持国密算法而必须通过外加分立元器件来实现的问题,降低了使用国家密码算法的难度,利于推进国密算法在信息安全领域内的应用和实现嵌入式MPU的国产替代的进程。
在这里插入图片描述
三、CFW32C7UL集成的国密算法简述
下面就CFW32C7UL集成的SM2、SM3、SM4算法进行简单的介绍。
在这里插入图片描述
1、SM2公钥算法
公钥密码算法是现代密码学发展过程中的一个里程碑。这类密码算法需要两个密钥:公开密钥和私有密钥。公开密钥与私有密钥是一对,如果用公开密钥对数据进行加密,只有用对应的私有密钥才能解密;如果用私有密钥对数据进行加密,那么只有用对应的公开密钥才能解密。因为加密和解密使用的是两个不同的密钥,所以这种算法也称为非对称密码算法。
SM2椭圆曲线公钥密码算法是我国自主设计的公钥密码算法,用于实现数字签名密钥协商和数据加密等功能。SM2算法是基于ECC椭圆曲线算法,不同于国际标准,采取了更为安全的机制。在实际应用中,采用了一条256bit的椭圆曲线作为标准曲线。相对于RSA算法,256位的SM2密码强度已经比2048位的RSA密码强度要高。在速度方面,256位SM2在验签速度上远远高于2048位的RSA。
2、SM3杂凑算法
SM3杂凑算法是我国自主设计的密码杂凑算法,适用于商用密码应用中的数字签名和验证消息认证码的生成与验证以及随机数的生成,可满足多种密码应用的安全需求。SM3算法的输出长度为256比特,SM3算法的安全性要高于MD5算法和SHA-1算法。
3、SM4分组算法
SM4分组密码算法是我国自主设计的分组对称密码算法,用于实现数据的加密/解密运算,以保证数据和信息的机密性。SM4算法与AES算法具有相同的密钥长度分组长度128比特,在安全性上高于3DES算法。
通过以上简介,相信大家对CFW32C7UL系列内置SM2,SM3,SM4的国密标准算法有了初步了解,那么这些算法如何通过CFW32C7UL系列芯片来具体使用呢?让我们带着这些问题,在下期从技术的角度进行探寻!
今天的专题就到这儿,更多关于码灵半导体CFW32C7UL系列产品的介绍,我们下期见!
本期作者:刘悦臻、梁梦雷、陈绍景、谢耀华、谢剑杰

这篇关于一文看懂码灵半导体CFW32C7UL系列产品应用(二):国密算法●上篇的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/277500

相关文章

一文带你搞懂Redis Stream的6种消息处理模式

《一文带你搞懂RedisStream的6种消息处理模式》Redis5.0版本引入的Stream数据类型,为Redis生态带来了强大而灵活的消息队列功能,本文将为大家详细介绍RedisStream的6... 目录1. 简单消费模式(Simple Consumption)基本概念核心命令实现示例使用场景优缺点2

SpringBoot中四种AOP实战应用场景及代码实现

《SpringBoot中四种AOP实战应用场景及代码实现》面向切面编程(AOP)是Spring框架的核心功能之一,它通过预编译和运行期动态代理实现程序功能的统一维护,在SpringBoot应用中,AO... 目录引言场景一:日志记录与性能监控业务需求实现方案使用示例扩展:MDC实现请求跟踪场景二:权限控制与

C语言中位操作的实际应用举例

《C语言中位操作的实际应用举例》:本文主要介绍C语言中位操作的实际应用,总结了位操作的使用场景,并指出了需要注意的问题,如可读性、平台依赖性和溢出风险,文中通过代码介绍的非常详细,需要的朋友可以参... 目录1. 嵌入式系统与硬件寄存器操作2. 网络协议解析3. 图像处理与颜色编码4. 高效处理布尔标志集合

一文详解Java异常处理你都了解哪些知识

《一文详解Java异常处理你都了解哪些知识》:本文主要介绍Java异常处理的相关资料,包括异常的分类、捕获和处理异常的语法、常见的异常类型以及自定义异常的实现,文中通过代码介绍的非常详细,需要的朋... 目录前言一、什么是异常二、异常的分类2.1 受检异常2.2 非受检异常三、异常处理的语法3.1 try-

Java中的Lambda表达式及其应用小结

《Java中的Lambda表达式及其应用小结》Java中的Lambda表达式是一项极具创新性的特性,它使得Java代码更加简洁和高效,尤其是在集合操作和并行处理方面,:本文主要介绍Java中的La... 目录前言1. 什么是Lambda表达式?2. Lambda表达式的基本语法例子1:最简单的Lambda表

一文带你搞懂Python中__init__.py到底是什么

《一文带你搞懂Python中__init__.py到底是什么》朋友们,今天我们来聊聊Python里一个低调却至关重要的文件——__init__.py,有些人可能听说过它是“包的标志”,也有人觉得它“没... 目录先搞懂 python 模块(module)Python 包(package)是啥?那么 __in

Python结合PyWebView库打造跨平台桌面应用

《Python结合PyWebView库打造跨平台桌面应用》随着Web技术的发展,将HTML/CSS/JavaScript与Python结合构建桌面应用成为可能,本文将系统讲解如何使用PyWebView... 目录一、技术原理与优势分析1.1 架构原理1.2 核心优势二、开发环境搭建2.1 安装依赖2.2 验

Java字符串操作技巧之语法、示例与应用场景分析

《Java字符串操作技巧之语法、示例与应用场景分析》在Java算法题和日常开发中,字符串处理是必备的核心技能,本文全面梳理Java中字符串的常用操作语法,结合代码示例、应用场景和避坑指南,可快速掌握字... 目录引言1. 基础操作1.1 创建字符串1.2 获取长度1.3 访问字符2. 字符串处理2.1 子字

一文详解如何在Python中从字符串中提取部分内容

《一文详解如何在Python中从字符串中提取部分内容》:本文主要介绍如何在Python中从字符串中提取部分内容的相关资料,包括使用正则表达式、Pyparsing库、AST(抽象语法树)、字符串操作... 目录前言解决方案方法一:使用正则表达式方法二:使用 Pyparsing方法三:使用 AST方法四:使用字

电脑死机无反应怎么强制重启? 一文读懂方法及注意事项

《电脑死机无反应怎么强制重启?一文读懂方法及注意事项》在日常使用电脑的过程中,我们难免会遇到电脑无法正常启动的情况,本文将详细介绍几种常见的电脑强制开机方法,并探讨在强制开机后应注意的事项,以及如何... 在日常生活和工作中,我们经常会遇到电脑突然无反应的情况,这时候强制重启就成了解决问题的“救命稻草”。那