安全多方计算之八:Mix-Match

Mix-Match

  • 1. 混合网络
    • 基于ElGamal加密方案的混合网络
  • 2. PET协议
  • 3. Mix-Match协议
  • 4. 百万富翁问题的Mix-Match解决方案

M.Jakobsson和A.Juels提出了基于Mix-Match的安全多方计算协议构造方法,该类协议包括Mix与Match两个阶段:

  • Mix阶段:通过构造混合网络,生成盲表(Blinded table)
  • Match阶段:通过执行PET协议进行查表,得到对应的输出

最后参与者共同解密输出,该类协议参与者之间所需传输的消息量较少,对于逻辑运算和Bit运算较为高效。

1. 混合网络

从直观上讲,混合网络是一个多方协议,协议的输入是一个密文表,该密文表中的密文与一组明文有着一一对应的关系。协议将这个密文表随机置换后得到另外一个密文表,输出的密文表和相同的一组明文也是一一对应的。即输出的密文表是输入密文表的随机置换

混合网络的安全性在于攻击者无法确定输出密文表中的某一条密文与输入密文表中的哪一条密文是对应的。

基于ElGamal加密方案的混合网络

假定参与混合网络的 n n n个参与者都共享一个具备身份认证的广播信道(或存在一个公告板),将一个ElGamal加密方案的公钥 y y y公布给每个参与者。由参与者集合 P P P的某一个子集充当混合服务器(Mix Server)的角色,与 y y y对应的私钥使用 ( t , n ) (t,n) (t,n)门限方案在混合服务器中分享。

混合网络的参与者将自己的输入广播或传送到公告板上,混合网络的输入是一个ElGamal的密文序列 ( α 1 , β 1 ) , ( α 2 , β 2 ) , ⋯   , ( α k , β k ) (\alpha_1,\beta_1),(\alpha_{2},\beta_{2}),\cdots,(\alpha_{k},\beta_{k}) (α1,β1),(α2,β2),,(αk,βk)混合服务器依次独立地将混合网络输入的密文序列进行再次加密,随机置换顺序,混合网络的输出也是一个ElGamal密文序列 ( α σ ( 1 ) ′ ′ , β σ ( 1 ) ′ ) , ( α σ ( 2 ) ′ ′ , β σ ( 2 ) ′ ) , ⋯   , ( α σ ( k ) ′ , β σ ( k ) ) (\alpha'_{\sigma(1)'},\beta'_{\sigma(1)}),(\alpha'_ {\sigma(2)'},\beta'_{\sigma(2)}), \cdots,(\alpha_{\sigma(k)'},\beta_{\sigma(k)}) (ασ(1),βσ(1)),(ασ(2),βσ(2)),,(ασ(k),βσ(k))其中 ( α i ′ ′ , β i ′ ) (\alpha'_{i'}, \beta'_ {i}) (αi,βi) 表示 ( α i , β i ) (\alpha_{i},\beta_{i}) (αi,βi) 的随机再次加密结果, σ \sigma σ 表示在 k k k个元素上的随机置换。

2. PET协议

假设 ( α , β ) (\alpha,\beta) (α,β) ( α ′ , β ′ ) (\alpha',\beta') (α,β)分别表示 m 1 , m 2 m_{1},m_{2} m1,m2 使用ElGamal加密方案加密后的密文,参与相同明文测试协议的参与者在不解密的情况下通过执行协议判断 ( α , β ) (\alpha,\beta) (α,β) ( α ′ , β ′ ) (\alpha',\beta') (α,β)所对应的明文是否相同。

考虑密文 ( ε , ζ ) = ( α / α ′ , β / β ′ ) (\varepsilon,\zeta) = (\alpha/\alpha',\beta/\beta') (ε,ζ)=(α/α,β/β),如果 ( α , β ) ≡ ( α ′ , β ′ ) (\alpha, \beta)\equiv(\alpha',\beta') (α,β)(α,β),则 ( ε , ζ ) ( \varepsilon, \zeta) (ε,ζ) 表示明文 1 1 1加密后的密文。

PET(Plaintext Equivalence Test) 协议的基本思路是让协议的参与者 P i P_{i} Pi使用如下的方法隐藏 ( ε , ζ ) (\varepsilon, \zeta) (ε,ζ):

P i P_{i} Pi选择 z i ∈ Z q z_{i} \in Z_{q} ziZq ,然后计算 ( ε i , ζ i ) = ( ε z i , ζ z i ) (\varepsilon_ {i}, \zeta_ {i}) = (\varepsilon^{z_{i}},\zeta^{z_{i}}) (εi,ζi)=(εzi,ζzi)

  • 如果 ( α , β ) ≡ ( α ′ , β ′ ) (\alpha, \beta)\equiv(\alpha',\beta') (α,β)(α,β) ( ε , ζ ) (\varepsilon, \zeta) (ε,ζ)代表 1 1 1加密后的密文,则 ( ε i , ζ i ) (\varepsilon_ {i}, \zeta_ {i}) (εi,ζi)仍是 1 1 1加密后的密文
  • 如果 ( α , β ) ≠ ( α ′ , β ′ ) (\alpha, \beta)\neq (\alpha',\beta') (α,β)=(α,β) ( ε , ζ ) (\varepsilon, \zeta) (ε,ζ)代表 m 1 / m 2 m_{1}/m_{2} m1/m2 加密后的密文,由于 z i z_{i} zi 是一个随机数,所以 ( ε i , ζ i ) (\varepsilon_ {i}, \zeta_ {i}) (εi,ζi)是一个随机数加密后的密文。

执行过程如下:

  • (1)每个协议参与者 P i P_ {i} Pi选择 z i z_ {i} zi P i P_{i} Pi 对选择的 z i z_{i} zi公布一个Pedersen承诺, C i = g z i h r i C_{i}=g^{z_i}h^{r_i} Ci=gzihri,其中 r i ∈ Z q r_{i} \in Z_{q} riZq h h h Z q Z_{q} Zq的一个生产元, log ⁡ g h \log_{g}h loggh对所有的参与者都是未知的。
  • (2)每个 P i P_ {i} Pi计算 ( ε i , ζ i ) = ( ε z i , ζ z i ) (\varepsilon_ {i}, \zeta_ {i}) = (\varepsilon^{z_{i}},\zeta^{z_{i}}) (εi,ζi)=(εzi,ζzi),然后广播 ( ε i , ζ i ) (\varepsilon_ {i}, \zeta_ {i}) (εi,ζi)
  • (3)每个 P i P_ {i} Pi向其他参与者证明 ( ε i , ζ i ) (\varepsilon_ {i}, \zeta_{i}) (εi,ζi)是与 C i C_{i} Ci 相关的并且是正确计算的。需要使用零知识证明协议证明他知道一个二元组 ( z i , r i ) (z_ {i}, r_{i}) (zi,ri),使得 C i = g z i h r i C_{i}=g^{z_i}h^{r_i} Ci=gzihri ,并且 ε i = ε z i , ζ i = ζ z i \varepsilon_{i}=\varepsilon ^ {z_ {i}},\zeta_{i}=\zeta^{z_i} εi=εzi,ζi=ζzi
  • (4)协议的参与者共同计算 ( γ , δ ) = ( ∏ n i = 1 ε i , ∏ n i = 1 ζ i (\gamma,\delta)=(\prod^{i=1}_{n}\varepsilon_ {i}, \prod^{i=1}_{n}\zeta_{i} (γ,δ)=(ni=1εi,ni=1ζi,并解密 ( γ , δ ) (\gamma,\delta) (γ,δ)
  • (5)如果解密结果是 1 1 1,则 ( α , β ) ≡ ( α ′ , β ′ ) (\alpha, \beta)\equiv(\alpha',\beta') (α,β)(α,β);如果解密结果不为 1 1 1,则 ( α , β ) ≠ ( α ′ , β ′ ) (\alpha, \beta)\neq (\alpha',\beta') (α,β)=(α,β)

3. Mix-Match协议

使用 B i = { b i 1 , b i 2 , ⋯   , b i k } B_{i}=\{b_{i1},b_{i2},\cdots,b_ {ik}\} Bi={bi1,bi2,,bik}表示参与者 P i P_{i} Pi的输入,基于Mix-Match的安全多方计算协议目标就是正确计算
f ( B 1 , B 2 , ⋯   , B n ) f(B_{1}, B_ {2},\cdots,B_{n}) f(B1,B2,,Bn),同时保证 P i P_{i} Pi的输入 B i B_{i} Bi的保密性。

执行步骤如下:

(1)构建门电路

计算之前,所有协议的参与者将需计算的函数 f f f用一个由若干门电路组成的单向图 C f C_f Cf来表示。假设 C f C_{f} Cf N N N个门电路组成,记作 G 1 , G 2 , ⋯   , G N G_ {1},G_{2},\cdots, G_{N} G1,G2,,GN 。不失一般性,假设每个门电路 G i + 1 G_{i+1} Gi+1都比 G i G_{i} Gi深,也就是说每个门电路的计算应该按照顺序从 G 1 G_{1} G1 G N G_{N} GN G N G_{N} GN的输出就是整个电路 C f C_{f} Cf的输出。

(2)生成逻辑表

为描述简单起见,假定所有的门电路 G i G_{i} Gi都只有两个输入值,一个输出值,并且输入值和输出值都可以用一个位来表示。

使用逻辑表 T i T_{i} Ti 表示 C f C_{f} Cf中的门电路 G i G_{i} Gi,由于假定 G i G_{i} Gi都是二进制的门电路,则 T i T_{i} Ti是一个4行3列的表。例如, G i G_{i} Gi是一个AND门,则 T i T_{i} Ti如下表所示。

左输入右输入输出
000
010
100
111

可以看出, T i T_{i} Ti为一个标准的真值表,包含所有可能的输入与输出。 T i ( u , v ) T_{i}(u,v) Ti(u,v)表示逻辑表 T i T_{i} Ti u u u v v v列的值。

(3)输入阶段

所有协议参与者中使用秘密分享方案分享系统的私钥,系统的公钥是公开的。协议参与者 P i P_i Pi将自己的输入 B i B_i Bi使用公钥随机加密(如ElGamal加密方案),广播加密结果(或贴上公告牌)。

(4)混合阶段(Mix)

使用MN对 T i T_{i} Ti进行混合,隐秘,随机置换。经过MN作用后,输出盲表 T 1 ˉ , T 2 ˉ , ⋯   , T N ˉ \bar{T_{1}},\bar{T_{2}},\cdots,\bar{T_{N}} T1ˉ,T2ˉ,,TNˉ T i ˉ \bar{T_{i}} Tiˉ表示经过MN混合网络加密、隐秘、随机置换后的逻辑盲表(只有随机行置换,列的顺序不变)。

(5)匹配阶段(Match)

每个协议参与者使用PET协议将加密的输入与混合后的逻辑表进行比较,即查表。和普通的查表不一样的地方在于,Match比较的是密文,所以要使用PET协议,查完一个盲表即是计算了一个门电路,每个参与者依次计算所有的门电路即可得到函数的输出,这个输出也是加密的。

对于组成 C f C_{f} Cf的门电路 G 1 , G 2 , ⋯   , G N G_{1},G_ {2},\cdots,G_ {N} G1,G2,,GN,协议的每个参与者 P i P_{i} Pi独立的进行如下计算:假设 l i l_{i} li r i r_{i} ri分别表示 G i G_{i} Gi输入的密文, P i P_{i} Pi使用PET协议对二元组 ( l i , r i ) (l_{i},r_{i}) (li,ri) T i ˉ \bar{T_{i}} Tiˉ中的每一行的前两项进行比较。

如果 P E T ( l i , T i ˉ [ u , 1 ] ) = 1 PET(l_{i},\bar{T_{i}}[u,1])=1 PET(li,Tiˉ[u,1])=1 P E T ( r i , T i ˉ [ u , 2 ] ) = 1 PET(r_{i},\bar{T_{i}}[u,2])=1 PET(ri,Tiˉ[u,2])=1,则 G i G_{i} Gi的输出应该是 T i ˉ [ u , 3 ] \bar{T_{i}}[u,3] Tiˉ[u,3] P i P_{i} Pi分别对 u = 1 , 2 , 3 , ⋯ u=1,2,3,\cdots u=1,2,3,进行比较,直到发现匹配的一行为止。

(6)输出阶段

计算完 G N G_{N} GN后, P i P_{i} Pi得到了 O N O_{N} ON,即 G N G_{N} GN的输出,这个输出结果也是 f f f的输出结果。所有协议的参与者 P i P_{i} Pi共同解密 O N O_{N} ON,即可得到正确的计算结果。

如果参与者 P i P_{i} Pi提供了错误的输入,即该参与者所提供的输入密文不对应任何一个有效的位,则匹配一个 T i ˉ \bar{T_{i}} Tiˉ就会找不到匹配的行,由此可发现 P i P_{i} Pi提供了错误的输入。其他参与者发现 P i P_{i} Pi有欺诈行为后,可将 P i P_{i} Pi驱逐出协议的执行,有正确性行协议的参与者一起重新执行协议。Mix-Match 协议的安全性在很大程度上依赖于混合网络的安全性。

Mix-Match协议可以比较容易地扩展到非二进制门电路的形式,如果 G i G_{i} Gi j j j个输入,则 G i G_{i} Gi对应的逻辑表的输人部分也有 j j j列,相应的, T i T_{i} Ti应该有 2 j 2^{j} 2j行。如果 G i G_{i} Gi需要不止一个输出,则扩展 G i G_{i} Gi对应的逻辑表 T i T_{i} Ti,使 T i T_{i} Ti的输出部分具有多个值即可。如果 C f C_{f} Cf需要多个值的输出,则只需简单地将最后的若干门电路 G N − k ′ , G N − k + 1 ′ , … , G N G_{N-k^{\prime}},G_{N-k+1'}, \ldots, G_{N} GNk,GNk+1,,GN的输出作为 C f C_{f} Cf的输出,在输出阶段进行多次共同解密即可。

使用Mix-Match的协议所需要传输的信息量较少,广播传输的信息量是 O ( n N ) Ο(nN) O(nN),其中 n n n是协议参与者的数量, N N N是需要计算的函数被表示为门电路之后电路中门的数量。

4. 百万富翁问题的Mix-Match解决方案

问题描述

Alice拥有财富为A,Bob拥有财富为B,其中 A = a 1 a 2 , B = b 1 b 2 A=a_1a_2,B=b_1b_2 A=a1a2,B=b1b2,Alice与Bob需要在不泄露 A , B A,B A,B的前提下,计算 F ( A , B ) F(A,B) F(A,B) F ( A , B ) = { 0        i f    A = B 1        i f    A > B 2        i f    A < B F(A,B)= \begin{cases} 0 \;\;\; if \; A=B \\ \\1 \;\;\; if \; A>B \\ \\2 \;\;\; if \; A<B \end{cases} F(A,B)= 0ifA=B1ifA>B2ifA<B

(1)构建门电路

F ( A , B ) F(A,B) F(A,B)可以通过包含3个门 G 1 , G 2 , G 3 G_1,G_2,G_3 G1,G2,G3的两层门电路来构造。其中 G 1 , G 2 G_1,G_2 G1,G2构成第一层, G 1 G_1 G1的输入为 a 1 , b 1 a_1,b_1 a1,b1,输出为 o 1 o_1 o1 G 2 G_2 G2的输入为 a 2 , b 2 a_2,b_2 a2,b2,输出为 o 2 o_2 o2 G 3 G_3 G3构成第二层,输入为 o 1 , o 2 o_1,o_2 o1,o2,输出为 F ( A , B ) F(A,B) F(A,B)

在这里插入图片描述
(2)生成逻辑表

G 1 , G 2 , G 3 G_1,G_2,G_3 G1,G2,G3生成逻辑表 T 1 , T 2 , T 3 T_1,T_2,T_3 T1,T2,T3(包含所有输入及对应输出),其中 o 1 , o 2 o_1,o_2 o1,o2的输出逻辑与 F ( A , B ) F(A,B) F(A,B)一致。 o i ( i = 1 , 2 ) = { 0        i f    a i = b i 1        i f    a i > b i 2        i f    a i < b i o_i(i=1,2) = \begin{cases} 0 \;\;\; if \; a_i=b_i \\ \\1 \;\;\; if \; a_i>b_i \\ \\2 \;\;\; if \; a_i<b_i \end{cases} oi(i=1,2)= 0ifai=bi1ifai>bi2ifai<bi针对逻辑表 T 1 , T 2 , T 3 T_1,T_2,T_3 T1,T2,T3,需要对其进行编码,确保每组输入都是被唯一定义的。编码规则如下:

L i L_i Li L i ′ {L_i}' Li R i R_i Ri R i ′ {R_i}' Ri F ( A , B ) F(A,B) F(A,B) e ( F ( A , B ) ) e(F(A,B)) e(F(A,B))
010407
121518
232629

如,针对 G 1 G_1 G1的输入 a 1 = 0 , b 1 = 0 a_1=0,b_1=0 a1=0,b1=0,对应表中的 L i = 0 , R i = 0 L_i=0,R_i=0 Li=0,Ri=0将会被分别编码为 L i ′ = 1 , R i ′ = 4 {L_i}'=1,{R_i}'=4 Li=1,Ri=4。因此针对 a 1 = 0 , b 1 = 0 a_1=0,b_1=0 a1=0,b1=0,将其转换为对应编码的乘积 1 × 4 = 4 1\times 4 =4 1×4=4

在这里插入图片描述
(3)输入阶段

Alice与Bob使用秘密分享方案分享系统的私钥,系统的公钥是公开的。并将自己的输入 A = a 1 a b , B = b 1 b 2 A=a_1a_b,B=b_1b_2 A=a1ab,B=b1b2使用公钥随机加密,广播加密结果(或贴上公告牌)。

(4)混合阶段(Mix)

使用MN对 T 1 , T 2 , T 3 T_{1},T_{2},T_{3} T1,T2,T3进行混合,隐秘,随机置换,输出盲表 T 1 ˉ , T 2 ˉ , T N ˉ \bar{T_{1}},\bar{T_{2}},\bar{T_{N}} T1ˉ,T2ˉ,TNˉ

(5)匹配阶段(Match)

Alice与Bob使用PET协议将加密的输入与混合后的逻辑表进行比较,依次计算所有的门电路,即得到对应的输出。

(6)输出阶段

Alice与Bob然后共同解密得到结果。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

详解LinkedHashSet和LinkedHashMap

目录 一.LinkedHashSet和LinkedHashMap 1.基本介绍 2.与HashSet和HashMap的区别 3.LinkedHashSet和LinkedHashMap具体的方法 1.LinkedHashSet 2.LinkedHashMap 二.模拟代码实现LinkedHashMap 三.具体应用 一.LinkedHashSet和LinkedHashMap 1.基本介绍 顾名思义,根据名…

gpt4国内可以使用吗-chatgpt国内使用的软件排行榜

gpt4国内怎么用&#xff1f; 目前 OpenAI 尚未正式发布 GPT-4 模型&#xff0c;因此目前尚无法直接使用它。预计当GPT-4发布时&#xff0c;将通过OpenAI平台提供API以供使用者调用&#xff0c;同时新的API接口可能需要在不同国家/地区进行不同程度的注册或许可等手续。 当Ope…

php 修改服务器文件上传大小限制

输入docker cp mlfnginx:/etc/nginx/conf.d/pl.conf .输入vimpl.conf 修改nginx配置文件移动到图中所示位置client_max_body_size 按键盘”i”对图中的xxM修改成需要的大小&#xff0c;然后按”esc”&#xff0c;在按”:wq”&#xff0c;最后按回车键输入docker cp ./pl.con…

寻找2020 (蓝桥杯) JAVA

题目描述 小蓝有一个数字矩阵&#xff0c;里面只包含数字0 和2。小蓝很喜欢2020&#xff0c;他想找到这个数字矩阵中有多少个2020 。 小蓝只关注三种构成2020 的方式&#xff1a; 同一行里面连续四个字符从左到右构成2020。 同一列里面连续四个字符从上到下构成2020。 在一条从…

南京邮电大学通达学院《数学实验》MATLAB实验答案

南京邮电大学通达学院《数学实验》MATLAB实验答案一 声明二 MATLAB下载三 南京邮电大学通达学院《数学实验》练习一1.11.21.31.41.51.61.71.81.91.101.11![请添加图片描述](https://img-blog.csdnimg.cn/a3d3a094f6ea4dff85c0fd0bf40bbb44.jpeg)四月维夏&#xff0c;六月徂暑。…

百度文心一言可以完胜ChatGPT的4点可能性

文心一言&#xff0c;百度全新一代知识增强大语言模型&#xff0c;文心大模型家族的新成员&#xff0c;能够与人对话互动&#xff0c;回答问题&#xff0c;协助创作&#xff0c;高效便捷地帮助人们获取信息、知识和灵感。但说实话&#xff0c;很多人拿他与ChatGPT相对比&#x…

项目经理注意!掌握这5个关键点,提升效率80%!

很多项目在刚接手时&#xff0c;遇到的问题种类多并且复杂&#xff0c;乍一看很令人头疼&#xff0c;但仔细梳理下来好像也没有那么难&#xff0c;只需要厘清以下5个关键点&#xff1a; 一、做好项目的五个关键 具体的思路就是: 明确事->找对人->排计划->定机制->…

Bulk vector export as SLD and GeoJson

QGIS插件&#xff0c;可以导出所有图层的GeoJson数据格式和SLD图层样式文件。 缺点&#xff1a;导出的文件名和图层名称不对应。

数据结构与算法:滑动窗口类题目总结

滑动窗口类型题目解题框架总结&#xff1a; class Solution:def problemName(self, s: str) -> int:# Step 1: 定义需要维护的变量们 (对于滑动窗口类题目&#xff0c;这些变量通常是最小长度&#xff0c;最大长度&#xff0c;或者哈希表)x, y ..., ...# Step 2: 定义窗口…

Node.js学习笔记——Node.js模块化

一、介绍 1.1.什么是模块化与模板&#xff1f; 将一个复杂的程序文件依据一定规则&#xff08;规范&#xff09;拆分成多个文件的过程称之为模块化。 其中拆分出的每个文件就是一个模块&#xff0c;模块的内部数据是私有的&#xff0c;不过模块可以暴露内部数据以便其他模块…

【树与二叉树】二叉树顺序结构实现以及堆的概念及结构--详解介绍

​ ​&#x1f4dd;个人主页&#xff1a;Sherry的成长之路 &#x1f3e0;学习社区&#xff1a;Sherry的成长之路&#xff08;个人社区&#xff09; &#x1f4d6;专栏链接&#xff1a;数据结构 &#x1f3af;长路漫漫浩浩&#xff0c;万事皆有期待 文章目录1. 二叉树顺序结构2.…

Elasticsearch:Elasticsearch 容量规划

Elasticsearch 是一个可扩展的分布式系统&#xff0c;可为企业搜索、日志聚合、可观察性和安全性提供解决方案。 Elastic 解决方案建立在一个单一、灵活的技术堆栈之上&#xff0c;可以部署在任何地方。 要在自托管或云端运行生产环境 Elasticsearch&#xff0c;需要规划基础架…

Linux硬链接与软链接

图示区别 硬链接 具有相同inode节点号的多个文件互为硬链接文件&#xff1b;删除硬链接文件或者删除源文件任意之一&#xff0c;文件实体并未被删除&#xff1b;只有删除了源文件和所有对应的硬链接文件&#xff0c;文件实体才会被删除&#xff1b;硬链接文件是文件的另一个入…

贯穿设计模式第四话--里氏替换原则

&#x1f973;&#x1f973;&#x1f973; 茫茫人海千千万万&#xff0c;感谢这一刻你看到了我的文章&#xff0c;感谢观赏&#xff0c;大家好呀&#xff0c;我是最爱吃鱼罐头&#xff0c;大家可以叫鱼罐头呦~&#x1f973;&#x1f973;&#x1f973; 从今天开始&#xff0c;将…

关于位运算的巧妙性:小乖,你真的明白吗?

一.位运算的概念什么是位运算&#xff1f;程序中的所有数在计算机内存中都是以二进制的形式储存的。位运算就是直接对整数在内存中的二进制位进行操作。位运算就是直接操作二进制数&#xff0c;那么有哪些种类的位运算呢&#xff1f;常见的运算符有与(&)、或(|)、异或(^)、…

软硬结合板设计,过孔到软板区域的间距设计多少合适

一博高速先生成员&#xff1a;王辉东 十里樱花香无边&#xff0c; 满枝芳华尽娇艳。 春风不知少年心&#xff0c; 红粉树下看如烟。 周六的下午&#xff0c;赵理工推开窗&#xff0c;一阵香风袭来&#xff0c;空气中氤氲着樱花的气息。樱花开得浪漫&#xff0c;恰似少年的…

[致敬未来的攻城狮计划 1] 使用 “FSP Configuration”(FSP 配置)透视配置器设置运行环境

开启攻城狮的成长之旅&#xff01;这是我参与的由 CSDN博客专家 架构师李肯&#xff08;http://yyds.recan-li.cn&#xff09;和 瑞萨MCU &#xff08;瑞萨电子 (Renesas Electronics Corporation) &#xff09; 联合发起的「 致敬未来的攻城狮计划 」的第 4 天&#xff0c;点击…

动态规划-不相交的线

动态规划-不相交的线 前言 动态规划中存在一类问题&#xff0c;它涉及到两个数组或链表&#xff0c;需要求解出两个数组中的最长公共子序列&#xff0c;如果要求解两个数组的最长公共子序列。如果采取最原始的方式&#xff0c;选择对第一个数组中的元素的不同排列进行有序组合…

Excel:vlookup函数

Excel:VlookUp函数VlookUp函数VlookUp函数 首先还是先放官方文档的参考&#xff1a;VLOOKUP 函数 Vlookup函数参数&#xff1a; VLOOKUP(lookup_ value, table_ array, col index_ num, [range_ lookup]) lookup_ value&#xff1a;要查找的内容&#xff1b; table_ array&a…

CloudCompare 二次开发(6)——插件中拖拽添加Qt窗口(区域生长算法为例)

目录 一、概述二、插件制作三、Cmake编译四、插件代码五、结果展示一、概述 手动拖拽的方式搭建Qt对话框界面的制作流程,以PCL中的点云区域生长算法为例进行制作。 二、插件制作 1、将....\plugins\example路径下的ExamplePlugin复制一份并修改名字为CCPointCloudProcess。 …