第三十三个知识点: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\)。因此,

\[gcd(S-\hat{S},N) = q
\]

因此N就被轻易的分解了。这表明,一个错误的签名,模N可以很容易分解。

[1] - http://en.wikipedia.org/wiki/RSA_(cryptosystem)

[2] - http://en.wikipedia.org/wiki/Chinese_remainder_theorem

第三十三个知识点:Bellcore攻击是如何攻击使用CRT的RSA的?的更多相关文章

  1. 第四十三个知识点:为AES描述一些基础的(可能无效)的对抗侧信道攻击的防御

    第四十三个知识点:为AES描述一些基础的(可能无效)的对抗侧信道攻击的防御 原文地址:http://bristolcrypto.blogspot.com/2015/07/52-things-numbe ...

  2. JAVA之旅(三十三)——TCP传输,互相(伤害)传输,复制文件,上传图片,多并发上传,多并发登录

    JAVA之旅(三十三)--TCP传输,互相(伤害)传输,复制文件,上传图片,多并发上传,多并发登录 我们继续网络编程 一.TCP 说完UDP,我们就来说下我们应该重点掌握的TCP了 TCP传输 Soc ...

  3. COJ967 WZJ的数据结构(负三十三)

    WZJ的数据结构(负三十三) 难度级别:C: 运行时间限制:7000ms: 运行空间限制:262144KB: 代码长度限制:2000000B 试题描述 请你设计一个数据结构,完成以下功能: 给定一个大 ...

  4. NeHe OpenGL教程 第三十三课:TGA文件

    转自[翻译]NeHe OpenGL 教程 前言 声明,此 NeHe OpenGL教程系列文章由51博客yarin翻译(2010-08-19),本博客为转载并稍加整理与修改.对NeHe的OpenGL管线 ...

  5. COJ 0967 WZJ的数据结构(负三十三)

    WZJ的数据结构(负三十三) 难度级别:E: 运行时间限制:7000ms: 运行空间限制:262144KB: 代码长度限制:2000000B 试题描述 请你设计一个数据结构,完成以下功能: 给定一个大 ...

  6. TCP/IP具体解释--三次握手和四次握手 Dos攻击

    TCP连接的状态图 TCP建立连接的三次握手过程,以及关闭连接的四次握手过程 贴一个telnet建立连接,断开连接的使用wireshark捕获的packet截图. 1.建立连接协议(三次握手) (1) ...

  7. 三十三、Java图形化界面设计——布局管理器之null布局(空布局)

    摘自http://blog.csdn.net/liujun13579/article/details/7774267 三十三.Java图形化界面设计--布局管理器之null布局(空布局) 一般容器都有 ...

  8. Gradle 1.12用户指南翻译——第三十三章. PMD 插件

    本文由CSDN博客万一博主翻译,其他章节的翻译请参见: http://blog.csdn.net/column/details/gradle-translation.html 翻译项目请关注Githu ...

  9. “全栈2019”Java多线程第三十三章:await与signal/signalAll

    难度 初级 学习时间 10分钟 适合人群 零基础 开发语言 Java 开发环境 JDK v11 IntelliJ IDEA v2018.3 文章原文链接 "全栈2019"Java多 ...

随机推荐

  1. 学习java 7.23

    学习内容: 前面讲解了如果构建GUI界面,其实就是把一些GUI的组件,按照一定的布局放入到容器中展示就可以了.在实际开发中,除了主界面,还有一类比较重要的内容就是菜单相关组件,可以通过菜单相关组件很方 ...

  2. 零基础学习java------day8------javabean编写规范,继承,static关键字,代码块,单例设计模式

    0. 今日内容提要 1. javabean书写规范 javabean:一个普通的类,用来描述事物的类,里面不包含任何的业务逻辑,只是用来存储数据. 比如:Teacher,Student,Mobile. ...

  3. 4.1 python中调用rust程序

    概述 使用rust-cpython将rust程序做为python模块调用: 通常为了提高python的性能: 参考 https://github.com/dgrunwald/rust-cpython ...

  4. canal整合springboot实现mysql数据实时同步到redis

    业务场景: 项目里需要频繁的查询mysql导致mysql的压力太大,此时考虑从内存型数据库redis里查询,但是管理平台里会较为频繁的修改增加mysql里的数据 问题来了: 如何才能保证mysql的数 ...

  5. SVN的基本介绍\服务器配置

    ### 1. 工作场景 1. 进入公司需要做的关于开发的第一件事, 就是向项目经理索要SVN服务器地址+用户名+密码### 2. 角色解释> 服务器: 用于存放所有版本的代码,供客户端上传下载更 ...

  6. highchars操作集合

    一.tooltip 与鼠标指针的距离想调整tooltip和鼠标指针的距离,官方api 和中文api中都没写,只有轴 label.distance . 但我觉得应该有这个,看源码果然有 tooltip ...

  7. 2.使用Lucene开发自己的搜索引擎–indexer索引程序中基本类介绍

    (1)Directory:Directory类描述了Lucene索引的存放位置,它是一个抽象,其子类负责具体制定索引的存储路径.FSDirectory.open方法来获取真实文件在文件系统中的存储路径 ...

  8. Go modules基础精进,六大核心概念全解析(上)

    点击一键订阅<云荐大咖>专栏,获取官方推荐精品内容,学技术不迷路! Go 语言做开发时,路径是如何定义的?Go Mudules又为此带来了哪些改变?本文将会全面介绍Go modules六大 ...

  9. AT1980 [AGC001B] Mysterious Light 题解

    # 题意:高桥 くん 有一个边长为 N 的三枚镜子构成的正三角形 , 顶点为 a, b, c. 他有一个超级步枪 , 放在 AB 段的P点上,使得 AP=X . 并沿着平行于 BC 的方向发射一道光 ...

  10. Jenkins pipeline声明式语法

    目录 一.最简结构 二.简单例子 一.最简结构 pipeline {     agent any     stages {         stage('pull') {             st ...