您当前的位置:首页 > 电脑百科 > 程序开发 > 编程百科

密码学基础

时间:2020-06-25 16:34:41  来源:  作者:

1. 密码学概述

(1)密码学的发展历程

密码学是一门古老而深奥的学科,是结合数学、计算机科学、电子与通信等诸多学科于一体的交叉学科,是研究信息系统安全保密的一门科学。密码学主要包括密码编码学和密码分析学两个分支,其中密码编码学的主要目的是寻求保证信息保密性或仁整形的方法,密码分析学的主要目的是研究加密消息的破译或消息的伪造。密码学经历了从古代密码学到现代密码学的演变。

密码学基础

 


密码学基础

 


密码学基础

 

最早将现代密码学概念运用于实际的是Caesar大帝,他是古罗马帝国末期著名的统帅和政治家。Caesar发明了一种简单的加密算法把他的信息加密用于军队传递,后来被称为Caesar密码。它是将字母按字母表的顺序排列,并且最后一个字母与第一个字母相连。加密方法是将明文中的每个字母用其后边的第三个字母代替,就变成了密文。

替代密码的基本思想,是将明文中的每个字母用此字符在字母表中后面第 k个字母替代,加密过程可以表示为函数E(m)=(m+k) mod n。其中:m 为明文字母在字母表中的位置数,n 为字母表中的字母个数,k 为密钥,E(m)为密文字母在字母表中对应的位置数。其解密过程可以表示为函数E(m)=(m-k) mod n。

置换密码的基本思想,不改变明文字符,只是将字符在明文中的排列顺序改变,从而实现明文信息的加密,又称为换位密码。矩阵换位法是实现置换密码的一种常用方法,它将明文中的字母按照给的顺序安排在一个矩阵中,然后根据密钥提供的顺序重新组合矩阵中字母,从而形成密文。

第一阶段:古代―1949年

这阶段的密码技术可以说是一种艺术,而不是一种科学,密码学专家常常是凭知觉和信念来进行密码设计和分析,而不是推理和证明,没有形成密码学的系统理论。这一阶段设计的密码称为经典密码或古典密码,并且密码算法在现代计算机技术条件下都是不安全的。

第二阶段:1949―1975年

1949年C.E.Shannon(香农)发表在《贝尔实验室技术杂志》上的《保密系统的信息理论(Communication Theory of Secrecy System)》为私钥密码体系(对称加密)建立了理论基础,从此密码学成为一门科学。图3-3为Shannon提出的保密通信模型。密码学直到今天仍具有艺术性,是具有艺术性的一门科学。这段时期密码学理论的研究工作进展不大。1967年David Kahn发表了《The Code Breakers(破译者)》一书,详尽地阐述了密码学的发展和历史,使人们开始了解和接触密码。1976年,Pfister(菲斯特)和美国国家安全局NSA(National Security Agency)一起制定了数据加密标准(Data Encryption Standard,DES),这是一个具有深远影响的分组密码算法。

密码学基础

 

第三阶段:1976年到~

1976年Diffie和Hellman发表的文章“密码学发展的新方向”导致了密码学上的一场革命,他们首先证明了在发送端和接收端无密钥传输的保密通信是可能的,从而开创了公钥密码学的新纪元。从此,密码开始充分发挥它的商用价值和社会价值。1978年,在ACM通信中,Rivest、Shamir和Adleman公布了RSA密码体系,这是第一个真正实用的公钥密码体系,可以用于公钥加密和数字签名。由于RSA算法对计算机安全和通信的巨大贡献,该算法的3个发明人因此获得计算机界的诺贝尔奖—图灵奖(A.M.Turing Award)。在EuroCrypt’91年会上,中国旅居瑞士学者来学嘉(X.J.Lai)和James L. Massey提出了IDEA,成为分组密码发展史上的又一个里程碑。

3.1.2 密码学的基本知识

密码学的基本目的是使得两个在不安全信道中通信的人,通常称为Alice和Bob,以一种使他们的敌手Oscar不能明白和理解通信内容的方式进行通信。不安全信道在实际中是普遍存在的,例如电话线或计算机网络。Alice发送给Bob的信息,通常称为明文(plaintext),例如英文单词、数据或符号。Alice使用预先商量好的密钥(key)对明文进行加密,加密过的明文称为密文(ciphertext),Alice将密文通过信道发送给Bob。对于敌手Oscar来说,他可以窃听到信道中Alice发送的密文,但是却无法知道其所对应的明文;而对于接收者Bob,由于知道密钥,可以对密文进行解密,从而获得明文。图3-4给出加密通信的基本过程,加密算法E,解密算法D,明文M,密文C;要传输明文M,首先要加密得到密文C,即C=E(M),接受者收到C后,要对其进行解密,即D(C)=M,为了保证将明文恢复,要求D(E(M))=M。

密码学基础

 

(2) 基本概念

明文消息(Plaintext):未加密的原消息,简称明文。

密文消息(Ciphertext):加密后的消息,简称密文。

加密(Encryption):明文到密文的变换过程。

解密(Decryption):密文到明文的恢复过程。

加密算法(Encryption Algorithm):对明文进行加密时所采用的一组规则或变换。

解密算法(Decryption Algorithm):对密文进行解密时所采用的一组规则或变换。

密码算法强度(Algorithm Strength):对给定密码算法的攻击难度。

密钥(Key):加解密过程中只有发送者和接收者知道的关键信息,分为加密密钥(Encryption Key)和解密密钥(Decryption Key)。

密码分析(Cryptanalysis):虽然不知道系统所用的密钥,但通过分析可能从截获的密文中推断出原来的明文,这一过程称为密码分析。

一个密码系统(或称为密码体制,Cryptosystem)由加密算法、解密算法、明文空间(全体明文的集合)、密文空间(全体密文的集合)和密钥空间(全体密钥的集合)组成。

什么是密码学?密码学(Cryptology)是研究如何实现秘密通信的科学,包含密码编码学和密码分析学。密码编码学(Cryptography)是研究对信息进行编码以实现信息隐蔽;密码分析学(Cryptanalytics)是研究通过密文获取对应的明文信息。

(3) 密码技术的基本应用

①用加密来保护信息。利用密码变换将明文变换成只有合法者才能恢复的密文,这是密码的最基本的功能。利用密码技术对信息进行加密是最常用的安全交易手段。

②采用密码技术对发送信息进行验证。为防止传输和存储的消息被有意或无意地篡改,采用密码技术对消息进行运算生成消息验证码(mac),附在消息之后发出或与信息一起存储,对信息进行认证。它在票据防伪中具有重要应用(如税务的金税系统和银行的支付密码器)。

③数字签名。在信息时代,电子信息的收发使我们过去所依赖的个人特征都被数字代替,数字签名的作用有两点:一是接收方可以发送方的真实身份,且发送方事后不能否认发送国该报文这一事实;二是发送方或非法者不能伪造、篡改报文。数字签名并非是用手书签名的图形标志,二是采用双重加密的方法来防伪、防赖。根据采用的加密技术不同,数字签名有不同的种类,如私用密钥的数字签名、公开密钥的数字签名、只需签名的数字签名、数字摘要的数字签名等。

④身份识别。当用户登录计算机系统或者建立最初的传输连接时,用户需要证明他的身份,典型的方法是采用口令机制来确认用户的真实身份。此外,采用数字签名也能够进行身份鉴别,数字证书用电子手段来证实一个用户的身份和对网络资源的访问权限,是网络正常运行锁屏必须的。在电子商务系统中,所有参与活动的实体都需要用数字证书来表明自己的身份。

3. 密码学的体制

按密钥使用的数量不同,将密码体制分为对称密码体系 (symmetric)(又称为单钥密码)和非对称密码(asymmetric)(又称为公钥密码)。

在对称密码体系中,加密密钥和解密密钥相同,彼此之间很容易相互确定。对于对称密码而言,按照明文加密方式的不同,又可分为分组密码(block cipher)和流密码(stream cipher)。流密码是指将明文消息按字符逐位地进行加密。分组密码是指将明文消息分组(每组含有多个字符)逐组地进行加密。在公钥密码体系中,加密密钥(又称为公钥,Public Key)和解密密钥(又称为私钥,Private Key)不同,从一个密钥很难推出另一个密钥,可将加密能力和解密能力分开,不需要通过专门的安全通道来传送密钥。大多数公钥密码属于分组密码。

(4) 对密码的攻击

密文分析者在不知道密钥的情况下,从密文恢复出明文。成功的密码分析不仅能够恢复出消息明文和密钥,而且能够发现密码体制的弱点,从而控制通信。常见的密码分析方法有以下四类。

①唯密文攻击(Ciphertext only)。密码破译者除了拥有截获的密文,以及对密码体制和密文信息的一般了解外,没有什么其它可以利用的信息用于破译密码。在这种情况下进行密码破译是最困难的,经不起这种攻击的密码体制被认为是完全不保密的。

②已知明文攻击(Known plaintext)。密码破译者不仅掌握了相当数量的密文,还有一些已知的明---密文对(通过各种手段得到的)可供利用。现代的密码体制(基本要求)不仅要经受得住唯密文攻击,而且要经受得住已知明文攻击。

③选择明文攻击(Chosen plaintext)。密码破译者不仅能够获得一定数量的明---密文对,还可以用它选择的任何明文,在同一未知密钥的情况下能加密相应的密文。密码破译者暂时控制加密机。

密码学基础

 

④选择密文攻击(Chosen ciphertext) 。密码破译者能选择不同的被加密的密文,并还可得到对应的解密的明文,据此破译密钥及其它密文。密码破译者暂时控制解密机。

一个好的密码系统应该满足下列要求:①系统即使理论上达不到不可破,实际上也要做到不可破。也就是说,从截获的密文或已知的明文—密文对,要确定密钥或任何明文在计算上是不可行的。②系统的保密性是依赖于密钥的,而不是依赖于对加密体制或算法的保密。③加密和解密算法适用于密钥空间的所有元素。④系统既易于实现又便于使用。

@木子羽辰,将一直带给大家信息安全知识,由浅至深、采用体系化结构逐步分享,大家有什么建议和问题,可以及留言,多谢大家关注,谢谢大家。



Tags:密码学   点击:()  评论:()
声明:本站部分内容及图片来自互联网,转载是出于传递更多信息之目的,内容观点仅代表作者本人,如有任何标注错误或版权侵犯请与我们联系(Email:2595517585@qq.com),我们将及时更正、删除,谢谢。
▌相关推荐
我们在渗透测试过程中,往往会遇到一些我们看不懂的代码,一般人都称之为乱码,往往都不会太在意,然而有一些所谓的乱码,其实是通过各种手段加密过的重要信息,只要知道它的加密方法,就...【详细内容】
2021-02-25  Tags: 密码学  点击:(248)  评论:(0)  加入收藏
IT之家 1 月 15 日消息 据约翰 - 霍普金斯大学的密码学家称,iOS 并没有尽可能多地利用内置的加密措施,从而出现了潜在的不必要的安全漏洞。利用苹果和谷歌的公开文档、关于绕...【详细内容】
2021-01-15  Tags: 密码学  点击:(150)  评论:(0)  加入收藏
1. 密码学概述(1)密码学的发展历程密码学是一门古老而深奥的学科,是结合数学、计算机科学、电子与通信等诸多学科于一体的交叉学科,是研究信息系统安全保密的一门科学。密码学主...【详细内容】
2020-06-25  Tags: 密码学  点击:(79)  评论:(0)  加入收藏
HTTPS网站相信对很多工程师来讲并不陌生,各大Web服务器产品都提供了详细的配置方案,搭建起来也并不很难。但要说出其中的安全原理,却不是件容易的事。今天我们就来谈一谈它后...【详细内容】
2020-05-15  Tags: 密码学  点击:(54)  评论:(0)  加入收藏
在之前的章节中,编写的程序只能操作较少的信息,这些信息往往是以字符串的形式直接写在代码中的。但本章中的程序可以对整个文件进行加密和解密,文件的大小可以包括成千上万个字...【详细内容】
2020-04-29  Tags: 密码学  点击:(37)  评论:(0)  加入收藏
密码学系列 - 对称加密本文讨论的对称加密算法主要包括 DES、3DES、AESDES明文:64 bit 密文:64 bit 密钥:56/64 bit(每 7 位插入一个校验位的时候为 64 bit) 其设计思想充分体现...【详细内容】
2020-03-30  Tags: 密码学  点击:(61)  评论:(0)  加入收藏
想要入门密码学的基础知识,尤其是有关 OpenSSL 的入门知识吗?继续阅读。-- Marty Kalin(作者) 本文是使用 OpenSSL 的密码学基础知识的两篇文章中的第一篇,OpenSSL 是在 Linux...【详细内容】
2020-02-22  Tags: 密码学  点击:(93)  评论:(0)  加入收藏
在很多区块链密码学的相关文章中,我们经常会看到“密码极客”、“密码朋克”这样的字眼,究竟是什么意思呢?今天,我们就来了解一下这两个小知识。 密码极客是什么?“极客”一词,...【详细内容】
2019-12-17  Tags: 密码学  点击:(200)  评论:(0)  加入收藏
密码学是研究编制密码和破译密码的技术科学。研究密码变化的客观规律,应用于编制密码以保守通信秘密的,称为编码学;应用于破译密码以获取通信情报的,称为破译学,总称密码学。密码...【详细内容】
2019-10-31  Tags: 密码学  点击:(101)  评论:(0)  加入收藏
作者: Alex Wood 译者: LCTT Andy Song学习密码学背后的基本概念,主要是保密性、完整性和身份认证。安全通信正快速成为当今互联网的规范。从 2018 年 7 月起,Google Chrome 将...【详细内容】
2019-10-15  Tags: 密码学  点击:(99)  评论:(0)  加入收藏
▌简易百科推荐
本文分为三个等级自顶向下地分析了glibc中内存分配与回收的过程。本文不过度关注细节,因此只是分别从arena层次、bin层次、chunk层次进行图解,而不涉及有关指针的具体操作。前...【详细内容】
2021-12-28  linux技术栈    Tags:glibc   点击:(3)  评论:(0)  加入收藏
摘 要 (OF作品展示)OF之前介绍了用python实现数据可视化、数据分析及一些小项目,但基本都是后端的知识。想要做一个好看的可视化大屏,我们还要学一些前端的知识(vue),网上有很多比...【详细内容】
2021-12-27  项目与数据管理    Tags:Vue   点击:(2)  评论:(0)  加入收藏
程序是如何被执行的  程序是如何被执行的?许多开发者可能也没法回答这个问题,大多数人更注重的是如何编写程序,却不会太注意编写好的程序是如何被运行,这并不是一个好...【详细内容】
2021-12-23  IT学习日记    Tags:程序   点击:(9)  评论:(0)  加入收藏
阅读收获✔️1. 了解单点登录实现原理✔️2. 掌握快速使用xxl-sso接入单点登录功能一、早期的多系统登录解决方案 单系统登录解决方案的核心是cookie,cookie携带会话id在浏览器...【详细内容】
2021-12-23  程序yuan    Tags:单点登录(   点击:(8)  评论:(0)  加入收藏
下载Eclipse RCP IDE如果你电脑上还没有安装Eclipse,那么请到这里下载对应版本的软件进行安装。具体的安装步骤就不在这赘述了。创建第一个标准Eclipse RCP应用(总共分为六步)1...【详细内容】
2021-12-22  阿福ChrisYuan    Tags:RCP应用   点击:(7)  评论:(0)  加入收藏
今天想简单聊一聊 Token 的 Value Capture,就是币的价值问题。首先说明啊,这个话题包含的内容非常之光,Token 的经济学设计也可以包含诸多问题,所以几乎不可能把这个问题说的清...【详细内容】
2021-12-21  唐少华TSH    Tags:Token   点击:(10)  评论:(0)  加入收藏
实现效果:假如有10条数据,分组展示,默认在当前页面展示4个,点击换一批,从第5个开始继续展示,到最后一组,再重新返回到第一组 data() { return { qList: [], //处理后...【详细内容】
2021-12-17  Mason程    Tags:VUE   点击:(14)  评论:(0)  加入收藏
什么是性能调优?(what) 为什么需要性能调优?(why) 什么时候需要性能调优?(when) 什么地方需要性能调优?(where) 什么时候来进行性能调优?(who) 怎么样进行性能调优?(How) 硬件配...【详细内容】
2021-12-16  软件测试小p    Tags:性能调优   点击:(20)  评论:(0)  加入收藏
Tasker 是一款适用于 Android 设备的高级自动化应用,它可以通过脚本让重复性的操作自动运行,提高效率。 不知道从哪里听说的抖音 app 会导致 OLED 屏幕烧屏。于是就现学现卖,自...【详细内容】
2021-12-15  ITBang    Tags:抖音防烧屏   点击:(25)  评论:(0)  加入收藏
11 月 23 日,Rust Moderation Team(审核团队)在 GitHub 上发布了辞职公告,即刻生效。根据公告,审核团队集体辞职是为了抗议 Rust 核心团队(Core team)在执行社区行为准则和标准上...【详细内容】
2021-12-15  InfoQ    Tags:Rust   点击:(25)  评论:(0)  加入收藏
最新更新
栏目热门
栏目头条