简单科普签名和加密

在平时使用中,经常有小朋友将签名和加密乱叫,所以写个小文章科普下。


先理一下主要概念:

签名 sign:顾名思义,签名是一个人(比如Alice)对于信息的认可,比如Alice签名以后一定会根据字的笔画数在Alice名字的下面点多少个点。有了签名,数据可以保证不被篡改,或者说篡改的数据不要了。

加密 encrypt: 想办法将信息隐藏不被别人看到,就好像给数据加了一把锁。

所以,从字面上就能看到,签名的报文内容别人是可以看到的,而加密不行。从这个主要特点,可以将两者区分开。


=======

在签名和加密的对面,收到报文的人,需要什么操作呢?

验证签名 verify sign: 对于签名,需要验证签名去确定这个签名的有效性。不是说加了签名就有用。验证的主要有两部分,是否是 Alice 的签名,是否是 对于收到的报文的签名。 两者合起来,我们认为这次的报文是对的。  

验证是否是 Alice的签名,主要根据我们有的key,用常见的md5签名为例,我们和Alice商定一个共同的key,只要是alice的签名,都是用这个key,这样就可以验证了。按照举例来,可以认为Alice每次签名的笔迹都一样,我们有一个副本,上去对比下,是否一样。

验证是否是该报文,主要根据签名算法,比如将某些字符串排序,然后加上一个时间戳,组成一个签名报文,再用key去签名得到签名串。签名报文也就是签名原串,这个串不一定就是收到的报文。这个在举例中,可以认为我们也数了一下字的笔画,然后再数数点对不对。


解密 decrpyt: 拿到一堆乱七八糟的字符,或者说拿到一个上锁的保险箱,我肯定看不懂啊,所以需要进行解密。用钥匙去解密,我们也需要一个key,然后利用加密算法的特性,将报文解开。这里算法,又涉及两个名词,对称加密和非对称加密。

对称加密:简单讲就是这个秘钥key是一样的,就好像我们家里的钥匙一样,所有的钥匙都是一样的,你可以用这个钥匙上锁,也可以用这个钥匙开锁。常见的对称加密算法有 AES, DES,3DES(三把锁,嘿嘿)。 

非对称加密:上锁的钥匙(私钥)和开锁的钥匙(公钥)是一对的,上锁的只能上锁,开锁的只能开锁。常见的算法有:RSA,ECC。


=========

一些使用中的问题:

1、为什么rsa是加密算法,但是我们也用来做签名?

其实签名并不关心使用的是什么算法,不过我们引入加密算法,就会使签名算法更安全不可攻破,而且也比较容易实现。


2、签名和加密中,都使用了密钥,密钥泄露就不安全了吧?

是的,所以密钥的交换和保管也是一门学问。

非对称加密自带安全性,本身有一对密钥,给你一把用来解密的,加密的我自己保存。这样就安全些了。

结合这个特性,有使用多重加密的,随机产生一个密钥,对数据进行加密,再将这个密钥用非对称加密了传给接收方。

还有使用加密机的,密钥就没有出来,你只能告诉加密机,你要用第几把钥匙去加解密。


3、签名后数据会被篡改吗?

会的。比如被人攻破了算法,而且知道这个签名是有漏洞的。比如举例的算法,数笔画,“一二三” “一四” 两个字符串,得到的签名是一样的,就会被篡改了。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值