初学者,这两日对CA认证,数字签名等想要稍微了解下,从网上查了不少资料,发现很多文章中对公钥密码加密和鉴别过程(PKI体系)的某个步骤提供了具体的JAVA实现,对我的学习和了解帮助很大, 但还缺少一个完整的例子。下面就是自己动手构建完整例子的过程,如有错误或概念上的误解请指明。
1.一般公钥密码加密和鉴别过程有以下步骤:
1.获取证书
2.计算欲发送的信息或文件message的消息摘要(比如用hash获取)
3.发送消息摘要给时间戳服务器TSA, 获得服务器时间签名的时间戳摘要A和时间戳B
4.将有时间戳的消息摘要用发送方的私钥加密(这里使用非对称密钥),生成数字签名
5.发送方随机产生一个对称密钥,用它和某种算法(比如AES)对欲发送的消息或文件加密,得到密文
6.发送方用接收方的公钥加密上述对称密钥和使用的算法,和密文放在一起
7.密文和签名通过不安全信道传送给接收方
8.接收方用自己的私钥 解密 “对称密钥和对称密钥算法”
9.接收方用得到的“对称密钥和算法”对密文进行解密,得到原始的消息或文件message
10. 接收方用发送方公钥解密数字签名,得到时间戳摘要A和时间戳B
11.接收方用TSA公钥解密时间戳摘要A,得到(消息摘要+时间戳)的hash值X
12.对原始消息message求hash得到新的消息摘要Y
13.用消息摘要Y和时间戳B的hash值与X比较验证消息是否被篡改或受到重放攻击等
2.其中涉及到的JAVA实现:
1. JAVA模拟TSA时间戳服务器
2. JAVA生成数字证书
3. 用RSA算法进行非对称加解密
4. 用AES算法进行对称加解密
3.明细(更新中):
PKI体系简易JAVA实现(二):AES对称加密
4.上文中的PKI体系基本步骤参考了http://moiz.blog.163.com/blog/static/1984160020086204543472/
分享到:
相关推荐
PKI体系具体流程图解,通俗易懂,很有用
**公开密钥基础设施(PKI)的实现与C++编程** 公开密钥基础设施(Public Key Infrastructure,简称PKI)是一种用于验证数字证书持有者身份的技术,它基于非对称加密算法,如RSA或ECC。在PKI系统中,每个参与者都有...
**基于Elgamal实现的公钥基础设施(PKI)在Java中的应用** 公钥基础设施(PKI)是一种用于建立安全网络通信的系统,它依赖于公钥加密算法来确保数据的机密性、完整性和身份验证。在这个系统中,Elgamal算法是一个...
本PPT详细介绍的PKI公开密钥体系的加解密过程、数字签名的过程,并说明如何获取数字证书以及数字证书的备份、导入等操作。
PKI 体系讲解 PKI(Public Key Infrastructure)是一种基于公开密钥理论和技术建立的安全基础设施,旨在提供信息安全服务。PKI 体系可以解决绝大多数网络安全问题,提供在线身份认证、加密和数字签名等安全服务。 ...
### PKI与Java实现 #### 一、PKI概述 公共密钥基础设施(Public Key Infrastructure,简称PKI)是一种利用公钥加密技术进行安全服务的基础结构。它为网络中的实体提供了一个安全通信的方式,通过使用一对密钥...
### 基于PKI体系的COS安全认证机制的设计与实现 #### 摘要概览 随着互联网技术和电子商务的迅速发展,基于互联网的电子交易已成为主要支付手段。如何保障电子交易的安全性,包括双方的身份认证与授权、交易信息...
Java工具类PKI公钥基础设施是Java开发中用于实现安全通信的重要组成部分。PKI(Public Key Infrastructure,公钥基础设施)是一种基于非对称加密技术的系统,它为网络中的身份验证、数据加密和数字签名提供了可靠的...
PKI认证体系原理,对PKI体系及应用的简要说明
《CISP PKI PKI体系:深度解析与实践》 在信息安全领域,CISP(注册信息安全专业人员)是一项权威的认证,它涵盖了广泛的安全知识体系,包括但不限于信息安全保障体系、测评认证、信息安全理论以及PKI(公开密钥...
介绍我国PKI研究的架构,电子政务PKI,研究现状。
基于PKI的Web单点登录系统的设计与实现
介绍pki-ca体系最全面最简单的一份ppt
Java 实现电子签名是软件开发中的一个重要领域,特别是在法律文档、金融交易以及电子商务等场景中。电子签名可以确保数据的完整性和不可篡改性,从而增强了数字文件的安全性。在这个项目中,提供了三种不同的方法来...
全书共32章,分6篇,主要内容包括pki基础知识、openssl开发、crytoapi开发、 java security开发、电子商务网站应用、pki技术应用等,涉及c语言、java语言、jsp、asp/asp.net、php等开发语言。为了方便读者深入了解...
Java实现SCEP源码详解 SCEP(Simple Certificate Enrollment Protocol)是一种基于PKI(Public Key ...通过深入研究其源码,我们可以更好地理解SCEP协议的细节,以及如何在Java环境中实现PKI相关的操作。
公钥基础设施(PKI,Public Key Infrastructure)是一种用于在不安全的网络环境中建立安全通信的系统,它基于非对称加密技术,确保了数据的机密性、完整性和身份认证。PKI的核心组件包括证书颁发机构(CA)、注册...