OPENSSL库的使用-RSA篇

本文档展示了如何使用OPENSSL库实现RSA算法的公钥加密和私钥解密过程,包括公钥、私钥的生成及数据转换。通过函数RSA_public_encrypt和RSA_private_decrypt进行加解密,并提供了错误处理机制。
摘要由CSDN通过智能技术生成

一、RSA算法简介

        RSA公钥加密算法是1977年由Ron Rivest、Adi Shamirh和LenAdleman在(美国麻省理工学院)开发的。RSA取名来自开发他们三者的名字。RSA是目前最有影响力的公钥加密算法,它能够抵抗到目前为止已知的所有密码攻击,已被ISO推荐为公钥数据加密标准。RSA算法基于一个十分简单的数论事实:将两个大素数相乘十分容易,但那时想要对其乘积进行因式分解却极其困难,因此可以将乘积公开作为加密密钥。
       RSA公开密钥密码体制。所谓的公开密钥密码体制就是使用不同的加密密钥与解密密钥,是一种“由已知加密密钥推导出解密密钥在计算上是不可行的”密码体制。
       RSA算法是一种非对称密码算法,所谓非对称,就是指该算法需要一对密钥,使用其中一个加密,则需要用另一个才能解密。
 
二、RSA算法加解密用到的函数
1、RSA基本结构
struct
 
        {
 
          int pad;
 
          long version;
 
          const RSA_METHOD *meth;
 
          ENGINE *engine;
 
          BIGNUM *n;                n=p*q
 
          BIGNUM *e;                公开的加密指数,经常为65537(ox10001)
 
          BIGNUM *d;                私钥
 
          BIGNUM *p;                大素数p
 
          BIGNUM *q;                大素数q
 
          BIGNUM *dmp1;          d mod (p-1)
 
          BIGNUM *dmq1;          d mod (q-1)
 
          BIGNUM *iqmp;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值