毕业论文论文范文课程设计实践报告法律论文英语论文教学论文医学论文农学论文艺术论文行政论文管理论文计算机安全
您现在的位置: 毕业论文 >> 论文 >> 正文

RSA数字签名的实现毕业论文 第2页

更新时间:2007-10-15:  来源:毕业论文

EM          编码后的消息,是一个八位组串
emBits(期望的)编码消息EM 的以比特为计量单位的长度
emLen(期望的)编码消息EM 的以八位组为计量单位的长度
GCD (. , .)两个非负整数的最大公约数
Hash         哈希函数
hLen         散列函数Hash的输出的以八位组为计量单位的长度
k                 RSA合数模 n的以八位组为计量单位的长度
K                 RSA 私钥
L                 可选的RSAES-OAEP 标签,是一个八位组串
LCM (. , … , .)一系列非负整数的最小公倍数
m                 消息代表,是一个界于0到n – 1的整数
M                 消息,是一个八位组串
mask         MGF的输出,是一个字节串
maskLen(期望的)掩模的以八位组为计量单位的长度
MGF         掩模生成函数
mgfSeed 生成掩模的种子因数(seed),是一个八位组串
mLen         消息M 的以八位组为计量单位的长度
n                 RSA合数模, n = r1 • r2  … • ru , u  2
(n, e)         RSA公钥
p, q                 RSA合数模 n的前两个素数因子
qInv         CRT系数,是个满足下式且小于p的正整数
q • qInv  1 (mod p)

ri     RSA合数模 n的素数因子, 包括r1 = p, r2 = q, 以及任何另外的因子
s           签名代表,是一个位于 0到 n – 1之间的整数
S           签名,是一个八位组串
sLen        EMSA-PSS 盐(salt)的以八位组为计量单位的长度
ti      其它素数因数ri 的CRT系数, 是一个比ri 小的正整数,满足下式
r1 • r2 • … • ri–1 • ti  1 (mod ri) , i = 3, …, u
u                RSA合数模的素数因子的个数, u  2
x                一个非负整数
X                与x 对应的一个八位组串
xLen        (指定的)八位组串X 的长度
0x      一个八位组或八位组串的十辣进制表示法的标志;“0x48” 表示十辣进
        制值为48的字节; “(0x)48 09 0e” 表示三个连续的字节,它们的十辣进
        制值分别为48, 09, 和0e
(n)                 LCM (r1 – 1, r2 – 1, … , ru – 1)
                 两个八位组串的位异或操作
 .                 取整函数;x是一个大于或等于实数x 的最小整数。
||                 或操作
≡      同余符号;a  b (mod n) 表示能用整数n整除整数a – b















3  密钥类型
在本篇文档定义的原语和方案中,使用了两种密钥类型:RSA公钥和RSA私钥。RSA公钥和RSA私钥一起构成一个RSA密钥对。
本篇规范支持所谓的“多素数”RSA,这种RSA的合数模可能由两个以上的素数因子构成。多素数RSA的优点在于,当使用CRT(中国余数定理),它就能减少解密和签名原语的计算开销。这在单处理器平台上能获得更好的性能,但是在多处理器平台上不一定,在多处理器平台上可以并行处理合数模的幂运算。
3.1  RSA 公钥
为了这篇文档起见,一个RSA公钥由两部分构成:
                        n        RSA合数模,是一个正整数
                        e        RSA公开幂,是一个正整数
在一个有效的RSA公钥中,RSA合数模n是由u 个不同的奇素数ri生成的,i = 1, 2, …, u, 其中u  2,而RSA公开幂e是一个位于3~n – 1之间的整数,满足GCD (e, (n)) = 1,其中(n) = LCM (r1 – 1, …, ru – 1)。按照惯例,通常用p 和q分别合数模的前两个素数因子r1 和r2。
3.2  RSA 私钥
为了本篇文档起见,一个RSA私钥可以采取两种表示法中的任何一个。
(1)第一种表示法由一对整数(n, d)构成,各部分的意义如下:
n        RSA合数模,是一个正整数
d   RSA私有幂,是一个正整数
(2)第二种表示法由一个五元组(p, q, dP, dQ, qInv)和一系列(可能为空)三元组 (ri, di, ti)  i = 3, …, u构成,三元组的每个素数不出现在五元组中,各部分的意义如下:
p         第一个因子,是一个正整数
q        第二个因子,是一个正整数
dP        第一个因子的CRT幂,是一个正整数
dQ        第二个因子的CRT幂,是一个正整数
qInv(第一个)CRT系数,是一个正整数
ri        第i个因子,,是一个正整数
di        第i个因子的 CRT幂,是一个正整数
ti          第i个因子的 CRT系数,是一个正整数
当采用第一种表示法表示时,有效的RSA私钥的RSA合数模 n与对应的RSA公钥的RSA合数模n一样,是由u个不同的奇素数ri 产生的,i = 1, 2, …, u, 其中u  2。RSA私有幂 d是一个小于n的正整数,满足
e • d  1 (mod (n)) ,
其中e是对应的RSA公开幂,(n)和第3.1中定义的一样。
当用第二种表示法表示时,RSA私钥的两个因素p 和q是RSA合数模 n前两个素数(也就是 r1 和 r2),CRT幂 dP 和dQ是小于p 和q的正整数,分别满足
e • dP  1 (mod p – 1))  
e • dQ  1 (mod q – 1)) ,
CRT系数qInv是一个小于p的正整数,满足
q • qInv  1 (mod p) 。
如果u > 2,表示法中将包括一个或多个三元组 (ri, di, ti), i = 3, …, u。因子ri是RSA合数模 n的一个其它素数因子。每一个CRT幂 di (i = 3, …, u),满足
e • di  1 (mod (ri – 1)) 。
每个CRT系数ti (i = 3, …, u)是一个小于ri的正整数,满足
Ri • ti  1 (mod ri) ,
其中Ri = r1 • r2 • … • ri–1。
在设备之间互换的RSA私钥的推荐描述(包括两种表示法的组成部分)在附录中给出;设备的内部表示可能不同。
注释:
(1)这里CRT系数的定义以及第5部分的原语中使用到的程式遵循Garner算法然而,为了与PKCS #1 v2.0及之前版本中的RSA私钥表示法兼容,p 和q 的角色被保留了,这与其它素数不一样。因此,第一个CRT系数qInv被定义成是q mod p的倒数(inverse),而不是r1 mod r2的倒数(也就是p mod q的倒数)。
(2)Quisquater 和Couvreur 注意到在RSA运算中使用中国剩余定理的优点。














4 数据转换原语
本论文所定义的模式中使用了两个数据转换原语:
        I2OSP – 整数到字节串的转换原语
        OS2IP – 字节串到整数的转换原语
为了本论文起见,也为了与ASN.1语法一致桓霭宋蛔榇侵敢桓鲇兴承虻陌宋蛔椋ò宋槐忍毓钩梢桓鲎纸冢┬蛄小U鲂蛄写拥谝晃唬ㄍǔJ亲钭蟊叩囊晃唬┑阶詈笠晃唬ㄗ钣冶叩囊晃唬┍嗳胨饕N俗晃约白徽诮酉吕吹淖辉镏械谝桓霭宋蛔楸蝗衔亲钪匾模挛募虻ソ樯芰薎2OSP
和OS2IP两种数据转换原语。

4.1  I2OSP

I2OSP把一个非负整数转换为一个长度指定的字节串。
I2OSP (x, xLen)
输入:        x待转换的非负整数
        xLen转换后的八位组串的期望长度
输出:        X对应的长度为xLen 的八位组串
错误信息:“整数太大”
步骤:
(1)如果 x  256xLen,输出“整数太大”然后终止。
(2)用以256为基数的xLen位数表示整数x :
x = xxLen–1 256xLen–1 + xxLen–2 256xLen–2 + … + x1 256 + x0 ,
其中 0  xi < 256 (注意如果x小于256xLen–1,一个或多个高位将为零)。
(3)使字节 Xi 的整数值为xxLen–I , 1  I  xLen。输出八位组串 X = X1 X2 … XxLen。
4.2  OS2IP
OS2IP 将一个八位组串转换成一个非负整数。
OS2IP (X)
输入:X待转换的八位组串
输出:        x相应的非负整数
步骤:
(1)使 X1 X2 … XxLen 分别为X 的第一个至最后一个八位组,使 xxLen–i 的值为八位组Xi 的整数值,1  i  xLen。
(2)让 x = xxLen–1 256xLen–1 + xxLen–2 256xLen–2 + … + x1 256 + x0。
(3)输出x。

5密码原语
密码原语是基本的数学运算,在此基础上形成密码方案。人们打算以硬件或软件模块的形式实现它们,而且不打算提供撇开方案的安全。
在本篇文档中定义了四类原语,以配对的方式组织:加密和解密;签名和验证。
原语规范假定输入满足一定的条件,特别地假设RSA公钥和私钥有效。
5.1  加密和解密原语
加密原语在公钥的控制下从消息代表产生出密文代表,解密原语在对应私钥的控制下从密文代表中恢复消息代表。
在本篇文档定义的加密方案中使用了一对加密和解密原语,被描述为:RSAEP/RSADP 。RSAEP和RSAEP涉及相同的数学运算,只是输入的密钥不同。
这里定义的原语和在IEEE Std 1363-2000中定义的IFEP-RSA/IFDP-RSA一样(除了增加了对多原语RSA的支持之外),而且与PKCS #1 v1.5兼容。
在每个原语中主要的数学运算是幂运算。
5.1.1  RSAEP
RSAEP ((n, e), m)
输入:(n, e)RSA 公钥
        m消息代表, 是一个位于0~ n – 1之间的整数
输出:c密文代表, 是一个位于0~ n – 1之间的整数
错误提示:“消息代表超出范围”
假设:RSA 公钥(n, e)有效
步骤:
(1)如果消息代表m 不在0 ~n – 1之间, 输出“消息代表超出范围”并终止。
(2)让c = me mod n。
(3)输出c。
5.1.2  RSADP

上一页  [1] [2] [3] [4] [5] [6] 下一页

RSA数字签名的实现毕业论文 第2页下载如图片无法显示或论文不完整,请联系qq752018766
设为首页 | 联系站长 | 友情链接 | 网站地图 |

copyright©751com.cn 辣文论文网 严禁转载
如果本毕业论文网损害了您的利益或者侵犯了您的权利,请及时联系,我们一定会及时改正。