【加密与解密】数字签名


背景

  主要总结和介绍数字签名的相关技术点

作用

  数字签名算法要求能够
    1.验证数据完整性
    2.认证数据来源
    3.抗否认的作用
  这3点与OSI参考模型中的数据完整性服务、认证(鉴别)服务和抗否认性服务相对应。

实践

  数字签名算法是钥基础设施(Public Key Infrastructure,PKI)以及许多网络安全机制(SSL/TLS、VPN等)的基础。

数字签名算法简介

  核心:数字签名算法可以看做是一种带有密钥的消息摘要算法,并且这种密钥包含了公钥和私钥。也就是说,数字签名算法是非对称加密算法和消息摘要算法的结合体。
  特点:
  1.签名操作只能由甲方(发送方)来完成,验证签名操作则由乙方(接收方)来完成
  2.用于签名的相关信息私有,用于验证的相关信息公有,且这两种信息必须成对出现
  3.数字签名算法包含签名和验证两项操作,遵循“私钥签名公钥验证”的签名/验证方式(备注:这是数字签名特有的吗?RSA算法实现的非对称加密,私钥和公钥都可以进行加解密)
  4.与摘要值的表示方式相同,签名值也常以十六进制字符串的形式来表示。

数字签名算法家谱

  主要包含RSA,DSA和ECDSA3中算法
  其中RSA算法是经典,也是数字签名算法中的经典,
  基于RSA算法密钥,结合消息摘要算法可形成对应的签名算法。如结合消息摘要算法MD5算法,可形成MD5withRSA算法,例如SHA1withRSA等等
  注意:
  这三种数字签名算法在Java中不一定能全部支持,部分算法需要引用第三方的包
  DSA:JAVA6已完全实现
  RSA:部分RSA算法需要Bouncy Castle支持
  ECDSA:完全需要Bouncy Castle支持

 

参考资料

  JAVA加密与解密的艺术-第9章


  

 

  

posted @   听风是雨  阅读(392)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)
历史上的今天:
2019-10-11 【JDK8】Java8 Stream流API常用操作
2019-10-11 如何减少代码中的if-else嵌套
2019-10-11 【SpringBoot】SpringBoot2.x整合Shiro(一)
/* 看板娘 */
点击右上角即可分享
微信分享提示