网络术语---数字签名的简单认识
在IPSEC VPN中的IKE V1的阶段一的第5第6个消息,涉及在对端的身份的认证,那是通过计算散列值和比较散列值是否一致来验证。除此,在VPN中有相关的验证算法来保证对端的可信度和所发信息的完整性,这里涉及到MD5算法、数字签名等认证方式。
数字签名是在数字文件为基础的事务处理上,通过电子签名来认证用户的身份。同时若被签名的数据在传输的过程中被修改,那么可以通过产生的签名不同得到不同的明文信息来提供被签名数据完整性的保护。
一、数字签名
数字签名是非对称密钥系统的典型应用。我们常会在维护网络安全、建立网络安全信道、信息源宿认证、消息验证上等见过“密钥(Key)”这个词汇,它常参与一些数值的加密或解密过程。我们应该对网络技术中密钥有个大概的认识,也可以作为网络安全方式的知识的补充。
1.1 现代密码系统
@对称密钥密码系统(加密和解密密钥都相同)
@公开密钥密码系统(也称为非对称密钥密码系统,或者说双密钥密码系统),使用其的用户会得到一个公钥(PK)和一个用户自己知道的且需要保密的私钥。公钥好比用户的电话号码或QQ号一样,其他用户可以通过其他途径获知接收方用户相应的公钥。
1.2 对称密钥密码系统和公开密钥密码系统的优缺点
对称密钥密码系统:
通信双方需要协商单密钥,且当用户呈网状形式进行通信时,要求两两用户之间需要分配和协商密钥,每一用户需要维护多个密钥,与此同时还需保证密钥的安全。因此用户的增多会造成密钥数量的膨胀,同时给密钥的管理和分配带来很大问题。
但是,对称密钥密钥系统的因其密码算法难以破译、密钥空间也足够大、密钥管理也比较安全因此整体的安全性比较高。相比公开密钥密码系统,其加密和解密的速度也要快上许多。
公开密钥密码系统:
优点:
1 ) 加密和解密算法都是公开的;
2 )每个用户维护的是一对密钥,重点维护和保管私钥。且用户所维护的密钥数量不会随所通信用户的增多而增多
缺点:加密操作和解密操作的速度比对称密钥密码系统要慢的多。
最常见的公开密钥密码算法是RSA密码系统。RSA是由三个美国麻省理工学院的教授的名字首字母组成的,不必特殊记忆其含义。
最常见的对称密钥密码算法是DES密码系统,中文名是数据加密标准,是由于1977年公布的由IBM公司研制的一种密码系统。民用广泛,安全性强。
对称密钥系统和非对称密钥系统一个加密解密操作快,一个密钥数量少,管理和维护简单,因此在实际应用中,两者可以一起使用以此充分发挥各自的优点。简单说,就是利用对称密钥密码算法完成对消息主体的加密和解密,然后关于其对称密钥的传输和维护则由公钥和私钥来对其进行加密和解密操作,目的是保证对称密钥能稳妥的传递到信息的接收方。
1.3 数字签名的抽象过程(假设在公开密钥密码系统RSA下)
假设明文消息为M,加密施加得出的Signature记为S,公钥为PK,私钥为SK,用FX表示签名过程;则
FX(M,SK)=S
再假设验证过程用VX表示则
VX(S,PK)=M或能够表示M的摘要信息
简单说:用户A作为签字方,用自己的私钥对被签名的数据M(明文)进行加密处理或是算法处理,用户B作为接收方,可借助与私钥有一对一映射关系的公钥来验证数字签名,从而得到被签名的数据。若得到的被签名的数据与发送过来的数据保持一致的话,则说明数据没有被篡改,且是用户A发送过来的。
数字签名可以是公开密钥算法RSA的颠倒过程。
因为常规情况下,假设用户A维护一对公钥对,公钥为Pk{e,n},私钥为Sk{d},M为明文,E为RSA的加密算法,且
E pk(M)=M^e mod n, D为RSA的解密过程,且
D sk (M)=M^d mod n
那么至少满足一个条件使得RSA能够正常运作:
D sk(E pk(M))=M
一句话解释:其他用户通过公钥PK对发送的消息进行加密,通过不安全的internet传输到用户A时,用户A能够用且只能用私钥Sk对加密后的报文进行解密并得到明文M。
因为私钥的特殊性和所属用户的唯一性,可以用私钥来标识发送者,并供其他用户对发送者进行认证。若能用私钥对应的公钥来解密签名,得到被签名的数据那么就能确定该报文的发送者为私钥的所有者。
在这个逻辑的帮助下,
Dpk(Esk(M))=Dpk(M^d mod n)
=(M^e mod n)^d mod n
= Dsk(Epk(M))
=Epk(Dsk(M))
=M
那么签名过程S = Esk(M) =M^d mod n 得到签名S,签名是加密的过程
Dpk(S) = S^e mod n = M1(验证),验证时解密的过程啦
如果M1=M那么说明签名用户属实。
1.4 用RSA进行数字签名与用RSA进行数字加密
数据加密的目的是对信息进行保密,防止其他用户窃取,而签名的目的虽不能提供保密性保护但能对信源进行认证,同时确保数据的完整性(因为数据被更改了,签名会不同,签名不同,会导致公钥解密过程得不到对应的明文摘要不同。)。在方式上,RSA加密方式是用发送方利用接收方的公钥对即将发送的数据进行加密,接收方利用私钥对加密报文进行解密;而RSA签名则是发送发利用自己的私钥对消息进行签名,接收方可以借助公钥对报文进行验证,若能得到内容一致的摘要,就能确定发送发是私钥所有者。
二、如何确保数字签名的保密性
用RSA进行数字签名,得到是一个签名者的加密的签名序列,并原本的发送的数据以及数字签名提供加密服务。因此发送方利用私钥生成签名的同时,需用接收方的公钥对签名进行加密,以此完成一个先签名后加密的过程。
当报文抵达接收方,接收方收到了加密后的签名报文,若需要对签名进行身份验证,需要先用私钥对公钥加密之后的报文进行解密得到被加密的数字签名和消息,然后再利用发送方的公钥对签名进行验证,确保发送发的身份信息。因此接收方对收到的报文是先解密后验证。
网络术语---数字签名的简单认识相关推荐
- 网络术语,接口和协议简介
0x00 介绍 对管理服务器的任何人来说,对网络的基本了解都很重要.它不仅对于使您的服务在线并顺利运行至关重要,而且还为您提供诊断问题的洞察力. 本文档将提供一些常见网络概念的基本概述.我们将讨论基本 ...
- C#_Socket网络编程实现的简单局域网内即时聊天,发送文件,抖动窗口。
C#_Socket网络编程实现的简单局域网内即时聊天,发送文件,抖动窗口. 最近接触了C#Socket网络编程,试着做了试试(*^__^*) 实现多个客户端和服务端互相发送消息 发送文件 抖动窗口功能 ...
- 形容计算机很烂的网络用语,坑爹什么意思 网络术语坑爹是什么意思?
网络中"坑爹"一次在各大网站经常可以看到,今天有网友就问了小编,电脑百事网中很多文章中提到的坑爹是什么意思?鉴于很多菜鸟朋友对坑爹一词含义不是很清除,小编本文将详细为大家介绍下&q ...
- Fabric 超级账本学习【1】Fabcar网络调用Fabric-Java-SDK进行简单开发 FabCar
Fabric 2.3网络调用Fabric-Java-SDK进行简单开发 FabCar 1.先进入fabcar文件夹 2.启动网络 ./startFabric.sh down 启动成功 3.查看启动情况 ...
- [转] 网络术语大全
友情提示: ①有些网络语言是粗口,谨慎使用. ②有些网络语言是脏话,严禁使用. ③纯属搜集整理,供网友扫盲用. 一.论坛日常用语: 1.BBS:①Bulletin Board System的缩写,指电 ...
- 构建简易网络与网络设备的简单配置(Cisco Packet Tracer)第三弹:动态路由协议配置
本文讲述了在路由器上配置动态路由的方法. 动态路由是指路由器能够自动地建立自己的路由表,并且能够根据实际情况的变化适时地进行调整.动态路由是与静态路由相对的一个概念,指路由器能够根据路由器之间的交换的 ...
- 局域网网络风暴检测工具_交换机网络术语汇总
交换机是我们经常使用到的网络设备,它的术语有哪些,下面我来一一列举出来: (1)VLAN配置 在逻辑上将一个局域网划分成多个子集,每个子集形成各自的广播域,即虚拟局域网(VLAN).简单来讲,VLAN ...
- PE-CE P in MPLS network网络术语
PE-CE 是 MPLS 虚拟网 网络中经常使用的术语.PE(Provider Edge 运营商边缘路由器)是位于提供商网络并连接到位于客户驻地的 CE( Customer Edge 用户边缘路由器 ...
- Spring AOP相关术语解释及简单使用
什么是面向切面编程 百度百科定义为:在软件业,AOP为Aspect Oriented Programming的缩写,意为:面向切面编程,通过预编译方式和运行期动态代理实现程序功能的统一维护的一种技术. ...
- C# 网络编程之最简单浏览器实现
最近学习C#网络编程的HTTP协议编程,HTTP即Hypertext Transfer Protocol的缩写,意为:超文本传输协议.其中与HTTP相关的知识主要有六个类的知识,分别是 ( ...
最新文章
- groupadd - 建 立 新 群 组
- 检查邮箱是否包含教育后缀.edu结尾的邮箱
- Visual Basic 9.0 前沿播报·静态篇(一)局部变量类型推测和数组初始化器
- 模拟分发扑克牌(python实现)
- 吐血推荐 | 那些提升开发人员工作效率的在线工具
- Python之Pandas库常用函数大全(含注释)
- python 学习笔记 常用模块(五)
- python静默打印pdf
- root 红米note5_小米 红米NOTE5_刷机助手root-Android手机一键ROOT工具 - 线刷宝官网...
- 【初识 JQMobile 小小总结】
- 技术分享 | show engine innodb status中Pages flushed up to 的含义
- 电子书下载:Adobe PDF 文档格式开发参考 PDF Reference 1.7
- 华为云WeLink端云协同会议是什么?
- 编译原理知识点总结——从NFA到DFA的转化
- 计算机技术水平考核试卷带答案,中小学教师计算机技术水平考核试卷笔试题带答案...
- 使用 Arduino 和电位器控制直流电机速度
- 高通常用缩写 --不错
- linux用户层通过spi读写cpld
- 005. 虚拟机的快照与克隆
- 选择ppt转html5工具需要考虑的一些问题
热门文章
- js逆向案例-zzjg之jy/woff.2
- 一文读懂nginx gzip_static
- 计算机科学与技术用惠普星15,11代酷睿满血出击 快来GET蔡徐坤同款惠普星14吧...
- 全新天狼星网络验证系统源码+功能强大
- JavaScript代理_ES6新增
- 格雷斯音频大篷车无线音箱回顾
- java影院订票系统图形界面,java简单影院订票系统Word版
- WPF QQ群发助手
- 在线将PDF极速转换为图片
- Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?