群签名、环签名、盲签名

news2024/11/17 5:45:22

文章目录

  • 群签名
    • 定义
    • 安全性
    • 构造
  • 环签名
    • 定义
    • 安全性
    • 构造
  • 盲签名
    • 定义
    • 安全性
    • 构造

群签名

定义

群签名方案是算法组 Π G S = ( G e n , S i g n , V e r , O p e n ) \Pi_{GS}=(Gen, Sign, Ver, Open) ΠGS=(Gen,Sign,Ver,Open)

  1. G e n ( 1 λ , n ) Gen(1^\lambda,n) Gen(1λ,n):密钥生成算法, n n n 为群成员数,输出
    • g v k gvk gvk:群公钥,用于验签
    • g m s k gmsk gmsk:主私钥,由管理员持有,用于追踪成员身份
    • g s k = ( g s k [ 1 ] , ⋯   , g s k [ n ] ) gsk=(gsk[1],\cdots,gsk[n]) gsk=(gsk[1],,gsk[n]):成员私钥,用于签名
  2. S i g n ( g s k [ i ] , m ) Sign(gsk[i],m) Sign(gsk[i],m):签名算法,任意成员可以独立签署消息 m m m,输出签名 σ \sigma σ
  3. V e r ( g v k , m , σ ) Ver(gvk,m,\sigma) Ver(gvk,m,σ):验签算法,根据验签通过与否,输出 0 / 1 0/1 0/1
  4. O p e n ( g m s k , m , σ ) Open(gmsk,m,\sigma) Open(gmsk,m,σ):公开算法,如果签名正确,则输出签名者身份 i i i,否则输出 ⊥ \perp

我们说 σ \sigma σ m m m 的正确签名,如果存在 i ∈ [ 1 , n ] i \in [1,n] i[1,n] 以及随机带 r r r,使得 σ = S i g n ( g s k [ i ] , m ; r ) \sigma=Sign(gsk[i],m;r) σ=Sign(gsk[i],m;r) 成立。

安全性

群签名的安全性只需两条:完全匿名性、完全可追踪性。其他奇奇怪怪的安全性要求都可以由这两条推出。

  • 匿名性实验

在这里插入图片描述

定义敌手的优势为:
A d v Π , A a n o n ( λ , n ) = 2 ∣ P r [ E x p t Π , A a n o n ( 1 λ , n , U 1 ) = 1 ] − 1 2 ∣ = ∣ P r [ E x p t Π , A a n o n ( 1 λ , n , 1 ) = 1 ] − P r [ E x p t Π , A a n o n ( 1 λ , n , 0 ) = 0 ] ∣ \begin{aligned} Adv_{\Pi,A}^{anon}(\lambda,n) &= 2\left| Pr\left[Expt_{\Pi,A}^{anon}(1^\lambda,n,U_1)=1\right] - \frac{1}{2} \right|\\ &= \left| Pr\left[Expt_{\Pi,A}^{anon}(1^\lambda,n,1)=1\right] - Pr\left[Expt_{\Pi,A}^{anon}(1^\lambda,n,0)=0\right] \right| \end{aligned} AdvΠ,Aanon(λ,n)=2Pr[ExptΠ,Aanon(1λ,n,U1)=1]21=Pr[ExptΠ,Aanon(1λ,n,1)=1]Pr[ExptΠ,Aanon(1λ,n,0)=0]

我们说 Π G S \Pi_{GS} ΠGS完全匿名的,如果对于任意 PPT 敌手 A A A,优势 A d v Π , A a n o n ( λ , n ) Adv_{\Pi,A}^{anon}(\lambda,n) AdvΠ,Aanon(λ,n) 是可忽略的。

  • 可追踪性实验

在这里插入图片描述

定义敌手的优势为:
A d v Π , A t r a c e ( λ , n ) = P r [ E x p t Π , A t r a c e ( 1 λ , n ) = 1 ] Adv_{\Pi,A}^{trace}(\lambda,n) = Pr\left[Expt_{\Pi,A}^{trace}(1^\lambda,n)=1\right] AdvΠ,Atrace(λ,n)=Pr[ExptΠ,Atrace(1λ,n)=1]

我们说 Π G S \Pi_{GS} ΠGS完全可追踪的,如果对于任意 PPT 敌手 A A A,优势 A d v Π , A t r a c e ( λ , n ) Adv_{\Pi,A}^{trace}(\lambda,n) AdvΠ,Atrace(λ,n) 是可忽略的。

构造

密码学部件:

  • 一般签名算法 Π s = ( G e n s , S i g n , V e r ) \Pi_s = (Gen_s, Sign, Ver) Πs=(Gens,Sign,Ver)
  • 公钥加密方案 Π e = ( G e n e , E n c , D e c ) \Pi_e = (Gen_e, Enc, Dec) Πe=(Gene,Enc,Dec)
  • 非交互零知识证明 ( P , V ) (P,V) (P,V)

在这里插入图片描述

  1. P 0 P_0 P0 是组管理员。为了让组内的每个成员都可以签名并验证,可以简单地执行 n n n G e n s Gen_s Gens,为各个成员生成私钥公钥,将 { v k i } i ∈ I \{vk_i\}_{i \in I} {vki}iI 作为群公钥。但是这会泄露成员身份。
  2. 我们不再公开公钥,而是在签名时附加上一个证明 π \pi π,使得验签者相信确实存在一个群成员 i i i 签署了消息。但这有个问题,就是没有证明 v k i vk_i vki 是属于这个组的。
  3. P 0 P_0 P0 再为每个成员的公钥添加上证书 c e r t i cert_i certi,同时要证明 v k i vk_i vki 确实是组成员的公钥。但是这必须公布 c e r t i cert_i certi,又把成员身份泄露了。
  4. 因此我们把证书加密后再发布,签名者对于 m m m 输出 ( C , π ) (C,\pi) (C,π),验签者验证 π \pi π 确实是对 m , C m,C m,C 之间关系的证明。

环签名

定义

环签名方案是算法组 Π R S = ( G e n , S i g n , V e r ) \Pi_{RS}=(Gen, Sign, Ver) ΠRS=(Gen,Sign,Ver)

  1. G e n ( 1 λ ) Gen(1^\lambda) Gen(1λ):密钥生成算法,输出 ( s k , v k ) (sk,vk) (sk,vk)
  2. S i g n ( s k , R , m ) Sign(sk,R,m) Sign(sk,R,m):签名算法,验签密钥集合 R = ( v k i , ⋯   , v k n ) R=(vk_i,\cdots,vk_n) R=(vki,,vkn)(环),任何人可以独立签署消息 m m m,输出签名 σ \sigma σ
  3. V e r ( R , m , σ ) Ver(R,m,\sigma) Ver(R,m,σ):验签算法,根据验签通过与否,输出 0 / 1 0/1 0/1

若验签通过,那么说明签名是由 R R R 中的某个 v k i vk_i vki 对应的 s k i sk_i ski 所签署的。与群签名相比,环签名是去中心化的,并且参与者的加入退出很容易。缺点是没法追踪恶意的签名者。

安全性

  • 无内部攻击的不可伪造性实验

在这里插入图片描述

  • 内部攻击的不可伪造性实验

在这里插入图片描述

定义敌手的优势为:
A d v Π , F E U F − C M A ( λ ) = P r [ E x p t Π , F e u f − c o r r u p t − c m a ( 1 λ ) = 1 ] Adv_{\Pi,F}^{EUF-CMA}(\lambda) = Pr\left[ Expt_{\Pi,F}^{euf-corrupt-cma}(1^\lambda)=1 \right] AdvΠ,FEUFCMA(λ)=Pr[ExptΠ,Feufcorruptcma(1λ)=1]

我们说 Π R S \Pi_{RS} ΠRS 是**(内部攻击下)不可伪造的**,如果对于任意 PPT 敌手 F F F,优势 A d v Π , F E U F − C M A ( λ ) Adv_{\Pi,F}^{EUF-CMA}(\lambda) AdvΠ,FEUFCMA(λ) 是可忽略的。

  • 基本匿名性实验

在这里插入图片描述

定义敌手的优势为:
A d v Π , A a n o n ( λ ) = 2 ∣ P r [ E x p t Π , A a n o n ( 1 λ , U 1 ) = 1 ] − 1 2 ∣ = ∣ P r [ E x p t Π , A a n o n ( 1 λ , 1 ) = 1 ] − P r [ E x p t Π , A a n o n ( 1 λ , 0 ) = 0 ] ∣ \begin{aligned} Adv_{\Pi,A}^{anon}(\lambda) &= 2\left| Pr\left[Expt_{\Pi,A}^{anon}(1^\lambda,U_1)=1\right] - \frac{1}{2} \right|\\ &= \left| Pr\left[Expt_{\Pi,A}^{anon}(1^\lambda,1)=1\right] - Pr\left[Expt_{\Pi,A}^{anon}(1^\lambda,0)=0\right] \right| \end{aligned} AdvΠ,Aanon(λ)=2Pr[ExptΠ,Aanon(1λ,U1)=1]21=Pr[ExptΠ,Aanon(1λ,1)=1]Pr[ExptΠ,Aanon(1λ,0)=0]

我们说 Π G S \Pi_{GS} ΠGS基本匿名的,如果对于任意 PPT 敌手 A A A,优势 A d v Π , A a n o n ( λ ) Adv_{\Pi,A}^{anon}(\lambda) AdvΠ,Aanon(λ) 是可忽略的。

  • (有内部攻击的)匿名性实验

在这里插入图片描述

定义敌手的优势为:
A d v Π , A a n o n − c o r r u p t ( λ ) = 2 ∣ P r [ E x p t Π , A a n o n − c o r r u p t ( 1 λ , U 1 ) = 1 ] − 1 2 ∣ = ∣ P r [ E x p t Π , A a n o n − c o r r u p t ( 1 λ , 1 ) = 1 ] − P r [ E x p t Π , A a n o n − c o r r u p t ( 1 λ , 0 ) = 0 ] ∣ \begin{aligned} Adv_{\Pi,A}^{anon-corrupt}(\lambda) &= 2\left| Pr\left[Expt_{\Pi,A}^{anon-corrupt}(1^\lambda,U_1)=1\right] - \frac{1}{2} \right|\\ &= \left| Pr\left[Expt_{\Pi,A}^{anon-corrupt}(1^\lambda,1)=1\right] - Pr\left[Expt_{\Pi,A}^{anon-corrupt}(1^\lambda,0)=0\right] \right| \end{aligned} AdvΠ,Aanoncorrupt(λ)=2Pr[ExptΠ,Aanoncorrupt(1λ,U1)=1]21=Pr[ExptΠ,Aanoncorrupt(1λ,1)=1]Pr[ExptΠ,Aanoncorrupt(1λ,0)=0]

我们说 Π G S \Pi_{GS} ΠGS匿名的,如果对于任意 PPT 敌手 A A A,优势 A d v Π , A a n o n − c o r r u p t ( λ ) Adv_{\Pi,A}^{anon-corrupt}(\lambda) AdvΠ,Aanoncorrupt(λ) 是可忽略的。

构造

方法一:类似群签名,使用 NIZKP 将一般签名方案转化为环签名方案。

方法二:真的构成一个环 [RST01],使用 trapdoor OWP 群成员可以在环的某个位置上打开环,然后再关闭环。

{ H s } \{H_s\} {Hs} 是 CRHF, { F k , F k − 1 } \{F_k,F_k^{-1}\} {Fk,Fk1} 是 trapdoor OWP,对应的公私钥为 ( p k , s k ) (pk,sk) (pk,sk) Π = ( G e n , E n c , D e c ) \Pi=(Gen, Enc, Dec) Π=(Gen,Enc,Dec) 是对称加密算法,签名算法如下:

  1. 选取 R = ( p k 1 , ⋯   , p k n ) R = (pk_1,\cdots,pk_n) R=(pk1,,pkn),包含自己的公钥 p k j pk_j pkj
  2. 计算 r = H s ( m ) r=H_s(m) r=Hs(m),生成 k ← G e n ( 1 λ ; r ) k \leftarrow Gen(1^\lambda;r) kGen(1λ;r)
  3. 随机选取 x 1 , ⋯   , x j − 1 , x j + 1 , ⋯   , x n x_1,\cdots,x_{j-1},x_{j+1},\cdots,x_n x1,,xj1,xj+1,,xn,计算 y i = F ( p k i , x i ) , j ≠ i y_i = F(pk_i, x_i), j \neq i yi=F(pki,xi),j=i
  4. 随机选取 t j ′ = v t_j'=v tj=v,计算 t j + 1 = E n c ( k , t j ′ ) t_{j+1}=Enc(k,t_j') tj+1=Enc(k,tj),然后依次计算 t i + 1 = E n c ( k , t i ⊕ y i ) , i = j + 1 , ⋯   , n , 1 , ⋯   , j − 1 t_{i+1} = Enc(k, t_i \oplus y_i), i=j+1,\cdots,n,1,\cdots,j-1 ti+1=Enc(k,tiyi),i=j+1,,n,1,,j1(令 n + 1 ≡ 1 n+1 \equiv 1 n+11)得到 t j t_j tj,接着求逆 x j = F − 1 ( s k j , t j ⊕ t j ′ ) x_j = F^{-1}(sk_j, t_j \oplus t_j') xj=F1(skj,tjtj)
  5. 输出 ( R , t n , x 1 , ⋯   , x n ) (R, t_n, x_1, \cdots, x_n) (R,tn,x1,,xn) 作为消息 m m m 的签名。

盲签名

定义

盲签名方案是算法组 Π B S = ( G e n , < S , U > , V e r ) \Pi_{BS}=(Gen, <S,U>, Ver) ΠBS=(Gen,<S,U>,Ver),其中 < S , U > <S,U> <S,U> 是签名者和用户之间的交互协议,

  1. G e n ( 1 λ ) Gen(1^\lambda) Gen(1λ):密钥生成算法,输出 ( s k , v k ) (sk,vk) (sk,vk)
  2. < S ( s k ) , U ( v k , m ) > <S(sk),U(vk,m)> <S(sk),U(vk,m)>:签名交互协议,签名者输出 O u t = O K / F a i l Out=OK/Fail Out=OK/Fail(签名是否成功),用户输出 m m m 的签名值 σ \sigma σ
  3. V e r ( v k , m , σ ) Ver(vk,m,\sigma) Ver(vk,m,σ):验签算法,根据验签通过与否,输出 0 / 1 0/1 0/1

安全性

  • 不可伪造性实验:因为挑战者 C h Ch Ch 看不到 m m m,因此不能像一般签名算法那样设置一个签名历史记录 Q s Q_s Qs 使得 m ∗ ∉ Q s m^* \not\in Q_s mQs,而是需要敌手 F F F 询问 k k k 次签名后,应当输出至少 k + 1 k+1 k+1 个不同消息的合法签名。

在这里插入图片描述

定义敌手的优势为:
A d v Π , F E U F − C M A ( λ ) = P r [ E x p t Π , F e u f − c m a ( 1 λ ) = 1 ] Adv_{\Pi,F}^{EUF-CMA}(\lambda) = Pr\left[ Expt_{\Pi,F}^{euf-cma}(1^\lambda)=1 \right] AdvΠ,FEUFCMA(λ)=Pr[ExptΠ,Feufcma(1λ)=1]

我们说 Π B S \Pi_{BS} ΠBS 是**(内部攻击下)不可伪造的**,如果对于任意 PPT 敌手 F F F,优势 A d v Π , F E U F − C M A ( λ ) Adv_{\Pi,F}^{EUF-CMA}(\lambda) AdvΠ,FEUFCMA(λ) 是可忽略的。

  • 盲签实验

在这里插入图片描述

定义敌手的优势为:
A d v Π , A b l i n d ( λ ) = 2 ∣ P r [ E x p t Π , A b l i n d ( 1 λ , U 1 ) = 1 ] − 1 2 ∣ = ∣ P r [ E x p t Π , A b l i n d ( 1 λ , 1 ) = 1 ] − P r [ E x p t Π , A b l i n d ( 1 λ , 0 ) = 0 ] ∣ \begin{aligned} Adv_{\Pi,A}^{blind}(\lambda) &= 2\left| Pr\left[Expt_{\Pi,A}^{blind}(1^\lambda,U_1)=1\right] - \frac{1}{2} \right|\\ &= \left| Pr\left[Expt_{\Pi,A}^{blind}(1^\lambda,1)=1\right] - Pr\left[Expt_{\Pi,A}^{blind}(1^\lambda,0)=0\right] \right| \end{aligned} AdvΠ,Ablind(λ)=2Pr[ExptΠ,Ablind(1λ,U1)=1]21=Pr[ExptΠ,Ablind(1λ,1)=1]Pr[ExptΠ,Ablind(1λ,0)=0]

我们说 Π B S \Pi_{BS} ΠBS盲的,如果对于任意 PPT 敌手 A A A,优势 A d v Π , A b l i n d ( λ ) Adv_{\Pi,A}^{blind}(\lambda) AdvΠ,Ablind(λ) 是可忽略的。

构造

密码学部件:

  • 一般签名算法 Π s = ( G e n s , S i g n , V e r ) \Pi_s = (Gen_s, Sign, Ver) Πs=(Gens,Sign,Ver)
  • 公钥加密方案 Π e = ( G e n e , E n c , D e c ) \Pi_e = (Gen_e, Enc, Dec) Πe=(Gene,Enc,Dec)
  • 非交互零知识证明 ( P , V ) (P,V) (P,V)
  • 非交互承诺方案 Π c = ( C o m , O p e n ) \Pi_c = (Com,Open) Πc=(Com,Open)

盲签名的密钥生成算法 G e n ( 1 λ ) Gen(1^\lambda) Gen(1λ) 为:

  1. 获得公共随机串 C R S Z K CRS_{ZK} CRSZK C R S C o m CRS_{Com} CRSCom
  2. 执行 ( p k s , s k e ) ← G e n e ( 1 λ ) (pk_s,sk_e) \leftarrow Gen_e(1^\lambda) (pks,ske)Gene(1λ) ( s k , v k ) = G e n s ( 1 λ ) (sk,vk) = Gen_s(1^\lambda) (sk,vk)=Gens(1λ)
  3. 输出公钥 v k B S = ( C R S Z K , C R S C o m , p k e , v k ) vk_{BS} = (CRS_{ZK},CRS_{Com},pk_e,vk) vkBS=(CRSZK,CRSCom,pke,vk),私钥 s k B S = ( C R S Z K , C R S C o m , s k e , s k ) sk_{BS} =(CRS_{ZK},CRS_{Com},sk_e,sk) skBS=(CRSZK,CRSCom,ske,sk)

盲签协议(Blind-signing protocol) < S , U > <S,U> <S,U> 构造如下:

在这里插入图片描述

验签算法 V e r ( v k B S , m , ( C σ , π ) ) Ver(vk_{BS},m,(C_\sigma,\pi)) Ver(vkBS,m,(Cσ,π)) 为:

  1. 设置 x = ( C σ , p k e , C R S C o m , v k , m ) x = (C_\sigma,pk_e,CRS_{Com},vk,m) x=(Cσ,pke,CRSCom,vk,m)
  2. 输出 V ( C R S Z K , x , π ) V(CRS_{ZK},x,\pi) V(CRSZK,x,π)

其中,NIZKP < P , V > <P,V> <P,V> 所证明的关系为:
R L ( x , w ) = 1    ⟺    x = ( C σ , p k e , C R S C o m , v k , m ) w = ( u , v , σ , C ) 1)   C = C o m ( C R S C o m , m ; u ) 2)   1 = V e r ( v k , C , σ ) 3)   C σ = E n c ( p k e , C ∥ σ ; v ) R_L(x,w)=1 \iff \begin{aligned} &x = (C_\sigma,pk_e,CRS_{Com},vk,m)\\ &w = (u,v,\sigma,C)\\ &\textbf{1) }C = Com(CRS_{Com},m;u)\\ &\textbf{2) }1 = Ver(vk,C,\sigma)\\ &\textbf{3) }C_\sigma = Enc(pk_e,C\|\sigma;v)\\ \end{aligned} RL(x,w)=1x=(Cσ,pke,CRSCom,vk,m)w=(u,v,σ,C)1) C=Com(CRSCom,m;u)2) 1=Ver(vk,C,σ)3) Cσ=Enc(pke,Cσ;v)

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

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

相关文章

百度Q3财报显AI技术厚度,“慢生意”稳步驶入“快车道”

一周前&#xff0c;笔者参加了一场百度主办的关于AIGC话题的沙龙&#xff0c;因为话题无比火爆&#xff0c;活动延迟到了一点钟才结束&#xff0c;以至于让约定的好友饭局也一等再等。 倒没有丝毫抱怨的意思&#xff0c;正是这个烧脑的活动&#xff0c;让我感受并体验到了当下最…

GEE开发之Modis_LAI数据分析和获取

GEE开发之Modis_LAI数据分析和获取1.遥感卫星数据叶面积指数LAI2.MOD15A2H(500m/8天)2.1 MOD15A2H下的指数2.2 LAI遥感影像查看获取3.LAI日数据下载4.LAI月数据下载5.LAI年数据下载前言&#xff1a;主要介绍LAI的概念&#xff0c;以及GEE下如何获取查看Modis下的LAI指数&#x…

Talk | 清华大学陈晓宇苏黎世联邦理工黄嘉伟 :基于实际应用的强化学习

本期为TechBeat人工智能社区第455期线上Talk&#xff01; 北京时间11月17日(周四)20:00&#xff0c;清华大学交叉信息研究院在读博士生——陈晓宇与苏黎世联邦理工大学计算机科学在读博士生——黄嘉伟的Talk将准时在TechBeat人工智能社区开播&#xff01; 他们与大家分享的主题…

NC发布猕猴大脑皮层多组学细胞图谱,助力神经系统疾病研究 | 时空专辑数据库

近日&#xff0c;杭州华大生命科学研究院&#xff08;以下简称杭州华大&#xff09;联合昆明理工大学灵长类转化医学研究院、美国艾伦脑科学研究所等国内外多家单位在国际学术期刊《自然通讯》&#xff08;Nature Communications&#xff09;在线发表题为《成年猕猴大脑皮层空间…

PyTorch深度学习实践——线性模型、梯度下降算法、反向传播

1、线性回归 参考资料1&#xff1a;https://blog.csdn.net/bit452/article/details/109627469 参考资料2&#xff1a;http://biranda.top/Pytorch%E5%AD%A6%E4%B9%A0%E7%AC%94%E8%AE%B0003%E2%80%94%E2%80%94%E7%BA%BF%E6%80%A7%E6%A8%A1%E5%9E%8B/#%E7%BA%BF%E6%80%A7%E6%A8%…

PC_多处理器

文章目录多处理器单指令单数据流SISD结构单指令流多数据流SIMD结构向量处理器多指令流单数据流MISD结构多指令多数据流MIMD结构小结硬件多线程细粒度多线程粗粒度多线程同时多线程多核处理器共享内存多处理器多处理器 常规的单处理器属于SISD常规多处理器属于MIMD 单指令单数…

腾格尔十月天传媒联手《巴林塔娜》,2255万粉丝多少买票支持

曾几何时&#xff0c;木桶原理非常流行&#xff0c;意思就是一个木桶能够盛多少水&#xff0c;取决于最短一块板的长度。可是随着社会的发展&#xff0c;木桶原理已经被淘汰&#xff0c;只要你拥有了团队合作&#xff0c;就可以统协作取长补短。 就拿有着“草原歌神”之称的腾格…

你的知识库能提高工作效率的7个原因

知识就是力量。但到目前为止&#xff0c;光有知识是不够的——你使用这些信息的方式让你领先于竞争对手。如果使用正确&#xff0c;知识库软件可以帮助您提供更好的服务&#xff0c;培训您的员工&#xff0c;并成为您的行业权威。拥有一个有效的知识库不仅会影响你在内部开展业…

Android assets

1.应用程序资源管理器assets assets就是apk工程中的一个普通目录&#xff0c;在每个工程的根目录下都可以发现(或者可以自己创建)一个assets目录。 assets目录用于专门保存各种外部文件&#xff0c;比如图像、音视频、配置文件、字体、自带数据库等。它之所以适合用来管理这些…

数据库mysql操作语言, DDL,DML,DQL

文章目录一. 数据库1. 数据库基本概念2. 数据库管理系统3. 数据库与表的概念二. 连接数据库的方式三. 如何操作DBMSSQL语句分类1. DDL 数据定义语言查看DBMS中已有的数据库数据库相关操作新建一个数据库查看数据库信息删除数据库使用一个数据库(切换一个数据库)表相关操作创建表…

HOOPS/MVO技术概述

更多参见&#xff1a;HOOPS学习笔记 MVO 1.引言 HOOPS/MVO是一个C类库&#xff0c;位于HOOPS 3D图形系统&#xff08;HOOPS/3DGS&#xff09;之上。它有一个模型/视图/操作员架构&#xff0c;封装了各种HOOPS/3DGS数据结构和概念&#xff0c;并提供了一系列通用应用程序级逻辑…

【无人机】基于粒子群优化干扰受限下无人机群辅助网络附matlab代码

✅作者简介&#xff1a;热爱科研的Matlab仿真开发者&#xff0c;修心和技术同步精进&#xff0c;matlab项目合作可私信。 &#x1f34e;个人主页&#xff1a;Matlab科研工作室 &#x1f34a;个人信条&#xff1a;格物致知。 更多Matlab仿真内容点击&#x1f447; 智能优化算法 …

Xception --tensorflow2.x

简介 Xception和SqueezeNet一样&#xff0c;是一种降低参数量的轻量级神经网络&#xff0c;它主要使用了 深度分离卷积&#xff08;Depthwise separable convolution)结构&#xff0c;该结构替换了原来的Inception中的多尺寸卷积结构。这里需要弄清深度分离卷积&#xff08;D…

【创建型设计模式-单例模式】一文搞懂单例模式的使用场景及代码实现的7种方式

1.什么是单例模式 在了解单例模式前&#xff0c;我们先来看一下它的定义&#xff1a; 确保一个类只有一个实例&#xff0c;而且自行实例化并且自行向整个系统提供这个实例&#xff0c;这个类称为单例类&#xff0c;它提供全局访问的方法&#xff0c; 单例模式是一种对象的创建型…

微型计算机原理速通期末复习

文章目录微机基础原码、反码、补码、移码溢出实数型功能结构8086/8088内部结构80286内部结构80386/80486内部结构标志寄存器FLAGS寄存器阵列段寄存器寻址标志寄存器EFLAGS分段结构数据寻址方式立即寻址直接寻址寄存器寻址寄存器间接寻址寄存器相对寻址基址-变址寻址基址-变址-相…

Solidity vs. Vyper:不同的智能合约语言的优缺点

本文探讨以下问题&#xff1a;哪种智能合约语言更有优势&#xff0c;Solidity 还是 Vyper&#xff1f;最近&#xff0c;关于哪种是“最好的”智能合约语言存在很多争论&#xff0c;当然了&#xff0c;每一种语言都有它的支持者。 这篇文章是为了回答这场辩论最根本的问题&…

磨金石教育摄影技能干货分享|中国风摄影大师——郎静山

说到中国风摄影&#xff0c;你想到的画面是什么样子的&#xff1f;故宫、长城、苏州园林、大红灯笼高高挂&#xff0c;反正离不开传承了千八百年的古建筑。仿佛没有了这些历史古董的元素就没有中国味道似的。 其实中国风&#xff0c;其内核应该是传统的审美观念和哲学思想。中…

【雷丰阳-谷粒商城 】课程概述

持续学习&持续更新中… 学习态度&#xff1a;守破离 【雷丰阳-谷粒商城 】课程概述该电商项目与其它项目的区别项目简介项目背景电商模式谷粒商城项目技术&特色项目前置要求谷粒商城-微服务架构图谷粒商城-微服务划分图参考该电商项目与其它项目的区别 互联网大型项目…

深入linux内核架构--内存管理

【推荐阅读】 代码大佬的【Linux内核开发笔记】分享&#xff0c;前人栽树后人乘凉&#xff01; 一文了解Linux内核的Oops 一篇长文叙述Linux内核虚拟地址空间的基本概括 路由选择协议——RIP协议 深入理解Intel CPU体系结构【值得收藏&#xff01;】 内存体系结构 1. UM…

银行测试人员谈测试需求

今天呢&#xff0c;想用故事说话&#xff0c;先看看啥叫用户需求挖掘。其实看完故事之后&#xff0c;我自己颇为震撼&#xff0c;请看。 故事一&#xff1a; 100多年前&#xff0c;福特公司的创始人亨利福特先生到处跑去问客户&#xff1a;“您需要一个什么样的更好的交通工具…