各种简单的密码技术(1)

一、前言

本系列包含从古至今的一些密码算法的一些简单原理。主要是方便自己记住一些密码算法的大致内容。

二、隐写术与密码

隐写术(Steganography)是一种隐藏信息本身的技术。例如:我国古代的藏头诗、藏尾诗,就属于隐写术。而在最近几年中,隐写术也有一定的应用,在视频,音频,图像中隐藏一些信息。例如数字水印技术,就属于隐写术的一种。
密码(Cryptography)是一种能够让信息内容变得无法解读的技术,隐藏的是内容。例如RSA算法。密码是我们知道信息就在那里,但是无法解读,而隐写术则是我们根本不知道信息藏在哪里。

三、密码学的目标

  • 机密性(仅有发送方和指定的接收方能够理解传输的报文内容。窃听者可以截取到加密了的报文,但不能还原出原来的信息,即不能得到报文内容。)
  • 数据完整性(防止信息被篡改,通常使用hash函数)
  • 认证(确认信息是否来自于期望的对象)
  • 不可否认性(消息发送者无法否认其发送过该消息)

四、密码的分类

1. 对称密码和非对称密码

根据密钥的使用方法,可以分为对称密码和非对称密码(又称公钥密码)两种。对称密码是指在加密和解密的过程中使用同一密钥,如DES, 3DES, IDEA, AES;而非对称密码指在加密和解密时使用不同的密钥,如RSA, ECC, ElgGmal。

对称加密
对称加密
非对称加密
非对称加密

2. 受限制的算法和基于密钥的算法

受限制的算法其保密性基于对算法的保密,基于密钥的算法的保密性基于对密钥的保密。密码的保密性应该基于对密钥的保密而不是对算法的保密,即密码所使用的算法应该是可以公开的。

3. 分组加密和流密码

分组加密是指将明文分成固定长度的分组块,利用相同的密钥和算法对每一块进行佳美。输出也是固定长度的密码分组。如DES, IDEA, RC2, RC4, RC5。
流密码又称序列密码,每次只加密一个密位或一个明文。如一次一密算法(One-Time-Pad)。

五、其他

密码学的发展:
从密码学的发展阶段来看,有古典密码学,近代密码学,现代密码学。

密码学的常识:

  • 不使用依赖于算法保密性的密码算法。密码学发展到今天,密码的保密性应该依赖于密钥的保密性而非算法本身的保密性。
  • 使用低强度的密码比不使用任何加密更加危险。那是因为一旦使用了密码,用户的保密意识往往会降低。
  • 任何密码总有一天会被破解。但是一次性密码本理论上无法被破解,但实际操作有困难;量子密码可能无法被破解。
  • 密码只是信息安全的一部分。如果用户本身没有防范意识,再好的密码算法都没有用。

加密原理
密码虽然说起来复杂,而且种类繁多。但是到目前为止,密码只有两种基本的加密原理:换位和替换。
换位(置换)就是将语句中的字母进行重新排列,将原先的通顺的语句变得毫无意义。例如:china可以重新排列为anihc(此处只是简单的倒序)。当然,也有其他的重新排列的方式(例如塞塔密码)。 使用此方法加密后的密文和原文的字母以及其数目一致,只是位置不一致。
替换就是将标准的字母表按照某种规则打乱,形成新的字母表。例如:china可以替换为fklqd(此处只是简单的将字母表中的字母往后移动3位)。例如凯撒密码。

你可能感兴趣的:(密码学)