GPG 加密基础

对称加密

lizhe@ubuntu:~/works/gpg$ echo helloworld > hello.txt
lizhe@ubuntu:~/works/gpg$ cat hello.txt 
helloworld
lizhe@ubuntu:~/works/gpg$ gpg -c hello.txt 
lizhe@ubuntu:~/works/gpg$ cat hello.txt.gpg 
/7lizhe@ubuntu:~/works/gpg$ ,��'�`�h)����>�[?�L斔(k*�M��v��)� ��&�[a���'��
lizhe@ubuntu:~/works/gpg$ 
lizhe@ubuntu:~/works/gpg$ gpg -d hello.txt.gpg 
gpg: AES256 encrypted data
gpg: encrypted with 1 passphrase
helloworld
lizhe@ubuntu:~/works/gpg$ 

非对称加密

gpg --full-gen-key

对称加密只要知道密码,就可以在任意电脑上打开原来的文件

非对称加密一定要保管好秘钥文件

gpg --recipient lizhe --encrypt hello.txt

解密

gpg -d hello.txt.gpg

对于对称加密而言,只要知道密码,到哪里都可以打开,但是对于 RSA,一定要备份好私钥

列出私钥

gpg -K

列出公钥

gpg -k

导出私钥

gpg -a -o private-file.key --export-secret-keys keyId

导出公钥

gpg -a -o public-file.key --export keyId

把加密文件和私钥拷贝到另一台电脑上

直接解密会得到

我们来导入 私钥

gpg --import private-file.key

再试一次

删除

gpg –delete-keys 6C8A15CECD3DCC2741A7C590AB38BACE635A064C

gpg –delete-secret-keys 6C8A15CECD3DCC2741A7C590AB38BACE635A064C

使用密码

gpg –import  –pinentry-mode loopback –batch –passphrase password  private-file.key

gpg –import  –pinentry-mode loopback –batch –passphrase-file password-file  private-file.key

AES和RSA都很安全,至少在目前的计算机体系结构下,没有任何有效的攻击方式

RSA有一定的破绽,因为利用shro’s algorithm,量子计算机穷举计算质因子速度可以提高N个数量级,能够在有限的时间内破解RSA密钥。AES256至少目前并没有什么明显的漏洞.

AES作为对称加密技术,加密速度很快, 但是如何安全的分发密码,就成了问题

RSA的公钥可以随意分发,但是 加密大文件时,性能开销确实也是个问题

特殊情况下,如果需要加密 大文件,最安全的方式还是 RSA 加密 密码,然后使用这个密码 进行 AES 加密

也就是 RSA 分发密码 + AES 加密 的方式

Send a Message