RSA 密钥的生成

作者: LikeSomeBody | 来源:发表于2019-03-26 15:34 被阅读91次

简介

RSA加密算法是一种非对称加密算法。在公开密钥加密电子商业中RSA被广泛使用。RSA是1977年由罗纳德·李维斯特(Ron Rivest)、阿迪·萨莫尔(Adi Shamir)和伦纳德·阿德曼(Leonard Adleman)一起提出的。当时他们三人都在麻省理工学院工作。RSA就是他们三人姓氏开头字母拼在一起组成的。
公开密钥密码体制中,加密密钥(即公开密钥)PK是公开信息,而解密密钥(即秘密密钥)SK是需要保密的。加密算法E和解密算法D也都是公开的。虽然解密密钥SK是由公开密钥PK决定的,由于无法计算出大数n的欧拉函数phi(N),所以不能根据PK计算出SK
正是基于这种理论,1978年出现了著名的RSA算法,它通常是先生成一对RSA 密钥,其中之一是保密密钥,由用户保存;另一个为公开密钥,可对外公开,甚至可在网络服务器中注册。为提高保密强度,RSA密钥至少为500位长,一般推荐使用1024位。这就使加密的计算量很大。为减少计算量,在传送信息时,常采用传统加密方法与公开密钥加密方法相结合的方式,即信息采用改进的DES或IDEA密钥加密,然后使用RSA密钥加密对话密钥和信息摘要。对方收到信息后,用不同的密钥解密并可核对信息摘要。RSA算法是第一个能同时用于加密和数字签名的算法,也易于理解和操作。RSA是被研究得最广泛的公钥算法,从提出到现今的三十多年里,经历了各种攻击的考验,逐渐为人们接受,截止2017年被普遍认为是最优秀的公钥方案之一。

如何生成 RSA 公钥和私钥 亲测可用

  1. Mac 端打开终端 输入如下命令
openssl
按enter 这时出现 openssl 操作界面
  1. 使用openssl 生成SK (private_key)
genrsa -out rsa_private_key.pem 1024

这里生成了长度为 1024 的私钥,长度可选 1024 / 2048 / 3072 / 4096 ...。一般来说长度越长,保密度越高,一般使用1024 的。 执行过程中提示输入密码,密码为空(直接回车)就行。rsa_private_key.pem 是你想要的私钥的证书的名称,你可以换成你想要的名字。同理下面的公钥也可以是自定义的名字
3.使用openssl 生成PK (public_key)

pkcs8 -topk8 -inform PEM -in rsa_private_key.pem -outform PEM -nocrypt
pkcs8 -topk8 -inform PEM -in rsa_private_key.pem -outform PEM -nocrypt
rsa -in rsa_private_key.pem -pubout -out rsa_public_key.pem
文件生成的目录是当前用户目录下。 不知道的同事可以在Finder 中搜索 .pem 结尾的 秘钥的地址

部分报错的处理

有部分同学在生成过程中出现下面的错误 RSA 报错 .png

就是命令没有输入对。
他们输入了

pkcs8 -topk8 -inform PEM -in rsa_private_key.pem -outform PEM [-nocrypt]

这个命令报错 unknown option '[-nocrypt]'

相关文章

  • ios 签名原理

    ## RSA ### 获取公私密钥 1. 生成公私密钥 pub和priv >>> import rsa >...

  • centos服务器配置密钥登录

    1、生成密钥文件 ssh-keygen -t rsa #生成密钥 Generating public/priva...

  • Git使用总结

    生成密钥 打开Git Bash, 运行 ssh-keygen 密钥生成空间 ~/.ssh/id_rsa _(...

  • 生成ssh密钥并添加至github

    生成密钥 生成新的SSH key ssh-keygen -t rsa -C "邮箱"生成密钥.png 添加 ssh...

  • git使用

    Mac生成密钥 使用钥匙串生成密钥,会生成公钥和私钥 密钥存放位置: ~/.ssh/id_rsa.pub 使用终端...

  • 关于RSA私钥解密遇到的问题

    关于RSA私钥解密遇到的问题 [TOC] 生成密钥对过程遇到的问题 生成密钥 通过openssl生成密钥对的过程中...

  • RSA加密工具

    BASE64工具类 RSA密钥对生成工具 RSA加解密 RSA测试类

  • GitHub远程初步

    GitHub 1.生成并配置SSH密钥: 生成密钥 生成密钥成功后,在C盘找到id_rsa.pub文件,打开拷贝里...

  • HTTPS-密钥交换

    2.3 密钥交换 2.3.1 RSA密钥交换 RSA密钥交换的过程十分直截了当。客户端生成预主密钥(46字节随机数...

  • iOS之解密RSA

    首先我们要会生成RSA密钥文件,现在一步步的来给大家展示一下,如何生成我们所需的公钥和私钥文件: RSA密钥生成过...

网友评论

    本文标题:RSA 密钥的生成

    本文链接:https://www.haomeiwen.com/subject/qabgvqtx.html