公钥和私钥

  了解历史的朋友应该知道康熙传位时的逸闻,有一种说法是这样的,据说康熙本来想传给十四阿哥,所以遗诏上写了“传位十四阿哥”,但是四阿哥得到消息后就在遗诏上做了手脚,改成“传位于四阿哥”,就这样雍正靠篡改遗诏得到了皇位。
  古代的科技条件有限,圣旨没有被替换,玉玺印章也没问题,只是加了一横一勾就可以骗过一众大臣精英。那么如果康熙活在现代,可以通过何种方式来避免这种风险,保证自己的遗愿不会被篡改呢。
  这里要介绍一种加密算法叫RSA算法。
  一般的加密算法是这样的,甲方选择一种加密规则对信息加密,乙方选择同样的加密规则对信息解密。这种加密模式有一个最大弱点:甲方必须把加密规则告诉乙方,否则无法解密。保存和传递密钥,就成了最头疼的问题。
  而RSA算法是非对称的,乙方生成两把密钥(公钥和私钥)。公钥是公开的,任何人都可以获得,私钥则是保密的。甲方获取乙方的公钥,然后用它对信息加密。乙方得到加密后的信息,用私钥解密。反之亦然。
  所以如果康熙使用RSA算法应该怎么做呢?首先他需要生成两把密钥,生成过程如下:

openssl genrsa -out mykey 2048;
cp mykey privatekey;
openssl rsa -in mykey -pubout -out publickey;
rm mykey;

这样我们就得到了一把私钥,一把公钥,康熙可以将这把私钥收好,或者记住内容销毁,然后把公钥发给所有大臣,等自己死后大臣就可以用这把公钥来查看遗诏内容。
  那么康熙要如何加密自己的遗诏呢?下面介绍如何用私钥加密自己的信息:

echo "传位十四阿哥"|openssl rsautl -encrypt -inkey privatekey -sign > a.txt;

这样生成的加密信息就存放在了a.txt文件里。
  康熙可以选择毁掉自己的私钥,死后把这份加密信息公之于众,众大臣就可以利用手上的公钥解密信息,具体解密过程如下:

openssl rsautl -inkey publicKey -pubin -in a.txt

这样就达到了信息不被篡改的目的。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容