应用密码学总结

提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档

目录

前言

一、概述

1,信息安全问题的三点根源:

2,密码学进行信息加密的三大特性:

3,安全机制:

 4,安全服务:

5,攻击的主要形式和分类:

二、密码学基础

1,五种密码分析:

2,加密的分类:

三、各种加密方法的分析:

1,代替密码:

        (1)单表代替密码(凯撒)

        (2)放射加密

        (3)多表代替密码(playfair)即矩阵加密

        (4)多表代替密码(维吉尼亚):        

        (5)多表代替密码(Hill密码):

        (6)猪圈密码(代替密码):

        (7)八卦阵加密(代替密码):

三、对称密码

1,分组密码:

2,Feistel密码结构(DES密码基础):

3,分组密码工作模式:

        1,电子密码本(ECB)特征

        2,密码分组链接(CBC)特征

        3,计数器模式(CTR)特征

        4,输出反馈模式(OFB)特征

        5,密码反馈模式(CFB)特征

6,DES加密

7,AES加密

三、非对称密码体制

1,对称密码体制原理

2,RSA算法

四,杂凑算法(HASH),消息认证

 1,杂凑函数

2,杂凑算法的应用

3,SHA-1

 4,消息认证

消息认证的方法

前言

数据加密在当今信息传输中发挥着举足轻重的作用,而数据加密的基础是密码学的各类知识,加密的方法也是层出不穷,思维足够活跃,总有各种神奇的加密方法。鉴于此,对应用密码学做个总结笔记。


提示:以下是本篇文章正文内容,下面案例可供参考

一、概述

1,信息安全问题的三点根源:

        (1)协议和业务的不安全,Internet设计的缺陷,如DDos无法根治。

        (2)网络的开放性,连接基于信任原则,如RDP,SSH的远程爆破。

        (3)人为因素,如PHP设置不当,全部东西仅用一个密码,泄露=全网裸奔。

2,密码学进行信息加密的三大特性:

        (1)机密性:加密后的数据别人看不懂

        (2)完整性:收数据方能确认数据是否被增删改,方法有类似根据Hash加密,将收到的数据与发送方给予的源文件Hash值比较,相同则没有。

        (3)非否认性:即数据签名效果,发送方送数据后无法抵赖数据不是它发的,如只有两方进行数据传输的RSA加密,收方即解密方仅能解密发送方送的加密数据。

3,安全机制:

        (1)加密:即机密性。

        (2)数字签名:为数据来源真实性提供服务。

        (3)访问控制:即用户的权限,如MySQL中使用grant语句限制个别用户访问的资源。

        (4)数据完整性:确认不可被篡改,伪造,即使会也能被发现。

        (5)认证交换:最简单的口令认证,短信认证,确保用户的身份。

        (6)流量填充:持续传递一些随机数据,挫败信息流分析。

        (7)路由控制:只使用安全网络中的信息传输通道,防止数据包被截取。

        (8)公证:即第三方,防止否认。

如fidder证书的某些信息:

 4,安全服务:

机密性,完整性,鉴别,非否认性,访问控制,可用性,与上面其实一样,有些换了个词罢了。

5,攻击的主要形式和分类:

(1)截取,通过传输通道截获数据库,对数据包分析,得出明文内容,如使用cain的局域网抓包

(2)中断:阻碍通信设备的正常使用,阻断信息的传输路径,放大攻击使服务器崩溃等。

(3)篡改:以截取为基础后更改报文流,如改变IP地址的目的地址,使包发向其它地方。

(4)伪造:伪造成某用户登录,操作,如通过跨站请求伪造CSRF盗用身份进行登录,服务端请求伪造SSRF进行内网探测,敏感信息泄露等。

(5)重放:把以前窃听的数据重新发送,达到欺骗效果。易受时间戳的限制。

(6)否认:发送方事后否认发送行为,所以要公证和非否认性

分类:

        被动攻击:不对信息进行篡改,只偷听,难以发现,如nmap -sN的被动探测

        主动攻击:会影响系统的政策工作,易被检测。

二、密码学基础

1,五种密码分析:

        (1)唯密文攻击:即只知道密文的情况下,猜测明文和密钥,撞库穷举攻击,根据大量密文统计某些属性进行分析等。

        (2)已知明文攻击:主要是发送方疏漏造成的,攻击者已知道以前的一对明密文和密钥,发送方使用同一套密钥继续发送信息,被攻击者通过以前获取的加密系统分析现在的密文。可能性低

        (3)选择明文攻击:攻击者可以自定义明文并获取到对应的密文,进行分析破解。如RSA加密器能够输入明文,输出密文,通过明文和密文分析大素数p与q

        (4)选择密文攻击:攻击者可自定义密文并获取到明文。可能性极低

        (5)选择文本攻击:攻击者可以制造任意明文/密文获取对应的密文/明文。可能性究极低。

2,加密的分类:

        (1)代替:单表的凯撒,多表维吉尼亚,希尔,普莱费尔。猪圈加密,八卦阵加密等

        (2)换位:简单的纵行换位,横行换位等

        (3)单密钥密码(对称加密):DES,AES,IDEA等

        (4)双密钥密码(非对称加密):RSA,EC,等

        (5)分组密码(对称加密):AES,DES等

        (6)序列密码(对称加密):RC4等

对称密码的优点:只用一个密钥,加密解密速度快,计算量小,适用于大量数据加密

对称密码的缺点:通信过程中密钥保密难度大,难以进行数字签名。

非对称密码的优点:安全性高,能达到数字签名的效果

非对称密码的缺点:加密解密的速度慢,适用于短数据的加密,如RSA速度对比同级别对称密码要慢上一千倍左右。

三、各种加密方法的分析:

1,代替密码:

        (1)单表代替密码(凯撒):

算法如下:

def caesar(plaintext):
    str_list = list(plaintext)
    i = 0
    while i < len(plaintext):
        if not str_list[i].isalpha():  # 检测是否只有字符组成
            str_list[i] = str_list[i]
        else:
            a = "A" if str_list[i].isupper() else "a"  # 如果str_list[i]是大写字符就是A,否则就是a
            str_list[i] = chr((ord(str_list[i]) - ord(a) + 5) % 26 + ord(a) or 5)  # 进行ROT5的代替加密
        i = i + 1

    return ''.join(str_list)


print(caesar('Abcde'))

输出:Fghij

     简单来说,就是根据字母表进行移位,ROT5即向后移5位,还能设置一个密钥,去掉字母表中重复的字母,再去掉重复的字母表a-z排序到密钥后方。

        (2)放射加密:

过程:1,选定字母k1和k2为密钥(k1,k2),一般k1需要与26互素(关键),k2需0<=k2<26

           2,求出k1mod(26)的逆元k3,确定k4=k3*k2mod26

           3,选取明文m,加密算法为c=(k1*m+k2)mod26

           4,解密的密文c=(k3*c-k4)mod26

如例3-4算法:

                

import gmpy2
from Crypto.Util.number import inverse
from gmpy2 import gcd

letters = {
    'a': 0, 'b': 1, 'c': 2, 'd': 3, 'e': 4, 'f': 5, 'g': 6, 'h': 7,
    'i': 8, 'j': 9, 'k': 10, 'l': 11, 'm': 12, 'n': 13, 'o': 14,
    'p': 15, 'q': 16, 'r': 17, 's': 18, 't': 19, 'u': 20,
    'v': 21, 'w': 22, 'x': 23, 'y': 24, 'z': 25}


def fang_she(plaintext, k1, k2):
    return (k1 * plaintext + k2) % 26


def de_fangshe(c, k3, k4):
    return (k3 * c - k4) % 26


if __name__ == '__main__':
    k1 = int(input("输入k1,要求k1与26互素:\n"))
    if gcd(k1, 26) != 1:
        k1 = int(input("输入k1不符合,请重新输入k1,要求k1与26互素"))
    k2 = int(input("输入k2,要求k2大于0少于26:\n"))
    k3 = inverse(k1, 26)  # 求逆元
    k4 = (k2 * k3) % 26
    plaintext = input("请输入明文信息:\n")
    c = ''
    for i in plaintext:
        plaintext = letters[i]
        k = fang_she(plaintext, k1, k2)
        for key, value in letters.items():
            if value == k:
                c += key
    print("仿射加密的密文为:", c)
    m = ''
    for i in c:
        crypto_text = letters[i]
        k = de_fangshe(crypto_text, k3, k4)
        for key, value in letters.items():
            if value == k:
                m += key
    print(m)
输入:7,3,china 输出rahqd china

 (3)多表代替密码(playfair)即矩阵加密:

过程如下:

         1,填充矩阵,将密钥从左到右,从上到下填入5x5矩阵,去掉重复字母,I/J为同一字母,填充不满则按字母表顺序依次填入没有的字母。

         2,将明文分成两个一组p,k加密,加密方法如下:

 (1)若p,k在同一行,则密文cp,ck为仅靠右端字母,第一列靠最后一列右端。

 (2)若p,k在同一列,则cp,ck仅靠下方字母,第一行为最后一行下方。

 (4)若p,k不在一行也不在一列,则cp,ck为p,k组成矩阵的两脚字母,cp与p同行,ck与k同行。

 (5)若p与q相等,则插入一个事先约定的字母

(4)多表代替密码(维吉尼亚):
        

过程:

        明文字母为行,密钥字母为列,循环使用,分别对应密文即可

算法如下:

import string

letters = string.ascii_letters


def encode_vigenere(plaintext, key):
    encode = ''
    j = 0
    for i, value in enumerate(plaintext):
        if value.isalpha():  # 是否为英文字母
            n = 0
            print(letters.find(key[(i - j) % len(key)]))
            n = (letters.find(value) + letters.find(key[(i - j) % len(key)])) % 26  # 循环使用密钥
            if value.isupper():
                n += 26
            encode += letters[n]
        else:
            encode += value
            j += 1
    return encode


def decode_vigenere(cipertext, key):
    decode = ''
    j = 0
    for i, value in enumerate(cipertext):
        if value.isalpha():
            n = 0
            n = (letters.find(value) - letters.find(key[(i - j) % len(key)])) % 26
            if value.isupper():
                n += 26
            decode += letters[n]
        else:
            decode += value
            j += 1
    return decode


if __name__ == "__main__":
    plaintext = input("输入加密的明文")
    key = input("输入密钥")
    cipertext = encode_vigenere(plaintext, key)
    print(cipertext)
    print(decode_vigenere(cipertext, key))

输入:China 输出:Mlgxe   China

(4)多表代替密码(Hill密码):

过程:

        1,确定加密的密钥矩阵,将明文转换为字母表对应的数字

        2,将明文转换成的数字与矩阵相乘并模26再转换为对应的字母

        3,解密则求出对应的逆矩阵,再把密文乘以逆矩阵即可

(5)猪圈密码(代替密码):

        

即每个字母对应的边缘线,逐个代替,如ABCDE加密后为,

(5)八卦阵加密(代替密码):

分开的横线用0,没有分开的用1,转换为二进制进行加密解密。

"震": "001", "离": "101", "兑": "011", "乾": "111", "坤": "000", "艮": "100", "坎": "010", "巽": "110"

三、对称密码

1,分组密码:

原理:基于扩散和混乱构成,扩散指重新排列消息的比特位,使明文一位能影响密文的多个或全部位的改变,混乱指密文和密钥的统计特性尽可能复杂化,隐藏密钥和密文的关系。

S盒和P盒变换:S盒分为可逆与不可逆两种,可逆S盒输入和输出位数相同,都用于代替,将二进制位与盒子内对应的位进行替换。

                                         

                          P盒分为普通型,压缩型,扩展型。普通型即几位即与几位交换位置,如1,2,3,4等4个二进制位交换成2,3,4,1。压缩型输入比输出位数多,输入的某些二进制位不进行交换。扩展型则输出比输入的位高,某些输入二进制位同时与多位输出进行了交换。其中扩展型与压缩性是不可逆的,不可逆是指解密时没有条件表明输出位是由那个输入位映射。

2,Feistel密码结构(DES密码基础):

        Feistel密码指同时使用了可逆和不可逆的基本变换部件构成的算法,非Feistel密码指只使用了可逆的基本变换部件。

        Feistel的参数和特征:分组长度取64倍数位,越长安全性越高,一般迭代16轮,每轮迭代的轮函数相同,但是子密钥不同。

         Feistel密码结构的逻辑关系:

                     Li=\small Rk(k=i-1,i=1,2,3,...n)

                     \small Ri=LkxorF(Rk,Ki)(k=i-1,i=1,2,3..n)

        过程如下(16轮为例):

                          1,输入长为2w位的明文和十六轮的\small Ki,将明文对半分成w位的L0和R0。

                          2,将R0和K1作为轮函数F的参数运算出结果R,R与L0进行异或加密结果为R1

                          3,再进行第二轮加密,此时L1为R0的值,R1为第一轮异或输出的结果,采用第二轮的密钥K2进行轮函数加密,再异或,输出R2,L2为R1的值。

                         4,以此循环十六轮。

        解密过程如下:

                         1,将2w的密文分为两部分,R16与L16,将L16与密钥K16作为轮函数F的参数进行运算输出的结果再与R16进行异或,输出为L15,R15的值为L16。

                         2,以此回推,循环。

        分组密码设计准则:S盒设计准则(非线性度,差分均匀性,完全性,扩散特性,可逆性),P盒设计准则(混淆性),轮函数F设计准则(实现非线性,速度,灵活性,安全性),迭代轮数(越多越安全),子密钥的生成方法(简单性,速度,两密钥不存在简单关系,不存在弱密)。

           

    3,分组密码工作模式:

        1,电子密码本(ECB)特征:

        (1)明文分组为64位,最后不足则进行填充,每组加密密钥相同。

        (2)不具备错误传播特性,适用于内容较短的加密,不同分组可以并行处理。

        2,密码分组链接(CBC)特征:

        过程:

        (1)存在初始向量IV与第一个明文分组P1异或后用密钥加密生成一组密文分组C1

        (2)密文分组C1与明文分组P2异或后用密钥加密生成C2以此类推。

        特点:

        (1)存在初始向量IV,每组加密密钥相同。

        (2)不同分组不能并行处理

        (3)密文分组的一位出错具有自恢复能力。因为解密时,上一个密文分组仅仅用作下一次密文分组的解密,所以\small Cj仅仅影响\small P(j+1)的解密,其后的不再影响。

       3,计数器模式(CTR)特征:

        过程:

                (1)计数器CTR与密钥进行加密后再与明文分组P1异或得到密文分组C1

                (2)随后计数器递增,CTR+1与密钥加密再与P2异或得到密文分组C2

                (3)以此类推

        特点:

        (1)计数器长度与明文分组长度相同

        (2)只需要一个加密函数,无需解密函数即可解密,使用同一密钥。

        (3)不具有错误传导特性,适用于速度要求高和实时性的场合。

 4,输出反馈模式(OFB)特征:

        过程:

                1,系统初始化向量IV,与加密函数加密后得到结果与明文分组P1进行异或得到密文分组C1。

                2,第一次加密函数得到的结果作为第二次加密函数的输入,第二次加密函数的结果与明文分组P2进行异或得到密文分组C2,

                3,以此类推

        特点:

                1,每次加密需要使用初始化向量IV

                2,没有错误传导特性,密文一位传输错误仅影响响应明文位

                3,不是通过密码算法直接对明文加密,而是将密码算法输出与明文分组进行加密

                4,输出反馈指的是密码算法的输出会反馈到下一次密码算法的输入。

                5,也只需加密函数,不需解密函数即可完成。

 5,密码反馈模式(CFB)特征:

过程:

        1,将初始化向量IV加载到顶部寄存器。

        2,使用密钥K加密寄存器中的数据值。

        3,将j个最高有效位作为加密过程输出的作为,与明文分组P异或得密文分组。

        4,将上一次加密的密文分组送入顶部寄存器,并继续按以上步骤加密。

特点:

        1,需要初始向量IV。

        2,具有错误传导特性,Cj出现传输错误,Pj的相同位置会出错,后续明文分组有50%出错概率,直至寄存器被全部刷新。

        3,不能进行同步流加密,即无法跳过明文P1而对明文P2进行加密。

6,DES加密:

        加密过程:

                        1,将64位的明文初始置换IP,然后分成两组,32位的L0和R0。

置换过程如下: (1)顺置换则让最右边一列排列为2,4,6,8,1,3,5,7,往左隔一行则加+8

                        (2)逆置换则让左边第二列为87654321,往右隔行+8,最右边隔行为最左边。

                        2,产生密钥。

过程如下:(1)64位的密钥将8的倍数位不使用变为56位的密钥。

                  (2)将产生的64位密钥分成两组28位C0,D0。

                  (3)将C0,D0按照循环左移表确定1位或2位左移。

                  (4)将C0,D0作为下一密钥生成的输入,同时输入压缩型P盒中,将56位的密钥压缩成48位的密钥。

                        3,将R0的32位输入进8行6列的矩阵中,每行最后两位作为第一行的前两位,重用了16位,32位的R0扩展成了48位。

                        4,扩展后的48位R0与48位的密钥异或后进行S盒替换后生成32位的结果。

    S盒替换的过程如下:        

                   (1)输入6位的二进制数据,头尾两位数据作为列,中间四位为行,转换为十进制,在S盒中寻找数字,转换为四位的二进制输出。这样每6位二进制为变为4位,48位变成了32位。

如S1盒中输入110101,行为1010即10,列为11即3,对应S1盒中3,输出为0110

                        5,经过S盒替换的32位数据进行置换运算后与L0的32位异或生成R1

                        6,将R0作为下一次L1,即左右两半部分交换,继续下一轮加密,一共进行十六轮

                        7,最后一轮的左右两半部分不进行交换。

                        8,最后的结果进行逆IP置换后得出64位的密文。

 循环移位表如下:

总结:DES加密的基础就是Feistel结构,不过是增加了IP置换,以及64位的密钥如何变换成56位,再变换成48位,以及R进行扩展变换成48位后再与48位密钥进行S盒变成32位。

3DES:DES被破解后,进行了优化,将64位的密钥长度增加到了112位或者168位

7,AES加密:

AES加密的基础知识:

1,字节运算:主要是系统左移一位,右边补0,以为GF(2^8)域为例如:

                      

2,字运算:

(1)乘法: 

                              

 AES加密的四个阶段:

  1,字节替换(即S盒替换):以字节为单位,8个二进制位,高四位为行,低4位为列,映射S表中对应的值。

  2,列混淆:将输入或态与生成的常数矩阵进行相乘,生成新态,常熟矩阵生成如下,s'(x)=c(x)*s(x)mod(x^4+1),如: c(x)={03}\small x^{3}+{01}\small x^{2}+{01}x+{02},\small x^{3}要与{01}x相乘mod(x^4+1)为0,以此类推,所以s0'(x)={01}s3+{02}s2+{03}x1+{02}x0,生成的矩阵第一行为02,03,02,01。

  3,行移位:第0行不变,第1行左移1个字节,第2行左移2个,以此类推。

  4,轮密钥异或:将输入或者中间态的每一列与密钥Ki进行按位异或。

AES的加密过程:

                ​​​​​​​        1,将明文与轮密钥按位异或。

                        2,最后一轮外的每一轮都进行S盒替换,行移位,列混淆,轮密钥异或。

                        3,最后一轮进行S盒替换,行移位,轮密钥异或。

                        4,生成密钥Y。

三、非对称密码体制

1,对称密码体制原理:

拥有一对加密和解密的密钥,知道公钥p和消息,很容易能计算出密文,但不知道私钥的情况下,解密几乎不可能(即单向陷门函数)。

2,RSA算法:

原创链接https://mp.csdn.net/mp_blog/creation/editor/125168311

四,杂凑算法(HASH),消息认证

 1,杂凑函数:

         要求:1,无需密钥,算法公开

                    2,能进行数据压缩

                    3,能轻易对消息M进行计算出杂凑值,但是知道杂凑值,不可能求出M

                    4,强抗碰撞性:即不同的消息杂凑值不可能相同,事实上,碰撞是存在的,像MD5的碰撞就有,但是按要求找到一个碰撞几乎不可能。

某md5碰撞实例:a与b字符串中%00和%02不相同,但是md5后的值相同

a=%4d%c9%68%ff%0e%e3%5c%20%95%72%d4%77%7b%72%15%87%d3%6f%a7%b2%1b%dc%56%b7%4a%3d%c0%78%3e%7b%95%18%af%bf%a2%00%a8%28%4b%f3%6e%8e%4b%55%b3%5f%42%75%93%d8%49%67%6d%a0%d1%55%5d%83%60%fb%5f%07%fe%a2
b=%4d%c9%68%ff%0e%e3%5c%20%95%72%d4%77%7b%72%15%87%d3%6f%a7%b2%1b%dc%56%b7%4a%3d%c0%78%3e%7b%95%18%af%bf%a2%02%a8%28%4b%f3%6e%8e%4b%55%b3%5f%42%75%93%d8%49%67%6d%a0%d1%d5%5d%83%60%fb%5f%07%fe%a2

          

2,杂凑算法的应用:

                            1,数字签名:由于强抗碰撞性,对消息摘要进行数字签名,几乎不能被伪造。

                            2,生成文档或程序的数字指纹:即网上下载的程序或文档的HASH值与官网的比较,确保数据是未被篡改的,完整的。

                            3,存储口令:数据库等存储口令的Hash值,即使数据泄露也无法被看到,保证了数据的机密性,用户输入口令仅需再次计算Hash与存储的对比即可。

3,SHA-1:

最大输入长度:2^64比特的消息,以512比特分组为单位处理,输出160比特消息摘要

算法核心:4轮循环模块,每轮由20个步骤组成,如下图:

使用的常理K:

Kt = 0x5A827999  (0 <= t <= 19)

Kt = 0x6ED9EBA1 (20 <= t <= 39)

Kt = 0x8F1BBCDC (40 <= t <= 59)

Kt = 0xCA62C1D6 (60 <= t <= 79).

使用的函数f:          

ft(B,C,D) = (B AND C) or ((NOT B) AND D) ( 0 <= t <= 19)

ft(B,C,D) = B XOR C XOR D              (20 <= t <= 39)

ft(B,C,D) = (B AND C) or (B AND D) or (C AND D) (40 <= t <= 59)

ft(B,C,D) = B XOR C XOR D                     (60 <= t <= 79).
 

初始化链接变量(十六进制):

H0=67452301

H1=efcdab89

H2=98badcfe

H3=10325476

H4=c3d2e1f0

 过程如下: 1,附加填充位:对消息进行填充,让它长度%512=448。填充的规则是填充一个1和若干个0使它长度mod512和448同余,然后添加64比特的无符号整数,值为原始消息长度。
                     2,初始化链接变量:5个32比特固定数值赋给5个32比特的寄存器,即上图的H0,H1,H2,H3,H4的输入为A,B,C,D,E。

                     3,将512位的消息M,分成16x32位,分别为W0-W16。

                      4,对于16-79的Wt,Wt= S1(Wt-3 XOR Wt-8 XOR Wt- 14 XOR Wt-16)。

                       5,对于t=0-79,执行以下循环,\small S^{k}为循环左移k比特位:

                                                                   (1)A=   \small S^{5}(A) + ft(B,C,D) + E + Wt + Kt.

                                                                   (2)     B=A

                                                                   (3)    C=\small S^{30}(B)             

                                                                   (4)      D=C

                                                                   (5)       E=D        

                        6,将下一轮缓冲区的值H0=H0+A,H1 = H1 + B, H2 = H2 + C, H3 = H3 + D, H4 = H4 + E.

                         7,四轮循环,每轮20步结束后,将得到的缓存区的5个H与初始化的H进行模2^32加,输出为160位的密文。

                                            

 4,消息认证:

认证的分类:实体认证和消息认证。

认证的三类函数:消息加密函数,消息认证码,杂凑函数。

消息认证的方法:

     1,对称密码体制:机密性,认证,只能解密用同一密钥加密的信息,不能提供数字签名,可否认

     2,公钥密码体制:能实现数字签名,因为公钥只能解密私钥加密的数据,但不能提供机密性,因为私钥加密的信息,能公开的公钥解密。

     3,公钥密码体制:将数据先进行私钥加密,再进行公钥加密,提供机密性,签名和认证。假如先进行公钥加密,再进行私钥加密,实则只进行了一次公钥一次加密,不能达到效果。

     4,消息码的认证:即在数据中附带一个用密钥K和数据加密的函数值,接收方收到后再利用密钥K对数据进行加密,与附带的函数值比较,确定报文未被篡改,因为收发双方都知道密钥,不能提供数字签名。

     5,基于杂凑函数:

(1)对称密码加密信息和杂凑值:提供机密性,完整性

(2)对称密码加密杂凑值:不提供机密性,提供完整性

(3)公钥体制加密杂凑值:提供完整性,数字签名。

(4)公钥和对称体制结合:用私钥对杂凑值加密得数字签名,对称密码加密消息M和数字签名,提供机密性,鉴别,数字签名。接收方先用对称密码密钥解密消息M和数字签名,提供机密性,用公钥解密数字签名,确保对方是由拥有私钥者发出,比较杂凑值鉴别完整性,

  • 13
    点赞
  • 76
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

M03-Aiwin

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值