数据加密

作者: 某昆 | 来源:发表于2019-09-17 11:20 被阅读0次

    前言

    一般来说,目前的安全相关措施一共有两类,一种是加密,其次则是消息摘要。加密很容易理解,加解密数据以达到通信安全的目的。消息摘要则是根据原始数据计算相应编码,如果原始数据被篡改,重新计算时,编码会变化。

    • 加密,有对称加密和非对称加密两类,RSA则是非常常见和流行的一种数据加密方式
    • 消息摘要,常见的有MD5以及SHA-1等方式

    HTTPS原理文章中,介绍 HTTPS 原理时,可以看到,加密和消息摘要方式都用上了。

    RSA

    在介绍RSA之前,需要介绍一些数学知识。

    互质关系:如果两个正整数,除了 1 以外没有其他公因子,就称这两个数是互质关系。比如 3 和 5,13 和 31 等

    欧拉函数:求小于 N 的正整数中与 N 互质的数的数目。φ(N),如果 N 可以分解成两个互质的整数之积,N=pq,则 φ(N)=φ(p)φ(q)=(p−1)(q−1)

    模反元素:如果两个正整数 a 和 n 互质,那么一定可以找到整数 b,使得 ab−1 被 n 整除:ab ≡ 1 (mod n)

    欧拉定理:当 a,n 为两个互素的正整数时,则有 a^{φ(n)} ≡ {1(modn)

    RSA的安全性基于大数的因式分解难度,一般而言,RSA中的密钥长度为1024位,数太大了,目前已经的被破解的最大长度密钥是768位,所以说RSA是安全可靠的。它的原理最后分析,先看看过程。

    (1)选择一对不同的、足够大的素数p,q。
    (2)计算n=pq。
    (3)计算f(n)=(p-1)(q-1),同时对p, q严加保密,不让任何人知道。
    (4)找一个与f(n)互质的数e,且1<e<f(n)。
    (5)计算d,使得de≡1 mod f(n)。这个公式也可以表达为d ≡e-1 mod f(n)
    这里要解释一下,≡是数论中表示同余的符号。公式中,≡符号的左边必须和符号右边同余,也就是两边模运算结果相同。显而易见,不管f(n)取什么值,符号右边1 mod f(n)的结果都等于1;符号的左边d与e的乘积做模运算后的结果也必须等于1。这就需要计算出d的值,让这个同余等式能够成立。
    (6)公钥KU=(e,n),私钥KR=(d,n)。

    (7)加密时,先将明文变换成0至n-1的一个整数M。若明文较长,可先分割成适当的组,然后再进行交换。设密文为C,则加密过程为: (8)解密过程为:

    整个过程一共用到了以下几个数

      p    q    n    φ(n)    e    d
    

    这六个数字之中,公钥用到了两个(n和e),其余四个数字都是不公开的。其中最关键的是d,因为n和d组成了私钥,一旦d泄漏,就等于私钥泄漏。

    那么,有无可能在已知n和e的情况下,推导出d?

    (1)ed≡1 (mod φ(n))。只有知道e和φ(n),才能算出d。

    (2)φ(n)=(p-1)(q-1)。只有知道p和q,才能算出φ(n)。

    (3)n=pq。只有将n因数分解,才能算出p和q。

    而前文有提到,要将一个大整数进行因式分解,这是非常非常困难的一件事,所以RSA算法的安全性是有保障的。

    最后,使用公钥加密,加密要用 (n,e)

    m^e ≡ c (mod n)

    而解密要用私钥(n,d)

    c^d ≡ m (mod n)

    消息摘要

    消息摘要,其实非常得常见,如果MD5算法,在android中apk的签约中都会乃至的SHA算法等,都是消息摘要,它的特点是单向的,源数据通过算法得到编码,但无法通过编码反推源数据,同时源数据变化一点点都会导致编码变化。

    所以消息摘要常常用在这种场景下:接收端收到信息以消息摘要,将信息解密之后,再计算它的消息摘要,如果和收到的消息摘要不一样,则可以判定收到的信息被它人篡改过。

    apk签名中用到的SHA算法也是起到类似的作用,除非拥有原签名可以重新签名,否则破解的apk肯定会被识别的。

    部分信息来源自:感谢分享
    https://www.cnblogs.com/jiftle/p/7903762.html
    http://www.ruanyifeng.com/blog/2013/06/rsa_algorithm_part_one.html
    http://www.ruanyifeng.com/blog/2013/07/rsa_algorithm_part_two.html

    相关文章

      网友评论

        本文标题:数据加密

        本文链接:https://www.haomeiwen.com/subject/twbuyctx.html