密码学的100个基本概念_密码学100个概念(1),京东面试真题解析

先自我介绍一下,小编浙江大学毕业,去过华为、字节跳动等大厂,目前阿里P7

深知大多数程序员,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年最新Golang全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友。
img
img
img
img
img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上Go语言开发知识点,真正体系化!

由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新

如果你需要这些资料,可以添加V获取:vip1024b (备注go)
img

正文

R_i = L_{i-1}\oplus f(R_{i-1},K_i)

Ri​=Li−1​⊕f(Ri−1​,Ki​)其中,

K

i

K_i

Ki​是第

i

i

i轮使用的子密钥,

f

f

f是任意轮函数。

Feistel网络保证了算法可逆性,即加密和解密可以采用同一算法实施。

42.DES

DES(Data Encryption Standards)是第一个广泛应用于商用数据保密的密码算法,为对称加密算法。美国国家标准局(NBS,National Bureau of Standards)于1973年开始征集联邦数据加密标准,许多公司提交了算法,IBM公司的Lucifer加密系统最终胜出。经过两年多的公开讨论,1977年1月15日NBS决定利用这个算法,并将其更名为数据加密标准(DES)

43.AES

1997年美国国家标准与技术研究院(NIST,National Institute of Standards and Technology)公开征集高级加密标准(AES,Advanced Encryption Standard),基本要求是安全性能不低于三重DES,性能比三重DES快,并特别提出高级加密标准必须是分组长度为128位的对称分组密码,且支持长度为128位、192位、256位的密钥。此外,如果算法被选中,在世界范围内须是可免费获得的。

2000年10月2日,NIST宣布最终评选结果,根据安全性(稳定的数学基础、无算法弱点、可抗密码分析)、性能(速度快)、大小(内存与存储空间占用小)、易实现(良好的软硬件适应性)等标准,比利时密码学家Joan Daemen和Vincent Rijmen提出的“Rijndael数据加密算法”最终获胜。修改的Rijndael算法成为高级加密标准AES,2001年11月26日,NIST正式公布高级加密标准AES,并于2002年5月26日正式生效。

44.IDEA

国际数据加密算法(IDEA, International Data Encryption Algorithm)由瑞士的来学嘉(Xuejia Lai)和 James Massey于1990年公布,当时称为推荐加密标准(PES, Proposed Encryption Standard)。1991年,为抗击差分密攻击,他们对算法进行了改进,称为改进推荐加密标准(IPES,Im proved PES),并于1992年改名为国际数据加密算法IDEA。

IDEA受专利保护,要先获得许可证之后才能在商业应用程序中使用,著名的电子邮件隐私技术PGP就是基于IDEA的。

45.分组密码的工作模式

实际消息长度一般大于分组密码的分组长度,分组密码将消息分为固定长度的数据块来逐块处理。人们设计了许多不同的块处理方式,称为分组密码的工作模式,通常是基本密码模块、反馈和一些简单运算的组合。这些工作模式同时为密文分组提供了一些其他性质,如隐藏明文的统计特性、错误传播控制、流密码的密钥流生成等。

46.电子密码本

电子密码本(ECB, Electronic Code Book)模式一次处理一个明文分组,各个明文分组被独立加密成相应的密文分组,主要用于**内容较短且随机的报文(如密钥)**的加密传递。

  • 相同明文(在相同密钥下)得出相同的密文,易受实现统计分析攻击、分组重放攻击和代换攻击
  • 链接依赖性:各组的加密都独立于其它分组,可实现并行处理
  • 错误传播:单个密文分组中有一个或多个比特错误只会影响该分组的解密结果

47.密码分组链接

密码分组链接(CBC, Cipher Block Chaining)模式应用了反馈机制,明文在加密之前需要与前面的密文进行异或,即每个密文分组不仅依赖于产生它的明文分组,还依赖于它前面的所有分组。CBC适合文件加密,是软件加密的最佳选择。

  • 相同的明文,即使相同的密钥下也会得到不同的密文分组,隐藏了明文的统计特性
  • 链接依赖性:对于一个正确密文分组的正确解密要求它之前的那个密文分组也正确,不能实现并行处理
  • 错误传播:密文分组中的一个单比特错误会影响到本组和其后分组的解密,错误传播为两组

48.密码反馈

密码反馈(CFB, Cipher Feedback Block)将消息看作比特流,无需接受完整个数据分组后才能进行加解密,是自同步序列密码算法的典型例子,通常用于加密字符序列

  • 可用于同步序列密码,具有CBC模式的优点
  • 对信道错误较敏感且会造成错误传播
  • 数据加解密的速率降低,其数据率不会太高

49.输出反馈

输出反馈(OFB, Output Feedback Block)是基于分组密码的同步序列密码算法的一种例子。

  • CFB模式的一种改进,克服由错误传播带来的问题,但对密文被篡改难于进行检测
  • OFB模式不具有自同步能力,要求系统保持严格的同步,否则难于解密

四、序列密码

50.序列密码

序列密码,又称流密码,属于对称密码体制,它一次只对明文消息的单个字符(通常是二进制位)进行加解密变换,具有实现简单、速度快、错误传播少等特点.

在序列密码中,将明文消息按一定长度分组,对各组用相关但不同的密钥逐位加密产生相应密文,相同的明文分组会因在明文序列中的位置不同而对应不同的密文分组,接收者用相同的密钥序列对密文序列逐位解密恢复出明文。

在这里插入图片描述
令明文序列

p

=

p

n

1

.

.

.

p

1

p

0

p=p_{n-1}…p_1p_0

p=pn−1​…p1​p0​密钥序列

k

=

k

n

1

.

.

.

k

1

k

0

k=k_{n-1}…k_1k_0

k=kn−1​…k1​k0​
密文序列

c

=

c

n

1

.

.

.

c

1

c

0

=

E

k

n

1

(

p

n

1

)

.

.

.

E

k

1

(

p

1

)

E

k

0

(

p

0

)

c=c_{n-1}…c_1c_0=E_{k_{n-1}}(p_{n-1})…E_{k_1}(p_1)E_{k_0}(p_0)

c=cn−1​…c1​c0​=Ekn−1​​(pn−1​)…Ek1​​(p1​)Ek0​​(p0​)若

c

i

=

E

k

i

(

p

i

)

=

p

i

k

i

c_i=E_{k_i}(p_i)=p_i\oplus k_i

ci​=Eki​​(pi​)=pi​⊕ki​则称此类为加法序列密码。

51.反馈移位寄存器

反馈移位寄存器(FSR,Feedback Shift Register)一般由移位寄存器反馈函数(Feedback Function)组成。移位寄存器是由位组成的序列,其长度用位表示,每次移位寄存器中所有位右移一位,最左端的位根据寄存器中某些位计算得到,由寄存器某些位计算最左端位的部分被称为反馈函数,最右端一个寄存器移出的值是输出位。移位寄存器的周期是指输出序列从开始到重复时的长度。

52.线性反馈移位寄存器

线性反馈移位寄存器(LFSR,Linear Feedback Shift Register)的反馈函数是寄存器中某些位简单异或,这些位叫做抽头序列(Tap Sequence),有时也叫 Fibonacci 配置(Fibonacci Configuration)。

**53.

m

m

m序列**

线性反馈移位寄存器输出序列的性质完全由其反馈函数决定,一个

n

n

n位LSFR能够处于

2

n

1

2^{n}-1

2n−1个内部状态中的一个,即**理论上,

n

n

n位LFSR在重复之前能够产生

2

n

1

2^{n}-1

2n−1位长的伪随机序列**(由于全0的状态将使LFSR无止尽地输出0序列,因此是

2

n

1

2^{n}-1

2n−1而不是

2

n

2^{n}

2n)。

只要选择合适的反馈函数便可使序列的周期达到最大值

2

n

1

2^{n}-1

2n−1,即只有具有一定抽头序列的LFSR才能循环地遍历所有

2

n

1

2^{n}-1

2n−1个内部状态,这个输出序列被称为**

m

m

m序列**。为了使LFSR成为最大周期LFSR,由抽头序列加上常数1形成的多项式必须是本原多项式,多项式的阶即移位寄存器的长度。

54.RC4

RC4(Ron RivestCipher)以随机置换为基础,是一个可变密钥长度、面向字节操作的序列密码,该算法由于加解密速度快(比DES快约10倍)、易于软件实现,广泛应用于Microsoft Windows、Lotus Notes等软件中,以及安全套接字层(SSL,Secure Sockets Layer)传输信息。

与基于移位寄存器的序列密码不同,RC4是典型的基于非线性数组变换的序列密码。它以一个足够大的数组为基础,对其进行非线性变换,产生非线性的密钥序列,一般把这个大数组称为S盒。RC4的S盒的大小根据参数

n

n

n(通常

n

=

8

n=8

n=8)的值变化,RC4算法理论上可生成总数

N

=

2

n

N=2^n

N=2n个的S盒。

55.A5

A5算法是GSM 系统中要使用的序列密码加密算法之一,用于加密手机终端基站之间的传输的语音和数据,目前已被攻破。

A5算法是一种典型的基于线性反馈移位寄存器的序列密码算法,由一个22bit长的参数(帧号码, Fn)和64 bit长的参数(会话密钥,Kc)生成两个114 bit长的序列(密钥流),然后与GSM会话每帧(228 bit/帧)异或。

五、哈希函数

56.Hash函数

Hash函数也称哈希函数/散列函数、杂凑函数,是一个从消息空间到像空间的不可逆映射,可将“任意”长度的输入经过变换以后得到固定长度的输出。它是一种单向密码体制,即只有加密过程,不存在解密过程。

57.消息摘要

Hash函数的单向性输出长度固定的特征使其可生成消息的“数字指纹”(Digital Fingerprint),也称消息摘要(MD,Message Digest)哈希值/散列值(Hash Value),主要应用于消息认证数字签名口令的安全传输与存储文件完整性校验等方面。

58.MD5

MD5算法由美国麻省理工学院著名密码学家Rivest设计,他于1992年向IETF提交的RFC1321中对MD5作了详尽的阐述。MD5是在MD2、MD3、MD4的基础上发展而来,由于在MD4上增加了Safety-Belts,MD5又被称为是“系有安全带的MD4”。

算法的输入是最大长度小于

2

64

2^{64}

264bit的消息,输入消息以

512

512

512+bit的分组为单位处理,输出为

128

b

i

t

128bit

128bit的消息摘要。

59.SHA1

1993年,美国国家标准技术研究所NIST公布了安全散列算法SHA0(Secure Hash Algorithm)标准,1995年4月17日,公布的修改版本称为SHA-1,是数字签名标准中要求使用的算法。

SHA1算法的输入是最大长度小于

2

64

2^{64}

264bit的消息,输入消息以

512

512

512 bit的分组为单位处理,输出为

160

160

160bit的消息摘要,因此抗穷举性更好。

60.消息认证

消息认证指验证消息的真实性,包括验证消息来源的真实性,一般称之为信息源认证;验证消息的完整性,即验证消息在传输和存储过程中没有被篡改、伪造等

61.消息认证码

消息认证码(MAC,Message Authentication Code)用来检查消息是否被恶意修改,利用消息和双方共享的密钥通过认证函数来生成一个固定长度的短数据块,并将该数据块附加在消息后。

利用DES、AES等对称分组密码体制的密码分组链接模式(CBC)一直是构造MAC的最常见的方法,如FIPS PUB 113中定义的CBC-MAC。由于MD5、SHA-1等Hash函数软件执行速度比DES等对称分组密码算法要快,目前提出了许多基于Hash函数的消息认证算法,其中HMAC(RFC 2014)已作为FIPS 198标准发布,并且在SSL中用于消息认证。

六、公钥密码

62.RSA公钥密码

1978年,美国麻省理工学院的Rivest、Shamir、Adleman联合提出了RSA公钥密码体制,是第一个安全实用的公钥码算法,其安全性依赖于大整数因子分解的困难性。RSA公钥密码体制可用于加密,也可用于数字签名,且具有安全、易实现等特点。

(1)公私密钥对生成

选取两个大素数

p

q

p、q

p、q(不可泄露),计算

n

=

p

q

n=pq

n=pq及

n

n

n的欧拉函数

φ

(

n

)

=

(

p

1

)

(

q

1

)

\varphi(n) = (p-1)(q-1)

φ(n)=(p−1)(q−1)

随机选取整数

e

(

1

<

e

<

φ

(

n

)

)

e(1<e<\varphi(n))

e(1<e<φ(n))作为公钥,满足

g

c

d

(

e

φ

(

n

)

)

=

1

gcd(e,\varphi(n))=1

gcd(e,φ(n))=1,即

e

e

e与

φ

(

n

)

\varphi(n)

φ(n)互素

使用Euclid扩展算法计算私钥

d

e

1

m

o

d

φ

(

n

)

d \equiv e^{-1} \bmod \varphi(n)

d≡e−1modφ(n),即

e

e

e的逆元

(2)加解密算法

公钥:

(

e

n

)

(e,n)

(e,n)

私钥:

d

d

d

加密:

c

m

e

m

o

d

n

c \equiv m^e \bmod n

c≡memodn

解密:

m

c

d

m

o

d

n

m \equiv c^d \bmod n

m≡cdmodn

63.ElGamal公钥密码

ElGamal公钥密码体制由T.ElGamal于1985年提出,该体制基于有限域上离散对数问题,既可用于加密,又可以用于数字签名。由于其较好的安全性,且同一明文在不同的时刻会生成不同的密文,在实际中得到了广泛的应用,尤其在数字签名方面的应用,著名的**数字签名标准(DSS,Digital Signature Standard)**其实就是ElGamal签名方案的一种变形。

(1)公私密钥对生成

随机选择一个大素数

p

p

p,且要求

p

1

p-1

p−1有大素数因子,

g

Z

p

g \in \boldsymbol Z^{*}_p

g∈Zp∗​是一个本原元(

Z

p

Z_p

Zp​是一个有

p

p

p个元素的有限域,

Z

p

Z^{*}_p

Zp∗​是

Z

p

Z_p

Zp​中的非零元构成的乘法群)

**选一个随机数

x

(

1

<

x

<

p

1

)

x(1<x<p-1)

x(1<x<p−1)作为私钥**,计算

y

g

x

m

o

d

p

y \equiv g^x \bmod p

y≡gxmodp,**公钥为

(

y

g

p

)

(y,g,p)

(y,g,p)**

(2)加解密算法

公钥:

(

y

g

p

)

(y,g,p)

(y,g,p)

私钥:

x

x

x

加密:

C

=

(

c

c

)

C = (c,c^{'})

C=(c,c′),其中

c

g

r

m

o

d

p

c

m

y

r

m

o

d

p

c \equiv g^{r} \bmod p, c^{'} \equiv m y^{r} \bmod p

c≡grmodp,c′≡myrmodp,

r

(

1

<

r

<

p

1

)

r(1<r<p-1)

r(1<r<p−1)为随机数,

解密:

m

(

c

/

c

x

)

m

o

d

p

m \equiv (c{'}/c{x}) \bmod p

m≡(c′/cx)modp

ElGamal公钥密钥体制每次加密运算需要选择一个随机数,密文既依赖于明文,又依赖于选择的随机数,因此对于同一个明文,不同的时刻生成的密文不同。此外,ElGamal加密使得消息扩展了两倍,即密文的长度是对应明文长度的两倍

七、数字签名

64.数字签名

数字签名(Digital Signature),也称电子签名,是指附加在某一电子文档中的一组特定的符号或代码。它利用密码技术对该电子文档进行关信息提取并进行认证形成,用于标识签发者的身份以及签发者对电子文档的认可,并能被接收者用来验证该电子文档在传输过程中是否被篡改或伪造。
在这里插入图片描述

  • 发送方A将消息用Hash算法产生一个消息摘要(Message Digest)
  • 发送方A用自己的私钥对消息摘要进行加密,这个加密后的息摘要就是数字签名
  • 发送方A将消息与签名发给接收方B
  • 接收方B接收到消息及其名后,用发送方A的公钥解密这个签名,获得由发送方A生成的消息摘要
  • 接收方B用发送方A所用Hash算法重新生成所获得消息的摘要,对比这两个摘要。若相同说明签名是发送方A针对这个消息的有效签名,否则签名无效

65.代理签名

代理签名是指原始签名者把他的签名权授权给代理者,代理者代表原始签名者行使他的签名权。当验证者验证代理签名时,验证者既能验证这个签名的有效性,也能确信这个签名是原始签名者认可的签名。

代理签名按照原始签名者给代理签名者的授权形式可分为完全委托的代理签名、部分授权的代理签名(非保护代理者的代理签名、保护代理者的代理签名)、带授权书的代理签名

66.盲签名

盲签名是D.Chaum于1982年首次提出的一种具有特殊性质的数字签名,这种签名要求签名者能够在不知道被签名文件内容的情况下对消息进行签名
即使签名者在以后看到了被签名的消息及其签名,签名者也不能判断出这个签名是他何时为谁生成的。直观上讲,这种签名的生成过程就像签名者闭着眼睛对消息签名一样,所以形象地称为“盲”数字签名。

67.多重数字签名

在数字签名应用中,有时需要多个用户对同一文件进行签名和认证。能够实现多个用户对同一文件进行签名的数字签名方案称为多重数字签名(Digital Multi-signature)方案

68.群签名

1991年,Chaum和Heyst首次提出群签名(Group Signature)(组签名)方案。群签名方案允许组中合法用户以用户组的名义签名,具有签名者匿名,只有权威者才能辨认签名者身份等多个特点。一般来说,群签名的参与者由群成员(签名者)、**群管理员(GC,Group Center)签名接受者(签名验证者)**组成。

69.不可否认签名

不可否认签名本质的是在无签名者合作条件下不可能验证签名的有效性,从而可以防止他所签文件的复制或散布,这一性质使签名者可以控制产品的散发,在电子出版系统和知识产权保护中有所应用。

八、密码协议

70.密码协议

协议是指双方或多方为完成一项任务所进行的一系列步骤,而每一步必须依次执行,在前一步完成之前,后面的步骤都不能执行。

密码协议是以密码算法(包括对称密码算法、公钥密码算法、散列函数等)为基础完成某项任务并且满足安全需求的协议,也称作安全协议。常见的密码协议包括:密钥建立协议、认证协议、零知识证明协议、比特承诺、安全多方计算协议等。

71.参与者

参与者指参与协议的各方,每个参与者被抽象为具有概率多项式时间算法的图灵机.参与者可能是朋友或完全信任的人,也可能是敌人或相互完全不信任的人。据参与者在协议中的行为将其分为:诚实参与者、半诚实参与者和恶意参与者。

72.诚实参与者

诚实参与者完全按照要求完成执行过程中的各个步骤,同时保密自己的所有输入、输出及中间结果。诚实参与者也会根据自己的输入、输出以及中间结果来推导其他参与者的信息,但是不会被攻击者腐败。

73.半诚实参与者

半诚实参与者在协议的执行过程中,完全按照协议的要求完成协议的各个步骤,但同时可能将自己的输入、输出及中间结果泄露给攻击者。

74.恶意参与者

恶意参与者在协议的执行过程中,完全按照攻击者的意志执行协议的各个步骤,他不但将自己的所有输入、输出及中间结果泄露给攻击者,还可以根据攻击者的意图改变输入信息、伪造中间及输出信息,甚至中止协议。

75.攻击者

协议执行中,攻击者会破坏协议安全性或正确性,通过腐败参与者的一个子集,来控制其对协议进行攻击。根据攻击者对恶意参与者的控制程度、攻击者的计算能力、对恶意参与者的控制程度、网络同步与异步状态、自适应性等准则,可以对攻击者有不同的分类。其中按照对恶意参与者的控制程度,可以将攻击者分为以下下三类:

76.被动攻击者

被动攻击者又称为半诚实攻击者,只是监听恶意参与者的输入、输出及中间计算结果,并不控制恶意参与者的行为(比如修改恶意参与者的输入输出)。

77.主动攻击者

除了监听任意参与者的输入、输出及中间结果外,主动攻击者还控制恶意参与者的行为(如恶意篡改参与者的输入,按照自己的意图控制恶意参与者的输出等)。

78.隐蔽攻击者

隐蔽攻击者(Convert adversary)指介于被动攻击者与主动攻击者之间的攻击者类型,隐蔽攻击者以被发现的概率为(称为遏制因子)危险去攻击协议,被隐蔽攻击者腐败的参与者可以进行主动的腐败行为。

79.半诚实模型

如果所有参与者都是半诚实或诚实的,称此模型为半诚实模型。半诚实成员完全遵守协议,但它会收集协议执行过程中的所有记录,并试图推断其他成员的输入,半诚实模型中的攻击者都是被动的。

80.恶意模型

有恶意参与者的模型称为恶意模型。恶意参与者完全按照攻击者的意愿执行协议的各个步骤,他不但将自己的所有输入、输出以及中间结构泄露给攻击者,还可以根据攻击者的意图改变改变输入信息、伪造中间及输出信息,甚至终止协议。恶意模型中的攻击者是主动的。

81.隐蔽攻击模型

有被隐蔽攻击者参与的模型称为隐蔽攻击者模型,被腐败的参与者可以进行主动的腐败行为,但仅在能小于一定概率不被发现的情况下才可实施腐败行为。

82.零知识证明

零知识证明(Zero Knowledge Proof)由S.Goldwasser、S.Micali 及 C.Rackoff于1985年在论文《The Knowledge Complexity of Interactive Proof Systems》(交互式证明系统中的知识复杂性)首次提出,是一种用于证明者在不泄露任何其他信息的情况下证明其掌握知识正确性的密码学协议。

该协议的一方称为证明者(Prover),用

P

P

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化的资料的朋友,可以添加V获取:vip1024b (备注Go)
img

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
性质使签名者可以控制产品的散发,在电子出版系统和知识产权保护中有所应用。

八、密码协议

70.密码协议

协议是指双方或多方为完成一项任务所进行的一系列步骤,而每一步必须依次执行,在前一步完成之前,后面的步骤都不能执行。

密码协议是以密码算法(包括对称密码算法、公钥密码算法、散列函数等)为基础完成某项任务并且满足安全需求的协议,也称作安全协议。常见的密码协议包括:密钥建立协议、认证协议、零知识证明协议、比特承诺、安全多方计算协议等。

71.参与者

参与者指参与协议的各方,每个参与者被抽象为具有概率多项式时间算法的图灵机.参与者可能是朋友或完全信任的人,也可能是敌人或相互完全不信任的人。据参与者在协议中的行为将其分为:诚实参与者、半诚实参与者和恶意参与者。

72.诚实参与者

诚实参与者完全按照要求完成执行过程中的各个步骤,同时保密自己的所有输入、输出及中间结果。诚实参与者也会根据自己的输入、输出以及中间结果来推导其他参与者的信息,但是不会被攻击者腐败。

73.半诚实参与者

半诚实参与者在协议的执行过程中,完全按照协议的要求完成协议的各个步骤,但同时可能将自己的输入、输出及中间结果泄露给攻击者。

74.恶意参与者

恶意参与者在协议的执行过程中,完全按照攻击者的意志执行协议的各个步骤,他不但将自己的所有输入、输出及中间结果泄露给攻击者,还可以根据攻击者的意图改变输入信息、伪造中间及输出信息,甚至中止协议。

75.攻击者

协议执行中,攻击者会破坏协议安全性或正确性,通过腐败参与者的一个子集,来控制其对协议进行攻击。根据攻击者对恶意参与者的控制程度、攻击者的计算能力、对恶意参与者的控制程度、网络同步与异步状态、自适应性等准则,可以对攻击者有不同的分类。其中按照对恶意参与者的控制程度,可以将攻击者分为以下下三类:

76.被动攻击者

被动攻击者又称为半诚实攻击者,只是监听恶意参与者的输入、输出及中间计算结果,并不控制恶意参与者的行为(比如修改恶意参与者的输入输出)。

77.主动攻击者

除了监听任意参与者的输入、输出及中间结果外,主动攻击者还控制恶意参与者的行为(如恶意篡改参与者的输入,按照自己的意图控制恶意参与者的输出等)。

78.隐蔽攻击者

隐蔽攻击者(Convert adversary)指介于被动攻击者与主动攻击者之间的攻击者类型,隐蔽攻击者以被发现的概率为(称为遏制因子)危险去攻击协议,被隐蔽攻击者腐败的参与者可以进行主动的腐败行为。

79.半诚实模型

如果所有参与者都是半诚实或诚实的,称此模型为半诚实模型。半诚实成员完全遵守协议,但它会收集协议执行过程中的所有记录,并试图推断其他成员的输入,半诚实模型中的攻击者都是被动的。

80.恶意模型

有恶意参与者的模型称为恶意模型。恶意参与者完全按照攻击者的意愿执行协议的各个步骤,他不但将自己的所有输入、输出以及中间结构泄露给攻击者,还可以根据攻击者的意图改变改变输入信息、伪造中间及输出信息,甚至终止协议。恶意模型中的攻击者是主动的。

81.隐蔽攻击模型

有被隐蔽攻击者参与的模型称为隐蔽攻击者模型,被腐败的参与者可以进行主动的腐败行为,但仅在能小于一定概率不被发现的情况下才可实施腐败行为。

82.零知识证明

零知识证明(Zero Knowledge Proof)由S.Goldwasser、S.Micali 及 C.Rackoff于1985年在论文《The Knowledge Complexity of Interactive Proof Systems》(交互式证明系统中的知识复杂性)首次提出,是一种用于证明者在不泄露任何其他信息的情况下证明其掌握知识正确性的密码学协议。

该协议的一方称为证明者(Prover),用

P

P

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化的资料的朋友,可以添加V获取:vip1024b (备注Go)
[外链图片转存中…(img-BXzKskC3-1713542536004)]

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值