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

原文地址:http://bristolcrypto.blogspot.com/2015/07/52-things-number-43-describe-some-basic.html

侧信道防御:为什么

对于一个现代的严肃的密码学方案,我们一般需要某种形式的安全证明。在AES中,我们认为如果攻击者不知道密钥,那么它就是一个随机排列。然而如果攻击者有侧信道信息,这可能不再安全。因此,我们能做什么防御它呢?理想的,我们可以创建一个完全不受侧信道攻击影响的实现,然而,然而,这实际上意味着实现必须完全隔离,绝对没有输出流——这使得它相当没有意义!

也许我们可以确保,无论我们做什么,AES实现是否通过侧信道泄漏信息都无关紧要?这就引出了泄漏弹性密码学(leakage resilient cryptography)领域,这确实是一个非常强的安全需求。在这些条件下(这种情况很少)安全的方案往往比那些避免(/忽略)问题的方案效率低得多。由于在设计中必须始终进行权衡,因此在实践中,我们倾向于使用假定AES不泄漏任何信息的方案,并将它们与包含防御一些更简单的侧通道攻击的实现相结合。这样做的目的是将攻击成本比安全信息的价值更高,这样(即使他们可以做到)就没有敌人会攻击这个系统,因为它不再可行了。

一些基本的防御

因此,考虑到这一点,让我们考虑一些基本的防御措施,以抵御一些不太复杂的侧通道攻击。正如问题中所指出的,这些技术可能很容易被忽略,所以请将本文视为解释一般概念,而不是提供任何明智的建议!

时间攻击

弱点:一些实现的运行时间取决于它们的输入。因此,通过通过观察系统需要多长时间来响应,可以了解到一些关于键/输入的信息。

防御:常数时间实现。就像标题所说的,最好的对抗时间防御的方法就是确保实现需要花费常数时间运行,同时如今的大多数实现都是常数时间的。这可能在硬件上不是很难,但是在软件上却很难,因为微代码(内部处理器的程序)通常是商业机密。

功率分析(DPA,SPA)

弱点:一些实现的功耗与关键材料相关,这通常是由于存储值时的汉明距离。更多信息,请阅读两周前的博客。

防御1:掩码不是直接使用AES Sbox,而是将掩码应用于输入值,并在掩码Sbox中查找它(实际上,Sbox的值被重新排序以适应掩码)。然后,尽管攻击者可能能够检测到某些内部变量之间的关联,但这些变量都是隐藏的,并且不像以前那样(直接)对应于关键材料。更复杂的掩蔽方案实例化起来会更复杂,但是会导致更好的攻击抵抗力。

防御2:在进行功率分析攻击时,攻击者使用他们知道AES方案内部结构的事实。如果我们在我们的实现中打乱s盒的顺序(通过一些秘密排列),对手将不知道他们的读数如何与内部关键材料相对应。另一种变体是故意使用非决定论,允许处理器自行对某些指令集合重新排序。

缓存流

弱点:如果适当的单元已经在处理器缓存中,那么使用查找表(例如SBox)的mplem朝向的效率将会提高或降低。通过将大部分查找表推出缓存,攻击者可以观察是否调用了适当的单元格,从而泄漏信息。如果可以观察到加载缓存的成本,也可以观察到定时攻击或功率分析。

防御:不要对秘密数据使用查询表!这个列表中最简单的防御方法——如果您不想泄漏使用了哪些查找条目的信息,那么就不要使用查找表。对于AES,这是合理的,因为AES Sbox实际上可以作为输入字节上的一个简单函数来计算。这对于(例如)没有这种结构的DES Sbox就不太实用。

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

  1. 第四十五个知识点:描述一些对抗RSA侧信道攻击的基础防御方法

    第四十五个知识点:描述一些对抗RSA侧信道攻击的基础防御方法 原文地址:http://bristolcrypto.blogspot.com/2015/08/52-things-number-45-de ...

  2. intel:spectre&Meltdown侧信道攻击(四)—— cache mapping

    前面简单介绍了row hammer攻击的原理和方法,为了更好理解这种底层硬件类攻击,今天介绍一下cpu的cache mapping: 众所周知,cpu从内存读数据,最开始用的是虚拟地址,需要通过分页机 ...

  3. 第二十三个知识点:写一个实现蒙哥马利算法的C程序

    第二十三个知识点:写一个实现蒙哥马利算法的C程序 这次博客我将通过对蒙哥马利算法的一个实际的实现,来补充我们上周蒙哥马利算法的理论方面.这个用C语言实现的蒙哥马利算法,是为一个位数为64的计算机编写的 ...

  4. 第三十三个知识点:Bellcore攻击是如何攻击使用CRT的RSA的?

    第三十三个知识点:Bellcore攻击是如何攻击使用CRT的RSA的? 注意:这篇博客是由follow论密码计算中消除错误的重要性(On the importance of Eliminating E ...

  5. NeHe OpenGL教程 第四十三课:FreeType库

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

  6. Java进阶(四十三)线程与进程的区别

    Java进阶(四十三)线程与进程的区别 1.线程的基本概念   概念:线程是进程中执行运算的最小单位,是进程中的一个实体,是被系统独立调度和分派的基本单位,线程自己不拥有系统资源,只拥有一点在运行中必 ...

  7. 网站开发进阶(四十三)html中,路径前加“/” 与不加“/”的区别

    网站开发进阶(四十三)html中,路径前加"/" 与不加"/"的区别 前言 <script src="js/downloadify.js&quo ...

  8. Gradle 1.12用户指南翻译——第四十三章. 构建公告插件

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

  9. “全栈2019”Java第四十三章:封装

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

随机推荐

  1. IDEA高颜值之最吸引小姐姐插件集合!让你成为人群中最靓的那个崽!

    经常有小伙伴会来找TJ君,可能觉得TJ君比较靠谱,要TJ君帮忙介绍女朋友.TJ君一直觉得程序猿是天底下最可爱的一个群体,只不过有时候不善于表达自己的优秀,所以TJ君今天准备介绍几款酷炫实用的IDEA插 ...

  2. org.apache.hadoop.hive.ql.metadata.HiveException: Internal Error: cannot generate all output rows for a Partition解决

    自己在路径访问明细表开发时,写的sql如下 SELECT guid, sessionid, event['url'] as page, `timestamp` as ts, row_number() ...

  3. MySQL压力测试工具

    一.MySQL自带的压力测试工具--Mysqlslap mysqlslap是mysql自带的基准测试工具,该工具查询数据,语法简单,灵活容易使用.该工具可以模拟多个客户端同时并发的向服务器发出查询更新 ...

  4. jdk1.6,1.7,1.8解压版无需安装(64位)

    1.java SE 1.6各个版本 jdk http://www.oracle.com/technetwork/java/javase/downloads/java-archive-downloads ...

  5. When do we pass arguments by reference or pointer?

    在C++中,基于以下如下我们通过以引用reference的形式传递变量. (1)To modify local variables of the caller function A reference ...

  6. 【编程思想】【设计模式】【结构模式Structural】3-tier

    Pyhon版 https://github.com/faif/python-patterns/blob/master/structural/3-tier.py #!/usr/bin/env pytho ...

  7. Vue中的8种组件通信方式

    Vue是数据驱动视图更新的框架,所以对于vue来说组件间的数据通信非常重要. 常见使用场景可以分为三类: 父子组件通信: props / $emit $parent / $children provi ...

  8. springMVC中响应的返回值获取方式

    package com.hope.controller;import com.hope.domain.User;import org.springframework.stereotype.Contro ...

  9. Log4j2 Jndi 漏洞原理解析、复盘

    " 2021-12-10一个值得所有研发纪念的日子." 一波操作猛如虎,下班到了凌晨2点25. 基础组件的重要性,在此次的Log4j2漏洞上反应的淋漓尽致,各种"核弹级漏 ...

  10. 层次分析法、模糊综合评测法实例分析(涵盖各个过程讲解、原创实例示范、MATLAB源码公布)

    目录 一.先定个小目标 二.层次分析法部分 2.1 思路总括 2.2 构造两两比较矩阵 2.3 权重计算方法 2.3.1 算术平均法求权重 2.3.2 几何平均法求权重 2.3.3 特征值法求权重 2 ...