电子商务中常用的RSA算法实现 [摘要] 电子商务的进展使得网络信息的安全传输问题显得尤为重要
文章对电子商务中常常会用到的 RSA 加密算法原理进行了描述并用 Java 语言编程实现了 RSA算法
该程序由五个模块组成,它们是主函数模块、转换字符串为大整数模块、转换大整数为 ASCII 字符串模块、加密模块和解密模块
[关键词] RSA 公钥 私钥 加密 解密 Java 语言 随着信息技术的进展,特别是电子商务的进展,网络信息的安全传输逐渐成为人们最为关怀的事情
RSA 加密算法是目前应用最广泛的公钥加密算法
特别适用于通过 internet 传送的数据,常用于数字签名和密钥交换
本文用 Java 语言实现了RSA 算法
一、RSA 算法描述 密钥对的产生
选择两个大素数 p 和q
计算:n=p*q,然后随机选择加密密钥e,要求 e 和(p-1)*(q-1)互质
最后,利用 Euclid 算法计算解密密钥 d,满足e*d=1mod((p-1)*(q-1)),其中 n 和 d 也要互质
{e,n}是公钥,{d,n}是私钥
加密信息 m 时,首先把 m 分成等长数据块 m1 ,m2,…,mi,块长 s,其中 2∧s=n,s尽可能的大
对应的密文是:ci=(mi∧e)mod n,解密时作如下计算:mi=(ci∧d)mod n 二、程序实现的主要思想 Java 中的 BigInteger 类提供了实施RSA 公钥加密系统所必需的全部可能性
本程序根据生成公钥/私钥对来论证 RSA
用户输入一串字符串,用公钥加密字符串,用私钥解密字符串,所有的结果被输出
三、主要算法流程和框图 1
主要算法流程 随机生成 p,q→计算 N=p*q→计算p1=p-1,q1=q-1→计算 p1q1=p1*q1→随机生成 e,e 须满足 gcd(p1q1,e)=1,1