微软序列号生成和验证的技术原理.docVIP

微软序列号生成和验证的技术原理.doc

  1. 1、本文档共3页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
微软序列号生成和验证的技术原理! 1.产品ID(ProductID)   产品ID是由五组十进制数组成,如下: AAAAA BBB CCCCCCC DD EEE 52273 005 6861993 09 146   如果你用“ProductID”有哪些信誉好的足球投注网站注册表,你会发现一个与你安装的软件有关的产品ID。在Windows的控制面板里的系统里,你可以找到Windows 操作系统的产品ID。 每组数字所代表的意义如下表: 数字 意义 AAAAA 产品编号,例:55661为windows pro版 55660为HOME版 BBB 初级产品序列号的最高有效三位数字(见下文) CCCCCCC 初级产品序列号的最低有效六位数字以及校验数位的和 (见下文) DD 用来验证产品序列号的公开密匙索引.例:PRO版为22,VLK版为23 EEE 随机值(用于电话激活时,产生不同的安装ID) 在上面的CCCCCCC部分中,由一个校验数位和六个数字组成。校验数位是这样计算得到的:将所有数位相加,包含一个检验数位,可以被七整除。 例:初级产品序列号的最低有效六位数字是728439 7 + 2 + 8 + 4 + 3 + 9 = 33 所以检验数位为2,因为 7 + 2 + 8 + 4 + 3 + 9 + 2 = 33 + 2 = 35 所得到的结果35可被七整除。所以产品ID中的CCCCCCC部分的结果为7284392。 2、产品序列号组成 这25位的序列号,是用来区分每份微软产品的产品序列号。产品序列号由五组被“-”分隔开,由字母数字混合编制的字符串组成,每组字符串是由五个字符串组成。如下: FFFFF-GGGGG-HHHHH-JJJJJ-KKKKK 每个字符是取自于以下24个字母及数字之中的一个: B C E F G H J K M P Q R T V W X Y 2 3 4 6 7 8 9 采用这24个字符的原因是为了避免混淆相似的字母和数字,如I和1,O和0等,减少产生不必要的麻烦。 这25个字符的产品序列号是由长度为114bits用二进制表示的产品序列号用Base-24进行编码得到的。114bits的二进制产品序列号按高位在后排列,各bit定义如下: [ X XXXXXXXX XXXXXXXX XXXXXXXXXXXXXXXXXX ] Total 114 Bits | | | \ 55 Bits Sign | | \ 28 Bits Hash | \ 30 Bits Serial \ 31 Bits Data \ 1 Bits Flag Flag: 不明标志,目前所见的各类Key中这一位总是为0。 Serial:产品ID的缩写,转成十进制表示为AAAABBBBBB,对应显示为: 零售版:xxxxx-AAA-BBBBBBx-xxxxx OEM版: xxxxx-OEM-0AAAABx-BBBBB 以上31bits总称为Data,是产品序列号中的基本部分。 Hash:Data经特定处理得到的结果,见后文。 Sign:Hash值的椭圆曲线签名,见后文。 3、椭圆曲线签名算法 所谓的椭圆曲线是指这样一类曲线方程: Y2 + a1XY + a3Y = X3 + a2X2 + a4X + a6 在密码学里用的是它的两个特例,而微软公司用的更是特例中的特例: Y2 = X3 + aX +b (mod p) 当a、b、p选定后,就可以确定一个椭圆曲线,再选择一个生成点G(gx,gy),于是,存在一个最小的整数q使得q×G=0,然后,再任意选择一个整数k<q,求出点K(kx,ky)=k×G,这样椭圆曲线签名算法的Key就全生成了: 公开密钥为:a,b,p, G(gx,gy), K(kx,ky) 私有密钥为:q,k 要对Data签名时: (1).先任意选择一个整数r<q,求点R(rx,ry)=r×G; (2).将Data、rx、ry进行SHA-1(4)运算,取结果中的28位得到Hash; (3).求Sign = r–Hash×k (mod q); (4).把Data、Hash、Sign三个数组合编码后得到25位的产品序列号。 验证产品序列号时: (1).把25位产品序列号译码后,拆分为Data、Hash、Sign; (2).求点R(rx,ry)=Sign×G + Hash×K(mod p); (3). 将Data、rx、ry进行SHA-1运算,取结果中的28位得到Hash’; (4).如果Hash=Has

文档评论(0)

185****7617 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档