手把手教你使用端到端加密聊天:综述
看起来有些标题党,因为这其实是一篇面向小白的GnuPG教程,可我要是这么写的话也不会有人愿意看。不过还好,这意味着你不但可以将它用于聊天加密,也可以用于网盘内容加密,或者加密文件传输。
对于聊天而言,这主要是面向中国大陆用户的教程,国外是有现成的端到端加密即时通信APP可用的。
众所周知,为了确保能够进行安全审查,建立在中国大陆地区的即时通信服务(例如QQ、微信等)需要能至少保存不少于六个月的聊天记录,所以如果你想传递一些私密的信息、文件时,通过这些渠道就不太安全了,即使你相信GOV、相信腾讯,但且不说消息漫游功能会帮你同步到所有登录的设备上,万一后台查询接口被别有用心的人利用了,所有数据都有可能被公之于众,要是你了解过社工库,应该知道这些信息泄露都是广泛存在且不可逆的。
那么有没有什么解决方案呢?在这里我们将介绍GnuPG(GPG)的用法,这是一个应用广泛开源隐私保护程序,但因为现有网络上的使用资料普遍较为复杂,对大部分人来说门槛较高,使得它普及程度不高。为此我们不妨舍弃部分不必要的安全性和匿名性,这篇教程将会教你在主流系统平台上使用GnuPG保护你的通信安全(包括聊天、传文件等),即使你一点也没有听说过GPG,一点也不了解密码学,也可以帮助你快速上手。
RSA算法加密与签名的数学原理
RSA加密算法是一种非对称加密算法,在公开密钥加密和电子商业中被广泛使用。RSA是由罗纳德·李维斯特(Ron Rivest)、阿迪·萨莫尔(Adi Shamir)和伦纳德·阿德曼(Leonard Adleman)在1977年一起提出的,RSA 就是他们三人姓氏开头字母拼在一起组成的。
——Wikipedia
RSA算法加密的安全性基于大整数因数分解的复杂度,算法设计思路简单,只用到部分简单初等数论的知识,具有充分的美感,容易让人理解和接受。
本文将阐述RSA算法在进行加密解密和签名时的数学原理,以及RSA算法的安全性。
非对称加密体系简述
公开密钥密码学(英语:Public-key cryptography)也称非对称式密码学(英语:Asymmetric cryptography)是密码学的一种算法,它需要两个密钥,一个是公开密钥,另一个是私有密钥;公钥用作加密,私钥则用作解密。由于加密和解密需要两个不同的密钥,故被称为非对称加密。基于公开密钥加密的特性,它还能提供数字签名的功能,使电子文件可以得到如同在纸本文件上亲笔签署的效果。
——Wikipedia
自1796年非对称加密被提出,如今已经应用于现代信息社会的方方面面:当你点开一个网页,你的数据传输是通过非对称加密进行的;当你用Telegram拨出一个电话,你的通话内容是通过非对称加密进行的;当你通过数字证书签署你的一份文件、登录你的网上银行,你的身份验证也是通过非对称加密进行的。
本文将试图尽可能简明地阐释这一信息时代信任体系的基础框架。