我的隐私计算学习——国密SM2和国密SM4算法

news2024/11/27 18:00:07

此篇是我笔记目录里的安全保护技术(七),前篇可见:

隐私计算安全保护技术(一):我的隐私计算学习——混淆电路-CSDN博客

隐私计算安全保护技术(二):我的隐私计算学习——秘密共享-CSDN博客

隐私计算安全保护技术(三):我的隐私计算学习——门限签名-CSDN博客

隐私计算安全保护技术(四):我的隐私计算学习——同态加密-CSDN博客

隐私计算安全保护技术(五):我的隐私计算学习——零知识证明-CSDN博客

隐私计算安全保护技术(六):我的隐私计算学习——差分隐私-CSDN博客

笔记内容来自多本书籍、学术资料、白皮书及ChatGPT等工具,经由自己阅读后整理而成。


(七)国密SM2和国密SM4算法

为了保障商用密码的安全性,国家商用密码管理办公室制定了一系列密码标准,除了 SM2,还有SM1(SCB2)、SM3、SM4、SM7、SM9、祖冲之密码算法(ZUC)等。

  1. 国密SM2

    国密SM2 算法是非对称加密算法,其加密和解密使用的是两个不同的密钥,分别为公开密钥和私有密钥。它的安全性依赖于自身较为复杂的算法,而这使得它加解密的速度远低于对称加解密。

    image-20230326151932837

    image-20230505113149779

    SM2 算法主要包括 SM2-1 椭圆数字签名算法、SM2-2 椭圆曲线密钥交换协议和 SM2-3 椭圆曲线公钥加密算法,三者分别用于实现数字签名、密钥协商和数据加密等功能。国密SM2 算法常用在数字合同的签名中。为了防止抵赖,现实世界中的合同签名通常会有签名盖章这个流程,签了名、盖了章就有了不可抵赖的证据。

  2. 国密SM4

    国密SM4 算法的密钥足够长,与高级加密标准(Advanced Encryption Standard,AES)算法具有相同的密钥长度分组128 bit,且在安全性上高于三重数据加密(Triple Data Encryption,3DES)算法。它的加密算法以 32 bit 为单位,采用非线性迭代结构进行加密运算。

    image-20230326152438784

    国密SM4 算法是一种对称加密算法,其加密与解密使用同一个密钥,但在不同阶段对密钥的使用方式有所不同。在国密SM4 算法中,解密和加密算法的结构相同,但解密算法使用逆序的轮密钥来进行。例如,加密时密钥的使用顺序为(rk0,rk1,…,rki),但解密时密钥使用顺序变为(rki,…,rk1,rk0)。

    国密SM4 算法常用于政府系统的数据传输加密,比如当前端向后台传参数的时候就可以使用此算法。对参数的数据进行加密,然后后台对加密的数据进行解密再存储到数据库中,从而保证数据传输过程中信息不会泄露。


10月份新开了一个GitHub账号,里面已放了一些密码学,隐私计算电子书资料了,之后会整理一些我做过的、或是我觉得不错的论文复现、代码项目也放上去,欢迎一起交流!Ataraxia-github (Ataraxia-github) / Repositories · GitHub 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1286861.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

C++学习之路(十九)C++ 用Qt5实现一个工具箱(用SQLite数据库来管理粘贴板数据)- 示例代码拆分讲解

上篇文章,我们用 Qt5 实现了在小工具箱中添加了《点击按钮以新窗口打开功能面板》功能。今天我们把粘贴板功能用SQLite数据库来管理,用SQLite来实现增删改查。下面我们就来看看如何来规划开发这样的小功能并且添加到我们的工具箱中吧。 老规矩&#xff…

30个Python小游戏,小白练手,我都能玩一天【内附源码】

给大家带来30个 Python 小游戏,一定要收藏! 文末获取完整代码 有手就行 1、吃金币 import os import cfg import sys import pygame import random from modules import *游戏初始化 def initGame():# 初始化pygame, 设置展示窗口pygame.init()screen…

全面解析修复msvcr120.dll缺失问题的方法,msvcr120.dll丢失的原因

在计算机使用过程中,我们经常会遇到一些错误提示,其中最常见的就是“msvcr120.dll丢失”。这个错误通常会导致某些程序无法正常运行,给用户带来很大的困扰。那么,当我们遇到这个问题时,应该如何修复呢?本文…

忽略python运行出现的大量警告

添加以下代码即可 import warnings warnings.filterwarnings(ignore)

使用rust slint开发桌面应用

安装QT5,过程省略 安装rust,过程省略 创建工程 cargo new slint_demo 在cargo.toml添加依赖 [dependencies] slint "1.1.1" [build-dependencies] slint-build "1.1.1" 创建build.rs fn main() {slint_build::compile(&quo…

DFT(离散傅里叶变换)的通俗理解

本文包含了博主对离散傅里叶变换,负频率,实信号与复信号频谱的理解,如有不妥,欢迎各位批评指正与讨论。 文章目录 DFT的理解信号的频谱实信号的频谱复信号的频谱 DFT的理解 傅里叶变换是一种将信号从时域转换到频域的数学工具。…

使用消息队列遇到的问题—kafka

目录 1 分区2 消费者3 Kafka 如何保证消息的消费顺序?3.1 方案一3.2 方案二 在项目中使用kafka作为消息队列,核心工作是创建生产者—包装数据;创建消费者----包装数据。 欠缺一些思考,特此梳理项目中使用kafka遇到的一些问题和解决…

探索Selenium的规避检测策略

Selenium之规避检测 背景 ​ 目前很多大网站有对selenium采取了监测机制。在正常情况下我们用浏览器访问相关网站的window.navigator.webdriver的值为 undefined或者为false。而使用selenium访问则该值为true。我们如何伪装,防止被检测出来呢? ​ 这是…

【Maven】依赖管理

1. 依赖管理 1.1 依赖配置 依赖:指当前项目运行所需要的jar包。一个项目中可以引入多个依赖。 依赖引入步骤:在pom.xml中编写标签,在标签中使用引入坐标,定义坐标的 groupId、artifactId、version,最后点击刷新&…

FluxMQ—2.0.8版本更新内容

FluxMQ—2.0.8版本更新内容 前言 FLuxMQ是一款基于java开发,支持无限设备连接的云原生分布式物联网接入平台。FluxMQ基于Netty开发,底层采用Reactor3反应堆模型,具备低延迟,高吞吐量,千万、亿级别设备连接&#xff1…

WIN10下解决HIVE 初始化MYSQL表报错:Unknown version specified for initialization

今天本地WINDOWS装HIVE,走到最后一步初始化数据库死活不通过: D:\hive\hive-rel-release-3.1.3\bin\ext>hive --service schematool -dbType mysql -initSchema --verbose SLF4J: Class path contains multiple SLF4J bindings. SLF4J: Found bind…

基于JSDoc实现TypeScript类型安全的实践报告

在FEDay 2023中我讲了《从JS到TS无缝迁移的实践报告》【视频在这里在这里】,是将一个传统的JS项目(mochajs/mocha)迁移到TypeScript环境的全程。其中提到了一件事情,就是“可以通过JSDoc/TSDoc来生成.d.ts”,从而实现T…

【C语言:自定义类型(结构体、位段、共用体、枚举)】

文章目录 1.结构体1.1什么是结构体1.2结构体类型声明1.3结构体变量的定义和初始化1.4结构体的访问 2.结构体对齐2.1如何对齐2.2为什么存在内存对齐? 3.结构体实现位段3.1什么是位段3.2位段的内存分配3.3位段的跨平台问题3.4位段的应用3.5位段使用注意事项 4.联合体4…

全国规模最大!玻色量子加入算力并网行动!

8月19日,在2023中国算力大会主论坛上,中国移动携手多个超算中心、智算中心,以及云服务商,共同发起全国规模最大的“百川”算力并网行动,打造算力类型最全、规模最大、覆盖最广的“百川”算力并网平台,加快推…

提高Idea编码速度和插件自用推荐

非常推荐 Easy Javadoc 一款注释生成器,很好使~免费,配合使用腾讯、百度之类的翻译免费额度完全够用了,印象中是50万字符每月。下图是使用快捷键生成的注释(我采用鼠标侧面按键,随手一按很方便) Chinese …

HTTP会话技术---Cookie、Session和Token介绍及它们在JavaWeb中的使用

当涉及到Web应用程序的身份验证和状态管理时,我们通常会使用到Cookie、Session和Token这些会话技术。下面是对它们的介绍,并在JavaWeb中的示例 Cookie(HTTP Cookie) Cookie是一种存储在用户浏览器中的小型文本文件,由…

360公司-2019校招笔试-Windows开发工程师客观题合集解析

360公司-2019校招笔试-Windows开发工程师客观题合集 API无法实现进程间数据的相互传递是PostMessage2.以下代码执行后,it的数据为(异常) std::list<int> temp; std::list<int>::iterator it = temp.begin(); it = --it; 3.API在失败时的返回值跟其他不一样是 …

OSPF浅析

一、预习&#xff1a; 1、优点&#xff1a; 是一种典型的链路状态路由协议&#xff0c;协议号89&#xff0c;把大型网络分隔为多个较小、可管理的单元&#xff1a;Area a.减少LSA泛洪范围&#xff0c;有效地把拓朴变化 控制在区域内&#xff0c;达到网络优化的目的…

混音编曲软件tudio One 6.5.1 保姆级安装教程

根据软件大数据显示De-Esser驯服人声嘶嘶声和其他高频声音&#xff0c;和其他 Studio One 中新的去实体插件一样高效且直观易用&#xff0c;使用“收听”按钮查找有问题的频率&#xff0c;然后使用相关的旋钮和 S-Mon 功能拨入 S-Reduce 量即可。实际上我们可以这样讲工作流和协…

消费数据可视化大屏,助力金融机构智慧运维

在今天的数字化时代&#xff0c;消费数据的可视化已经成为了一种重要的趋势。通过将消费数据以图表、图像等形式展现出来&#xff0c;可以帮助我们更直观地了解消费者的行为和趋势。同时&#xff0c;这也为企业提供了更多的分析和决策依据。无论是针对市场营销策略的制定&#…