首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >微软PlayReady DRM P160椭圆曲线参数

微软PlayReady DRM P160椭圆曲线参数
EN

Stack Overflow用户
提问于 2012-07-25 20:57:29
回答 1查看 891关注 0票数 2

我试图为自定义的Microsoft P160 PlayReady曲线创建适当的DER编码的ECC参数,以输入高速加工。我已经找到了一些指定P160曲线定义的源,因为它是非标准的和自定义的。下面是指向一个源的链接。特别是,PlayReady曲线值是“初等数论”一书的在第6.4.2节中讨论,威廉·斯坦的计算方法。

下面是另一个来源关于P160 PlayReady曲线参数的一种解释。

对于ECC,Microsoft使用的是Zp上的椭圆曲线,其中p是160位素数(如下所示)。曲线由位于曲线y^2=x^3+ax+b上的点组成,其中运算是在Zp域上完成的,a和b是下面给出的系数。所有的值都表示为打包的二进制值:换句话说,Zp上的单个值被简单地编码为20个字节,以小的endian顺序存储。因此,椭圆曲线上的一个点是一个40字节的块,其中包含两个20字节的小端点值(x坐标后面跟着y坐标)。以下是MS中使用的椭圆曲线的参数:p (模量):89abc def01234567271818314159261424f7 系数a: 37a5abccd277bce87632ff3d4780c009ebe41497 系数b:0dd8dabf725e2f3228e85f1ad78f9328239e 生成器x:8723947fd6a3a1e53510c07dba38daf0109fa120 *生成器y:445744911075522d8c3c5856d4ed7acda379936f 曲线的顺序:89abc防御0123456727b26eec14904428c2a675这些常数是固定的,并被所有各方在MS系统中使用。当你在十六进制中看到这个数字时,模数的“书呆子吸引力”是很高的:它包括在十六进制中的计数,以及基本常数e、pi和sqrt(2)的数字。

基于这些信息,我创建了下面的P160曲线编码曲线参数的十六进制编码,使用BouncyCastle作为我的基本ASN.1库。请注意,在这些曲线参数中没有指定种子值。

308195020101302006072a8648ce3d010102150089abcdef012345672718281831415926141424f7302c041437a5abccd277bce87632ff3d4780c009ebe4149704140dd8dabf725e2f3228e85f1ad78fdedf9328239e0429048723947fd6a3a1e53510c07dba38daf0109fa120445744911075522d8c3c5856d4ed7acda379936f02150089abcdef012345672716b26eec14904428c2a675

虽然这些曲线参数在数学上被高速加工和OpenSSL所接受,但是所产生的P160曲线点是PlayReady所不能接受的。我能够使用相同的过程产生有效的P256曲线点,这是PlayReady可以接受的,所以我不相信我的方法有缺陷。有人对PlayReady P160曲线参数有任何经验吗?

EN

回答 1

Stack Overflow用户

发布于 2012-08-16 18:15:52

通过与微软公司的研究,找到了解决方案。显然,必须字节交换公钥x/y点,并将私钥用于获取PlayReady工具包,以便只对P160曲线接受EC密钥对。P256 EC密钥对不需要这种奇怪的字节交换。

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

https://stackoverflow.com/questions/11658499

复制
相关文章

相似问题

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