GPG加密长度的研究

最后编辑时间: 2017-04-12

经过两天的研究以及在GOOGLE上的查询,终于是找到了突破原来GPG的最大密钥限制的方法.

先来说一下,如果是参照我之前的那篇教程使用GPG4WIN的,默认只能生成2048位的密钥,如果想在WINDOWS下生成4096位的密钥的话要这么做:打开CMD,然后输入:gpg –gen-key,之后的可以参考百度上阮一峰的教程/*百度搜索”GPG”第一个应该就是了*/

当然,本文的重点在于突破GPG原版软件的限制,方法如下:

首先,你得在LINUX环境下/*我们要篡改源代码然后编译,WIN下可能会用到MingGW或者CygWin之类的,我没试过*/

当然,如果你有linux的虚拟机或者vps的话,可以在虚拟机上生成,然后再传回来,明白了?生成的时候为了获得更好的随机熵可以使用dd这种复制(备份)磁盘的方式来获得随机数,最后把公钥和私钥加密(这里指的是标准的压缩加密)打包回来.

第0步

下载源代码:https://www.gnupg.org/download/index.html

gpgb0

/*GPG4WIN自带的GPG其实版本号是1开头的...那些GPA等等的只是个GUI的Front-End*/

这一步,要下载”GnuPG stable”和在我截图中下面那四个库程序.

第1步

解压开GnuPG,我的是在/Downlads/gnupg的目录下/*我的半透明终端好看吧*/

gpgb1

之后在g10这个文件夹下找到一个叫keygen.c的C语言写的文件,用VIM打开它/*当然根据个人喜好使用编辑器哈*/,并且把里面所有的4096替换成8192/*我这儿已经替换成了16384了*/gpgb2

然后保存退出.

第2步

安装其他的库文件,方法如下:

cd到每个库文件所在的文件夹下,然后su到root权限,之后分三步:

./configure

make

make install

那个-error的要先装,这一步卡了我半天,差点把键盘从楼上扔下去.

第3步

到达家目录下的/.gnupg目录下/*绝对路径为:/home/[你的用户名]/.gnupg */用vim打开gpg.conf文件,在文件末尾填上如下代码,当然不一定要写这些,可以根据个人密钥生成喜好编写:

personal-cipher-preferences AES256 TWOFISH AES192 AES

personal-digest-preferences SHA512 SHA384 SHA256

personal-compress-preferences ZLIB ZIP

gpgb5

第4步

到GnuPG的目录下

./configure

make

make install

之后再到g10目录下.使用下列指令:

./gpg2 –gen-key

gpgb3

就行了,最大可以生成8192位的密钥啦!/*注意,我生成一对8192的密钥花了至少15分钟,且生成密钥的过程中它会让你继续使用电脑以获得最好的随机数的 熵,我是以复制文件的形式来”使用电脑”的,要不然到时候提示你随机数不够得麻烦死*/

  1. Leven
    2017-04-30 10:31:07

    哇喔,写得非常棒,我在Ubuntu 16.04 LTS使用文中对应的版本程序进行修改,
    当然在条件运算符语句中不是只替换4096,
    最后还有gpg-agent的问题,但都顺利解决了。

    感谢作者。

请在下方留下您的评论.加入TG吹水群