区块链:密码学基础

密码学基础

sender 和 receiver

假设sender想发送消息给receiver,他想安全地发送消息并且不被任何人知道。我们假设Bob是sender,Alice是receiver

 

消息和加密

消息称为明文,加密后的消息称为密文,密文经过解密后又会恢复到明文。

一般情况下,明文用符号 MM 表示,密文用符号 CC 表示。加密函数为 E()E(),解密函数为 D()D(),因此有如下公式:

E(M)=CE(M)=C 
D(C)=MD(C)=M

 

作用

密码学除了提供机密外还应有以下作用:

  • 鉴别

    Alice 可以鉴别消息确实是 Bob 发送的

  • 完整性

    Alice 可以确认消息没有被修改

  • 抗抵赖

    Bob 不能抵赖自己给 Alice 发送了消息

 

算法和秘钥

密码算法也叫做密码,是用来加密解密的数学函数。如果密码的安全性是靠保护密码算法来决定的,那么这种密码是受限制的。因为一旦算法泄露,那么保密性就无从可谈了。

现代密码学用密钥解决了这个问题,密钥用 KK 表示,密钥的取值空间叫做密钥空间,有了密钥,加密可解密就变成如下: 
Ek(M)=CEk(M)=C 
Dk(C)=MDk(C)=M 
所以,基于密钥的密码算法的安全就由密钥决定,这样你的加密算法和解密算法就可以大胆地公开,只要窃听者不知道密钥,他也无法知道你的明文。

 

对称算法

一般情况下,对称加密算法指的是加密密钥和解密密钥相同。使用这种算法,sender 和 receiver 需要提前商定一个密钥并且不能对外公开。所以密钥的安全性是密码安全的关键

Bob 和 Alice 商定好一个密钥 K 并通过某种方式沟通好,然后 Bob 用 K 加密消息后发送给 Alice,Alice 用密钥 K 解密。整个过程需要保证密钥不被泄露,安全性较差。

 

非对称算法(公开密钥算法)

非对称加密算法中,加密密钥和解密密钥不同。加密密钥叫做公钥,解密密钥叫做私钥。公钥可以不保密,但是私钥一定要保密。

Bob 用 Alice 的公钥加密一段文字并发送给她,Alice 用自己的私钥解密,在这个过程中,密钥不会被传输,安全性很高。

 

密码分析攻击

总有人尝试用各种方式破解密文,常见的密码攻击方式有以下几种:

  • 唯密文攻击

    攻击者有一些明文和密文,他通过分析密文尽可能地推出明文或找到密钥

  • 已知明文攻击

    攻击者不仅知道密文还知道明文,从而尽可能地推出密钥或者加密算法,从而破解密码

  • 选择明文攻击(略)

  • 选择密钥攻击(略)

  • 选择密文攻击(略)

  • 软磨硬泡攻击

    不断地一个一个试

 

代替密码和换位密码

在计算机出现之前,密码学是基于字符的密码算法的。计算机出现之后,密码学是基于位的密码算法。例如: 
如果我有如下明文:

“you are beautiful”

在计算机之前,加密是针对每个字符的,例如,我可以吧明文中的e都替换成a那么加密后的密文就是:

“you ara baautiful”

上面只是单纯地修改了某个字符,但是在计算机中,一个字符占一个字节,每个字节由8位二进制数组成,加密是对这些二进制数操作的。

免责声明:信息仅供参考,不构成投资及交易建议。投资者据此操作,风险自担。
如果觉得文章对你有用,请随意赞赏收藏
相关推荐
相关下载
登录后评论
Copyright © 2019 宽客在线