【密码学】一、概述

news2024/11/25 16:46:26

概述

  • 1、密码学的发展历史
    • 1.1 古代密码时代
    • 1.2 机械密码时代
    • 1.3 信息密码时代
    • 1.4 现代密码时代
  • 2、密码学的基本概念
  • 3、密码学的基本属性
  • 4、密码体制分类
    • 4.1 对称密码体制
    • 4.2 非对称加密体制
  • 5、密码分析

1、密码学的发展历史

起因:保密通信和身份认证问题
根据时间顺序、加密原理和加密方式,可以将密码学的发展历史分为:古代密码时代、机械密码时代、信息密码时代和现代密码时代

1.1 古代密码时代

使用的密码体制为古典密码体制,应用的主要技巧是文字内容的代替、移位和隐藏等。
如:密码棒、凯撒密码(移位)、隐写术、阴符、阴书等。
隐写术是将信息隐藏再公开信息种,并通过公开渠道进行信息传递。

1.2 机械密码时代

两次世界大战期间加密所使用的是机械密码机,因此这一时期的密码也被称为机械密码。
初步:(无线电报的发展和使用)加密主要原理是字母的替换和移位,加密和解密的手段采用了机械和手工操作,破译则使用简单的词频分析,以及基于经验和想象的试探方法。
后期:大量的数学和统计知识被应用到,加密原理从传统的单表替换发展到复杂度大大提高的多表替换,基于机械和电器原理的加密和解密装置全面取代以往的手工密码。
如:恩尼格玛密码机、Typex打字密码机、哈格林密码机等。
对于复杂的多表古典密码加密方法,利用密文的重合指数方法与密文中字母统计规律相结合,同样可以破译。

1.3 信息密码时代

原因:在具有超强计算能力的计算机面前,所有的机械密码都显得不堪一击。
加密对象:电子形式的文件
大量的信息论、概率论、数理统计等数学理论被运用到密码技术中,使得密码学成为数学的一个新分支。
①香农发表的《通讯的数学原理》创立了信息论;
②随着计算机网络的发展,信息时代要保证计算机通信网络和数据传递的安全,这是密码学的新任务;
③1949年香农发表的==《保密系统的通信原理》==为密码学建立了理论基础,是密码发展史上的第一次飞跃,人类从此进入信息密码时代。
DES—AES.

1.4 现代密码时代

斯坦福密码学专家发表《密码学的新方向》提出了密码学新的思想。该思想中不仅加密算法本身可以公开,同时同于加密消息的密钥也可以公开,这就是公钥加密。(第二次飞跃)
现代密码学的任务已经不局限于传统密码的保密通信,而是含义更广的信息安全,其中包括保密通信、数据加密、身份认证、数字签名、密钥协商、秘密分享等重要的功能。
第一个实用的公钥密码体制RSA。(RSA密码算法的安全性基于数论中的大整数影子分解问题)
椭圆曲线密码体制ECC。基于椭圆曲线上离散对数求解问题。
③我国研究并推出系列商用密码算法,包括祖冲之序列密码算法、SM2公钥密码算法、SM3密码杂凑算法、SM4分组密码算法、SM9标识密码算法等。随着其他相关学科的快速发展,促使密码学中出现了新的密码技术,如DNA密码、混沌密码和量子密码等。

2、密码学的基本概念

通信系统模型
在一般的通信系统中,从信源发出的信号经过编码器的编码调制处理之后,经过公开的信道传到解码器进行译码或者编码操作,最终传到信宿。
但是在过程中要保护明文不被攻击,所以引入了保密通信的概念。
是指在一般通信系统中加入加密器与解密器,保证信息在传输过程中无法被其他人解读,从而有效解决信息传输过程中存在的安全问题。
保密通信系统模型
一个密码体制可以描述为一个五元组==(M,C,K,E,D)==

系统的保密性不依赖于对加密体制或算法的保密,而依赖于密钥,这是柯克霍夫原则。

3、密码学的基本属性

应用密码技术是保障网络与信息安全最有效、最可靠、最经济的手段,可以实现信息的机密性、信息的真实性、数据的完整性和行为的不可否认性。

信息的机密性是保证信息不被泄露给非授权者等实体的性质。
信息的真实性是指保证信息来源可靠、没有被伪造和篡改的性质。
数据的完整性是指数据没有受到非授权者的篡改或破坏的性质。(密码杂凑算法)
行为的不可否认性也称为抗抵赖性,是指一个发生的操作行为无法否认的性质。

4、密码体制分类

主要分为对称密码和非对称密码体制。

4.1 对称密码体制

又称为单钥体制,是加解密的密钥相同的密码算法。其保密性取决于密钥的保密性,而非算法的保密性。
如何产生满足保密要求的密钥以及如何将密钥安全、可靠地分配给通信双方是这类体制设计和实现的主要课题。
对称密码体制分为序列密码或流密码(按字符加密)、分组密码(按分组加密)。

4.2 非对称加密体制

也称为公钥密码体制。加解密过程使用的密钥不一样(公钥和私钥)。
一方面可以解决对称密码体制中的密钥分发和管理问题,另一方面可以解决不可否认问题。
另一个重要用途是数字签名(用私钥签名,所有人可以用公钥验证)

5、密码分析

攻击分为被动攻击(截获密文进行攻击)和主动攻击(向系统注入假消息)。
密码分析分为:
唯密文攻击(只用密文进行密码分析)最难攻击,是利用穷举法。
已知明文攻击(利用大量相互对应的明文和密文)
选择明文攻击(选择特定明文和对应密文)
选择密文攻击(选择特定密文和对应明文)

自适应选择明文攻击:是指密码分析者不仅能够选择要加密的明文,还可以根据加密的结果对以前的选择进行修正
选择密钥攻击:表示密码分析者知道不同密钥之间的关系,并不表示密码分析者能够选择密钥。

计算安全:
满足1.破译密文的代价超过被加密信息的价值
2.破译密文所花费的时间超过信息的有用期。

密文没有泄露足够多的明文信息,无论计算能力有多强,都无法由密文唯一确定明文,满足此条件的加密算法称为无条件安全。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/771656.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

C++基础算法二分篇

📟作者主页:慢热的陕西人 🌴专栏链接:C算法 📣欢迎各位大佬👍点赞🔥关注🚓收藏,🍉留言 主要讲解二分算法,分别讲解了整数二分和浮点二分 文章目录…

Mybatis-Plus(二)--Mybatis-Plus方法大全

通用CRUD大全(Mybatis-Plus为我们提供了哪些操作) 还有在mybatis中遇到列名和属性名不一致等等的情况,在mybatis中xml中声明解决,在mybatis-plus中也都有对应的解决。 1.插入操作 //插入一条记录 //参数entity是实体对象 int ins…

数据结构day5(2023.7.19)

一、Xmind整理: 双向链表的插入与删除: 二、课上练习: 练习1:单链表任意元素删除 /** function: 按元素删除* param [ in] * param [out] * return 返回堆区首地址*/ Linklist delete_by_data(datatype key,Linklist L) …

【MySQL】MySQL数据库的初阶使用

文章目录 一、MySQL服务的安装二、数据库基础1.什么是数据库?(基于CS模式的一套数据存取的网络服务)2. Linux文件系统和数据库的关系 && 主流数据库3.MySQL架构 && SQL分类 && MySQL存储引擎 三、MySQL操作库1.库结构…

携带时间戳主动写入数据到prometheus service(可乱序、go)

使用到的github公开项目 https://github.com/castai/promwrite Prometheus版本2.45.0 拉下来装依赖,然后使用 client_test.go t.Run(“write with custom options”, func(t *testing.T) 这个测试用例里面,删掉srv初始化的部分,这个是模拟一…

unity02 物体运动

旋转,增量旋转,默认增量为15度 ctrl拖拽物体旋转 设置增量旋转角度大小 edit–>grid and snap settings privot 轴心坐标系(中心坐标系)默认 local 世界坐标系(局部坐标系) ctrlD复制物体 物体激活&…

uni.app如何检测小程序版本更新以及上线后如何关闭全局打印

uni.app如何检测小程序版本更新以及上线后如何关闭全局打印 检测小程序版本更新关闭全局打印 检测小程序版本更新 App.vue 入口文件中 添加如下代码 //检测小程序版本是否更新const updateManager wx.getUpdateManager()updateManager.onCheckForUpdate(function(res) {// 请求…

Linux基础内容(26)—— 线程的互斥

Linux基础内容(25)—— 线程控制和线程结构_哈里沃克的博客-CSDN博客https://blog.csdn.net/m0_63488627/article/details/131372872?spm1001.2014.3001.5501 目录 1.线程互斥 1.问题引入 2.问题原因 3.安全问题 互斥 加锁 加锁后的特点 如何理…

每天一道C语言编程:Cylinder(圆柱体问题)

题目描述 使用一张纸和剪刀,您可以通过以下方式切出两个面形成一个圆柱体: 水平切割纸张(平行于较短的边)以获得两个矩形部分。 从第一部分开始,切出一个最大半径的圆。圆圈将形成圆柱体的底部。 将第二部分向上滚动&…

2023网络安全面试题汇总(附答题解析+配套资料)

随着国家政策的扶持,网络安全行业也越来越为大众所熟知,相应的想要进入到网络安全行业的人也越来越多,为了更好地进行工作,除了学好网络安全知识外,还要应对企业的面试。 所以在这里我归总了一些网络安全方面的常见面…

牛顿修正法在二阶近似方法中的应用

使用optimtool的牛顿修正法来应用学习 pip install optimtool --upgrade pip install optimtool>2.4.2optimtool包所依据的理论支撑中,还没有为二阶微分方法作邻近算子的近似与修正,所以二阶近似方法是研究无不可微项的可微函数的算子。 牛顿修正法…

docker部署mysql8主从集群(互为主从),keepalived保证高可用

一、准备2台物理机器master-1、master-2,目标虚拟VIP。   VIP:172.50.2.139   master-1:172.50.2.41   master-2:172.50.2.42 二、然后分别在2台物理机器master-1、master-2上使用docker-compose安装mysql8,并配置互为主从。1)配置mas…

2023-7-19-第二十式迭代器模式

🍿*★,*:.☆( ̄▽ ̄)/$:*.★* 🍿 💥💥💥欢迎来到🤞汤姆🤞的csdn博文💥💥💥 💟💟喜欢的朋友可以关注一下&#xf…

深入理解Java虚拟机(五)虚拟机类加载机制

代码编译的结果从本地机器码转变为字节码,是存储格式发展的一小步,却是编程语言发展的一大步。 一、概述 Java虚拟机把描述类的数据从Class文件加载到内存,并对数据进行校验、转换解析和初始化,最终形成可以被虚拟机直接使用的Jav…

队列的表示和操作

队列:队列是仅在表尾进行插入操作,在表头进行删除操作的线性表。 表尾即an端,称为队尾,表头即a1端,称为队头。 队列的存储方式:顺序队列和链式队列 队列顺序表示 #define MAXQSIZE 100 //最大队列长度 …

Vue 1 - 安装、快速上手

文章目录 关于 Vue创建应用 关于 Vue 官网: https://cn.vuejs.org官方文档-快速上手: https://cn.vuejs.org/guide/quick-start.htmlgithub : https://github.com/vuejsVue SFC Playground : https://play.vuejs.org/ 其他 作者 尤雨溪 Evan You 主页 …

如何把caj文件改成PDF格式?分享三个免费的方法!

在学术研究中,我们可能会遇到CAJ文件,这是一种在中国学术界广泛使用的文档格式。然而,与PDF文件相比,CAJ文件的查看和分享并不那么便捷。下面,我会为你介绍三种免费且简便的方法,帮助你将CAJ文件转化为PDF格…

PSP - Jackhmmer 搜索 EMBL 序列数据库的相似序列

欢迎关注我的CSDN:https://spike.blog.csdn.net/ 本文地址:https://spike.blog.csdn.net/article/details/131817060 EMBL (European Molecular Biology Laboratory,欧洲分子生物实验室):EMBL 数据库是一个由欧洲生物信息学研究所…

Microsoft Outlook如何定时发送邮件

点击New Emai 选择Options→Delay Delivery→Do not deliver before→Close

基于linux下的高并发服务器开发(第二章)- 2.13 匿名管道通信案例

实现 ps aux | grep xxx 父子进程间通信 子进程: ps aux, 子进程结束后,将数据发送给父进程 父进程:获取到数据,过滤 pipe() execlp() 子进程将标准输出 stdout_fileno 重定向到管道的写端。 dup2 07 / 匿名管道…