首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么在HDCP 2.3中对HMAC riv有要求?

为什么在HDCP 2.3中对HMAC riv有要求?
EN

Security用户
提问于 2018-11-19 12:38:00
回答 3查看 406关注 0票数 1

在会话密钥交换( HDCP 2.3,pdf)中,HDCP发射机还发送riv的256位HMAC (HMAC 256(riv,kd))。

为什么要这么做?它能阻止任何攻击吗?

EN

回答 3

Security用户

发布于 2018-11-19 13:39:47

让我们首先分析一下这个(HMAC-SHA256(riv, kd))

RFC2104中所述,HMAC可以定义为:HM AC=H(K⊕opad||H(K⊕ipad||text)),其中H是选择的哈希函数,K是秘密密钥,是独占或符号,||是级联符号,ipadopad是常量值。

在此的基础上,将HMAC构建在反向默克-达蒙哈希函数上,产生了一个背向HMAC方案,该方案使用后门密钥很容易被遗忘。

因此,可以很容易地看出,在k⊕ipad对消息进行预处理后,HMAC~h的内部哈希链仍然会发生冲突,由于外部链对所有消息相等,mm∗都有相同的标记t。换句话说,HMAC并不是因为它使用了一个秘密密钥而具有后门弹性。总之,由于持有后门的对手可以伪造新消息的标记,HMAC~h是可伪造的,因此不存在伪随机。

有关更多信息,请参考

什么是HMAC?

HMAC是一种用于计算涉及密码散列函数的消息认证码(MAC)的特定结构。输入是一个消息和一个键,输出是HMAC值。它用于验证消息的数据完整性和真实性。HDCP标准附带的哈希函数是SHA256函数,它与512位的输入块一起工作。

为什么在HDCP标准中有要求?

在HDCP标准中,使用HMAC- the 256函数进行局部性检验和H (HMAC of km)计算。关于时间的最严格的HMAC计算是在地区检查中使用的计算。如前所述,NIOS处理器没有足够的计算能力在2ms内完成HMAC- the 256操作。这就是为什么必须用VHDL重写这个块的原因。用于局部性检查的HMAC有256位的密钥大小和64位的消息大小。

用于局部性检查的HMAC- the 256算法的

函数:

局部性检查要求接收和发送端计算随机数rn (消息)和预共享密钥kd的HMAC值。在开始计算之前,必须使用预共享随机数( kd )对预共享密钥rrx进行搜索。随机数rn以明文形式发送给接收方,接收方返回HMAC值。发射机现在检查它自己的HMAC是否与接收的HMAC相同。只有拥有预共享密钥的人才能计算出正确的HMAC值。另外,由于HMAC - the 256算法是单向函数,因此不可能从HMAC值中得到密钥。

框图HD系统:

(由Lukas公司的硕士论文提供)

票数 1
EN

Security用户

发布于 2018-12-12 09:25:48

如下图所示,密钥是使用p= ((riv XOR streamCtr) x\x inputCtr)生成的。要求“如果两个基本流共享相同的Ks或riv,那么包含在给定程序或不同程序中的两个基本流都不能具有相同的streamCtr”,以便用不同的密钥(使用不同的p)加密流。

如果攻击者能够修改riv,则可以通过发送修改的riv使发射机生成另一个streamCtr的密钥。

票数 1
EN

Security用户

发布于 2018-11-19 13:25:26

发送HMAC的目的是为消息提供更多的真实性。

HDCP接收机的公钥证书由HDCP发射机验证,然后设备共享主密钥Km。...接收到加密的Km后,接收机使用接收者私钥对其进行解密。

下面是HMAC的目的:

在接收方成功解密km后,将HMAC-SHA-256的H_Prime、主密钥Km的哈希值发回给发射机。这是为了向发射机提供一个确认,即接收机确实成功地解密了主密钥Km。

有关详细信息,请查看此链接

票数 0
EN
页面原文内容由Security提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://security.stackexchange.com/questions/197981

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档