zntsbkhhh的个人空间 https://www.eechina.com/space-uid-161533.html [收藏] [复制] [RSS]

博客

系列文章-随机数在密码学中的作用(二)应用介绍

热度 11已有 1106 次阅读2020-7-9 11:06 |个人分类:1| 加密, 算法

本期主要介绍随机数在密码学中生成Nonce的用法。

Nonce是Number once的缩写,顾名思义在密码学中将只能被使用一次的随机数称为Nonce。即该随机数一旦被应用过就失效了,无法再次使用。不论是伪随机数还是真随机数均可生成Nonce,其主要作用是防止重放攻击。在认证协议或者数据加密传输体系中,Nonce会作为种子数据、种子向量,参与到身份识别或数据有效性判别之中。

在基于对称算法实现的身份认证体系中,系统A作为认证发起方生成Nonce后,将其发送给未知身份的系统B,后者使用认证密钥对Nonce加密后将密文C返回给系统A。最终,系统A使用同样的认证密钥对Nonce进行加密处理生成密文D,通过比对C和D的值来判断系统B身份是否合法。Nonce在其中的作用很关键,如果Nonce的值是固定不变的,就意味着密文C是不变的,如此一来,攻击者可以通过监听截获认证密文C,每次系统A发起认证时,攻击者都将固定的密文C返回给系统A,伪造真实身份,此法叫做线路重放攻击。

在数据加密传输体系中,例如充值系统中,有的数据起着关键作用,例如账户充值信息。此时若Nonce不变或者发生规律性变化,则生成的充值指令也不会变化或者做有规律变动,那么攻击者就可以通过线路重放,可以伪造充值信息,完成对账户的非法充值操作。


路过

鸡蛋

鲜花

握手

雷人

发表评论 评论 (23 个评论)

回复 明亮的光 2020-7-10 16:30
Nonce和返回的C,能否倒推出密钥呢,或者穷举破解怎么办?
回复 假的会计师 2020-7-10 16:59
楼主知道那家公司有相关产品吗?
回复 kessy1 2020-7-10 17:07
楼主上一篇文章说到LKT加密芯片?你可以搜一下
回复 ?-о 2020-7-10 17:11
文章不错,学习了~!
回复 wang0327 2020-7-10 17:28
在实际应用中,这随机数是如何生成的?
回复 xiaoyuhzou1228 2020-7-10 19:44
硬件生成或软件生成
回复 Test_wf 2020-7-10 22:46
最近正好在学习这个,文章写的很详细,可以帮助理解
回复 tyl2010 2020-7-10 23:32
Nonce和返回的C,能否倒推出密钥呢,或者穷举破解怎么办?
回复 小屁孩123 2020-7-10 23:52
那要看应用的算法强度有多高了。其实有个很简单的办法,把Nonce和C做些协议上的处理,掺杂多一些随机数,那么破解者也不知道到底哪些才是认证中用到的Nonce,也就没法分析了。
回复 QL87 2020-7-11 23:24
即便是伪随机数,规律也是不好找的吧,怎么会被破解呢?
回复 miniminimini 2020-7-12 12:53
那随机数是不变还是有规律变化?可以自己设定吗?
回复 zntsbkhhh 2020-7-12 12:59
可以每次验证都生成随机数,确保避免被线路重放
回复 明亮的光 2020-7-12 14:18
有没有可能在两次正常的资源请求中,产生的随机数是一样的,造成正常的请求也被当成了攻击?
回复 假的会计师 2020-7-12 15:29
Nonce是使用硬件生成安全还是软件生成安全呢?
回复 xiaoyuhzou1228 2020-7-12 18:24
都可以,要看设计方或者规范中的要求
回复 wang0327 2020-7-12 21:41
有点晕,没弄明白是怎么防止重放攻击的
回复 ?-о 2020-7-14 10:17
看来Nonce在随机密码学中还挺重要啊
回复 Test_wf 2020-7-14 16:34
原来Nonce这么有效防止重放攻击,学习下
回复 kessy1 2020-7-14 16:52
标准的加密算法,例如:3DES、AES(对称)或者RSA、ECC(非对称)是不能推出密钥的。穷举的话是需要大量时间的,通常以年计算,实际应用中会有时间、临时密钥等因素来进行限制。
回复 ?-о 2020-7-14 16:55
又增长了知识,谢谢提供这么优质的文档,有具体的代码可以参考一下吗?
12下一页

facelist

您需要登录后才可以评论 登录 | 立即注册

关于我们  -  服务条款  -  使用指南  -  站点地图  -  友情链接  -  联系我们
电子工程网 © 版权所有   京ICP备16069177号 | 京公网安备11010502021702
返回顶部