当前位置: 首页 > news >正文

密码学基础

在介绍密码学之前,先说明一下密码学的作用。

信息系统的硬件系统安全和操作系统安全是信息系统安全的基础,密码和网络安全等技术是信息系统安全的关键技术。信息系统安全即信息安全,信息安全学科是综合计算机、通信、电子、数学、物理、生物、管理、法律和教育 等学科,并发展演绎而形成的交叉学科。

信息安全的理论基础:

1. 数学 :

密码学——代数、数论、概率统计。

安全协议——逻辑学

信息对抗——博弈论

2. 信息论、控制论和系统论

3. 计算理论:可计算理论和计算复杂性理论

密码学:用基于数学方法的程序和保密的秘钥对信息进行编码,把信息变成一段杂乱无章难以理解的字符串,也就是把明文转变成密文。其主要目标是机密性 完整性 认证性 不可否认性

 密码学主要分为两个分支:密码编码学,密码分析学

密码编码学:主要研究对信息进行变化,以保护信息在信道传递过程中不被敌手窃取、解读和利用的方法(如何加密)
密码分析学:过程与之相反

被动攻击:采用搭线窃听等方式直接获取未经过加密的明文或加密后的密文,并分析得知明文
主动攻击:采用删除、更改、增添、重放、伪造等手段主动向系统注入假的信息

参与方抵赖:通信双方中的某一方对所传输消息的否认

抗主动攻击的方法:认证

抗被动攻击的方法:加密

密码学的基本概念:

密码系统:明文空间、密文空间、密码方案、秘钥空间组成
明文:未经过加密的原始信息,一般情况下,用小写m(message消息)或p(plaintext明文)表示
明文空间:明文的全体
密文:经过伪装后的明文,一般情况下,用小写c(cipher密码)表示
密文空间:密文的集合,一般情况下,用大写的C表示
密码方案:确切的描述了加密变换和解密变换的具体规则(对明文进行加密时所使用的规则描述,对密文还原时所使用的规则),加密(E(m)),m为明文。解密(D(c)),c为密文
秘钥:加密和解密算法的操作在此元素控制下进行。一般用k(key秘钥)表示
秘钥空间:秘钥的全体 

密码体制:完成加密和解密的算法,加密和解密过程通过密码体制+秘钥来控制的

根据分类标准的不同可以将密码体制分为

时期:古典密码、近代密码

保护内容:受限制的算法(算法的保密性基于保持算法的秘密)和基于秘钥的算法(算法的保密性仅仅基于对秘钥的保密)

加密/解密秘钥是否相同:对称秘钥密码体制和公钥密码体制

明文处理方式:分组密码和流密码

是否能进行可逆的加密变换分类:单向函数密码体制和双向变换密码体制

密码分析攻击类型
1. 唯密文攻击 分析者根据所截获的一个或者一些密文进行攻击,目的是得到明文或秘钥
2. 已知明文攻击 分析者除了截获密文外,还有已知一些“密文-明文对”来破译密码
3. 选择明文攻击 分析者不仅可以得到一些“明文-密文对”,还可以任意选择希望被加密的明文,并获取相应的密文
4. 选择密文攻击 分析者可以选择一些密文,并得到相应的明文,任务推出秘钥

常见的古典密码包括:

 模q算术:

 

分组密码的典型攻击方法: 

 

 强力攻击分为以下几种:

 现代常规分组加密算法包括 DES,IDEA,RC5,RC6,AES,此外,还有Blowfish,CAST,RC2。

 扩散(Diffusion):将每一位明文及密钥尽可能迅速地散布到较多个密文数字中去,以便隐蔽明文的统计特性。            

混淆(Confusion):使明文和密文、密钥和密文之间的统计相关性极小化。使统计分析更为困难。 

数字签名在信息安全,包括身份认证、数据完整性、不可否认性以及匿名性等方面有重要应用,可以说,数字签名是实现认证的重要工具。

数字签名是一种以电子形式给一个消息签名的方法,是只有信息发送方才能够进行的签名,是任何其他人都无法伪造的一段数字串,这段特殊的数字串同时也是对签名真实性的一种证明。

数字签名的特征:

  • 签名是可信的:任何人都可以方便地验证签名的有效性。
  • 签名是不可伪造的:除了合法的签名者之外,任何其他人伪造其签名是困难的(计算上不可行)
  • 签名是不可复制的:对一个消息的签名不能通过复制变为对另一个消息的签名。如果一个消息的签名是从别处复制的,则任何人都可以发现消息与签名之间的不一致性。
  • 签名的消息是不可改变的:经签名的消息不能被篡改。一旦签名的消息被篡改,则任何人都可以发现消息与签名之间的不一致性。
  • 签名是不可抵赖的:签名者不能否认自己的签名。

数字签名的示意图如下: 

 

此外,还有特殊的数字签名方式:

盲签名 双联签名 团体签名 不可争辩签名 多重签名方案 代理签名 数字时间戳 

 

http://www.xdnf.cn/news/835327.html

相关文章:

  • ExploitDB漏洞库
  • ligerUI框架
  • 流量劫持是什么?常用方法有哪些?
  • 400 java web_"400 bad request"错误解决方案|springmvc接收参数时出现400 bad request
  • Linux命令大全(面试必备)
  • 【Linux】UNIX网络编程
  • 【JavaSE8 高级编程 集合框架】集合框架入门系列①框架概览 2019_8_29
  • 什么是堡垒机?为什么需要堡垒机?
  • 条形码类型及常见条形码介绍
  • 还在为复制粘贴烦恼吗?这5个工具帮你轻松搞定
  • 信号(signal)介绍
  • 网络根基之TCPUDP基础知识
  • GPIO的寄存器BSRR和BRR使用摘抄汇总
  • Oracle索引详解
  • 揭秘芯片制造:八个步骤,数百个工艺
  • 【Unity3D自学记录】Unity3D插件之EasyTouch简单用法
  • 源代码是什么?有什么作用?
  • 线程之间的通信
  • 【暗黑纪元H5】架设教程-配套视频教程-服务端等
  • 网络管理命令6— Pathping 命令
  • 怎么用U盘安装ubuntu系统具体步骤图文详解
  • 有哪些网站,一旦知道,你就离不开了
  • 【视频算法解析二】I3D
  • 一周AI看点 | 扎克伯格认为马斯克AI威胁论极不负责任,微软SynNet两步打造可迁移学习的机器阅读理解系统...
  • (新)B站视频播放源地址获取及B站视频下载
  • Eclipse中SVN的安装及使用
  • Peer to Peer ( P2P ) 综述
  • 探索 Amano Team 的 Ara 项目:一款强大且易用的 Web 开发框架
  • W32Dasm简介
  • 什么是系统可用性