第三十三个知识点:Bellcore攻击是如何攻击使用CRT的RSA的?
第三十三个知识点:Bellcore攻击是如何攻击使用CRT的RSA的?
注意:这篇博客是由follow论密码计算中消除错误的重要性(On the importance of Eliminating Errors in Cryptographic Computations.)这篇论文。作者是Dan Boneh,Richard A. DeMillo,,Richard J. Lipton。
在52件事里,第21篇博客中,讨论了中国剩余定理如何提升RSA性能的问题。这里我们展示如果一个被用于实现RSA的硬件时不时的产生一些错误,那么有一个高概率成功的攻击攻破RSA。
RSA[1]是第一个用于安全数据传输的实用公钥密码系统。RSA在1977年被Rivest,Shamir和Adleman提出。他是基于分解两个大素数的困难性问题。(其实不是,需要更紧的问题。)对RSA的直接攻击包括试图分解模数。Boneh, DeMillo和Lipton想找到一种攻击RSA的方法来避免直接分解模量。它们表明,错误的密码值会让攻击者暴露秘密信息,从而危及安全。我们主要看一看对RSA-CRT的攻击。
首先给出RSA简要的描述。正式的,让\(N = pq\)是两个大素数的产生,每一个n/2bit长。如果我们有一个消息\(x \in Z_N\),我们加密消息使用一个密钥\(d\),通过\(S = x^d \mod N\)。\(x\) 模指数运算代价很高。为了一个有效率的实现,我们使用中国剩余定理(CRT)[2]。我们先计算\(S_1 = x^d \mod p\)然后计算\(S_2 = x^d \mod q\),然后使用中国剩余定理构造\(S = x^d \mod N\)。
可以看出,这种带有CRT方案的RSA特别容易出现软件或硬件错误。如果我们有两个签名,一个是正确的签名,一个是错误的签名。另外,我们让\(x \in Z_N\)是消息,然后\(S = x^d \mod N\)是正确的签名。然后\(\hat{S}\)是错误的签名。现在\(S\)先被\(S_1\)和\(S_2\) 计算。相似的\(\hat{S}\)也会首先计算\(\hat{S_1}\)和\(\hat{S_2}\),假设错误只会发生在两个变量中的一个,如果我们假设错误发生在\(\hat{S_1}\)中,但是没有发生在\(\hat{S_2}\)中。例如\(S_1 \neq \hat{S_1} \mod p\)同时\(S_2 = \hat{S_2}\)。这意味着\(S = \hat{S} \mod q\),但是\(S \neq \hat{S} \mod p\)。因此,
\]
因此N就被轻易的分解了。这表明,一个错误的签名,模N可以很容易分解。
[1] - http://en.wikipedia.org/wiki/RSA_(cryptosystem)
[2] - http://en.wikipedia.org/wiki/Chinese_remainder_theorem
第三十三个知识点:Bellcore攻击是如何攻击使用CRT的RSA的?的更多相关文章
- 第四十三个知识点:为AES描述一些基础的(可能无效)的对抗侧信道攻击的防御
第四十三个知识点:为AES描述一些基础的(可能无效)的对抗侧信道攻击的防御 原文地址:http://bristolcrypto.blogspot.com/2015/07/52-things-numbe ...
- JAVA之旅(三十三)——TCP传输,互相(伤害)传输,复制文件,上传图片,多并发上传,多并发登录
JAVA之旅(三十三)--TCP传输,互相(伤害)传输,复制文件,上传图片,多并发上传,多并发登录 我们继续网络编程 一.TCP 说完UDP,我们就来说下我们应该重点掌握的TCP了 TCP传输 Soc ...
- COJ967 WZJ的数据结构(负三十三)
WZJ的数据结构(负三十三) 难度级别:C: 运行时间限制:7000ms: 运行空间限制:262144KB: 代码长度限制:2000000B 试题描述 请你设计一个数据结构,完成以下功能: 给定一个大 ...
- NeHe OpenGL教程 第三十三课:TGA文件
转自[翻译]NeHe OpenGL 教程 前言 声明,此 NeHe OpenGL教程系列文章由51博客yarin翻译(2010-08-19),本博客为转载并稍加整理与修改.对NeHe的OpenGL管线 ...
- COJ 0967 WZJ的数据结构(负三十三)
WZJ的数据结构(负三十三) 难度级别:E: 运行时间限制:7000ms: 运行空间限制:262144KB: 代码长度限制:2000000B 试题描述 请你设计一个数据结构,完成以下功能: 给定一个大 ...
- TCP/IP具体解释--三次握手和四次握手 Dos攻击
TCP连接的状态图 TCP建立连接的三次握手过程,以及关闭连接的四次握手过程 贴一个telnet建立连接,断开连接的使用wireshark捕获的packet截图. 1.建立连接协议(三次握手) (1) ...
- 三十三、Java图形化界面设计——布局管理器之null布局(空布局)
摘自http://blog.csdn.net/liujun13579/article/details/7774267 三十三.Java图形化界面设计--布局管理器之null布局(空布局) 一般容器都有 ...
- Gradle 1.12用户指南翻译——第三十三章. PMD 插件
本文由CSDN博客万一博主翻译,其他章节的翻译请参见: http://blog.csdn.net/column/details/gradle-translation.html 翻译项目请关注Githu ...
- “全栈2019”Java多线程第三十三章:await与signal/signalAll
难度 初级 学习时间 10分钟 适合人群 零基础 开发语言 Java 开发环境 JDK v11 IntelliJ IDEA v2018.3 文章原文链接 "全栈2019"Java多 ...
随机推荐
- Vue3 中有哪些值得深究的知识点?
众所周知,前端技术一直更新很快,这不 vue3 也问世这么久了,今天就来给大家分享下vue3中值得注意的知识点.喜欢的话建议收藏,点个关注! 1.createApp vue2 和 vue3 在创建实例 ...
- 学习java的第十四天
一.今日收获 1.完成了手册第二章没有验证完成的例题 2.预习了第三章的算法以及for语句与if语句的用法 二.今日难题 1.验证上出现问题,没有那么仔细. 2.第二章还有没有完全理解的问题 三.明日 ...
- A Child's History of England.41
When intelligence of this new affront [hit in the face, c-o-n-frontation!] was carried to the King i ...
- LeetCode382-链表随机节点
原题链接:[382. 链表随机节点]:https://leetcode-cn.com/problems/linked-list-random-node/ 题目描述: 给定一个单链表,随机选择链表的一个 ...
- 内存中 1k 代表什么
1K也就是 1KB == 1000 bytes == 1000 *8 位 通常一个地址里面有8位,就是说一个房间里面能存8个0或者1
- 【STM8】STM8S介绍(编程环境、烧录、芯片内容)(Vcap需要一个电容接地)
这篇博客的介绍大纲 [1]我使用的开发板和烧录器 [2]编程环境 [3]烧录软件和界面 [4]芯片内容 [1]我使用的开发板和烧录器 首先,我用的是STM8S003F3P6这款开发板,淘宝上就有了,5 ...
- Oracle中的索引
1.Oracle 索引简介 在Oracle数据库中,存储的每一行数据都有一个rowID来标识.当Oracle中存储着大量的数据时,意味着有大量的rowID,此时想要快速定位指定的rowID, ...
- Java 总纲
Java基础篇 Java资源下载 IntelliJ IDEA为类和方法自动添加注释 为什么JAVA对象需要实现序列化? maven ubantu安装maven Java Maven项目搭建 maven ...
- Linux下查看JDK安装路径
在安装好Git.JDK和jenkins之后,就需要在jenkins中进行对应的设置,比如在全局工具配置模块,需要写入JDK的安装路径. 这篇博客,介绍几种常见的在Linux中查看JDK路径的方法... ...
- 【Java基础】HashMap原理详解
哈希表(hash table) 也叫散列表,是一种非常重要的数据结构,应用场景及其丰富,许多缓存技术(比如memcached)的核心其实就是在内存中维护一张大的哈希表,本文会对java集合框架中Has ...