【密码学篇】(商密)密码算法分析理论知识

news2025/2/24 11:57:47

【密码学篇】(商密)密码算法分析理论知识

密码算法分析理论—【蘇小沐】

文章目录

    • 【密码学篇】(商密)密码算法分析理论知识
    • (一)密码系统安全性
      • 1.实际安全性
      • 2.无条件安全性
    • (二)密码算法攻击类型
    • (三)密码算法分析
      • 1.古典密码分析
      • 2.对称密码分析
      • 3.公钥密码分析
      • 4.杂凑算法分析
      • 5.抗量子攻击
    • (四)攻击类型
      • 1.主动攻击(影响系统)
      • 2.被动攻击(不影响系统)
      • 3.侧信道分析
    • (五)针对"密码功能"的攻击
    • 总结

(一)密码系统安全性

密码系统安全性分为"实际安全性" 和 “无条件安全性”;实际安全性又分为"计算安全性、可证明安全性"。

1.实际安全性

实际安全性备注
计算安全(1)破译密文的代价超过被加密信息的价值;(2)破译密文所花的时间超过信息的有用期
可证明安全将密码系统的安全性归结为某个经过深入研究的"数学难题(如大整数素因子分解、计算离散对数等)",数学难题被证明求解困难。这种评估方法存在的问题是它只说明了这个密码方法的安全性与某个困难问题相关,没有完全证明问题本身的安全性,并给出它们的等价性证明。

2.无条件安全性

假定攻击者拥有"无限的计算资源",但仍然无法破译该密码系统。

无论有多少可以使用的密文,都不足以唯一的确定密文所对应的明文。(破译所需要的信息不在密文里面)

(二)密码算法攻击类型

攻击难度:“唯密文攻击>已知明文攻击>选择明文攻击>选择密文攻击”。

如果一个密码系统能够抵抗选择密文攻击,那么它当然能够抵抗唯密文攻击和已知明文攻击。

攻击类型说明攻击者掌握的内容攻击方法
唯密文攻击攻击者仅靠密文推算可能的密钥◆加密算法;◆截获的部分密文
已知明文攻击攻击者不仅掌握了一定数量的密文,还有一些明文(密文对)◆加密算法;◆截获的部分密文;◆一个或多个明文密文对。时间-存储权衡
选择明文攻击攻击者能选择任意明文并获得相应密文◆加密算法;◆截获的部分密文;◆自己选择的明文消息,及由密钥产生的相应密文(攻击者有接加密机器的机会,不能打开机器找到密钥,但可以加密大量经过精心挑选的明文,然后利用所得的密文推断密钥的信息或试图对其他密文进行解密)。线性密码分析;最佳仿射逼近分析
选择密文攻在选择明文攻击基础上,攻击者还能选择任意密文并得到对应明文。◆加密算法;◆截获的部分密文;◆自己选择的密文消息,及相应的被解密的明文(攻击者有接触解密机器的机会,对选择的密文进行解密操作,然后试着用所得结果推断密钥或试图对其他密文进行解密)。

(三)密码算法分析

柯克霍夫原则(Kerckhoffs,柯克霍夫假说/公理/定律)”,由奥古斯特-柯克霍夫在19世纪提出:即使密码系统的任何细节已为人悉知,只要密匙(key,又称密钥或秘钥)未泄漏,它也应是安全的。【基于密钥的保密,而不是算法的隐蔽性】

“一切秘密寓于密钥之中”,基于香农提出的理想密码模型"一次一密"理论,最安全的密码是1比特密钥保护1比特明文,然而现实中真正的无限长随机密钥难以找到。

Shannon (香农)指出,仅当密钥至少和明文一样长时,才能达到无条件安全,也就是说,“除了一次一密外,再无其他的加密方案是无条件安全的”。

1.古典密码分析

古典密码分析方法说明
统计
明文-密文
穷举
重合指数法重合指数法(index of coincidence,又称一致检索法)是Wolfe Friendman于1920年提出的方法,它可以进一步地检验多表代换密码的密钥长度。当计算某个密文的重合指数时,即相当于求在某个密文中随机无放回地抽取其中的两位,这两位的字母相同的概率。
卡西斯基试验

2.对称密码分析

密码算法分析的目的是通过各种攻击方式,找到"密码算法的弱点或者不完美的地方"。

希尔密码算法抵御频率分析攻击能力最强,而对已知明文攻击最弱

对称密码分析说明
差分类攻击截断差分攻击、统计饱和攻击、不可能差分攻击、高阶差分攻击、飞去来器攻击、多差分分析等。
线性类攻击线性差分分析、多线性分析和线性区分攻击等。
单表代换"字母频率分析法"对单表代换密码算法分析最有效
多表代换"重合指数法"对多表代换密码算法的分析最有效

3.公钥密码分析

公钥密码分析类型
对底层困难问题的分析以及上层方案实际安全性的分析
LLL算法攻击(格基约化算法)

4.杂凑算法分析

杂凑算法分析类型
差分攻击
生日攻击
模差分攻击
中间相遇攻击

5.抗量子攻击

基于格、多变量、编码、杂凑函数的密码,可以抵抗量子攻击。

(四)攻击类型

1.主动攻击(影响系统)

主动攻击:试图改变系统资源或"影响系统运行"。

主动攻击类型
篡改
伪造
重放
消息修改
拒绝服务

2.被动攻击(不影响系统)

被动攻击:试图获取系统资源或利用系统的信息,但"不影响系统资源"。

被动攻击类型
截获
窃听
流量分析
信息内容的泄露

3.侧信道分析

侧信道攻击(Side Channel Attack),上述对密码算法的分析都是基于"数学理论"的分析方法,其特点是假定密码算法在一个封闭、可信的计算环境里运行,攻击者既不能观察运算过程中的内部状态也不能修改或干扰它。除此之外,有针对"密码的实现方式和应用方式"提出的侧信道分析,这种分析是基于"物理实现"的分析方法。

在实际应用中,密码系统会通过物理装置泄露一些信息,如"能量消耗、电磁辐射、运行时间等",无须实施入侵或破解密码算法就可以分析获得密钥等敏感数据。

攻击方式说明
逻辑侧信道攻击(side channel attack)利用"密码算法软件"实现过程的一些额外泄露信息进行攻击。计时攻击(timing attack):1)密码代码实现中,不同秘密信息对应的代码执行时间不等;2)通过测量运行的时间,推断出秘密信息。
物理侧信道攻击(硬件)功耗分析:1)密码芯片上运行时,不同秘密信息对应不同的"功耗";2)攻击者通过分析测量功耗推断密钥。电磁辐射分析:1)密码芯片上运行时,不同秘密信息对应不同的"电磁辐射";2)攻击者通过分析测量电磁辐射推断密钥

(五)针对"密码功能"的攻击

密码四大功能:机密性(保密性)、完整性、真实性、不可否认性。

密码功能安全威胁密码技术
机密性(保密性)截获、窃听、通信量分析加密、访问控制
完整性篡改消息鉴别码(对称,杂凑密码)、数字签名(公钥)
真实性伪造在线/离线认证服务器、静态/动态口令、生物特征
不可否认性(抗抵赖性)否认数字签名、认证交换、公证

总结

由于本人能力有限,纯粹做个记录,文中如有不妥和错漏之处欢迎批评指正。如果觉得本文档对您有帮助,可以点赞收藏关注!

【著作所有权归作者 蘇小沐所有,转载请注明文章出处】

名称时间
开始编辑日期2022 年 11 月 21 日
最后编辑日期2022 年 11 月 23 日

在这里插入图片描述

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

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

相关文章

干货丨如何开启TiDB集群中的节点通信加密?

笔者在一个银行项目中,费尽千辛万苦,好不容易通过PoC测试。 就当一切就绪,准备正式上线时,突然传来了噩耗:未通过银行内部的漏洞扫描,发现存在高危漏洞,需要马上进行修复。 这可给我吓坏了&am…

Vue-axios的get、post请求

直接在控制台上打印axios会报错,打印fetch就不会; 因为fetch是标准,axios是第三方,要想用axios,就必须引入想应的js文件;axios-js文件下载:npm 搜索axios,点进去,往下找&…

智云通CRM:如何清除销售前被拒绝的怀疑和猜测?

在做CRM销售时,经常遇到被客户拒绝的情况,没有人喜欢被拒绝,因为拒绝辉让人痛苦、难过,但现实中又无法避免被拒绝,尤其是销售人员,对销售人员来说,被拒绝是家常便饭。遭到拒绝后,经常…

基于51单片机pwm调光护眼台灯智能检测光强光控灯设计proteus仿真原理图PCB

功能: 0.本系统采用STC89C52作为单片机 1.LCD1602液晶实时显示当前时间/模式/亮度等级 2.按’切换’键可切换四种不同的模式 a) 自动开关,自动调节亮度 b) 手动开关,自动调节亮度 c) 自动开关,手动调节亮度 d) 手动开关&#xff0…

arthas诊断工具

1.安装 linux: curl -o https://alibaba.github.io/arthas/arthas-boot.jar //是O不是零 浏览直接访问https://alibaba.github.io/arthas/arthas-boot.jar 在运行程序之前,需要运行一个java进程在内存种 java -jar arthas-boot.jar 按序号选择诊断的进程 选择序号回车 2.卸载…

​生成图片并添加文字Image.new()与ImageDraw.drawer.text()方法​

【小白从小学Python、C、Java】 【计算机等级考试500强双证书】 【Python-数据分析】 生成图片并添加文字 Image.new()与ImageDraw.drawer.text()方法 [太阳]选择题 以下python代码表述错误的一项是? from PIL import Image,ImageDraw,ImageFont imgImage.new(modeRGB,…

计算机网络第六章知识点回顾(自顶向下)

第六章知识点回顾1.链路层和局域网1.1网络层、链路层和物理层1.2链路层服务1.3链路层在哪儿实现?1.3.1网络适配器之间的通信1.4检错和纠错1.5如何检测与纠正错误?1.5.1编码集的检错与纠错能力1.5.2差错检测的实施1.5.3奇偶校验1.5.4循环冗余校验&#xf…

图像分割 - 区域生长

目录 1. 介绍 2. 代码详解 3. 代码 1. 介绍 分割的目的是将图像分为多个区域 常用的分割方法基于两个属性:不同区域间的灰度不连续性质(Canny边缘检测等等)、相同区域灰度的相似特征(阈值处理、区域生长等等) 区…

牛客网语法篇练习基础语法(一)

1.输出"Hello Nowcoder!"。开始你的编程之旅吧。 print(Hello Nowcoder!) 2.KiKi学会了print在屏幕输出信息,他想输出一架小飞机。请帮他编写程序输出这架小飞机。 print( *5 ** *5) print( *5 ** *5) print(**12) print(**12) print( *4 * * *4) prin…

Arduino操作MPU6050模块

MPU6050是集成三轴陀螺仪,三轴加速度计,温度传感器于一体的模块。本文档基于Adafruit_MPU6050实现MPU6050模块基本操作。 Adafruit_MPU6050库: https://github.com/adafruit/Adafruit_MPU6050 Adafruit_MPU6050依赖以下库,需要在…

Java中的char、Character和CharSequence的区别

char 与 Character char是一种基本的数据类型,Character是char类型的包装类,即通过Character创建出来的是一种对象。 Character是char的包装类,就像Integer和int,以及Long和long一样。 包装类和基本类型可以自动转换&#xff…

安泰测试-同惠TH2827精密LCR数字电桥产品性能特点

同惠(Tonghui)TH2827A/TH2827B/TH2827C型 LCR数字电桥 产品简介: TH2827A/TH2827B/TH2827C是具有多种功能和更高测试频率的新型LCR数字电桥,体积小,紧凑便携,便于上架使用。本系列仪器基本精度为0.05%,测试频率最高1M…

GitLab仓库管理系统安装详细步骤

前言 本案例安装 gitlab、jenkins、并部署springboot应用程序,所以准备了3台服务器。 服务器1:安装gitlab服务器2:安装jdk、maven、git、jenkins 因为jenkins需要jdk、maven、git服务器3:安装jdk。 jenkins自动部署的springboot…

多目标优化生态调度结果的预测方法研究——基于新蝙蝠算法(Matlab代码实现)

🍒🍒🍒欢迎关注🌈🌈🌈 📝个人主页:我爱Matlab 👍点赞➕评论➕收藏 养成习惯(一键三连)🌻🌻🌻 🍌希…

【CNN】ZFNet——让卷积神经网络不再是一个黑盒模型。

前言 ZFNet在2013年 ILSVRC 图像分类竞赛获得冠军,错误率11.19% ,比2012年的AlexNet降低了5%,ZFNet是由 Matthew D.Zeiler 和 Rob Fergus 在 AlexNet 基础上提出的大型卷积网络。ZFNet解释了为什么卷积神经网络可以在图像分类上表现的如此出…

[MySQL]事务ACID详解

专栏简介 :MySql数据库从入门到进阶. 题目来源:leetcode,牛客,剑指offer. 创作目标:记录学习MySql学习历程 希望在提升自己的同时,帮助他人,,与大家一起共同进步,互相成长. 学历代表过去,能力代表现在,学习能力代表未来! 目录 1. 事务的概念 2. 事务的特性 3.事务控制语法…

【经验篇】Java使用ZMQ断线重连问题

简介 ZeroMQ是一个高性能的异步消息传递库,旨在用于分布式或者并发应用程序。它提供了一个消息队列,但与面向消息的中间件不同,ZeroMQ 系统可以在没有专用消息代理的情况下运行。 ZeroMQ 支持各种传输(TCP、进程内、进程间、多播…

初步认识端口服务查询--netstat

转载连接:netstat详解 目录1、语法与参数概括2、输出释义2.1 以netstat -atnlp为例,解释输出结果中各列的含义2.2、以netstat -rn为例,解释输出结果中各列的含义3、实用命令4、项目中通过netstat查询某端口是否被占用netstat命令是一个监控TC…

Spring5源码3-BeanDefinition

1. BeanDefinition BeanDefinition在spring中贯穿始终,spring要根据BeanDefinition对象来实例化bean,只有把解析的标签,扫描的注解类封装成BeanDefinition对象,spring才能实例化bean beanDefinition主要实现类: ChildBeanDefini…

ADB安装及使用详解

一、ADB简介 1、什么是adb ADB 全称为 Android Debug Bridge,起到调试桥的作用,是一个客户端-服务器端程序。其中客户端是用来操作的电脑,服务端是 Android 设备。 ADB 也是 Android SDK 中的一个工具,可以直接操作管理 Androi…