0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

密码算法实现的FIA防护

Semi Connect 来源:Semi Connect 2023-10-12 09:55 次阅读

安全控制器中的密码算法实现模块同样能有效抵御各种故障注入攻击(FIA),目前主要的防护手段包括检错技术和容错技术。

先以 ECC 算法为例,针对 ECC 的故障注入攻击可以分为三类:安全故障攻击、弱曲线攻击和差分故障分析 (Differential Fault Analysis, DFA)。安全故障攻击基于那些不改变输出结果的故障进行分析。弱曲线攻击试图将点乘运算从强椭圆曲线迁移到弱椭圆曲线上,以利于通过求解椭圆曲线离散对数问题获得作为点乘倍数的私钥或随机数。

DEA 通过分析正确输出和错误输出之间的差异,逐位地导出点乘的倍数。这些攻击的相应防御方法包括采用检错技术检测椭圆曲线参数是否正确、点乘基点是否在椭圆曲线上、点乘运算中的数据是否被插入故障,一旦故障被检测到,即中止执行点乘运算,并拒绝输出任何结果;采用容错技术,选择一条椭圆曲线使得即使将故障引入到点乘运算中,攻击者也不能从错误结果中导出点乘的倍数,譬如强扭曲线 (Twist-Strong Curves)在扭曲线攻击 (Twist- Curve Attack)下是容错的。

另外 ECC 的一些侧信道攻击防御方法也具有防御某些故障注入攻击的能力,如 Montgomery 阶梯、随机化点乘倍数都使得安全故障攻击更难以实施;点乘的基点育化方法可以防御弱曲线攻击。

对于 RSA 算法而言,根据错误的签名结果和正确的签名结果可以分析出签名所使用的私钥,故需要在私钥运算过程中进行故障检测或对签名结果进行验证,一旦发现故障或签名结果错误则拒绝输出签名结果。

对于达到 IND- CCA2 安全级别的公钥加密算法,其算法机制本身内置了错误检测技术,天然具备一定的故障注入攻击防御能力。

在对称密码算法中,密钥运算主要是添加轮密钥和S 盒,因此这也成为故障注入攻击者选择的主要攻击点。故障注入攻击可以分为暂时性故障注入攻击和永久性故障注入攻击。在暂时性故障注入攻击中,攻击者可以利用不规则时钟脉冲、辐射、瞬间高电压等技术改变缓存器或存储器内的某位。

而在永久性故障注入攻击中,攻击者可以利用紫外线等清除 EEPROM 内的某位,或使用微探针设定或清除 EEPROM内的某位。比特故障是指在加密的中间结果中仅引入1位的故障,而保证其他位不变,是一种有效的故障注入攻击。这种方法应用于对称密码算法,如果攻击者反复地向即将进入最后一轮加密的中间加密结果中引入比特故障,即每次加密引入的故障使得中间结果的某位改变,而保证其他位不变,则有可能得到最后一轮的轮密钥。

DFA 是一种有效的密码分析技术,它的基木思想是在选择明文后,对加密过程进行故障诱导,分别获得该明文对应的正确密文和错误密文,然后对两种密文进行数据对比分析,从而获得密钥。

对称密码算法实现中防御故障注入攻击的主要原则是采用错误检测技术。错误检测技术可检测到对称密码运算中插入的故障,一旦故障被检测到,即中止执行密码运算,并拒绝输出任何结果。适用于对称密码算法的错误检测技术包括基于冗余的错误检测技术、基于错误检测码的技术,以及两者混合使用的技术。

基于冗余的错误检测技术分为硬件冗余和时间冗余两类。

基于硬件冗余的错误检测技术直接复制密码算法硬件作为自检方法,将复制电路的输出与原始电路的结果相比较,如果不匹配则说明有错误。

基于时间冗余的错误检测技术对同样的数据做第二次加密/解密运算,与第一次加密/解密的运算结果比较,该方法增加 100%的额外时间开销,仅对单次故障注入有防御能力。

可以将硬件冗余和时间冗余技术相结合,从而在硬件和时间开销中寻找平衡,设计适合对称密码算法在安全控制器中安全实现的错误检测方案。

最简单的错误检测码是奇偶校验码,奇偶校验码可以根据需要设置一个到多个校验位,但奇偶校验码的错误检测覆盖率不够高,在对称密码算法实现中使用奇偶校验码时,应分析其错误检测覆盖率是否足够应对安全控制器可能面临的故障注入攻击情形。

为提高错误检测覆盖率,人们提出了分组密码算法的并发错误检测(Concurrent Error Detection, CED)方法,CED 检测安全控制器的对称密码运算过程中的操作以保证输出的正确性。如果CED检测到错误计算的发生,安全控制器将在输出前丢弃错误的结果,因此芯片能够抵御FIA的威胁。CED 的错误检测覆盖率通常远高于奇偶校验码,但也依赖于所采用的编码机制以及硬件实现细节。







审核编辑:刘清

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 存储器
    +关注

    关注

    38

    文章

    7148

    浏览量

    161993
  • EEPROM
    +关注

    关注

    9

    文章

    927

    浏览量

    80319
  • 缓存器
    +关注

    关注

    0

    文章

    63

    浏览量

    11579
  • 密码算法
    +关注

    关注

    0

    文章

    18

    浏览量

    7353
  • 安全控制器
    +关注

    关注

    0

    文章

    25

    浏览量

    10778

原文标题:密码算法实现的 FIA 防护,密碼算法實現的 FIA 防護

文章出处:【微信号:Semi Connect,微信公众号:Semi Connect】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    MySQL忘记root密码解决方案

    mysql登录密码为password()算法加密,解密成本太高,以下为通用方案; 原理:mysql提供了特殊启动方式,即跳过权限表验证,启动后,登录不需要提供密码; 登录后,即可修改mysql数据库的user表,重置
    的头像 发表于 04-23 16:08 93次阅读

    通过Python脚本实现WIFI密码的自动猜解

    本文将记录学习下如何通过 Python 脚本实现 WIFI 密码的自动猜解。
    的头像 发表于 01-25 10:46 725次阅读
    通过Python脚本<b class='flag-5'>实现</b>WIFI<b class='flag-5'>密码</b>的自动猜解

    基于单片机的指纹密码锁设计

    利用单片机和指纹识别模块实现指纹密码锁,通过指纹模块采集识别指纹,4*4矩阵键盘输入密码,能够进入管理系统,进入管理后能修改密码、注册指纹,删除指纹等操作。
    的头像 发表于 11-30 09:29 675次阅读
    基于单片机的指纹<b class='flag-5'>密码</b>锁设计

    高安全等级密码模块设计架构解决方案

    算法层面,由于对称密码算法 SM4 没有基于密钥的分支运算,因此对称算法对计时攻击天然免疫,故无须针对上述算法做专门的计时攻击
    发表于 10-17 12:16 548次阅读
    高安全等级<b class='flag-5'>密码</b>模块设计架构解决方案

    51单片机实现电子密码

    电子发烧友网站提供《51单片机实现电子密码锁.zip》资料免费下载
    发表于 10-11 09:21 1次下载
    51单片机<b class='flag-5'>实现</b>电子<b class='flag-5'>密码</b>锁

    密码算法实现的SCA防护

    对于安全控制器而言,密码算法实现与安全性紧密相关,密码算法实现
    的头像 发表于 10-11 09:12 332次阅读

    基于Python实现随机森林算法

    机器学习算法是数据挖掘、数据能力分析和数学建模必不可少的一部分,而随机森林算法和决策树算法是其中较为常用的两种算法,本文将会对随机森林算法
    的头像 发表于 09-21 11:17 655次阅读
    基于Python<b class='flag-5'>实现</b>随机森林<b class='flag-5'>算法</b>

    面向OpenHarmony终端的密码安全关键技术

    、随机数产生器等,这一层的功能支撑密码算法或是协议的实现;第二层为密码算法层,密码
    发表于 09-13 19:20

    hash算法在FPGA中的实现(1)

    在FPGA的设计中,尤其是在通信领域,经常会遇到hash算法实现。hash算法在FPGA的设计中,它主要包括2个部分,第一个就是如何选择一个好的hash函数,减少碰撞;第二个就是如何管理hash表。本文不讨论hash
    的头像 发表于 09-07 17:01 601次阅读
    hash<b class='flag-5'>算法</b>在FPGA中的<b class='flag-5'>实现</b>(1)

    基于STM32+华为云IOT实现动态口令密码

    随机密码锁是一种常见的电子锁系统,它使用数字密码代替传统的物理钥匙来进行身份验证和门锁控制。该项目基于STM32微控制器实现一个安全可靠的随机密码锁系统。
    的头像 发表于 07-13 11:46 4780次阅读
    基于STM32+华为云IOT<b class='flag-5'>实现</b>动态口令<b class='flag-5'>密码</b>锁

    加密算法如何保护嵌入式设计

    密码学与用于实现它的算法一样强大。在现代密码学中,我们拥有基本的XOR函数,以及当今许多应用程序中使用的更复杂的算法。在这篇博文中,我将概述
    的头像 发表于 06-28 10:16 311次阅读
    加密<b class='flag-5'>算法</b>如何保护嵌入式设计

    基于模拟电路的电子密码锁设计

    随着科技的不断发展和进步,电子密码锁已经成为了人们日常生活中必不可少的一种安全防护措施。传统的机械密码锁存在着许多缺陷,例如使用不便、易损坏、安全性差等问题。因此,研究开发一种基于模拟电路的电子
    的头像 发表于 06-09 16:13 619次阅读
    基于模拟电路的电子<b class='flag-5'>密码</b>锁设计

    TI电机控制算法里面的SVPWM原理及编程实现算法

    TI电机控制算法里面的SVPWM原理及编程实现算法对研究SVPWM,电机控制有很大的帮助
    发表于 05-15 17:11 9次下载

    深入浅出学习eTs之九宫格密码锁功能实现

    密码密码正确可进入 提示密码错误 可修改密码 二、控件介绍 PatternLockOpenAtom OpenHarmony 图案密码
    的头像 发表于 05-13 13:25 1044次阅读
    深入浅出学习eTs之九宫格<b class='flag-5'>密码</b>锁功能<b class='flag-5'>实现</b>

    SPFA 算法实现原理及其应用

    。因此,我们需要添加一个计数器,记录每个点进队列的次数。当一个点进队列的次数超过图中节点个数时,就可以判定存在负环。 2、代码详解 以下是使用Java实现 SPFA算法的代码,其中Graph类表示有向
    发表于 04-29 12:43