(sk,pk)是一个密钥对,sk是私钥,pk是公钥。公、私钥可以用来加/解密、签名/验证签名。但是这两种情形怎么区分呢?下面简单介绍一下
加密是为了不让未经允许的人获得真实原始的数据内容,让授权的接收方能够正确的得到原始数据。所以,给授权的接收方一个私钥用来解密,而公钥是公开的,大家都可以用公钥进行加密,但是加密后的数据只有持有私钥的特定接收方才能解密,获得原始数据。
加、解密的大致交互过程如下:
发送方A:
A打算将一段原始消息(明文)发送给B,但是又不想让其他人知道消息的内容,只想让B知道,所以A将明文 + 公钥 进行计算,得到密文,将密文传输给B,这样即使其他人得到密文,也无法知道真正的内容;
接收方B:
B收到密文以后,将密文 + 私钥进行计算,即可获得相应的明文。
签名是为了确认传输的内容没有被篡改,使其对相应的行为无法抵赖。所以,签名者自己持有私钥,用私钥进行签名,而拥有公钥的各方都可以凭借公钥来验证这一签名的有效性。
签名与验证的大致交互过程如下:
签名者A:
A打算将多个参数发送给B,但是又不知道这些参数在传输过程中会不会受损、被篡改,所以对数据内容 + 私钥进行计算,得到签名
验证者B:
B得到参数和签名以后,将签名 + 公钥 + 参数内容进行计算,通过验证内容是否一致,即可判断签名是否有效。同时,由于是用A的私钥进行的签名,所以A对自己的行为无法抵赖。