rsa算法

rsa算法

  • 介绍
    • 非对称加密算法和RSA的联系
    • 数学原理
  • 加密和签名的区别
    • 第一个场景:防泄露
    • 第二个场景:防篡改
  • 问题
    • 不能防伪造
    • 不能加密
    • 使用加密和签名解决安全问题

一种非对称加密算法,被运用的最广泛。名称是由三个发明者的首字母拼接。

介绍

非对称加密算法和RSA的联系

非对称加密指加密体系中一共有两个密钥

  • PK 公钥 publickey
  • SK 私钥 privatekey

非对称加密的算法有

  • RSA
  • Elgamal
  • 背包算法
  • Rabin
  • D-H
  • ECC

RSA只是一种最流行的非对称加密算法

数学原理

对极大数的质数分解,十分困难。大数n越大,分解就越困难,就越难破解加密。

加密和签名的区别

加密是防止信息泄露,签名是防止信息篡改
公钥加密、私钥解密、私钥签名、公钥验签。

第一个场景:防泄露

战场上,B要给A传递一条消息,内容为某一指令。

RSA的加密过程如下:

(1)A生成一对密钥(公钥和私钥),私钥不公开,A自己保留。公钥为公开的,任何人可以获取。

(2)A传递自己的公钥给B,B用A的公钥对消息进行加密。

(3)A接收到B加密的消息,利用A自己的私钥对消息进行解密。

在这个过程中,只有2次传递过程,第一次是A传递公钥给B,第二次是B传递加密消息给A,即使都被敌方截获,也没有危险性,因为只有A的私钥才能对消息进行解密,防止了消息内容的泄露。

第二个场景:防篡改

A收到B发的消息后,需要进行回复“收到”。

RSA签名的过程如下:

(1)A生成一对密钥(公钥和私钥),私钥不公开,A自己保留。公钥为公开的,任何人可以获取。

(2)A用自己的私钥对消息加签,形成签名,并将加签的消息和消息本身一起传递给B。

(3)B收到消息后,在获取A的公钥进行验签,如果验签出来的内容与消息本身一致,证明消息是A回复的。

在这个过程中,只有2次传递过程,第一次是A传递加签的消息和消息本身给B,第二次是B获取A的公钥,即使都被敌方截获,也没有危险性,因为只有A的私钥才能对消息进行签名,即使知道了消息内容,也无法伪造带签名的回复给B,防止了消息内容的篡改。

问题

不能防伪造

但是,综合两个场景你会发现,第一个场景虽然被截获的消息没有泄露,但是可以利用截获的公钥,将假指令进行加密,然后传递给A。

不能加密

第二个场景虽然截获的消息不能被篡改,但是消息的内容可以利用公钥验签来获得,并不能防止泄露。

使用加密和签名解决安全问题

所以在实际应用中,要根据情况使用,也可以同时使用加密和签名,比如A和B都有一套自己的公钥和私钥,当A要给B发送消息时,先用B的公钥对消息加密,再对加密的消息使用A的私钥加签名,达到既不泄露也不被篡改,更能保证消息的安全性。

博客园

你可能感兴趣的:(安全)