导论SM2是国家密码管理局于2010年12月17日发布的椭圆曲线公钥密码算法,在我们国家商用密码体系中被用来替换RSA算法。 国产SM2算法,是基于ECC的,但二者在签名验签、加密解密过程中或许有些许区别,目前鄙人还不太清楚,后期有机会的话会回来补充。普通的软密钥,在签名验签、加密解密时,使用的0009规范; 如果是硬密钥,例如密码钥匙是0016规范(SKF),密码设备是0018规范(SDF);
转载
2023-12-13 21:08:12
1450阅读
# 如何实现 Java 中的国密签名和验签
在信息安全领域,数字签名和验签是确保数据完整性和身份验证的重要机制。国密算法在中国的金融、政务等很多领域中被广泛使用。本文将指导你如何在 Java 中实现国密签名和验签,适合刚入行的小白。
## 流程概述
首先,让我们了解实现国密签名和验签的整个流程。下面是一个简洁的表格,总结了各个步骤。
| 步骤 | 描述
一、工具类POM中增加hutool<dependency>
<groupId>cn.hutool</groupId>
<artifactId>hutool-core</artifactId>
<version>5.6.5</version>
转载
2023-10-19 10:00:48
122阅读
文章目录环境背景介绍国密系列简要介绍实操1、首先去git上把开源项目拉下来2、关于曲线参数修改3、生成证书4、引入pom5、签名验签思路6、编码7、单元测试 环境jdk8、spring boot 2.3.4、java-jwt 3.11.0、bouncycastle 1.65背景介绍在多个系统之间,由于调用链长,使用了jwt token的方式鉴权,然后获取相应的资源,这里用到核心的一点就是jwt的
转载
2023-10-27 06:33:41
873阅读
国密即国家密码局认定的国产密码算法。主要有SM1,SM2,SM3,SM4。密钥长度和分组长度均为128位。SM1SM2为非对称加密,基于ECC。该算法已公开。由于该算法基于ECC,故其签名速度与秘钥生成速度都快于RSA。ECC 256位(SM2采用的就是ECC 256位的一种)安全强度比RSA 2048位高,但运算速度快于RSA。SM3SM4 由于SM1、SM4加解密的分组大小为128b
一、国密算法简介 国密算法是中国国家密码管理局颁布的密码算法标准,包括SM2、SM3、SM4等算法。这些算法属于非对称加密算法,意味着加密与解密的密钥是不同的。与其他国际知名的加密算法相比,国密算法具有更好的安全性和性能。其中,SM2算法是国密椭圆曲线密码算法,类似于RSA、ECC; SM3算法是国密Hash算法,类似于SHA256; SM4算法是国密分组密码算法,类似于AES。二、SM2算法 2
定义:首先明确一个概念,公钥和私钥配对的,用公钥加密的文件,只有对应的私钥才能解密。当然也可以反过来,用私钥加密,用对应的公钥进行解密。加密:发送方利用接收方的公钥对要发送的明文进行加密。解密:接受方利用自己的私钥对加密文件进行解密。加签验签开始前,收发双方会提前交换彼此公钥。加签:发送方用一个哈希函数从报文文本中生成报文摘要(一般使用MD5算法:不可逆的加密算法),然后用自己的私人密钥对这个摘要
转载
2023-09-11 15:53:38
295阅读
1.概念SM3: 消息摘要。可以用MD5作为对比理解。该算法已公开。校验结果为256位用于替代MD5/SHA-1/SHA-2等国际算法,适用于数字签名和验证、消息认证码的生成与验证以及随机数的生成,可以满足电子认证服务系统等应用需求,于2010年12月17日发布。它是在SHA-256基础上改进实现的一种算法,采用Merkle-Damgard结构,消息分组长度为512bit,输出的摘要值长度为256
转载
2023-12-28 22:29:29
99阅读
# 国密加密解密及签名验签在Java中的实现
在信息安全中,加密、解密和数字签名是两个重要的概念。国密算法是中国国家密码管理局发布的密码算法标准,广泛应用于涉及国家安全的领域。本篇文章将指导新手开发者如何在Java中实现国密算法的加密解密和签名验签功能。
## 流程概述
首先,我们简要概述整个过程,包括加密、解密、签名和验签的步骤,如下表所示:
| 步骤 | 描述
01 | 国密算法概述国密即国家密码局认定的国产密码算法,一般简称SM系列。有SM1、SM2、SM3、SM4、SM7、SM9以及祖冲之序列密码算法。SM3算法正式成为国际标准,2018年10月,含有我国SM3杂凑密码算法的ISO/IEC10118-3:2018《信息安全技术杂凑函数第3部分:专用杂凑函数》最新一版(第4版)由国际标准化组织(ISO)发布,SM3算法正式成为国际标准。数字
转载
2023-10-27 07:58:56
324阅读
如果要在客户端/网关系统和服务端之间进行SSL加密通信,当客户端应用(浏览器等)发起登录认证、加密、签名等请求时,服务端如何实现基于国密算法的SSL加密连接呢?如何解决国密算法的浏览器兼容性问题?如何实现基于国密算法的SSL认证和加密国密SSL协议的握手过程如下: (1)交换Hello消息来协商密码套件,交换随机数,决定是否会话重用; (2)交换必要的参数,协商预主密钥 (3)交换证书信息,用于验
转载
2024-08-12 15:25:48
211阅读
国密改造已经持续了很长时间了,相信很多从事金融科技类的程序猿都遇到过这个需求。这篇文章就为大家带来笔者对于国密改造的一些经验,主要是代码层面,有兴趣的同学可以研究下国密的算法模型!注:本文所用到的工具类并非笔者所写!目录一、国密简述二、依赖准备三、SM2算法应用1、生成SM2公私钥工具类测试Demo 2、数据加解密一、国密简述国密——国家密码局制定的国家密码算法。主要包含SM1、SM2、
转载
2023-10-26 13:57:44
202阅读
# 实现“pdf 国密验签 java”流程
## 1. 整体流程
首先,我们来看一下实现“pdf 国密验签 java”的整体流程:
| 步骤 | 操作 |
| ---- | ---- |
| 1 | 读取 PDF 文件 |
| 2 | 获取 PDF 中的签名信息 |
| 3 | 使用国密算法验证签名 |
| 4 | 输出验证结果 |
## 2. 操作步骤及代码
### 步骤1:读取 PD
原创
2024-03-12 06:25:35
187阅读
8.1 非对称加密算法指令概述a.非对称加密算法也成为公开密钥算法,其解决了对称加密算法密钥需要预分配的难题。非对称加密算法特点:a1.加密密钥和解密密钥不相同a2.密钥对中的一个密钥可以公开(称为公开密钥)a3.根据公开密钥很难推算出私钥密钥b.数字签名和密钥交换对公开密钥算法区别密钥交换算法使用公开密钥进行加密,使用私人密钥进行解密;而数字签名算法则使用私人密钥进行加密,使用公开密钥进行解密。
# Java 实现国密加解密及签名验签指南
在信息安全中,加解密和签名验签是必不可少的内容。国密(国家商用密码算法)是中国的密码标准,参与其开发的许多开发者都希望学习如何在Java中实现国密的加解密和签名验签。本文将为你详细介绍整个流程以及每一步的实现细节。
## 流程概述
下面是实现国密加解密、签名和验签的步骤:
| 步骤 | 描述
1. 对称加密 AES、DES、3DES\SM1 用途:对称加密算法用来对敏感数据等信息进行加密SM1 为对称加密。其加密强度与AES相当。该算法不公开,调用该算法时,需要通过加密芯片的接口进行调用。2. 非对称加密, RSA、DSA、ECCSM2为非对称加密,基于ECC。RSA:由 RSA 公司发明,是一个支持变长密钥的公共密钥算法,需要加密的文件块的长度也是可变的。RSA在国外早
转载
2023-11-02 13:16:02
248阅读
## Java 国密加签和验签实现指南
在现代应用中,数据的安全性与完整性变得越来越重要。国密算法是中国国家标准的商用密码算法,常用于数据的加签和验签。本文将带你了解如何在Java中实现国密的加签和验签。我们将通过一个简单的流程图和示例代码来一步步完成这一过程。
### 整体流程
以下是实现国密加签和验签的流程步骤:
| 流程步骤 | 描述
第3章-Java加密利器
Java安全领域组成部分:Java安全领域总共分为4个部分:JCA(Java Cryptography Architecture,Java加密体系结构)、JCE(Java Cryptography Extension Java加密扩展包)、JSSE(Java Secure Sockets Extensions Java安全套接字扩展包)、JAAS(Java
转载
2023-12-30 19:34:12
92阅读
### 签名验签 Java
在网络传输过程中,为了确保数据的完整性和真实性,常常需要对数据进行签名和验签的操作。签名是将数据使用私钥加密生成一个摘要,而验签则是使用公钥对摘要进行解密验证。Java提供了丰富的API来实现签名验签操作,下面我们来详细介绍一下如何在Java中进行签名验签操作。
#### 什么是签名验签?
签名是对数据进行加密生成一个摘要,这个摘要可以确保数据的完整性和真实性。在
原创
2024-03-24 04:52:26
68阅读
# Java签名验签
## 简介
在数字通信中,签名和验签是一种常见的安全机制,用于确保数据的完整性和身份验证。Java提供了一些内置的类和方法,可以用于生成和验证数字签名。本文将介绍Java中的签名和验签的基本概念,并提供一些示例代码。
## 数字签名的作用
数字签名是一种用于验证文件或消息完整性和认证发送者身份的技术。它使用私钥对数据进行加密,然后使用公钥对加密后的数据进行解密和验证。
原创
2023-09-03 19:41:27
199阅读