RSA是一种非对称的加密算法,可以用于解决数据在传输过程中的完整性和私密性。即签名和加解密。 RSA主要涉及的概念有:公钥、私钥,签名、验签。
以下是我个人的一些理解。
必知必念的几个概念
- 公钥:公开透明
- 私钥:私密不公开
- 签名:防假冒抵赖
- 加密:防信息泄露
- 关系:公钥和私钥是成对存在,可以互相用来加解密
原理图
20180527110013322.png示例说明:
假如有,A、B、C三个人,其公钥私钥对分别为[A1,A2],[B1,B2],[C1,C2],即下标1为私钥,下标2为公钥。
利用公钥私钥的自身特点,上述描述中可知A、B、C三人分别掌握的信息为:
A知晓A1,A2,B2,C2;
B知晓A2,B1,B2,C2;
C知晓A2,B2,C1,C2。
利用公钥和私钥可以互相加解密,可知:
A
:
A1加密,仅限A2可以用来解密,由于A1仅限A知道,故该项操作仅限A能进行,并且由于A2公开,故大家都可以用A2来解密A1加密后的数据,因此如果A2能解密,那么该数据一定是A1加密的,即是A操作的。 ==> (通信签名:防抵赖假冒
)
A2加密,仅限A1可以用来解密,由于A1仅限A知道,故该操作是自己给自己加密,然后仅限自己解密,用作一般的加密,非通信加密。
B2加密,仅限B1可以用来解密,由于B1仅限B知道,故该操作可以用来A发给B的通信数据加密。 ==> (通信加密:防信息泄露
)
C2加密,仅限C1可以用来解密,由于C1仅限C知道,故该操作可以用来A发给C的通信数据加密。 ==> (通信加密:防信息泄露
)
B
:
A2加密,仅限A1可以用来解密,由于A1仅限A知道,故该操作可以用来B发给A的通信数据加密。 ==> (通信加密:防信息泄露
)
B1加密,仅限B2可以用来解密,由于B1仅限B知道,故该项操作仅限B能进行,并且由于B2公开,故大家都可以用B2来解密B1加密后的数据,因此如果B2能解密,那么该数据一定是B1加密的,即是B操作的。 ==> (通信签名:防抵赖假冒
)
B2加密,仅限B1可以用来解密,由于B1仅限C知道,故该操作是自己给自己加密,然后仅限自己解密,用作一般的加密,非通信加密。
C2加密,仅限C1可以用来解密,由于C1仅限C知道,故该操作可以用来A发给C的通信数据加密。 ==> (通信加密:防信息泄露
)
C
:
A2加密,仅限A1可以用来解密,由于A1仅限A知道,故该操作可以用来B发给A的通信数据加密。 ==> (通信加密:防信息泄露
)
B2加密,仅限B1可以用来解密,由于B1仅限B知道,故该操作可以用来A发给B的通信数据加密。 ==> (通信加密:防信息泄露
)
C1加密,仅限C2可以用来解密,由于C1仅限C知道,故该项操作仅限C能进行,并且由于C2公开,故大家都可以用C2来解密C1加密后的数据,因此如果C2能解密,那么该数据一定是C1加密的,即是C操作的。 ==> (通信签名:防抵赖假冒
)
C2加密,仅限C1可以用来解密,由于C1仅限C知道,故该操作是自己给自己加密,然后仅限自己解密,用作一般的加密,非通信加密。
ABC
:
如果A作为广播者,需要播报广播信息,那么为了防信息抵赖和假冒,A需要用A1给广播信息签名,作为接收方的B和C可以通过A2来验证收到的广播是否为A发出。(签名
)
如果A作为注册中心,需要为所有用户支持保密及注册服务,那么所有用户为了防止信息泄露,需要将注册信息用A2加密后发送给A,保证该信息仅限注册中心用A1解密后查看。(通信加密
)
如果A作为注册中心,需要为所有用户支持保密、身份验证及注册服务,那么作为用户B需要对发送数据先用自身私钥B1签名,然后用A2加密,最后发送给A,保证A能在A1解密数据后再用B2验证用户B的身份。(通信签名加密
)
因此,在数据通信过程中:
1.用私钥加密后,仅限可以用对应公钥解密,可以用来签名,防数据抵赖假冒,因有且仅有的一个私钥拥有者即为签名方。
2.用公钥加密后,仅限可以用对应私钥解密,可以给该私钥拥有者发送数据,用作通信数据加密,这样即使别人窃取了通信数据,因为无私钥,不能解密查看通信数据。
网友评论