密码学期末考试笔记

文章目录

  • 公钥加密之前的部分 (非重点,关注工具怎么用,和性质)
  • 一、对称加密 (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.mzph.cn/news/890563.shtml

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

相关文章

workman服务端开发模式-应用开发-vue-element-admin挂载websocket

一、项目根目录main.js添加全局引入 import /utils/websocket 二、在根目录app.vue 中初始化WebSocket连接 <template><div id"app"><router-view /></div> </template><script>import store from ./store export default {n…

我的 2024 年终总结

2024 年&#xff0c;我离开了待了两年的互联网公司&#xff0c;来到了一家聚焦教育机器人和激光切割机的公司&#xff0c;没错&#xff0c;是一家硬件公司&#xff0c;从未接触过的领域&#xff0c;但这还不是我今年最重要的里程碑事件 5 月份的时候&#xff0c;正式提出了离职…

信创源代码加密的答案:信创沙箱

在信息化与工业化融合创新&#xff08;信创&#xff09;的背景下&#xff0c;企业面临着前所未有的数据安全挑战。SDC沙盒技术以其独特的隔离和保护机制&#xff0c;为信创环境提供了强有力的支持。以下是SDC沙盒在信创支持方面的优势&#xff0c;这些优势体现了其在保护企业数…

Leecode刷题C语言之根据第k场考试的分数排序

执行结果:通过 执行用时和内存消耗如下&#xff1a; int gk 0;int compare(const void* a, const void* b) {int* ua *(int**)a;int* ub *(int**)b;return ub[gk] - ua[gk]; }int** sortTheStudents(int** score, int scoreSize, int* scoreColSize, int k, int* returnSiz…

Linux 下SVN新手操作手册

下面来介绍Linux 下 SVN操作方法&#xff1a; 1、SVN的安装 Centos 7 安装Subversion sudo yum -y install subversion Ubuntu 安装Subversion sudo apt-get install subversion 自定义安装&#xff0c;官方地址&#xff1a;https://subversion.apache.org/ 2、SVN的使用…

ArcGIS Pro 3.4新功能3:空间统计新特性,基于森林和增强分类与回归,过滤空间自相关

目录 应用 1&#xff1a;它是相关性还是托布勒第一定律&#xff1f; 应用 2&#xff1a;将空间带入非空间模型 结论 在 ArcGIS Pro 3.4 中&#xff0c;我们在新的空间组件实用程序&#xff08;Moran 特征向量&#xff09;工具集中发布了一个新工具 - 从字段过滤空间自相关。…

自定义一个maven骨架 | 最佳实践

自定义一个maven骨架 | 最佳实践 目的&#xff1a;将一个多模块项目的基础结构制作成maven骨架&#xff0c;实现项目的快速构建&#xff0c;风格统一 公司内部会制定自己的规范及包结构。当创建新项目的时候就需要选择骨架&#xff0c;即可生成包结构。 Archetype都为不同类型的…

CTFHUB-web进阶(Bypassdisable_function)

LD_PRELOAD 来到首页发现有一句话直接就可以用蚁剑连接 根目录里有/flag但是不能看;命令也被ban了就需要绕过了 绕过工具在插件市场就可以下载 如果进不去的话 项目地址: #本地仓库;插件存放 antSword\antData\plugins 绕过选择 上传后我们点进去可以看到多了一个绕过的文件;…

workman服务端开发模式-GatewayWorker的使用

一、GatewayWorker介绍 Workerman是一个使用PHP开发的高性能组件&#xff0c;用于构建高性能的异步并发TCP、UDP、Unix Socket、HTTP、Websocket服务。 GatewayWorker是基于Workerman开发的一套TCP长连接的应用框架&#xff0c;实现了单发、群发、广播等接口&#xff0c;内置了…

oracle linux8.10+ oracle 23ai安装

介质准备&#xff1a; 数据库23ai https://edelivery.oracle.com 上述网站下载基础版本&#xff0c;本次未使用。 本次是安装了带补丁的版本&#xff1a; Database Release Update 23.6.0.24.10 GoldImage表示带补丁用于直接安装的软件包 查找888.1对应Primary Note for …

《软件设计的哲学》阅读摘要之设计原则

《软件设计的哲学》&#xff08;A Philosophy of Software Design&#xff09;是一本在软件架构与设计领域颇具影响力的书籍&#xff0c;作者 John Ousterhout 在书中分享了诸多深刻且实用的软件设计理念。书中列举的这些设计原则&#xff0c;汇聚了作者丰富的实战经验与深邃的…

uniApp打包H5发布到服务器(docker)

使用docker部署uniApp打包后的H5项目记录&#xff0c;好像和VUE项目打包没什么区别... 用HX打开项目&#xff0c;首先调整manifest.json文件 开始用HX打包 填服务器域名和端口号~ 打包完成后可以看到控制台信息 我们可以在web文件夹下拿到下面打包好的静态文件 用FinalShell或…

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

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

Apache Log4j漏洞复现

所用环境 宝塔云服务器 log4j2 是Apache的⼀个java日志框架&#xff0c;我们借助它进行日志相关操作管理&#xff0c;然而在2021年末log4j2爆出了远程代码执行漏洞&#xff0c;属于严重等级的漏洞。 apache log4j通过定义每⼀条日志信息的级别能够更加细致地控制日志⽣成地过…

自动驾驶控制算法-横向误差微分方程LQR前馈控制

本文是学习自动驾驶控制算法第六讲 前馈控制与航向误差以及前两节的学习笔记。 1 横向误差微分方程 以规划的轨迹作为自然坐标系&#xff0c;计算自车在轨迹上的投影点&#xff0c;进而计算误差&#xff1a; 如图所示&#xff0c;横向误差为 d d d&#xff0c;航向误差为 θ…

Apache RocketMQ 5.1.3安装部署文档

官方文档不好使&#xff0c;可以说是一坨… 关键词&#xff1a;Apache RocketMQ 5.0 JDK 17 废话少说&#xff0c;开整。 1.版本 官网地址&#xff0c;版本如下。 https://rocketmq.apache.org/download2.配置文件 2.1namesrv端口 在ROCKETMQ_HOME/conf下 新增namesrv.pro…

Google Cloud Kubernetes Anthos是什么,和Istio有什么关联

Google Cloud Platform (GCP) Kubernetes Anthos 是 Google 推出的一种多云管理平台&#xff0c;基于 Kubernetes&#xff0c;旨在帮助企业在多个云环境中管理和运行容器化应用程序。 https://cloud.google.com/blog/topics/hybrid-cloud/5-frequently-asked-questions-about-…

多摩川编码器协议

多摩川编码器是一种常用的绝对值编码器&#xff0c;其协议基于485硬件接口的标准NRZ协议&#xff0c;通讯波特率为固定的2.5Mbps。以下是多摩川编码器协议的详细说明&#xff1a; 硬件接口 多摩川编码器使用RS485接口进行通信&#xff0c;接口定义如下&#xff1a; 5V供电&…

AI新书推荐:深度学习和大模型原理与实践(清华社)

本书简介 在这个信息爆炸、技术革新日新月异的时代&#xff0c;深度学习作为人工智能领域的重要分支&#xff0c;正引领着新一轮的技术革命。《深度学习和大模型原理与实践》一书&#xff0c;旨在为读者提供深度学习及其大模型技术的全面知识和实践应用的指南。 本书特色在于…

webrtc音频模块(三) windows Core Audio API及声音的播放

在前面介绍了ADM(Audio Device Module)&#xff0c;它用于抽象音频设备管理和音频数据采集/播放接口。windows的实现是AudioDeviceWinowCode&#xff0c;它封装了Core Audio APIs实现了对音频设备的操作。 Core Audio APIs windows提供了多种音频操作API&#xff0c;比如最常…