为了正常的体验网站,请在浏览器设置里面开启Javascript功能!

RSA与数字签名

2012-09-12 1页 doc 12KB 20阅读

用户头像

is_147424

暂无简介

举报
RSA与数字签名 RSA加密与数字签名 主要应用就是signature和cipher。 什么是数字签名? 我们假定传输的过程都是不安全的,数字签名就是对内容进行签名。这个签名的原理是,将要签名的内容(比如是一张大图片,一部电影)通过不同签名算法(hash SA1,MD5,MD160等)得出一个hashM,比如这个hashM为二十字节。然后就是对这二十字节进行操作,得出一个定长的Em。这个Em就是我们RSA加密所用的明文M。 操作过程大致为开头加0x00后面加上0x02或者0x01(01和02 有区别)然后是一堆的padding,pad...
RSA与数字签名
RSA加密与数字签名 主要应用就是signature和cipher。 什么是数字签名? 我们假定传输的过程都是不安全的,数字签名就是对内容进行签名。这个签名的原理是,将要签名的内容(比如是一张大图片,一部电影)通过不同签名算法(hash SA1,MD5,MD160等)得出一个hashM,比如这个hashM为二十字节。然后就是对这二十字节进行操作,得出一个定长的Em。这个Em就是我们RSA加密所用的明文M。 操作过程大致为开头加0x00后面加上0x02或者0x01(01和02 有区别)然后是一堆的padding,padding一般用0xFF结束,然后跟上hashID,之后再加上hashM。这样组成一个可以用于RSA加密的明文长度,我们称之为Em,也就是加密所用的明文M。也就是说无论hashM是多长(各种算法,hashM可能不是一样长),但是Em肯定是定长的。这个时候通过RSA算法C = Me mod N。这时候C就是签名,称之为signature,veryfire就是把C在还原成M(C—>M)。这时候的M就是签名中的Em。别人使用相同的方法(hash SA1,MD5,MD160等)把我们传输的内容(比如一张大图片,一部电影)计算得出一个hashM。这个hashM和解密出来的hashM进行比较,一致就传输没有被修改。其实这个和我们平时在某个文件上进行签名的原理是一样的,就是一个加记号,别人看见这个记号的时候就知道,哦,这就是你签的那个文件(他认识你的笔迹就像我们使用RSA算法一样) RSA加密原理(C=Me mod N ) C我们认为是密文,M我们认为是明文(就是一串大数字,任何文件在计算机存储都是数字),mod就是取余数,(e,N)就是公钥。e(尽可能的时素数)可能是2,3或者常用的F4(010001=65537) 密钥对(keypair),一个完整的密钥是一对,分为公钥和私钥。公钥(e,N),私钥(d,N)。我们常说的1024bit和2048bit加密就是指这里N的长度。Ln=Ld>=Le(长度),比如2048bit的加密则N和d都是2048bit。N就是两个大素数的乘积,N = p*q(p,q就是这对大素数),则Lc=La+Lb或者Lc=La+Lb-1(任何的进制的数据都是这样的)。这样我们想生成一个2048bit的N,则p,q都可以是128bit的素数,当然p,q可以不一样长,但是p,q应该尽量保持同样的长度,以提高加密的可靠性和安全性。对于密钥对而言,我们认为谁拥有私钥,是就是密钥对的产生者。 CRT五元组(p,q,dp,dq,qINV)五元组计算公式 Mp = Cdp mod p Mq = Cdq mod q M = ((( Mp – Mq)*qINV) mod p)*q + Mq 五元组就是提高效率,他其实就是解密的一个步骤,就是相当于把私钥d分解了,这个d的分解就是解密中的步骤。所以五元组大多是用于解密。这也是他为什么快的原因。 Javacard API的RSA加密可以分为几个步骤。 Init,updata,dofinal。Init就是密钥的初始化,明文,密文的传送。Dofinal计算。
/
本文档为【RSA与数字签名】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。

历史搜索

    清空历史搜索