密码学的发展状况

  • 密码学是一门古老、年轻且深奥的学科。
  • 密码学是研究信息系统安全保密的科学。它包括密码编码学和密码分析学。
  • 密码学经历了从古典密码学到现代密码学的演变。
  • 1949年前密码技术是一门技术性很强的艺术;1949年Shannon “保密系统的通信理论”,密码学成为科学。
  • 1976年Diffie和Hellman“密码学的新方向”,密码学的一场革命。

密码学的起源

  • 神智体(形意诗)
  • 藏头诗
  • 北宋《武经总要》作者曾公亮提出中国古代已知最早的军事情报通讯密码
  • 清同治十年(1871),上海大北水线电报公司选出汉字6899个,按部首笔画为序排列,以四码数字与其相匹配,创造了中国最早的《明码本》。在明码本基础上重新编排横直码和角码成为密本,称"普通本"或"部首本"。
  • 大约在4000年以前,在古埃及的尼罗河畔,一位擅长书写者在贵族的基碑上书写铭文时有意用加以变形的象形文字而不是普通的象形文字来写铭文,从而揭开了有文字记载的密码史。这篇颇具神秘感的碑文,已具备了密码的基本特征:把一种符号(明文)用另一种符号(密文)代替。
  • 最先有意识的使用一些技术的方法来加密信息的可能是公元前500年的古希腊人。他们使用的是一根叫Scytale的棍子。送信人先绕棍子卷一张纸条,然后把要写的信息写在上面,接着打开纸送给收信人。如果不知道棍子的粗细是不可能解密里面的内容的。
  • 凯撒(Caesar)密码
  • “艾奈阿斯绳结”密码
  • “卡尔达诺漏格板”密码
  • 几何图形密码
  • Enigma密码(用转轮机实现)

密码学历史回顾

三个阶段:

  • 1949年之前

    密码学是一门艺术

  • 1949~1975年

    密码学成为科学

  • 1976年以后

    密码学的新方向——公钥密码学

现代密码学发展概况

  • 1949~1975年:

    • 计算机使得基于复杂计算的密码成为可能
    • 1949年Shannon的“The Communication Theory of Secret Systems”
    • 1967年David Kahn的《The Codebreakers》
    • 1971-73年IBM Watson实验室的Horst Feistel等的几篇技术报告:
      • A Cryptographic Device for Data Communication, 1971
      • An Experimental Application of Cryptography to a remotely Accessed Data System, 1972
      • Cryptography and Computer Privacy, 1973

    数据的安全基于密钥而不是算法的保密

  • 1976年以后:

    • 1976年Diffie & Hellman的“New Directions in Cryptography”提出了不对称密钥密码
    • 1977年Rivest,Shamir & Adleman提出了RSA公钥算法
    • 90年代逐步出现椭圆曲线等其它公钥算法

    公钥密码使得发送端和接收端无密钥传输的保密通信成为可能!

    • 1976年以后,对称密钥密码算法进一步发展
    • 1977年DES正式成为标准
    • 80年代出现“过渡性”的“post DES”算法,如IDEA,RCx,CAST等
    • 90年代对称密钥密码进一步成熟 Rijndael,RC6,MARS, Twofish,Serpent等出现
    • 2001年Rijndael成为DES的替代者(AES)
  • 现代密码技术的应用已经深入到数据处理过程的各个环节,包括:数据加密、密码分析、数字签名、信息鉴别、零知识认证、秘密共享等。密码学的数学工具也更加广泛,有概率统计、数论、代数、混沌和椭圆曲线等。

密码学的基本概念

密码学的作用

  • 机密性
  • 鉴别:信息的接收者能够确认消息的来源;窃听者不可能伪装成他人。
  • 完整性:信息的接收者能够验证在传送过程中信息没有被修改;窃听者不可能用假信息代替合法信息。
  • 抗抵赖:发送者事后不可能虚假地否认他发送的信息。

专业术语

  • 明文(plaintext):没有加密的信息(message)
  • 密文(ciphertext):加密后的信息
  • 加密(encryption,encipher):从明文到密文的变换
  • 解密(decryption,decipher):从密文到明文的变换
  • 密钥(key):加密和解密是在密钥控制下进行的

密码学专业术语.png

  • 加密:E(m) = c

  • 解密:D(c) = m

  • 先加密再解密:D(E(m)) = m

  • 加密和解密实际上是一个带有秘密参数的数学函数,称为密码算法。

    • 需求1:可逆——算法的使用者可以求得逆函数
    • 需求2:不可逆——窃听者无法将密文恢复成明文
    • 秘密参数——密钥
      • 知道秘密参数,求逆非常容易
      • 不知道秘密参数,求逆在计算上是不可行的

密码系统

密码体制(cryptosystem):用于加密与解密的系统。明文与密钥作为加密变换的输入参数,经过一定的加密变换处理以后得到的输出密文。

一个密码体制通常由五部分组成:

  • 明文空间M:全体明文的集合。
  • 密文空间C:全体密文的集合。
  • 密钥空间K:全体密钥的集合。通常每个密钥k都由加密密钥ke和解密密钥kd组成,k = <ke,kd>, ke和kd可能相同也可能不同。
  • 加密算法E:由加密密钥控制的加密变换的集合。
  • 解密算法D:由解密密钥控制的解密变换的集合。

密码系统模型

保密系统五个基础部分:信源、信道、加密器、解密器和密码源。

  • 信源(source):信息的产生和发送者。
  • 信宿(sink):信息的接收者。
  • 信道(channel):明文信源消息传送给接收者的渠道。

只是对窃听传输的信息进行分析称为被动攻击。对传输信息采取插入、删除、修改、重放、伪造举动称为主动攻击。

密码系统模型.png

密码体制分类

  • 对称算法(Symmetric Algorithm):加密密钥能够从解密密钥中推算出来,反之亦然(大多数对称算法加密密钥和解密密钥相同)。又称为私钥密码、单钥密码。

  • 非对称算法(Asymmetric Algorithm):用作加密的密钥不同于用作解密的密钥,而且解密密钥不能根据加密密钥计算出来。又称为公钥密码、双钥密码。

一个好的密码体制至少应该满足的两个条件:

  1. 在已知明文m和加密秘钥ke时,计算c=Eke(m)容易;
    在已知密文c和解密秘钥kd时,计算m=Eke(c)容易。

  2. 在不知道解密秘钥kd时,不可能由密文c推知明文m。

密码分析

  • 密码编码学:保持明文(或密钥,或明文和密钥)的秘密以防止窃听者知晓。

  • 密码分析学:在不知道密钥的情况下,恢复出明文的科学。

  • 密码分析者攻击密码体制的方法:

    1. 穷举攻击:通过试遍所有的密钥来进行破译。对抗:可增大密钥的数量。
    2. 统计分析攻击:通过分析密文和明文的统计规律来破译。对抗:设法使明文和密文的统计规律不一样。
    3. 解密变换攻击:针对加密变换的数学基础,通过数学求解设法找到解密变换。对抗:选用具有坚实的数学基础和足够复杂的加密算法。
  • 对密码体制的攻击类型

    唯密文攻击、已知明文攻击、选择明文攻击、选择密文攻击等

    对密码体制的攻击类型

    • 自适应选择明文攻击:选择明文攻击的一种特殊情况指密码分析者不仅能够选择要加密的明文,还能够根据加密的结果对以前的选择进行修正。

    • 选择密钥攻击:密码分析者知道不同密钥之间的关系。比较少见。

    • Kerckhoff假设:对任何一种攻击方法,密码分析者事先知道所使用的密码体制(加密算法)。

      密码系统中的算法即使被密码分析者知道,也对推导出明文或密钥没有帮助。也就是说密码系统的安全性不应取决于不易被改变的事物(即算法)而应只取决于可随时改变的密钥。

密码体制的安全性

  • 一个密码系统为计算上安全(Computationally Secure)是指该密码系统满足破解密文的花费远远大于所加密信息的价值,且破解密文所花费的时间远远多于该信息的有效时间。

    比无条件安全弱的一个概念是计算上安全的,加密算法只要满足以下两条准则之一就称为是计算上安全的在、实际中是可用的:

    • 破译密文的代价超过被加密信息的价值。
    • 破译密文所花的时间超过信息的有用期。
  • 一个密码系统为可证明安全(Provable Secure)是指该密码安全性问题可转化成某个研究人员公认的困难问题。

  • 一个密码系统为无条件安全(Unconditionally Secure)是指即使接收到无限密文,也无法确定其密钥。

    Shannon指出,仅当密钥至少和明文一样长时,才能达到无条件安全。也就是说除了一次一密方案外,再无其他的加密方案是无条件安全的。

Last modification:November 17th, 2020 at 02:59 pm