密码学期末考试笔记

文章目录

  • 公钥加密之前的部分 (非重点,关注工具怎么用,和性质)
  • 一、对称加密 (symmetric ciphers)
    • 1. 定义
  • 二、PRG (伪随机数生成器)
    • 1. 定义
    • 2. 属性
  • 三、语义安全 (Semantic Security)
    • 1. one-time key
    • 2. 流密码是语义安全的
  • 四、分组密码 (Block Cipher)
    • 1. 工作模式
    • 2. 迭代 (Iteration)
    • 3. PRPs 和 PRFs
    • 4. DES 和 AES
  • 五、加密模型 (Encryption Modes)
    • 1. CPA secure model (for many-time key)
    • 2. CCA secure model
  • 六、Hash 函数
    • 1. Collision Resistance:
    • 2. Second Pre-Image Resistance
    • 3. Pre-Image Resistance
    • 4. 上面三个属性之间的关系
    • 5. Hash 函数被用来做什么
  • 七、消息完整性 (Message Integrity)
    • 1. MAC (Integrity 但是不追求 Confidentiality)
    • 2. 基于 PRF 的 MAC
  • 八、验证加密 (Authenticated Encryption)
    • 1. 关于什么时候使用 MAC 和 Authenticated Encryption
    • 2. 一个典型的模型
    • 3. 定义
    • 4. Imply (在上面 hash 函数属性中有说)
  • 公钥加密及其之后的部分
  • 九、公钥加密 (Public key encryption)
    • 1. 定义
    • 2. 语义安全
    • 3. 公钥密码的 CPA
    • 4. 公钥加密的 CCA (chosen ciphertext security)
  • 十、陷门函数 (Trapdoor function TDF)
    • 1. 定义
    • 2. 安全性
    • 3. 基于 TDFs 的 公钥密码
    • 4. 基于 TDFs 的公钥密码的安全属性
  • 十一、RSA
    • 1. 算数模运算
    • 2. RSA 公钥加密方案的基本步骤
    • 3. RSA 的属性
  • 十二、ElGamal
    • 1. Diffie-Hellman 协议
    • 2. 传统的 ElGamal
    • 3. 现代的 ElGamal
    • 4. 安全属性
  • 十三、椭圆曲线上的计算问题
  • 十四、数字签名 (Digital Signature)
    • 1. 基本过程
    • 2. 定义
    • 3. 安全属性
    • 4. 应用 (证书 Certificates)
    • 5. 通过 CRHF 扩大域
  • 十五、基于 陷门置换 的 FDH 签名
    • 1. 示意图
    • 2. 算法过程
    • 3. 安全性
  • 十六、基于 RSA 的 FDH 签名
    • 1. 定义
    • 2. 安全性证明
  • 十七、不基于随机预言机的安全签名
    • 1. 双线性对 (一个新的工具)
    • 2. 基于双线性对的简单签名方案
    • 3. 不基于 随机预言机 的签名方案
  • 十八、零知识证明 (ZKP)
    • 1. 关系函数 (Relation Function)
    • 2. 关系函数 R 下的语言
    • 3. 交互式证明系统
    • 4. 三个属性
    • 4. sample 1 (定义 (x, y) = (h, a) 为 g^a^ = h)
    • 5. sample 2 (and 证明)
    • 6. sample 3 (or 证明)
  • 十九、Schnorr 的验证协议和签名协议
    • 1. Schnorr 的验证协议
    • 2. Schnorr 的签名方案
  • 二十、承诺 Commitment
    • 1.基本概念
    • 2. 安全要求 (Hinding 和 Binding)
    • 3. 一个安全的承诺方案
    • 4. 证明上面的承诺方案的安全性
  • 二十一、Oblivious Transfer (OT, 遗忘传输)
    • 1. 定义
    • 2. ElGamal Encryption (PKE)
    • 3. 1-out-of-2 OT
    • 4. 1-out-of-n OT
    • 5. k-out-of-n OT


公钥加密之前的部分 (非重点,关注工具怎么用,和性质)


一、对称加密 (symmetric ciphers)

1. 定义

在这里插入图片描述


二、PRG (伪随机数生成器)

1. 定义

在这里插入图片描述

2. 属性

  1. 不可预测性
    在这里插入图片描述

三、语义安全 (Semantic Security)

1. one-time key

在这里插入图片描述
 攻击者发送明文给挑战者,挑战者根据 b 选择一条明文进行加密,并将生成的 密文c 发送给攻击者。攻击者需要更具 c 得到一个 b‘,如果 b’=b 则挑战成功,将其记为 EXP(b)=1
 将攻击者的优势记为 A d v s s [ A , E ] : = ∣ P r [ W 0 ] − P r [ W 1 ] ∣ ∈ [ 0 , 1 ] Adv_{ss}[A,E]:=|Pr[W_0]-Pr[W_1]| \in [0,1] Advss[A,E]:=Pr[W0]Pr[W1][0,1]

2. 流密码是语义安全的

在这里插入图片描述


四、分组密码 (Block Cipher)

1. 工作模式

在这里插入图片描述

2. 迭代 (Iteration)

在这里插入图片描述

3. PRPs 和 PRFs

  1. PRF (Pseudo Random Function) defined over (K, X, Y)
    F : K × X → Y F: K \times X \rightarrow Y F:K×XY
  2. PRP (Pseudo Random Permutation) defined over (K, X)
    E : K × X → X E: K \times X \rightarrow X E:K×XX

PRF 从 X 中的元素 映射到 Y 中的元素 (如果 Y 就是 X,那么 PRF 就是 PRP)
PRP 从 X 中的元素 映射到 X 中的元素

  1. PRF 生成 PRG
    在这里插入图片描述

4. DES 和 AES

在这里插入图片描述


五、加密模型 (Encryption Modes)

1. CPA secure model (for many-time key)

在这里插入图片描述

2. CCA secure model

在这里插入图片描述
 CCA 的定义是:攻击者可以选择 任意密文 并请求系统解密,得到 对应的 明文,但存在一个限制:攻击者无法请求解密 挑战密文 (challenge ciphertext),即测试语义安全性的密文不能被解密
 上面的整体过程是这样的:

  1. 首先,攻击者给挑战者发送了 i-1mi,并且每一组挑战者都回复了对应的密文 ci
  2. 到第 i 组的时候,攻击者给挑战者发送了两个明文 mi,0mi,1,挑战者根据 bmi,b 进行加密生成 ci 发送给攻击者;
  3. 然后攻击者可以给挑战者发送 密文c (图中的 CCA 阶段的 ci 和 上面 CPA 阶段的 ci 不是一个东西),挑战者给攻击者发送对 c 解密生成的 密文m (c 不能和 CPA 阶段生成的 密文 重复)。
  4. 最后 攻击者 需要通过上面得到的信息,推断出 ci 对应的 b 是多少,得到一个 b’,如果 b’=b 则攻击成功。

六、Hash 函数

在这里插入图片描述

1. Collision Resistance:

 定义:给一个 Hash 函数 h : X → Y h: X \rightarrow Y h:XY,没有有效的机制,能够找到 x , x ′ ∈ X x, x' \in X x,xX 满足 x ≠ x ′ , h ( x ) = h ( x ′ ) x \neq x', h(x) = h(x') x=x,h(x)=h(x)

2. Second Pre-Image Resistance

 定义:给一个 Hash 函数 h : X → Y h: X \rightarrow Y h:XY 和一个 x ∈ X x \in X xX,没有有效的机制,能够找到 x ′ ∈ X x' \in X xX 满足 x ′ ≠ x , h ( x ′ ) = h ( x ) x' \neq x, h(x') = h(x) x=x,h(x)=h(x)

3. Pre-Image Resistance

 定义:给一个 Hash 函数 h : X → Y h: X \rightarrow Y h:XY 和一个 y ∈ Y y \in Y yY,没有有效的机制,能够找到 x ∈ X x \in X xX 满足 y = h ( x ) y = h(x) y=h(x)

4. 上面三个属性之间的关系

在这里插入图片描述
A imply B 的含义:如果一个加密系统满足 A 安全属性,那么它一定满足 B 安全属性

5. Hash 函数被用来做什么

  • 用来存储 password,服务器存储的是 h(pw) 而不是 pw这是为了 安全性 (confidentiality)
  • 用于 HMAC 中。这是为了 完整性
  • 数字签名中,对 H(m) 签名 而不是 m这是为了效率

七、消息完整性 (Message Integrity)

1. MAC (Integrity 但是不追求 Confidentiality)

在这里插入图片描述

2. 基于 PRF 的 MAC

在这里插入图片描述


八、验证加密 (Authenticated Encryption)

1. 关于什么时候使用 MAC 和 Authenticated Encryption

  • 如果消息需要的是 完整性 而不需要 保密性,则使用 MAC
  • 如果消息既需要 完整性 又需要 保密性,则使用 authenticated encryption

2. 一个典型的模型

在这里插入图片描述
 其中 D : K × C × N → M U { T } D: K \times C \times N \rightarrow M U\{T\} D:K×C×NMU{T} 的含义是,如果 解密函数 检测到 密文c 被篡改或者不合法,就会输出 ⊥。特别强调了解密失败的状态,并表示系统具有 密文完整性 的能力,能够 拒绝伪造或篡改的密文

3. 定义

 一个密码 (E, D) 提供 authenticated encryption (AE),当满足:

  • 满足 CPA 下的语义安全
  • 具有密文完整性

4. Imply (在上面 hash 函数属性中有说)

在这里插入图片描述


公钥加密及其之后的部分


九、公钥加密 (Public key encryption)

1. 定义

在这里插入图片描述
在这里插入图片描述

2. 语义安全

在这里插入图片描述

3. 公钥密码的 CPA

 回顾对称加密的两个安全概念:

  • one-time security
  • many-time security (也就是 CPA)

对称密码 中:
在这里插入图片描述
公钥密码 中:
在这里插入图片描述

4. 公钥加密的 CCA (chosen ciphertext security)

在这里插入图片描述


十、陷门函数 (Trapdoor function TDF)

1. 定义

 一个陷门函数 X → Y X \rightarrow Y XY 包含三个非常高效的函数:

  • G ( ) G() G():输出一个密钥对 (pk, sk)
  • F ( p k , ⋅ ) F(pk,\cdot) F(pk,):定义了一个函数 X → Y X \rightarrow Y XY
  • F − 1 ( s k , ⋅ ) F^{-1}(sk, \cdot) F1(sk,):上面那个函数的逆函数 Y → X Y \rightarrow X YX

2. 安全性

在这里插入图片描述

3. 基于 TDFs 的 公钥密码

在这里插入图片描述
 在上面的算法中,公钥密码 是用来处理 对称加密的 密钥 k 的,对 消息 的加密是通过 对称加密 完成的。

4. 基于 TDFs 的公钥密码的安全属性

在这里插入图片描述


十一、RSA

1. 算数模运算

 参考这篇博客

2. RSA 公钥加密方案的基本步骤

  1. G() 密钥生成函数
    在这里插入图片描述
  2. E(pk. m) 加密函数
    在这里插入图片描述
  3. D(sk, (y, c))) 解密算法
    在这里插入图片描述
    在这里插入图片描述
    具体步骤是:
    1. 计算 x ← R S A − 1 ( y ) = y d = x e d = x x \leftarrow RSA^{-1}(y) = y^d = x^{ed} = x xRSA1(y)=yd=xed=x
    2. 计算 k ← H ( x ) k \leftarrow H(x) kH(x)
    3. 用对称解密算法还原消息 m: m ← D s ( k , c ) m \leftarrow D_s(k,c) mDs(k,c)

3. RSA 的属性

在这里插入图片描述

  1. RSA 加密不是一个安全的加密系统!!
  2. RAS 加密快,解密慢。(Elgamal 则加密解密都相同)

十二、ElGamal

1. Diffie-Hellman 协议

在这里插入图片描述

2. 传统的 ElGamal

  • Gen 密钥生成函数:
    在这里插入图片描述
    1. 首先生成一个循环群 < G , q , g > <G, q, g> <G,q,g>
    2. 随机选取一个 x ∈ Z q x \in Z_q xZq
    3. 计算 h : = g x h := g^x h:=gx
    4. 返回公钥和私钥,公钥为 p k = < G , q , g , h > pk = <G, q, g, h> pk=<G,q,g,h>,私钥为 s k = < G , q , g , x > sk = <G,q,g,x> sk=<G,q,g,x>
  • Enc 加密算法:
    在这里插入图片描述
    1. 输入一个 p k = < G , q , g , h > pk = <G, q, g, h> pk=<G,q,g,h>消息 m
    2. 随机选取一个 y ∈ Z q y \in Z_q yZq
    3. 对 m 进行加密, c t = < g y , h y ⋅ m > ct = <g^y, h^y \cdot m> ct=<gy,hym>
  • Dec 解密算法:
    在这里插入图片描述
    1. 输入一个 s k = < G , q , g , x > sk=<G, q, g, x> sk=<G,q,g,x>,和密文 c t = < c 1 , c 2 > = < g y , h y ⋅ m > ct = <c_1, c_2> = <g^y, h^y \cdot m> ct=<c1,c2>=<gy,hym>
    2. 对密文进行解密: m ^ = c 2 / c 1 x = h y ⋅ m / ( g y ) x = g x y ⋅ m / g x y = m \hat{m} = c_2 /c_1^x = h^y \cdot m / (g^y)x = g^{xy} \cdot m / g^{xy} = m m^=c2/c1x=hym/(gy)x=gxym/gxy=m

3. 现代的 ElGamal

 首先设定一些前提:

  • G G G:是一个阶为 n 的循环群
  • ( E s , D s ) (E_s, D_s) (Es,Ds):是一个定义在 (K, M, C) 上的 对称AE 密码系统
  • H : G 2 → K H: G^2 \rightarrow K H:G2K:是一个哈希函数,例如 H ( u , v ) = k H(u, v) = k H(u,v)=k

 接下来是算法的步骤 (核心思想就是,用 传统的ElGamal 加密 对称加密的密钥 k):

  1. 密钥生成函数:
    1. 从 G 中随机选取一个 生成元 g,随机选取一个 a ∈ Z n a \in Z_n aZn
    2. 输出 s k = a , p k = ( g , h = g a ) sk = a, \ \ \ pk = (g, h = g^a) sk=a,   pk=(g,h=ga)
  2. 加密算法:
    在这里插入图片描述
    1. 随机生成 b ∈ Z n b \in Z_n bZn
    2. 计算 u = g b u= g^b u=gb 以及 v = h b = g a b v = h^b = g^{ab} v=hb=gab
    3. u 和 v 哈希得到一个 k,这是对称加密的密钥
    4. 通过对称加密加密消息 m c = E s ( k , m ) c = E_s(k, m) c=Es(k,m)
    5. 输出 ( u , c ) (u, c) (u,c)
  3. 解密算法:
    在这里插入图片描述
    1. 输入是 sk = a 和 加密时的输出 (u, c)
    2. 计算 v = u a = g a b v = u^a = g^{ab} v=ua=gab
    3. 计算出对称加密的密钥 k = H ( u , v ) k = H(u, v) k=H(u,v)
    4. 用 k 对 c 进行解密得到消息 m, m = D s ( k , c ) m = D_s(k, c) m=Ds(k,c)

4. 安全属性

(暂时没写)


十三、椭圆曲线上的计算问题

在这里插入图片描述
 计算步骤如下:

  1. 问题背景:
    在这里插入图片描述
  2. 第一步:
    在这里插入图片描述
  3. 第二步:
    在这里插入图片描述
  4. 第三步:
    在这里插入图片描述
  5. 第四步:
    在这里插入图片描述

十四、数字签名 (Digital Signature)

1. 基本过程

在这里插入图片描述

2. 定义

在这里插入图片描述
可以理解成 用 sk 进行加密,用 pk 进行解密

3. 安全属性

 数字签名主要是保证 完整性、身份认证、防篡改

注意,MAC 和 数字签名 都可以保证 完整性,但是通常:一对一的时候用 MAC,一对多的时候用 signature

在这里插入图片描述
在这里插入图片描述

4. 应用 (证书 Certificates)

在这里插入图片描述

说明:
首先,浏览器 需要使用 服务器的 pk 来建立会话连接,需求是必须能 保证这个pk是服务器的pk 这件事。
对此的解决方法是,通过一个 第三方机构 CApk is key for Gmail 这个证书签名
所以对于上面的图,首先进行的是 Gmail.com 与 CA 之间的协议,生成一个具有 CA 签名的证书,该指数需要使用 pkCA 来验证。
然后,Gmail.com 将这个整数传给 浏览器。

5. 通过 CRHF 扩大域

在这里插入图片描述


十五、基于 陷门置换 的 FDH 签名

FDH = Full Domain Hash

1. 示意图

在这里插入图片描述

2. 算法过程

在这里插入图片描述

3. 安全性

在这里插入图片描述


十六、基于 RSA 的 FDH 签名

1. 定义

在这里插入图片描述

2. 安全性证明

在这里插入图片描述


十七、不基于随机预言机的安全签名

1. 双线性对 (一个新的工具)

 一个安全的签名如果不使用理想的哈希函数的话。可以使用 RSA 来替代,但是更多情况是通过 双线性对 来实现。双线性对的定义和主要性质如下:
在这里插入图片描述

  • 定义:
     令 G , G T G, G_T G,GT 是两个有限循环群 G = 1 , g 1 , g 2 , . . . , g p − 1 G = {1, g^1, g^2, ..., g^{p-1}} G=1,g1,g2,...,gp1
     定义一个匹配: e : G × G → G T e: G \times G \rightarrow G_T e:G×GGT 是一个映射。
  • 性质:
     线性关系: e ( g a , h b ) = e ( g , h ) a b ∀ a , b ∈ Z g , h ∈ G e(g^a, h^b) = e(g, h)^{ab}\ \ \ \ \ \ \forall a, b \in Z\ \ \ \ g, h \in G e(ga,hb)=e(g,h)ab      a,bZ    g,hG
     G 的生成元是 g,GT 的生成元是 (g, g)。

2. 基于双线性对的简单签名方案

在这里插入图片描述

3. 不基于 随机预言机 的签名方案

在这里插入图片描述


十八、零知识证明 (ZKP)

1. 关系函数 (Relation Function)

 一个关系函数被定义为 R : X × Y → 0 , 1 R: X \times Y \rightarrow {0, 1} R:X×Y0,1,满足:

  • 该函数计算起来是高效的
  • 输入是来自空间 (X, Y) 的一对元素 (x, y)
  • 输出 0 表示 false,1 表示 true

 例如:

场景关系函数的定义
Hash Function H R ( x , y ) = 1 i f f H ( y ) = x ( N O T H ( x ) = y ) R(x, y) = 1\ iff\ H(y) = x\ \ \ (NOT\ \ H(x) = y) R(x,y)=1 iff H(y)=x   (NOT  H(x)=y)
Cyclic Group (G, g, p) R ( x , y ) = 1 i f f g y = x ( ) R(x,y)=1\ iff\ g^y = x\ \ \ () R(x,y)=1 iff gy=x   ()

2. 关系函数 R 下的语言

 我们将 language L_R 定义为一组元素:
L _ R = x ∈ X : t h e r e e x i s t s y s . t . R ( x , y ) = 1 L\_R = {x \in X: there\ exists\ \ y\ \ s.t.\ R(x, y) = 1} L_R=xX:there exists  y  s.t. R(x,y)=1对于关系函数,有如下性质:

  • 这是空间 X 的元素集合,如果 x 在 L_R 中,我们称 x 为一个 true statement。例如,R 被定义为基于 Hash 的关系函数。如果存在 y 满足 H(y) = x,则称 x 是一个 true statement
  • 给一个 x,判断 x 是否属于 L_R 是一个计算困难问题,这是因为如果 x 是一个 true statement,很难计算出一个 y 使得 R(x, y) = 1

3. 交互式证明系统

 一个交互式证明系统包括两个角色 ProverVerifierProver 的输入是 (x, y)Verifier 的输入是 (x)

4. 三个属性

  • Completeness (知道 输入y 和 输出x)
     如果 Prover 知道 (x, y),存在一个证明 π 满足 V e r i f i e r ( x , π ) = 1 Verifier(x, π) = 1 Verifier(x,π)=1
     等价于,我们构造证明来证明它满足这个性质
  • Soundness (知道 输出x,难算 输入y)
     如果 Prover 只知道 (x),对于 Prover 来说计算出满足 V e r i f i e r ( x , π ) = 1 Verifier(x, π)=1 Verifier(x,π)=1π 是一个计算困难问题。
     等价于,我们可以通过 rewind 的方式从证明中提取知识
  • Zero Knowledge (知道 输入y 和 输出x)
    Verifier 对于 π,除了 x 之外一无所知。
     等价于,我们可以在 不知道 y 的情况下模拟证明

4. sample 1 (定义 (x, y) = (h, a) 为 ga = h)

在这里插入图片描述

  1. Completeness
    在这里插入图片描述
  2. Soundness (下面就是 rewind 过程)
    在这里插入图片描述
    在这里插入图片描述
  3. Zero-Knowledge (可以将第二部的 r’ 换成 Z’)
    在这里插入图片描述
    在这里插入图片描述

5. sample 2 (and 证明)

在这里插入图片描述

  1. Completeness
    在这里插入图片描述
  2. Soundness
    在这里插入图片描述
    在这里插入图片描述
  3. Zero-Knowledge (可以将第二部的 r’ 换成 Z’)
    在这里插入图片描述
    在这里插入图片描述

6. sample 3 (or 证明)

在这里插入图片描述

  1. Completeness
    在这里插入图片描述

  2. Soundness
    在这里插入图片描述
    在这里插入图片描述

  3. Zero-Knowledge
    在这里插入图片描述
    在这里插入图片描述


十九、Schnorr 的验证协议和签名协议

1. Schnorr 的验证协议

 可以发现 Schnorr 的验证协议和 ZKP 的 sample 1 很像,可以一起记。
在这里插入图片描述

2. Schnorr 的签名方案

在这里插入图片描述
 schnorr 的签名方案实际上就是基于上面所讲的 schnorr 的认证协议改过来的。
 这里的 H(m, ut) 的作用就是将 交互式 变成 非交互式,在上面的 ZKP 中,也可以用同样的方式改为非交互式的 ZKP。
 只需要注意,在 ZKP 中,如果不需要签名,则 H() 函数中 不需要 加入 m 参数,直接 c=H(ut) 即可。


二十、承诺 Commitment

1.基本概念

 承诺方案是一种加密原语,允许一个人承诺一个选定的值 (或选定的语句),同时对其他人 隐藏 它,并能够在 稍后显示承诺的值
 承诺方案的设计使得 一方在 承诺之后 无法更改价值或声明 (也就是不允许反悔)。

 承诺方案包括两个部分,发送者和接收者之间的承诺方案由两种算法组成:

  • Commit(m)
    将要承诺的值 m 作为输入,运行 PPT 算法,该算法返回 承诺 C秘密 r (C 将会传给接收者)。
  • Open(C, m, r)
    (C,m,r) 作为输入,运行 PPT 算法来 验证 承诺是否在 m 上

2. 安全要求 (Hinding 和 Binding)

  • Hinding
    给定 (C,m0, m1),从计算上很难猜测 C 承诺的消息是 m0 还是 m1
  • Binding
    给定 C,用两个不同的消息 (m1,r1) 和 (m2,r2) 打开这个承诺 C 在计算上很困难。

3. 一个安全的承诺方案

 首先设 (g, h) 是两个群元素,由 receiver 选择的。

  • Commit(m)
    输入是 m ∈ Z p m \in Z_p mZp,随机选择一个 r ∈ Z p r \in Z_p rZp,并计算:
    C = g m h r , s e c r e t = r C = g^m\ h^r, secret = r C=gm hr,secret=r
  • Open(C, m’, r’)
    输入是 ( C , m ′ , r ′ ) (C, m', r') (C,m,r),如果满足下面等式,则返回 accept
    C = g m ′ h r ′ C = g^{m'}\ h^{r'} C=gm hr

4. 证明上面的承诺方案的安全性

(略,在ppt上)


二十一、Oblivious Transfer (OT, 遗忘传输)

1. 定义

 在 OT 协议中,参与的有两方,发送方和接收方。
 该协议的目的在于,让发送方不知道发送给接收方的消息是什么消息。这个问题可以转化为:发送方不知道接收方接收了哪条消息
 一个很直接的实现方法就是,发送方发送很多条消息给接收方,接收方从中选择自己要接收的消息,这样发送方就不知道接收方接收的是哪条消息了
在这里插入图片描述

值得注意的是,接收方除了 M_i 什么都不知道。

2. ElGamal Encryption (PKE)

在这里插入图片描述

3. 1-out-of-2 OT

在这里插入图片描述
 基本过程 (下面对 M1 和 M2 的加密使用的是上面提到的 ElGamal Encryption):
在这里插入图片描述

4. 1-out-of-n OT

在这里插入图片描述

5. k-out-of-n OT

就是将上面的 1-out-of-n OT 执行 k 次。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/494883.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

用 gdbserver 调试 arm-linux 上的 AWTK 应用程序

很多嵌入式 linux 开发者都能熟练的使用 gdb/lldb 调试应用程序&#xff0c;但是还有不少朋友在调试开发板上的程序时&#xff0c;仍然在使用原始的 printf。本文介绍一下使用 gdbserver 通过网络调试开发板上的 AWTK 应用程序的方法&#xff0c;供有需要的朋友参考。 1. 下载 …

四种自动化测试模型实例及优缺点详解

一、线性测试 1.概念&#xff1a; 通过录制或编写对应应用程序的操作步骤产生的线性脚本。单纯的来模拟用户完整的操作场景。 &#xff08;操作&#xff0c;重复操作&#xff0c;数据&#xff09;都混合在一起。 2.优点&#xff1a; 每个脚本相对独立&#xff0c;且不产生…

【JetPack】Navigation知识点总结

Navigation的主要元素&#xff1a; 1、Navigation Graph&#xff1a; 一种新的XML资源文件,包含应用程序所有的页面&#xff0c;以及页面间的关系。 <?xml version"1.0" encoding"utf-8"?> <navigation xmlns:android"http://schemas.a…

链表的详解

1.单链表 1.1概念与结构 概念&#xff1a;链表是一种物理存储结构上非连续、非顺序的存储结构&#xff0c;数据元素的逻辑顺序是通过链表中的指针链接次序实现的。 现实中数据结构&#xff1a; 1.1.1结点 与顺序表不同的是&#xff0c;链表里的每节“车厢 ”都是独立申请下…

项目实战——高并发内存池

一.项目介绍 本项目——高并发内存池&#xff0c;是通过学习并模仿简化 google 的一个开源项目 tcmalloc &#xff0c;全称 Thread-Caching Malloc&#xff0c;即线程缓存的malloc&#xff0c;模拟实现了一个自己的高并发内存池&#xff0c;用于高效的多线程内存管理&#xff…

【魅力golang】之-通道

昨天发布了golang的最大特色之一--协程&#xff0c;与协程密不可分的是通道&#xff08;channel&#xff09;&#xff0c;用来充当协程间相互通信的角色。通道是一种内置的数据结构&#xff0c;所以才造就了golang强大的并发能力。今天风云来爬一爬通道的详细用法。 通道在gol…

【论文复现】农作物病害分类(Web端实现)

&#x1f4dd;个人主页&#x1f339;&#xff1a;Eternity._ &#x1f339;&#x1f339;期待您的关注 &#x1f339;&#x1f339; ❀ 农作物病害分类 概述演示效果核心逻辑使用方式部署方式 概述 农作物病害是国家粮食安全的一个主要威胁&#xff0c;是决定农作物产量和质量的…

Linux网络——网络基础

Linux网络——网络基础 文章目录 Linux网络——网络基础一、计算机网络的发展背景1、网络的定义&#xff08;1&#xff09; 独立模式&#xff08;2&#xff09;网络互联 2、局域网 LAN3、广域网 WAN4、比较局域网和广域网5、扩展 —— 域域网和互联网 二、协议1、协议的概念2、…

Reactor

文章目录 正确的理解发送double free问题 1.把我们的reactor进行拆分2.链接管理3.Reactor的理论 listensock只需要设置_recv_cb&#xff0c;而其他sock&#xff0c;读&#xff0c;写&#xff0c;异常 所以今天写nullptr其实就不太对&#xff0c;添加为空就没办法去响应事件 获…

Linux -- 线程的优点、pthread 线程库

目录 线程的优点 pthread 线程库 前言 认识线程库 简单验证线程的独立栈空间 线程的优点 与进程之间的切换相比&#xff0c;线程之间的切换需要操作系统做的工作要少得多。 调度进程时&#xff0c;CPU 中有一个 cache&#xff08;缓存&#xff0c;提高运行效率&#xff0…

centos权限大集合,覆盖多种权限类型,解惑权限后有“. + t s”问题!

在 CentOS 系统中&#xff0c;权限管理是操作系统的核心功能之一&#xff0c;确保不同用户和进程对文件、目录以及设备的访问被合理控制。 权限系统主要包括传统的 Unix 权限模型、特殊权限&#xff08;SetUID、SetGID、Sticky 位&#xff09;和更精细的访问控制列表&#xff…

pyinstaller打包资源文件和ini配置文件怎么放

1.如果出现无法成功完成操作&#xff0c;因为文件包含病毒或潜在的垃圾软件&#xff0c;说明你的版本太高&#xff0c;更换pyinstaller版本。 pip install pyinstaller6.2.02.一开始打包的时windows下尽量选择打成文件夹的并且要是带命令行窗口的&#xff0c;容易查看错误。 …

五种msvcr100.dll丢失的解决方法,有效修复msvcr100.dll丢失错误!跟msvcr100.dll错误问题说拜拜!

在日常电脑使用过程中&#xff0c;尤其是运行某些应用程序或游戏时&#xff0c;可能会遇到“msvcr100.dll丢失”的错误提示。这个动态链接库&#xff08;DLL&#xff09;文件是Microsoft Visual C Redistributable for Visual Studio 2010的一部分&#xff0c;对于许多程序的正…

【前端】入门指南:Vue中使用Node.js进行数据库CRUD操作的详细步骤

&#x1f4a5; 欢迎来到我的博客&#xff01;很高兴能在这里与您相遇&#xff01; 首页&#xff1a;GPT-千鑫 – 热爱AI、热爱Python的天选打工人&#xff0c;活到老学到老&#xff01;&#xff01;&#xff01;导航 - 人工智能系列&#xff1a;包含 OpenAI API Key教程, 50个…

【网络安全产品大调研系列】1. 漏洞扫描

1. 为什么会出现漏扫技术&#xff1f; 每次黑客攻击事件进行追溯的时候&#xff0c;根据日志分析后&#xff0c;我们往往发现基本都是系统、Web、 弱口令、配置这四个方面中的其中一个出现的安全问题导致黑客可以轻松入侵的。 操作系统的版本滞后&#xff0c;没有更新补丁&am…

Java爬虫:速卖通(AliExpress)商品评论获取指南

引言 在当今的电商时代&#xff0c;商品评论对于消费者决策有着举足轻重的影响。速卖通&#xff08;AliExpress&#xff09;&#xff0c;作为全球知名的在线零售平台之一&#xff0c;拥有海量的商品评论数据。对于商家而言&#xff0c;能够高效地获取这些评论数据&#xff0c;…

AIDD - 探索语言模型在药物分子生成方面的应用

AIDD - 探索语言模型在药物分子生成方面的应用 今天给大家讲一篇2024年10月在nature communications上发表的一篇关于分子生成的文章。现有的分子生成方法中往往只关注药物的特定属性&#xff0c;导致其适用性受限。因此作者提出了TamGen方法&#xff0c;用于针对特定靶点的分子…

【每日学点鸿蒙知识】AVCodec、SmartPerf工具、web组件加载、监听键盘的显示隐藏、Asset Store Kit

1、AVCodec 硬解咨询&#xff1f; 在做视频播放硬解适配&#xff0c;这是 demo&#xff1a;https://gitee.com/openharmony-sig/ohos_videocompressor/blob/master/videoCompressor/src/main/cpp/video/decoder/VideoDec.cpp 请问&#xff1a; int32_t VideoDec::SetOutputS…

怎么设置电脑密码?Windows和Mac设置密码的方法

为电脑设置密码是保护个人信息安全的重要措施。无论是Windows系统还是MacOS系统&#xff0c;设置密码的步骤都相对简单&#xff0c;但需要根据不同的操作系统选择不同的方法。 一、Windows系统电脑密码设置 方法一&#xff1a;通过控制面板设置账户密码 点击桌面左下角的“开…

谷歌浏览器的网络安全检测工具介绍

作为全球最受欢迎的浏览器之一&#xff0c;谷歌浏览器不仅提供了快速、便捷的浏览体验&#xff0c;还内置了一系列强大的网络安全检测工具&#xff0c;帮助用户识别潜在的网络威胁&#xff0c;保护个人隐私和数据安全。本文将详细介绍谷歌浏览器中的几项关键网络安全检测功能&a…