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

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

ID:17626712

大小:35.00 KB

页数:3页

时间:2018-09-04

微软序列号生成和验证的技术原理_第1页
微软序列号生成和验证的技术原理_第2页
微软序列号生成和验证的技术原理_第3页
资源描述:

《微软序列号生成和验证的技术原理》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、微软序列号生成和验证的技术原理!1.产品ID(ProductID)  产品ID是由五组十进制数组成,如下:AAAAABBBCCCCCCCDDEEE52273005686199309146  如果你用“ProductID”搜索注册表,你会发现一个与你安装的软件有关的产品ID。在Windows的控制面板里的系统里,你可以找到Windows操作系统的产品ID。每组数字所代表的意义如下表:数字意义AAAAA产品编号,例:55661为windowspro版55660为HOME版BBB初级产品序列号的最高有效三位数字(见下文)CCCCCC

2、C初级产品序列号的最低有效六位数字以及校验数位的和(见下文)DD用来验证产品序列号的公开密匙索引.例:PRO版为22,VLK版为23EEE随机值(用于电话激活时,产生不同的安装ID)在上面的CCCCCCC部分中,由一个校验数位和六个数字组成。校验数位是这样计算得到的:将所有数位相加,包含一个检验数位,可以被七整除。例:初级产品序列号的最低有效六位数字是7284397+2+8+4+3+9=33所以检验数位为2,因为7+2+8+4+3+9+2=33+2=35所得到的结果35可被七整除。所以产品ID中的CCCCCCC部分的结果为72

3、84392。2、产品序列号组成这25位的序列号,是用来区分每份微软产品的产品序列号。产品序列号由五组被“-”分隔开,由字母数字混合编制的字符串组成,每组字符串是由五个字符串组成。如下:FFFFF-GGGGG-HHHHH-JJJJJ-KKKKK每个字符是取自于以下24个字母及数字之中的一个:BCEFGHJKMPQRTVWXY2346789采用这24个字符的原因是为了避免混淆相似的字母和数字,如I和1,O和0等,减少产生不必要的麻烦。这25个字符的产品序列号是由长度为114bits用二进制表示的产品序列号用Base-24进行编码得

4、到的。114bits的二进制产品序列号按高位在后排列,各bit定义如下:[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]Total114Bits

5、

6、

7、55BitsSign

8、

9、28BitsHash

10、30BitsSerial31BitsData1BitsFlagFlag:不明标志,目前所见的各类Key中这一位总是为0。Serial:产品ID的缩写,转成十进制表示为AAAABBBBBB,对应显示为:零售版:xxxxx-AAA-BBBBBBx-xxxxxOEM版:xxxxx-OEM-0AAAABx-

11、BBBBB以上31bits总称为Data,是产品序列号中的基本部分。Hash:Data经特定处理得到的结果,见后文。Sign:Hash值的椭圆曲线签名,见后文。3、椭圆曲线签名算法所谓的椭圆曲线是指这样一类曲线方程:Y2+a1XY+a3Y=X3+a2X2+a4X+a6在密码学里用的是它的两个特例,而微软公司用的更是特例中的特例:Y2 =X3+aX+b(modp)当a、b、p选定后,就可以确定一个椭圆曲线,再选择一个生成点G(gx,gy),于是,存在一个最小的整数q使得q×G=0,然后,再任意选择一个整数k<q,求出点K(kx,

12、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(modq);(4).把Data、Hash、Sign三个数组合编码后得到25位的产品序列号。验证产品序列号时:(1).把25位产品序列号译码后,拆分为Data、Hash、Sign;(2).求点R

13、(rx,ry)=Sign×G+Hash×K(modp);(3).将Data、rx、ry进行SHA-1运算,取结果中的28位得到Hash’;(4).如果Hash=Hash’,则该产品序列号为有效的。----【注意1】4.公开密钥从前文可以看出,为了验证产品序列号,微软公司必须公开椭圆曲线签名算法中的公开密钥。我们可以从WindowsXP安装光盘中的文件pidgen.dll的BINK资源里找到(其他产品如Office则被包在*.msi里)。而且一共有两组。从目前已知的Key组合来看,第一组公开密钥是用以零售版本的,第二组公开密钥则

14、用于OEM版本。两个产品的Key能否通用就在于对应的公开密钥是否相同,比如中文版的Windows2000的Pro/Srv/AdvSrv的第二组密钥也是相同的,即一个中文Windows2000Pro的OEM版的Key,可同时供中文Windows2000Srv/Adv的OEM版使

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。