对称加密算法原理简介

对称加密算法原理简介

对称加密算法使用相同的密钥进行加密和解密,它的计算量小,速度快,是最常用的加密方式,也是密码学和各种安全技术应用的基础。本文主要介绍对称加密算法的基本概念、设计思想和原理。

为什么学习密码学

我原来对加密算法的了解仅限于基本的使用,对密码学更没什么认识,也没有什么兴趣,觉得无非就是加密、解密,或者是公钥加密、私钥解密、私钥签名、公钥校验,还有哈希和其它一些派生算法等等。不过学习区块链之后,我才发现密码学的内容很丰富,也很有意思,有很多花样可以玩。

区块链

区块链是重度依赖密码学的技术,虽然主要使用公钥算法,但衍生出的技术和应用很多,例如比特币的基于哈希碰撞的工作量证明,基于脚本的转账方式,以太坊的智能合约,门罗币的环签名,Zcash的零知识证明和IPFS里的各种存储证明等。未来区块链的应用落地也依赖于密码学技术的创新和突破。

信息安全

信息安全不只是重要,而且是越来越重要。从社会发展趋势来说,我们的生活逐步数字化、电子化、网络化、自动化、智能化,越来越多的个人数据在网上传输和存储,人们对数据和隐私的泄露也越来越担心,信息安全也会更加受到重视。

技术的发展也反映了这种趋势。早期的TCP/IP协议是明文传输的,但后来逐渐增加了各种安全机制,例如https已经在逐步取代http,还有像google的QUIC传输协议就直接内嵌了TLS。新的应用也更倾向于采用加密通信方式,例如比特币的协议是明文的,而新的ipfs、libra都直接使用加密协议传输。

数学

最近两年我开始系统学习数学,这也让我对算法的底层原理有了兴趣,不再只是把加密算法当成一个黑盒,而是想了解它们内部的实现机制和设计思想。而且数学理论比较抽象,难以理解,密码学作为数学的一种应用,正好可以当成理论学习的切入点。这样,理论和应用相结合,学习效果上可以相互强化。

古典密码

在现代密码学理论出现之前,加密主要依靠一些编码方面的技巧,没有系统化的理论基础和方法体系,所以加密操作比较简单。一般既需要保护密钥,也需要保护密码算法。具体来说是通过对明文进行各种变换处理,达到混淆和加密的效果。虽然古典密码有一定的限制,但它的基本操作仍然是现代密码的核心组成部分。

古典密码可以简单分为置换和替代两类,具体包括以下几种

移位密码(Shift Cipher)

又称凯撒算法,是历史上最早使用的密码之一,据说是凯撒发明并用来传递军令的。移位密码非常简单,就是对明文做相同的偏移并取模,即E(x)=x+b(mod m)。所以移位密码的密钥空间很小,一般用暴力破解方式就可以找到密钥。

由于移位密码过于简单,现实中很少使用。行李箱上的密码锁用的可以算作是移位密码,虽然它的密钥是3位数,但只要找到转轮上的缺口,调整转轮让3个缺口对准相同的方向,密码就是当前读数的某个偏移,每次把3个数字都同时调整1位,最多只要尝试10次就能找到密码。

移位密码示例:
选择密钥k,0<k<26
k=23
E(x)=x+23(mod 26)
Plain:    ABCDEFGHIJKLMNOPQRSTUVWXYZ
Cipher:   XYZABCDEFGHIJKLMNOPQRSTUVW

Plaintext:  THE QUICK BROWN FOX JUMPS OVER THE LAZY DOG
Ciphertext: QEB NRFZH YOLTK CLU GRJMP LSBO QEB IXWV ALD
仿射密码(Affine Cipher)

可以认为是移位密码的改进

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值