了解历史的朋友应该知道康熙传位时的逸闻,有一种说法是这样的,据说康熙本来想传给十四阿哥,所以遗诏上写了“传位十四阿哥”,但是四阿哥得到消息后就在遗诏上做了手脚,改成“传位于四阿哥”,就这样雍正靠篡改遗诏得到了皇位。
古代的科技条件有限,圣旨没有被替换,玉玺印章也没问题,只是加了一横一勾就可以骗过一众大臣精英。那么如果康熙活在现代,可以通过何种方式来避免这种风险,保证自己的遗愿不会被篡改呢。
这里要介绍一种加密算法叫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
这样就达到了信息不被篡改的目的。