数字签名算法--3.ECDSA】的更多相关文章

package Imooc; import java.security.KeyFactory; import java.security.KeyPair; import java.security.KeyPairGenerator; import java.security.NoSuchAlgorithmException; import java.security.PrivateKey; import java.security.PublicKey; import java.security.…
一.ECDSA概述 椭圆曲线数字签名算法(ECDSA)是使用椭圆曲线密码(ECC)对数字签名算法(DSA)的模拟.ECDSA于1999年成为ANSI标准,并于2000年成为IEEE和NIST标准.它在1998年既已为ISO所接受,并且包含它的其他一些标准亦在ISO的考虑之中.与普通的离散对数问题(discrete logarithm problem  DLP)和大数分解问题(integer factorization problem  IFP)不同,椭圆曲线离散对数问题(elliptic cur…
目录 简介 功能依赖 消息摘要算法 MD算法 家族发展史 应用场景 代码实现 MD5 示例代码 SHA算法 应用场景 代码实现 SHA1 SHA256 示例代码 MAC算法 HMAC算法的典型应用 HMAC算法的安全性 HMAC组合散列函数 代码实现 HMAC-MD5 HMAC-SHA1 HMAC-SHA256 示例代码 数字签名算法 Rivest-Shamir Adelman算法( RSA) 代码实现 SHA1WithRSA SHA256WithRSA 示例代码 数字签名算法(DSA) 代码实…
注意:本节内容主要参考自 <Java加密与解密的艺术(第2版)>第9章“带密钥的消息摘要算法--数字签名算法” <大型分布式网站架构(设计与实践)>第3章“互联网安全架构” 14.1.数字签名算法 特点: 非对称加密算法+消息摘要算法的结合体 抗否认性.认证数据来源.防止数据被篡改(具体意思与做法查看下边的过程与类比部分) 私钥加密(签名).公钥解密(验证) 过程: 1)消息发送者产生一个密钥对(私钥+公钥),然后将公钥发送给消息接收者 2)消息发送者使用消息摘要算法对原文进行加密…
签名具有的特性: 安全性 抗否认性 数字签名:带有密钥(公钥.私钥)的消息摘要算法(使用私钥进行签名,使用公钥进行验证) 数字签名算法:RSA.DSA.ECDSA 数字签名特性: 验证数据完整性 认证数据来源 抗否认性 经典算法 MD.SHA两类 数字签名算法-RSA的执行过程 代码: package com.chengxuyuanzhilu.rsa; import java.security.InvalidKeyException; import java.security.KeyFactor…
数字签名 – 带有密钥的消息摘要算法 作用:验证数据完整性.认证数据来源.抗否认(OSI参考模型) 私钥签名,公钥验证 RSA 包含非对称算法和数字签名算法 实现代码: //1.初始化密钥 KeyPairGenerator keyPairGenerator = KeyPairGenerator.getInstance("RSA"); keyPairGenerator.initialize(512); KeyPair keyPair = keyPairGenerator.generate…
数字签名算法消息传递模型 由消息发送方构建密钥对,这里由甲方完成. 由消息发送方公布公钥至消息接收方,这里由甲方将公钥公布给乙方. 注意如加密算法区别,这里甲方使用私钥对数据签名,数据与签名形成一则消息发送给乙方,私钥仅用于签名,公钥仅用于验证. RSA RSA数字签名算法源于RSA公钥密码算法的思想,将RSA公钥密码算法按照数字签名的方式运用.RSA数字签名算法是迄今为止应用最为广泛的数字签名算法. RSA数字签名算法的实现如RSA加密算法一致.RSA数字签名算法主要可分为MD系列和SHA系列…
加密算法 加密算法分为两大类:1.对称加密算法:2.非对称加密算法.   密钥个数 加密 解密 对称加密 一个 使用密钥加密 使用同一个密钥解密 非对称加密 两个,公钥和私钥 使用其中一把密钥加密 使用另外一把密钥解密 RSA非对称加密算法 RSA是目前应用最广泛的非对称加密算法,各种语言都支持RSA算法,如Java,Python,C++(openssl),Go(openssl),PHP(openssl),Object-C,Android,javascript等. 对于一个私钥匙.有且只有一个与…
概述 信息安全基本概念: DSA算法(Digital Signature Algorithm,数据签名算法) DSA Digital Signature Algorithm (DSA)是Schnorr和ElGamal签名算法的变种,被美国NIST作为DSfS(DigitalSignature Standard). 简单的说,这是一种更高级的验证方式,用作数字签名.不单单只有公钥.私钥,还有数字签名.私钥加密生成数字签名,公钥验证数据及签名.如果数据和签名不匹配则认为验证失败!数字签名的作用就是校…
数字签名(又称公钥数字签名)是一种类似写在纸上的普通的物理签名,但是使用了公钥加密领域的技术实现,用于鉴别数字信息的方法.关于数字签名的介绍,可以参见百度百科:http://baike.baidu.com/view/7626.htm.今天,我们就开始学习java中数字签名的使用. 项目结构如下:…