密码学:RSA(一)

   更新日期:2024.06.01

密码学是指研究信息加密,破解密码的技术科学。 密码学 的起源可追溯到2000年前。相传古罗马名将凯撒大帝为了防止敌方截获情报,用密码传送情报。凯撒的做法很简单,就是对二十几个罗马字母建立一张对应表。这样,如果不知道 密码本 ,即使截获一段信息也看不懂。

从凯撒大帝时代到上世纪70年代这段很长的时间里,密码学的发展非常的缓慢,因为设计者基本上靠经验。没有运用 数学原理 。当今的密码学是以数学为基础的。

上世纪70年代产生的一种加密算法。其加密方式比较特殊,需要两个密钥: 公开密钥 简称 公钥 ( publickey )和 私有密钥 简称 私钥 ( privatekey )。 公钥加密,私钥解密;私钥加密,公钥解密 。这个加密算法就是伟大的 RSA 。

要实现加密和解密,那么就应该用一种 加密容易,破解很难 的数学运算。这个时候就用到了 mod 运算(时钟算法)。

如果用质数做模数( 17 ),找一个比这个模数小的数 3 ,那么有如下算法:

3 的 x 次方模以 17 结果永远在 1~16 之间,在这里 3 为 17 的 原根 。由于知道结果反推 x 需要一个一个实验并且不唯一,所以很难反推出原来的值。这里 模数 变大反推破解难度就很大。这就是离散对数问题。

任意给定正整数 n ,在 <= n 的正整数之中,有多少个与 n 构成互质关系?

计算这个值的方式叫做 欧拉函数 ,使用: φ(n) 表示

根据以上两点得到: 如果 N 是两个互质数 P1 和 P2 的乘积则:
φ(N)=φ(P1)* φ(P2)=(P1-1)*(P2-1)

如果两个正整数 m 和 n 互质,那么 m 的 φ(n) 次方减去 1 ,可以被 n 整除。

欧拉定理的特殊情况:如果两个正整数 m 和 n 互质,而且 n 为质数!那么 φ(n) 结果就是 n-1 。

欧拉定律 m φ(n) % n ≡ 1 (m和n互质)
由于 1 k % n ≡ 1 ,可以得到:

由于 1*m ≡ m ,可以得到:

验证:

⚠️ 注意:换算的过程中, m 要小于 n 才会成立 。大于则相当于多饶了一圈。

如果两个正整数 e 和 x 互质,那么一定可以找到整数 d ,使得 ed-1 被 x 整除。
那么: d 就是 e 对于 x 的 模反元素
则可以得到以下公式:

假设商为 k 则可以得到以下公式:

当 φ(n) 为 x 时,则:

验证:M:4 , N:15, φ(n): 8 。
通过模反元素假设 E:3, D?
3d -1 = 8k 则 d = (8k + 1)/3 k = 4 则 D = 11,k=7 则 d = 19

整个推导过程如下:

解决密钥传递的保密性问题

原理:

通过 迪菲赫尔曼密钥交换 拆分了m e*d % n ≡ m。

总共生成 6 个数字: p1、p2、n、φ(n)、e、d

验证
M :3 、12 ,N: 3 * 5 = 15,φ(n):8,
假设E:3,则通过模反元素计算得到 D:11,19

除了公钥用到了 n 和 e 其余的 4 个数字是不公开的。
目前破解 RSA 得到 d 的方式如下:
1、要想求出私钥 d 。由于 e*d = φ(n)*k + 1 。要知道 e 和 φ(n) ;
2、 e 是知道的,但是要得到 φ(n) ,必须知道 p1 和 p2 。
3、由于 n = p1*p2 。只有将 n 因数分解才能算出。
这个时候就需要穷举了,很难破解。

RSA 由于 m 要小于 n ,所以每次加密数据小,需要分段加密,效率不高。一般情况下用来加密大数据对称加密的 key 。

由于 Mac 系统内置 OpenSSL (开源加密库),我们可以直接在终端上使用命令进行 RSA 操作。 OpenSSL 中 RSA 算法常用指令主要有三个:

生成RSA私钥,密钥长度为1024bit

e:65337(publicExponent)

通过公钥加密数据,私钥解密数据
加密:

解密:

完整命令:

enc.txt 文件 128 字节, dec.txt 文件 20 字节。

通过公钥加密数据,私钥解密数据
这个时候就变成了签名和验证了。
签名:

验证:

整个文件目录如下:



  • 18695681105 :密码学:RSA(一)
    扶狗耍4954 :答:密码学是指研究信息加密,破解密码的技术科学。 密码学 的起源可追溯到2000年前。相传古罗马名将凯撒大帝为了防止敌方截获情报,用密码传送情报。凯撒的做法很简单,就是对二十几个罗马字母建立一张对应表。这样,如果不知道 密码本 ,即使截获一段信息也看不懂。从凯撒大帝时代到上世纪70年代这段很长的...
  • 18695681105 :密码学中的rsa算法是什么
    扶狗耍4954 :答:密码学中的rsa算法是什么如下:算法原理:RSA公开密钥密码体制的原理是:根据数论,寻求两个大素数比较简单,而将它们的乘积进行因式分解却极其困难,因此可以将乘积公开作为加密密钥 算法描述:RSA算法的具体描述如下:(1)任意选取两个不同的大素数p和q计算乘积 (2)任意选取一个大整数e,满足整数e用...
  • 18695681105 :在密码学中的rsa算法是什么
    扶狗耍4954 :答:RSA公开密钥密码体制是一种使用不同的加密密钥与解密密钥,“由已知加密密钥推导出解密密钥在计算上是不可行的”密码体制。一、详细介绍 在公开密钥密码体制中,加密密钥(即公开密钥)PK是公开信息,而解密密钥(即秘密密钥)SK是需要保密的。加密算法E和解密算法D也都是公开的。虽然解密密钥SK是由公开密...
  • 18695681105 :1.密码学之RSA
    扶狗耍4954 :答:由于Mac系统内置OpenSSL(开源加密库),所以我们可以直接在终端上使用命令来玩RSA.OpenSSL中RSA算法常用指令主要有三个:openssl genrsa -out private.pem 1024  cat private.pem  (查看显示出来的是 base64的编码) openssl rsa -in private.pem -pubout -out public.pem openssl rsa...
  • 18695681105 :密码学 RSA算法
    扶狗耍4954 :答:明文,密文,公钥,私钥 (n,e1)(n,e2)就是密钥对。其中(n,e1)为公钥,(n,e2)为私钥。1、找到两个质数p,q 2、n=p q 欧拉函数:φ(N) =(p-1) (q-1)3、选择一个小于φ(N)随机整数数e :1<e<φ(N)的整数 e和φ(N)互质 4、计算出e与φ(N)的模反元素d:所...
  • 18695681105 :RSA —— 经典的非对称加密算法
    扶狗耍4954 :答:探索RSA加密传奇:非对称加密算法的奥秘 在密码学的瑰宝中,RSA算法以其独特的非对称性独树一帜。它就像一把神秘的钥匙,让信息在看似无解的谜题中安全穿梭。一旦掌握了欧拉函数、欧拉定理和逆元的精髓,RSA加密与解密的原理将变得轻而易举。让我们一起揭开这个加密算法的神秘面纱。一、加密与非对称世界...
  • 18695681105 :密码学中rsa的算法是什么
    扶狗耍4954 :答:RSA算法是密码学中的一种重要加密算法,由罗纳德·李维斯特(Ron Rivest)、阿迪·萨莫尔(Adi Shamir)和伦纳德·阿德曼(Leonard Adleman)在1977年提出,他们当时都在麻省理工学院工作。这种算法得名于他们三人姓氏的首字母缩写。RSA算法是一种公开密钥密码体制,其特点是指定两个不同的密钥:一个用于加密...
  • 18695681105 :在密码学中rsa的算法是什么
    扶狗耍4954 :答:rsa加密算法。rsa一般指rsa加密算法。RSA加密算法是一种非对称加密算法。在公开密钥加密和电子商业中RSA被广泛使用。1977年由罗纳德·李维斯特(Ron Rivest)、阿迪·萨莫尔(Adi Shamir)和伦纳德·阿德曼(Leonard Adleman)一起提出的。RSA就是他们三人姓氏开头字母拼在一起组成的。RSA公开密钥密码体制的原理是...
  • 18695681105 :在密码学中的rsa算法是什么
    扶狗耍4954 :答:RSA算法自1978年提出以来,一直是密码学领域的基石之一。它允许用户生成一对密钥,其中公钥可以公开,而私钥必须保密。为了提高安全性,RSA密钥的长度通常至少为500位。在实际应用中,为了平衡安全性和效率,通常会结合使用传统的对称加密方法和RSA算法。例如,信息可以使用DES或IDEA等对称加密算法进行加密,...
  • 18695681105 :公钥密码→RSA详解
    扶狗耍4954 :答:在对称密码中,由于加密和解密的密钥是相同的,因此必须向接收者配送密钥。用于解密的密钥必须被配送给接收者,这一问题称为 密钥配送问题 ,如果使用公钥密码,则无需向接收者配送用于解密的密钥,这样就解决了密钥配送问题。可以说公钥密码是密码学历史上最伟大的发明。 解决密钥配送问题的方法 在人数很多的情况下,通信所...
  • 相关链接

    欢迎反馈与建议,请联系电邮
    2024 © 视觉网