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

密码学安全性简介

四种安全性

在密码学中,想要安全的传输消息,至少得满足以下四种安全性。密码学假设建立在多种指数级难题上。

1 唯密文(Ciphertext Only)安全

窃听者只能监测传输途径上的密文,窃听者不知道任何有关明文的消息,但是能够结合加密算法对密文进行统计学分析,以此为突破口进行明文恢复。

很显然,一个能够经受多年公开检验的算法在设计时一定是这样的。

窃听者并没有无限的计算资源,对于指数级的计算量将无能为力。

一个最典型的例子是使用一个和明文等长的密钥进行加密,只要能够保证密钥是随机的就能做到COA安全,因为窃听者不知道任何有关密钥的信息(实际上任何第三方都不应该知道一点有关密钥的信息),在M->C的映射上它完全不能通过统计学分析出明文。即使密钥是伪随机的【通过一个短密钥派生出的长密钥】,只要窃听者不能轻松计算指数级难题,就无法确认这个密钥到底是真随机还是伪随机的,这保证了窃听者无法知道有关密钥的任何消息。

2 已知明文(Known Plaintext)安全

在这个阶段,窃听者通过各种手段掌握到本次通信时的一些明文——密文对,那么就能够对密文进一步做统计学分析,这样将大大降低明文恢复难度。

一个最常见的就是古典密码——单表映射密码【通过将26个字母、空格、逗号、句号等构成一张表,然后随机设置一一映射关系】容易泄露明文的统计分布特征。因为早在数百年前,英文字母的使用频率表已经被统计学家做出来了。对于密文的逐渐增长,根据依概率收敛原则,每个符号的频率分布将收敛于统计出的频率表。单表映射的字符一旦超过数百个就会变得极度容易破解。

另一个更知名的古典密码——维吉尼亚密码【将字符数字化,通过设置一个单词作为密钥进行模加运算映射】虽然能够避免直接的字符频率泄露,但是其最致命的缺陷就是密钥的周期性。当正确猜测到密钥长度时,字符分布频率的平方和将会与错误长度密钥的该值有着天大的差别。除此之外,还可以暴力枚举密钥长度,找到该值完全一样的密钥长度,获取最大公因数即为密钥长度。当确定密钥长度之后,哪怕暴力枚举破解也能够在可接受时间内完成。

即使不泄露明文,但是知晓明密文的统计特征将会是致命的。

3 选择明文(Chosen Plaintext)安全

为了弄清楚发送方的消息,第三方完全可以通过掌握的信息进行猜测,然后冒充通信的一方进行二次查询。详细一点,二战时期美国曾截获日本的两次加密通信,第一次的密文中有一个词与第二次通信的一个词一样,而且第一次出事的地点在中途岛,那么美国完全能够猜测下一个目标将是中途岛。明文信息从历史消息上泄露。

为了避免这种情况,一直观的办法是每次通信时都更换密钥,但是即便是科技发达的今天,两台设备安全共享密钥也需要以一定时间,而且容易面临中间人接入的风险。因此,在不更换密钥的情况下,可以采用之前提到过的伪随机方法,使用一定长度的真随机数字插入到加密过程中,设计加密算法让真随机的随机性向每个符号扩展。这样就实现了历史通话不泄露明文消息。【值得一提的是,在通信量达到一定程度时,出现的真随机数碰撞概率超过某个预设参数时,应当更换密钥】

4 选择密文(Chosen Ciphertext)安全

在这里,第三方不仅能翻阅你的历史记录,甚至能有逻辑地篡改通信路径上传输地密文,这样消息地完整性就被破坏了。比如说某次用户与银行之间进行通信时,由于真随机数碰撞泄露了1000元与10000元的明文,第三方完全可以拦截到转账1000元的密文并改成转账10000元的密文。为了保证消息的完整性,可以使用MAC计算密文的哈希值,将哈希值一并传输过去,这样,整条消息只要有任何一个字符错误都会被丢弃。

http://www.lryc.cn/news/604674.html

相关文章:

  • 深入浅出:在 Spring Boot 中构建实时应用 - 全面掌握 WebSocket
  • 电池自动生产线:科技赋能下的高效制造新范式
  • Ubuntu LNMP
  • MCU中的CAN总线是什么?
  • 44、鸿蒙HarmonyOS Next开发:视频播放 (Video)组件和进度条 (Progress)组件的使用
  • LLM—— 基于 MCP 协议(SSE 模式)的工具调用实践
  • 常见的cms框架的webshell方法
  • JAVAEE--4.多线程案例
  • 机器学习之线性回归的入门学习
  • SpringBoot学习 |springboot概念+微服务架构
  • 【HarmonyOS】鸿蒙ArkWeb加载优化方案详解
  • 相亲小程序匹配与推荐系统模块搭建
  • Redis知识点(2)
  • 问题1:uniapp在pages样式穿刺没有问题,在components组件中样式穿刺小程序不起效果
  • 短剧小程序系统开发:重塑影视内容消费格局
  • Apple基础(Xcode②-Flutter结构解析)
  • android9-activity启动流程
  • 2025年湖北中级注册安全工程师报考那些事
  • RHCA学习概述
  • Spark的累加器(Accumulator)
  • django-3模型操作
  • 【昇腾】基于Atlas 200I DK A2开发者套件修改usb0的默认IP重启后被恢复的问题处理_20250730
  • 【MySQL】MySQL索引—B树/B+树
  • 基于 Hadoop 生态圈的数据仓库实践 —— OLAP 与数据可视化(五)
  • wps批量让浮动在表格的图片跟随单元格移动和调整大小
  • 如何在生成式引擎优化(GEO)中取得成功
  • MySQL 9 Group Replication维护
  • 疯狂星期四文案网第24天运营日记
  • 力扣 hot100 Day60
  • Day 26 函数专题1:函数定义与参数