区块链:密码学基础

本文介绍了密码学的基础知识,包括消息加密与解密、密码学的作用、对称与非对称加密算法,以及密码分析攻击。在区块链中,密码学确保了通信的安全性和完整性,如非对称加密算法使得公钥可以公开而私钥保密,增强了安全性。
摘要由CSDN通过智能技术生成

密码学基础

sender 和 receiver

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

消息和加密

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

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

E(M)=C E ( M ) = C
D(C)=M D ( C ) = M

作用

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

  • 鉴别

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

  • 完整性

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

  • 抗抵赖

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

算法和秘钥

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

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

对称算法

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

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

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

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

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

密码分析攻击

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

  • 唯密文攻击

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

  • 已知明文攻击

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

  • 选择明文攻击(略)

  • 选择密钥攻击(略)

  • 选择密文攻击(略)

  • 软磨硬泡攻击

    不断地一个一个试

代替密码和换位密码

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

“you are beautiful”

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

“you ara baautiful”

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值