前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >密码学概述

密码学概述

作者头像
十二惊惶
发布2024-02-28 20:22:45
1440
发布2024-02-28 20:22:45
举报

密码学概述

信息安全与密码技术

  1. 密码技术是一门古老的技术。
  2. 信息安全服务要依赖各种安全机制来实现,而许多安全机制则需要依赖于密码技术 。
  3. 密码学贯穿于网络信息安全的整个过程,在解决信息的机密性保护、可鉴别性、完整性保护和信息抗抵赖性等方面发挥着极其重要的作用。

密码技术发展简介

根据不同时期密码技术采用的加密和解密实现手段的不同特点,密码技术的发展历史大致可以划分为三个时期,即古典密码、近代密码和现代密码时期。

现代密码时期
  • 1949年香农的奠基性论文“保密系统的通信理论’’的发表,首次将信息论引入密码技术的研究,用统计的观点对信源、密码源、密文进行数学描述和定量分析,引入了不确定性、多余度、唯一解距离等安全性测度概念和计算方法,为现代密码学研究与发展奠定了坚实的理论基础,把已有数千年历史的密码技术推向了科学的轨道,使密码学成为一门真正的科学。
  • 1967年,戴维·卡恩出版了一本专著《破译者》
  • 1977年,美国国家标准局NBS正式公布实施美国的数据加密标准DES
  • 1976年11月,美国斯坦福大学的著名密码学家迪菲和赫尔曼发表了“密码学新方向”一文,首次提出了公钥密码体制的概念和设计思想,开辟了公开密钥密码学的新领域,掀起了公钥密码研究的序幕。
  • 1997年4月美国国家标准和技术研究所发起征集高级数据加密标准算法的活动。
  • 2000年10月,比利时密码学家Joan Daemen和Vincent Rijmen 提出的“Rijndael数据加密算法”被确定为AES算法,作为新一代数据加密标准。
  • 二十世纪末的AES算法征集活动使密码学界又掀起了一次分组密码研究的高潮。同时,在公钥密码领域,椭圆曲线密码体制由于其安全性高、计算速度快等优点引起了人们的普遍关注和研究,并在公钥密码技术中取得重大进展。

密码学基本概念

密码学的主要任务

在信息安全的诸多涉及面中,密码学主要为存储和传输中的数字信息提供如下几个方面的安全保护:

机密性:是一种允许特定用户访问和阅读信息,而非授权用户对信息内容不可理解的安全属性。指保证信息不被非授权访问。

完整性:数据完整性即用以确保数据在存储和传输过程中不被非授权修改的的安全属性。密码学可通过采用数据加密、报文鉴别或数字签名等技术来实现数据的完整性保护。

鉴别:这是一种与数据来源和身份鉴别有关的安全服务。鉴别服务包括对身份的鉴别和对数据源的鉴别。对于一次通信,必须确信通信的对端是预期的实体,这就涉及到身份的鉴别。对于数据,仍然希望每一个数据单元发送到或来源于预期的实体,这就是数据源鉴别。数据源鉴别隐含地提供数据完整性服务。

抗抵赖性:是一种用于阻止通信实体抵赖先前的通信行为及相关内容的安全特性。密码学通过对称加密或非对称加密,以及数字签名等技术,并借助可信机构或证书机构的辅助来提供这种服务。也称作抗否认性,是面向通信双方信息真实统一的安全要求,它包括收、发双方均不可抵赖。

密码学研究领域的两个分支:
  1. 密码编码学(Cryptography) 密码编码学的主要任务是寻求有效密码算法和协议,以保证信息的机密性或认证性的方法。它主要研究密码算法的构造与设计,也就是密码体制的构造。它是密码理论的基础,也是保密系统设计的基础。
  2. 密码分析学(Cryptanalytics)密码分析学的主要任务是研究加密信息的破译或认证信息的伪造。它主要是对密码信息的解析方法进行研究。密码编码学和密码分析学是密码学的两个方面,两者既相互对立,又互相促进和发展。
密码系统的概念

​ 密码技术的一个基本功能是实现保密通信,经典的保密通信模型

几个基本概念与符号
  • 明文(Plaintext)待伪装或加密的消息(Message)。在通信系统中它可能是比特流,如文本、位图、数字化的语音流或数字化的视频图像等 。一般可以简单的认为明文是有意义的字符或比特集,或通过某种公开的编码标准就能获得的消息。明文常用m或p表示。
  • 密文(Ciphertext)对明文施加某种伪装或变换后的输出,也可认为是不可直接理解的字符或比特集,密文常用c表示。
  • 加密(Encrypt)把原始的信息(明文)转换为密文的信息变换过程。
  • 解密(Decrypt)把己加密的信息(密文)恢复成原始信息明文的过程,也称为脱密。
密码算法(Cryptography Algorithm)

也简称密码(Cipher),通常是指加、解密过程所使用的信息变换规则,是用于信息加密和解密的数学函数。 对明文进行加密时所采用的规则称作加密算法,而对密文进行解密时所采用的规则称作解密算法。加密算法和解密算法的操作通常都是在一组密钥的控制下进行的。 密钥(Secret Key ) 用于加密算法的叫做加密密钥,用于解密算法的叫做解密密钥,加密密钥和解密密钥可能相同,也可能不相同。 密钥常用k表示。在密钥k的作用下,加密变换通常记为Ek(·),解密变换记为Dk(·)或Ek-1(·)。

通常一个密码体制可以有如下几个部分:

代码语言:javascript
复制
消息空间M(又称明文空间):所有可能明文m的集合;
密文空间C:所有可能密文c的集合;
密钥空间K:所有可能密钥k的集合,其中每一密钥k由加密密钥ke和解密密钥kd组成,即k=(ke,kd);
加密算法E:一簇由加密密钥控制的、从M到C的加密变换;
解密算法D: 一簇由解密密钥控制的、从C到M的解密变换。
五元组{ M,C,K,E,D }就称为一个密码系统

对于明文空间M中的每一个明文m,加密算法E在加密密钥ke的控制下将明文m加密成密文c;而解密算法D则在密钥kd的控制下将密文c解密成同一明文m,即:对m∈M,(ke,kd)∈K,有:

数据安全基于密钥而不是算法的保密。也就是说,对于一个密码体制,其算法是可以公开的,让所有人来使用、研究。但具体对于某次加密过程中所使用的密钥,则是保密的。

对密码系统的攻击

密码攻击:在信息传输和处理系统中,除了合法的接收者外,还有“黑客”,他们试图努力从截获的密文中推断出原来的明文,这一过程称为密码攻击(密码分析)。 密码分析在外交、军事、公安、商业等方面都具有重要作用,也是研究历史、考古、古语言学和古乐理论的重要手段之一。 密码分析者破译或攻击密码的方法主要有穷举攻击法、统计分析法和数学分析攻击法。 密码分析除了依靠数学、工程背景、语言学等知识外,还要靠经验、统计、测试、眼力、直觉判断能力……,有时还靠点运气

  • 穷举攻击法

​ 穷举攻击法又称为强力或蛮力攻击。这种攻击方法是对截获到的密文尝试遍历所有可能的密钥,直到获得了一种从密文到明文的可理解的转换;或使用不变的密钥对所有可能的明文加密直到得到与截获到的密文一致为止。 ​ 只要有足够多的计算时间和存储容量,原则上穷举法总是可以成功的。实际上,任何一种能保障安全要求的实用密码都会设计得使这一方法在实际上是不可行的。

  • 统计分析法

​ 利用明文的已知统计规律进行破译的方法。密码破译者对截收的密文进行统计分析,总结出其间的统计规律,并与明文的统计规律进行对照比较,从中提取出明文和密文之间的对应或变换信息

  • 数学分析法

利用一个或几个已知量(比如,已知密文或明文-密文对)用数学关系式表示出所求未知量(如密钥等)。已知量和未知量的关系视加密和解密算法而定,寻求这种关系是确定性分析法的关键步骤。

在假设密码分析者已知所用加密算法全部知识的情况下,根据密码分析者对明文、密文等数据资源的掌握程度,可以将针对加密系统的密码分析攻击类型分为以下四种:

攻击类型

攻击者拥有的资源

惟密文攻击

加密算法 , 截获的部分密文

已知明文攻击

**加密算法, ** 截获的部分密文和相应的明文

选择明文攻击

加密算法, 加密黑盒子,可加密任意明文得到相应的密文

选择密文攻击

**加密算法 ** 解密黑盒子,可解密任意密文得到相应的明文

① 惟密文攻击(Ciphtext-only attack) 密码分析者有一些消息的密文,这些消息都用同一加密算法加密,密码分析者知道密码算法。密码分析者的任务是恢复尽可能多的明文,或者最好是能推算出加密消息的密钥来,以便可采用相同的密钥解出其他被加密的消息。

已知:C1=EK(P1),C2=EK(P2),…, Ci=EK(Pi) 要推出:P1,P2, … ,Pi;k或者找出一个算法从 Ci+1= EK(Pi+1)推出Pi+1。

②已知明文攻击(Plaintext-known attack) 密码分析者不仅可得到一些消息的密文,而且也知道这些消息的明文。分析者的任务就是用加密信息推出用来加密的密钥或导出一个算法,此算法可以对用同一密钥加密的任何新的消息进行解密。

已知:P1,C1=Ek(P1),P2,C2=Ek(P2), …,Pi,Ci=Ek(Pi). 推导出:密钥k,或从Ci+1= Ek(Pi+1)推出Pi+1的算法。

③ 选择明文攻击(Chosen-plaintext attack) 分析者不仅可得到一些消息的密文和相应的明文,而且他们也可选择被加密的明文。这比已知明文攻击更有效。因为密码分析者能选择特定的明文块去加密,那些块可能产生更多关于密钥的信息,分析者的任务是推出用来加密消息的密钥或导出一个算法,此算法可以对用同一密钥加密的任何新消息进行解密。

已知:P1,C1=Ek(P1),P2,C2=Ek(P2), …,Pi,Ci=Ek(Pi) 其中P1,P2 … ,Pi是由密码分析者选择的。 推导出:密钥k,或从Ci+1= Ek(Pi+1)推出Pi+1的算法

④ 选择密文攻击(Chosen—ciphenext attack) 选择密文攻击是指密码分析者可以选择一些密文,并得到相应的明文。密码分析者的任务目标是推出密钥。这种密码分析多用于攻击公钥密码体制。

衡量密码系统攻击的复杂性主要考虑三个方面的因素: 数据复杂性:用做密码攻击所需要输入的数据量; 处理复杂性:完成攻击所需要花费的时间; 存储需求:进行攻击所需要的数据存储空间大小。 攻击的复杂性取决于以上三个因素的最小复杂度,在实际实施攻击时往往要考虑这三种复杂性的折衷,如存储需求越大,攻击可能越快。

密码系统的安全性

一个密码系统的安全性主要与两个方面的因素有关。

  1. 一个是所使用密码算法本身的保密强度。密码算法的保密强度取决于密码设计水平、破译技术等。可以说一个密码系统所使用密码算法的保密强度是该系统安全性的技术保证。
  2. 另外一个方面就是密码算法之外的不安全因素。 因此,密码算法的保密强度并不等价于密码系统整体的安全性。—个密码系统必须同时完善技术与管理要求,才能保证整个密码系统的安全。
评估密码系统安全性主要有三种方法:
  • 无条件安全性 , 这种评价方法考虑的是假定攻击者拥有无限的计算资源,但仍然无法破译该密码系统。
  • 计算安全性 , 这种方法是指使用目前最好的方法攻破它所需要的计算远远超出攻击者的计算资源水平,则可以定义这个密码体制是安全的。
  • 可证明安全性 ,这种方法是将密码系统的安全性归结为某个经过深入研究的数学难题(如大整数素因子分解、计算离散对数等),数学难题被证明求解困难。这种评估方法存在的问题是它只说明了这个密码方法的安全性与某个困难问题相关,没有完全证明问题本身的安全性,并给出它们的等价性证明。

对于实际应用中的密码系统而言,由于至少存在一种破译方法,即强力攻击法,因此都不能满足无条件安全性,只提供计算安全性。 密码系统要达到实际安全性,就要满足以下准则: (1)破译该密码系统的实际计算量(包括计算时间或费用)十分巨大,以致于在实际上是无法实现的。 (2)破译该密码系统所需要的计算时间超过被加密信息有用的生命周期。。 (3)破译该密码系统的费用超过被加密信息本身的价值。

密码系统的柯克霍夫斯(Kerckhoffs)原则: 即使密码系统中的算法为密码分析者所知,也难以从截获的密文推导出明文或密钥。 也就是说,密码体制的安全性仅应依赖于对密钥的保密,而不应依赖于对算法的保密。 只有在假设攻击者对密码算法有充分的研究,并且拥有足够的计算资源的情况下仍然安全的密码才是安全的密码系统。

综上,一个提供机密性服务的密码系统是实际可用的,必须满足的基本要求: 系统的保密性不依赖于对加密体制或算法的保密,而仅依赖于密钥的安全性。 满足实际安全性,使破译者取得密文后在有效时间和成本范围内,确定密钥或相应明文在计算上是不可行的。 加密和解密算法应适用于明文空间、密钥空间中的所有元素。 加密和解密算法能有效地计算,密码系统易于实现和使用。

密码体制的分类

对密码体制的分类方法有多种,常用的分类方法有以下三种。

  1. 根据密钥个数

根据加密算法与解密算法所使用的密钥是否相同,可以将密码体制分为:对称密码体制(Symmetric cipher,也称为单钥密码体制、秘密密钥密码体制、对称密钥密码体制或常规密码体制)与非对称密码体制(Asymmetric cipher,也称为双钥密码体制、公开密钥密码体制、非对称密钥密码体制)如果一个提供保密服务的密码系统,它的加密密钥和解密密钥相同,或者虽然不相同,但由其中的任意—个可以很容易地导出另外一个,那么该系统所采用的就是对称密码体制。 如果一个提供保密服务的密码系统,其加密算法和解密算法分别用两个不同的密钥实现,并且由加密密钥不能推导出解密密钥,则该系统所采用的就是非对称密码体制。 采用非对称密钥密码体制的每个用户都有一对选定的密钥。其中一个是可以公开的,称为公开密钥(Public key),简称公钥;另一个由用户自己秘密保存,称为私有密钥(Private key),简称私钥。

在安全性方面,对称密钥密码体制是基于复杂的非线性变换与迭代运算实现算法安全性的,而非对称密钥密码体制则一般是基于某个公认的数学难题而实现安全性的。

根据对明文信息的处理方式

  1. 根据密码算法对明文信息的处理方式,可将对称密码体制分为:
    • 分组密码(Block cipher)
    • 序列密码(Stream cipher,也称为流密码)。

分组密码是将消息进行分组,一次处理一个数据块(分组)元素的输入,对每个输入块产生一个输出块。在用分组密码加密时,一个明文分组被当做一个整体来产生一个等长的密文分组输出。分组密码通常使用的分组大小是64比特或128比特。 序列密码则是连续地处理输入元素,并随着处理过程的进行,一次产生一个元素的输出,在用序列密码加密时,一次加密一个比特或一个字节。

(3)根据是否能进行可逆的加密变换 根据密码算法是否能进行可逆的加密变换,可以将密码体制分为: 单向函数密码体制 双向变换密码体制。

单向函数密码体制是一类特殊的密码体制,其性质是可以很容易地把明文转换成密文,但再把密文转换成正确的明文却是不可行的,有时甚至是不可能的。 单向函数只适用于某种特殊的、不需要解密的应用场合,如用户口令的存储和信息的完整性保护与鉴别等。 双向变换密码体制是指能够进行可逆的加密、解密变换,绝大多数加密算法都属于这一类,它要求所使用的密码算法能够进行可逆的双向加解密变换,否则接收者就无法把密文还原成明文。 其他的方法,按照在加密过程中是否引入了客观随机因素,可以分为确定型密码体制和概率密码体制等等。

1.3.6 对称与非对称密码体制的主要特点

对称密码体制的主要优势是: 加密、解密运算的处理速度块,效率高,算法安全性高。 对称密码体制存在的局限性或不足: (1)对称密码算法的密钥分发过程复杂,所花代价高; (2)密钥管理量的困难; (3)保密通信系统的开放性差; (4)存在数字签名的困难性。

非对称密码体制的主要优势是: (1)密钥分配简单。 (2)系统密钥量少,便于管理。 (3)系统开放性好。 (4)可以实现数字签名。 非对称密码体制存在的局限性是加密、解密运算效率较低,处理速度较慢,同等安全强度下,非对称密码体制的密钥位数较多。 另外,由于加密密钥是公开发布的,客观上存在“可能报文攻击”的威胁。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2022-01-17,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 密码学概述
    • 信息安全与密码技术
      • 密码技术发展简介
        • 现代密码时期
      • 密码学基本概念
        • 密码学的主要任务
        • 密码学研究领域的两个分支:
        • 密码系统的概念
        • 几个基本概念与符号
        • 密码算法(Cryptography Algorithm)
        • 对密码系统的攻击
        • 密码系统的安全性
        • 密码体制的分类
    相关产品与服务
    数据保险箱
    数据保险箱(Cloud Data Coffer Service,CDCS)为您提供更高安全系数的企业核心数据存储服务。您可以通过自定义过期天数的方法删除数据,避免误删带来的损害,还可以将数据跨地域存储,防止一些不可抗因素导致的数据丢失。数据保险箱支持通过控制台、API 等多样化方式快速简单接入,实现海量数据的存储管理。您可以使用数据保险箱对文件数据进行上传、下载,最终实现数据的安全存储和提取。
    领券
    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档