当前位置: 代码迷 >> 综合 >> Android知识点整理8:加密算法
  详细解决方案

Android知识点整理8:加密算法

热度:14   发布时间:2024-02-19 15:31:06.0

一、简介

1、起源:古代用于战争,传递信息之前加密棒。

(1)、移位法

做两根一样加密棒,缠绕加密棒可以得到正确信息

(2)、替换法

有一本密钥本,里面记录着密文中文字真正对应的内容

2、分类:对称加密和非对称加密

(1)对称加密:

加密和解密的密钥是同一个,例如DES、IDEA、RC4、RC5、RC6 和 AES ,DES密钥太短容易被破解,基本弃用,AES用的更多。

优点:算法公开、计算量小、加密速度快、加密效率高

缺点:在数据传送前,发送方和接收方必须商定好秘钥,然后 使双方都能保存好秘钥。其次如果一方的秘钥被泄露,那么加密信息也就不安全了。另外,每对用户每次使用对称加密算法时,都需要使用其他人不知道的唯一秘钥,这会使得收、发双方所拥有的钥匙数量巨大,密钥管理成为双方的负担。

(2)非对称加密:

加密和解密密钥不一样,是一对,公钥和私钥,例如:RSA、ECC(移动设备用)、Diffie-Hellman、El Gamal、DSA(数字签名用)等

优点:安全,私钥破解难度较大(数学难题,数论等),利于传输,公钥可以完全公开

缺点:速度较慢,并且不像对称加密,非对称加密有可能会被利用公钥,伪装发送者,误导接收者。通常解决方案是 会配上数字签名

二、非对称加密

1、加密:

发送者持有自身 私钥 和 接收者公钥,接收者 持有自身私钥 和 发送者公钥。 发送者 用 公钥 通过 加密算法加密,生成密文,接收者用自身私钥 通过 加密算法 解密。

流程图如下

2、数字签名:

发送者持有自身 私钥 和 接收者公钥,接收者 持有自身私钥 和 发送者公钥。

(1)、简单版

发送者用发送者私钥 通过 加密算法 得到数字签名,接收者用发送者的公钥 通过加密算法 得到原文,证明是发送者发起的签名,别人无法伪造。

(2)、为了更方便验证,一般会把数字签名和 原文一起发送给接收者,接收者得到原文后和之前原文对比,看是否相同。

(3)、流程图如下

数字签名主要为了证明 来源,加密算法主要是为了 对原数据进行保护 

3、加密+数字签名:

数字签名习惯把 原文 + 数字 签名 发送给 对方, 如果为了 解决 非对称加密,被第三方伪装,所以会使用 密文+数字签名的方式, 密文 得到 原文 ,和 数字签名得到原文 ,一样,就证明了 这密文是 对方发送的。

两者结合是更加安全的

三、摘要算法(Hash算法)

Hash算法特别的地方在于它是一种单向算法,用户可以通过hash算法对目标信息生成一段特定长度的唯一hash值,却不能通过这个hash值重新获得目标信息。因此Hash算法常用在不可还原的密码存储、信息完整性校验等

 

  相关解决方案