openssl基本概念 openssl源码编译 RSA如何保证私钥安全 DH秘钥交换算法

2017-09-22 22:52:00
admin
原创 2099
摘要:openssl基本概念 openssl源码编译 RSA如何保证私钥安全 DH秘钥交换算法

一、openssl基本概念

1、BIO是IO函数的抽象,对应用屏蔽底层细节,有两种类型BIO:数据源BIO,过滤器BIO;

2、数据源BIO包括:内存、文件、网络等;

3、过滤器BIO包括:消息摘要、加密、解密等;

4、EVP是高级加密接口,封装了消息摘要、加密解密、签名验签等功能,对外提供统一接口,推荐使用;

5、FIPS是美国联邦信息处理标准,FIPS-140-2是针对加密模块的安全要求,openssl的fips版本满足该规范;


二、openssl源码编译

编译openssl:

./config no-shared --prefix=/data/app/openssl

make && make install


编译fips:

./config no-shared --prefix=/data/app/fips

make && make install


编译openssl的fips版本

./config no-shared fips --with-fipsdir=/data/app/fips --prefix=/data/app/openssl

make depend && make && make install


三、RSA如何保证私钥安全

1、m=p*q,p和q是随机质数

2、r=(p-1)(q-1)

3、e与r互质

4、(e*d)%r=1

5、公钥由e和m组成,m长度就是公钥和私钥长度;

6、私钥由d和m组成,没有p和q无法推导出r,因此无法推导出d

7、加密操作:c=p^e mod m,e很小时有低加密指数安全问题,因为加密迭代次数有限;

8、解密操作:p=c^d mod m,e很大时有低解密指数安全问题,因为解密迭代次数有限;

9、分解整数:支持分解十进制整数,http://www.factordb.com


四、DH秘钥交换算法

1、Alice与Bob确定两个大素数n和g,这两个数不用保密
2、Alice选择另一个大随机数x,并计算A如下:A=gx mod n
3、Alice将A发给Bob
4、Bob选择另一个大随机数y,并计算B如下:B=gy mod n
5、Bob将B发给Alice
6、计算秘密密钥K1如下:K1=Bx mod n
7、计算秘密密钥K2如下:K2=Ay mod n
K1=K2,因此Alice和Bob可以用其进行加解密

发表评论
评论通过审核之后才会显示。