【密码学】一、概述

概述

  • 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.mzph.cn/news/3632.shtml

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

相关文章

TMAM性能分析模型

4个倾向性: 前端依赖型:很少出现,这大多数都是由于CPU微指令无法及时的解析和加载造成的。但往往这意味着系统如果无法找出硬件或者微码级别的问题就无法简单的从代码出发优化程序了。 错误预测型:多半是由于系统采用的编译器和…

LabVIEW - 采集声音并保存 wav 文件

1. 题目 编写程序,实现用户点击按钮时,采集声音,显示声音波形,对于采集的声音进行低频段、中频段、高频段分别进行适当的比例放大或者衰减,然后重新合成(三段相加即可),并将合成的声音下入wav格式的文件保存…

PostgreSQL MVCC的弊端优化方案

我们之前的博客文章“我们最讨厌的 PostgreSQL 部分”讨论了大家最喜欢的 DBMS 多版本并发控制 (MVCC) 实现所带来的问题。其中包括版本复制、表膨胀、索引维护和真空管理。本文将探讨针对每个问题优化 PostgreSQL 的方法。 尽管 PostgreSQL 的 MVCC 实现是 Oracle 和 MySQL 等…

关于 PostgreSQL 删除数据库 - 命令行删除,报错数据库不存在,pgadmin 报错存在会话链接 导致无法删除数据库问题

序言 测试环境: Windows 10问题 笔者尝试过在 cmd 命令行,使用PostgreSQL 的 psql 工具登录 postgresql,删除某个有问题的数据库,准备新建重载该数据库时,发现 DROP DATABASE database_name ,竟然报错该…

JAVA前端bootstrap-table表格,全量查数据后也能字段点击排序sort

工程后期改造&#xff0c;加了一层首页展示&#xff0c;该层无需分页所以想在代码层次实现排序&#xff0c;而不是数据库sql 1、后端代码展示如下 private List<QcCheckStatVO> getQcCheckStatList(Map<String, Object> para, String orderByColumn, String isAsc…

埃科光电在科创板上市:同创伟业、毅达资本为股东,实控人为董宁

7月19日&#xff0c;合肥埃科光电科技股份有限公司&#xff08;下称“埃科光电”&#xff0c;SH:688610&#xff09;在上海证券交易所科创板上市。本次上市&#xff0c;埃科光电的发行价为73.33元/股&#xff0c;发行数量为1700万股&#xff0c;募资总额约为12.47亿元&#xff…

Shell运行原理以及Linux中的权限问题

目录 一、shell的运行原理 二、Linux权限的概念 2.1 用户账号切换 2.2 仅提升当前指令的权限 2.3 将普通用户添加到信任列表 三、Linux权限管理 3.1 文件访问者的分类 3.2 文件类型和访问权限 3.3 字符权限值的表示方法 3.3.1 字符表示方法 3.3.2 八进制表示法 3.4…

XSS 攻击的检测和修复方法

XSS 攻击的检测和修复方法 XSS&#xff08;Cross-Site Scripting&#xff09;攻击是一种最为常见和危险的 Web 攻击&#xff0c;即攻击者通过在 Web 页面中注入恶意代码&#xff0c;使得用户在访问该页面时&#xff0c;恶意代码被执行&#xff0c;从而导致用户信息泄露、账户被…

使用RESTful风格编写用户增删改查模拟操作

三种参数接收方式的区别&#xff1a; RequestParam 用于接收url地址传参或表单传参 RequestBody 用于接收json数据 PathVariable 用于接收路径参数&#xff0c;使用{参数名称}描述路径参数 package com.wu.controller;import com.wu.domain.User; import org.springframework.s…

BUFG/BUFGCE/BUFH/BUFHCE/BUFH/BUFGHCE/BUFMR/BUFMRCE/BUFR/IBUF/IBUFDS

本文对BUFG/BUFGCE/BUFH/BUFHCE简单介绍&#xff0c;便于后续查看。 原语的使用&#xff1a;在vivado中找到所要用的原语&#xff0c;直接将其实例化到设计中即可。 文章目录 BUFGBUFGCEBUFHBUFHCEBUFMRBUFRBUFMRCEIBUFIBUFDS 下图为 7 系列 FPGA 时钟架构图&#xff1a; BU…

在Linux中部署mysql并远程连接

1. 配置yum仓库 更新密钥 rpm -import https: /repo.mysql.com/RPM-GPG-KEY-mysql-2022 # 安装Mysql yum库 rpm -Uvh http: /repo.mysql.com /mysql57-community-release-el7-7.noarch.rpm 2. 使用yum安装MySQL yum -y install mysql-community-server 3. 安装完成后&#x…

redis7.0编译安装 + bash安装脚本

以下操作在debian11下演示&#xff0c;ubuntu通用&#xff0c;其它系列linux自行安装依赖&#xff0c;其余一样 以7.0.12版本为例进行安装 最后的bash脚本是对前面的操作的封装&#xff0c;一键即配置完成&#xff0c;即可使用 一、编译安装 1.安装依赖 apt-get install bui…

Appium+python自动化(十二)- Android UIAutomator终极定位凶器(超详解)

简介 乍眼一看&#xff0c;小伙伴们觉得这部分其实在异性兄弟那里就做过介绍和分享了&#xff0c;其实不然&#xff0c;上次介绍和分享的大哥是uiautomatorviewer&#xff0c;是一款定位工具。今天介绍的是一个java库&#xff0c;提供执行自动化测试的各种API。 Android团队在4…

数据结构(王道)——数据结构之 二叉树

一、数据结构之 二叉树概念&#xff1a; 特殊的二叉树结构&#xff1a; 满二叉树完全二叉树 二叉排序树 平衡二叉树 二叉树基本概念总结&#xff1a; 二、二叉树的常用性质&#xff1a; 1、【二叉树】的叶子结点比二分支结点多一个 2、【m叉树】的第i层至多有m^(i-1)个结点 3、…

关于Qt For android第一次编译时出现的问题

搞了三四天&#xff0c;搞的快崩溃了&#xff0c;问题提示为 FAILURE: Build failed with an exception.* What went wrong: A problem occurred configuring root project android-build. > Could not resolve all artifacts for configuration :classpath.> Could not…

pytorch 2.0初探:和pytorch 1.13的速度对比

看到pytorch2.0出来了&#xff0c;而且宣传提速明显&#xff0c;一行代码即可提速43%左右&#xff1a; compiled_model torch.compile(model) We then measure speedups and validate accuracy across these models. Since speedups can be dependent on data-type, we measu…

真正的理解WPF中的TemplatedParent

童鞋们在WPF中经常看到 TemplatedParent ,或者经常看到下面的用法: {Binding RelativeSource={RelativeSource TemplatedParent}, Path=Content} 是不是看的一脸蒙圈? 先看官方文档: 意思是 和这个控件的 模板上的 父亲,如果这个控件不是模板创建的,那么这个值就…

CSS 渐变边框及动画

转载请注明出处&#xff0c;点击此处 查看更多精彩内容 用 CSS 实现渐变边框及动画&#xff0c;下面对关键点进行解释说明&#xff0c;查看完整代码及预览效果请 点击这里。 简单说明原理&#xff1a;使用伪元素 ::before 绘制一个渐变色&#xff0c;然后使用伪元素 ::after 绘…

J2EE反射

目录 一.什么是反射 用实体类Student做示范 三.反射实例化 四.反射动态方法调用 五.反射读写属性 一.什么是反射 反射java语言中的一种机制&#xff0c;通过这种机制可以动态的实例化对象&#xff0c;读写属性&#xff0c;调用方法 二.类类 Class.forName(完整类名)类名…

16. 存储过程和存储函数

文章目录 1.存储过程和存储函数2.创建和使用存储过程2.1 语法&#xff1a;2.2 第一个存储过程&#xff0c;打印hello world2.3 调用语法2.4 带参数的存储过程2.5 调试存储过程 3.创建和使用存储函数3.1 存储函数定义3.2 存储函数语法&#xff1a;3.3 存储函数案例&#xff1a; …