零知识证明基础:对称加密与非对称加密

news2024/11/25 8:19:25

1、绪论

在密码学体系中,对称加密、非对称加密、单向散列函数、消息认证码、数字签名和伪随机数生成器被统称为密码学家的工具箱。其中,对称加密和非对称加密主要是用来保证机密性;单向散列函数用来保证消息的完整性;消息认证码的功能主要是认证;数字签名保证消息的不可抵赖性。

在零知识证明中,涉及较多的加密方案是非对称密码体制( 又称为公钥密码体制) 。非对称密码体制使用公钥加密消息,使用私钥来解密。使用非对称密码体制可增强系统的安全性。

2、发展史

密码学的发展大致可以分为 3 个阶段: 1949 年之前的古典密码学阶段; 1949 年至 1975 年密码学成为科学的分支; 1976 年以后对称密钥密码算法得到进一步发展,产生了密码学的新方向—公钥密码学。1976 年,W.Diffie 和 M.Hellman 在发表的文章“密码学的新方向”中首次公开提出了公钥密码( Public-key Cryptography) 的概念。公钥密码的提出实现了加密密钥和解密密钥之间的独立,解决了对称密码体制中通信双方必须共享密钥的问题,在密码学界具有划时代的意义。

3、对称加密

对称加密整个加密过程中只使用一个密钥。所谓对称其实就是使用一把密钥加密,使用同一把密钥解密。

对称加密的主要有优点就是算法公开、计算量小、加密速度快、加密效率高;但是它也存在强大的缺点,一旦密钥泄露,别人可以获取到密钥,这样也能对密文进行解密。下面是对称加密的操作过程:

设用户 A A A把信息 M M M发送给用户 B B B A A A B B B不希望 M M M传递的过程中被第三方看到,可以采取的方法是, A A A先对 M M M进行处理。然后发送处理后的结果。对 M M M处理实际上是进行某种数学运算,运算结果我们用 E ( M ) E(M) E(M)表示, B B B收到 E ( M ) E(M) E(M)后,会按事前与 A A A约定好的方法从 E ( M ) E(M) E(M)中把M还原出来,结果我们用 D ( E ( M ) ) = M D(E(M))=M D(E(M))=M表示。第三方即使截获到 E ( M ) E(M) E(M),因为不知道还原方法,从而无法看到 M M M A A A B B B也就达到了秘密通信的目的。

前面过程中的 E E E我们称之为加密算法, D D D称之为解密算法,二元组 ( E , D ) (E,D) (E,D)表示一个特定的加/解密算法,这个二元组是 A A A B B B提前约定好的,当然二元组 ( E , D ) (E,D) (E,D)只有 A A A B B B知道,其他第三方是不知道的。

A A A与另一个网络用户 C C C安全通信时,就不能再用二元组 ( E , D ) (E,D) (E,D)了,需要改换成另一个加/解密二元组 ( E ′ , D ′ ) (E',D') (E,D)。由此看来, A A A与多个用户安全通信,就需要有多个加解密二元组。

开发多个加解密二元组不是一件容易的事,可以在加/解密二元组 ( E , D ) (E,D) (E,D)基础上增加一个参数, A A A B B B之外的其他用户通信只要选择不同的参数值就可以了。具体来说, A A A B B B之间的通信选择参数 s 1 s_1 s1 A A A C C C之间的通信选择 s 2 s_2 s2
,即使大家都采用二元组(E,D),也能做到安全通信,这就避免了为不同用户对开发不同的二元组了,这里的参数 s 1 s_1 s1 s 2 s_2 s2就是所谓的密码或者秘钥, s 1 s_1 s1
A A A B B B秘密保管, s 2 s_2 s2 A A A C C C秘密保管。

所有用户采用同一个加解密二元组 ( E , D ) (E,D) (E,D),只是不同用户对采用不同密钥的加解密体制,因此被称为对称加密体制。下面是对称密码体制的典型流程:


已知二元组 ( E , D ) (E,D) (E,D),用户 A A A B B B之间的共享密钥是 p p p A A A把信息 M M M安全发送给 B B B

  • A A A利用 p p p和加密算法 E E E对信息 M M M处理,结果记作 E p ( M ) E_p(M) Ep(M)
  • A A A E p ( M ) E_p(M) Ep(M)发送给 B B B
  • B收到 E p ( M ) E_p(M) Ep(M),并对 E p ( M ) E_p(M) Ep(M)用秘钥 p p p和解密算法 D D D处理,结果记作 D p ( E p ( M ) ) = M D_p(E_p(M))=M Dp(Ep(M))=M

常用的对称加密算法有 DES、3DES、AES、TDEA、Blowfish、RC2、RC4 和 RC5 等。

4、AES加密算法

AES 加密算法是一种分组密码体制,将明文按照固定大小进行分组,然后对每一分组进行加密。在加密过程中,AES 算法采用了多轮加密的方式,算法主要可以分为秘钥扩展、字节替换、行移位、列混合和轮秘钥加这5个步骤。

  • 秘钥扩展(KeyExpansions:在 AES 加密算法中,明文被分成若干个固定长度的块。常见的分组长度为 128 比特,即每个明文块包含 16 个字节。如果明文长度不是 16 的整数倍,则需要对原始秘钥进行填充。实际上密钥长度可以是 128 比特、192 比特或 256 比特。对于不同长度的密钥,需要经过不同的轮数来扩展密钥。具体而言,128 比特密钥需要经过 10 轮扩展,192 比特密钥需要经过 12 轮扩展,256 比特密钥需要经过14轮扩展。

  • 字节替换(SubBytes):字节替换是通 过 S-BOX对字节元素进行变换,S-BOX由有限域 G F 2 8 GF_{2^8} GF28上的乘法求逆运算和仿射变换运算而来,通过查表的方式即可直接得到变换前后的字节元素,替换后字节元素至少有两位发生变换,能充分打乱原来的字节元素。也可以认为S-BOX是一张固定大小的表格,由 256 个字节组成。通过输入表格中的某一字节,就可以得到表格中对应的输出字节。

  • 行移位(ShiftRows):将数据矩阵的每一行循环移位一定长度。

  • 列混合(MixColumns):将数据矩阵乘以一个固定的矩阵,增加混淆程度。

  • 轮秘钥加(AddRoundKey):将数据矩阵与秘钥矩阵进行异或操作。

下图为AES加密算法流程。
在这里插入图片描述
AES是用来替代DES的新一代加密标准,具有128bit的分组长度,支持128、192和256比特的密钥长度,它是目前最流行的对称加密算法之一。

5、非对称加密

非对称加密又称为公钥密码,该技术是针对私钥密码体制(对称加密算法)的缺陷被提出来的,非对称加密会产生两把密钥,分别为公钥(Public Key)和私钥(Private Key),其中一把密钥用于加密,另一把密钥用于解密。非对称加密的特征是算法复杂、安全性依赖于算法与密钥。但是由于其算法复杂,而使得加密解密速度没有对称加密解密的速度快。

在使用非对称加密时,任何人都可以使用预期接收者的公钥对消息进行加密,但该加密消息只能使用接收者的私钥解密。

已知公钥密码算法二元组 ( E , D ) (E,D) (E,D),用户 A A A把信息 M M M安全发给用户 B B B,下面是非对称密码体制的典型流程:


  • 利用 ( E , D ) (E,D) (E,D)为用户 A A A产生公钥 p a p_a pa,私钥 s a s_a sa,为用户 B B B产生公钥 p b p_b pb

,私钥 s b s_b sb;

  • A A A B B B的公钥 p b p_b pb和加密算法 E E E对消息 M M M进行处理,处理结果记为 E p b ( M ) E_{p_b}(M) Epb(M)

  • A A A E p b ( M ) E_{p_b}(M) Epb(M)发送给用户 B B B

  • B B B使用解密算法 D D D对收到的 E p b ( M ) E_{p_b}(M) Epb(M)进行处理,结果为 D s b ( E p b ( M ) ) = M D{s_b}(E_{p_b}(M))=M Dsb(Epb(M))=M


非对称加密中对任何用户,不能从公钥导出其私钥;用谁的公钥加密,只能用谁的私钥解密。

常用的非对称加密算发有 RSA、Elgamal、背包算法、Rabin、D-H、ECC(椭圆曲线加密算法)等。

5、基于大整数素因子分解困难的RSA加密算法

RSA 算法是一种迄今为止理论上比较成熟和完善的公钥密码体制,是非对称密码体制的典型代表。在网络、信息安全等许多方面都使用 RSA 算法,特别是 RSA 算法典型应用在通信中的数字签名,可实现对手的身份、不可抵赖性验证。在身份认证、信息安全、电子商务中有着广泛的应用前景。

RSA加密算法相关的数学知识包括:


  • 欧几里得算法:即 gcd ⁡ ( a , b ) \gcd(a,b) gcd(a,b),值为 a a a b b b的最大公约数;
  • 互质:即 gcd ⁡ ( a , b ) = 1 \gcd(a,b) = 1 gcd(a,b)=1 <=> a a a b b b互质( a a a b b b没有1以外的公因子);
  • 欧拉函数:即 φ ( n ) \varphi (n) φ(n),值为所有不大于 n n n且和 n n n互质的自然数的个数
  • a ≡ b m o d    P a ≡ b \mod P abmodP 表示 a a a b b b在模 P P P下同余,即 a a a除以 P P P得到的余数和 b b b除以 P P P得到的余数相同;
  • 欧拉费马定理:如果 gcd ⁡ ( a , n ) = 1 \gcd(a,n) = 1 gcd(a,n)=1,则 a φ ( n ) ≡ 1 m o d    n a^{ φ(n)} ≡ 1 \mod n aφ(n)1modn.

RSA 算法由密钥生成、加密和解密 3个部分组成,具体如下。
密钥生成:

  • 产生两个大素数 p p p q q q
  • 计算 n = p × q n = p × q n=p×q,计算欧拉函数 φ ( n ) = ( p − 1 ) ( q − 1 ) φ(n) =(p - 1)(q - 1) φ(n)=(p1)(q1)
  • 选择整数 e e e,使其满足条件: 1 < e < φ ( n ) 1 < e < φ(n) 1<e<φ(n),且 gcd ⁡ ( e , φ ( n ) ) = 1 \gcd(e,φ(n)) = 1 gcd(e,φ(n))=1
  • 计算 e e e 的逆元 d d d d ⋅ e ≡ 1 m o d    φ ( n ) d\cdot e ≡ 1 \mod φ(n) de1modφ(n)(注:由于 gcd ⁡ ( e , φ ( n ) ) = 1 \gcd(e,φ(n)) = 1 gcd(e,φ(n))=1,则 d d d一定存在);
  • 取序对 ( e , n ) (e,n) (e,n) 为公钥,可公开; ( d , n ) (d,n) (d,n)为私钥,对外保密。

加密:

  • 将要发送的字符串分割为长度为 m < n m < n m<n 的分组,然后对分组 m i m_i mi执行加密运算,得到密文 c i : c i ≡ ( m i ) e m o d    n c_i :c_i ≡(m_i)^e \mod n cici(mi)emodn

解密:

  • 收到密文 c i c_i ci后,接收者使用自己的私钥执行解密运算,得到明文 m i : m i ≡ ( c i ) d m o d    n m_i :m_i ≡(c_i)^d \mod n mimi(ci)dmodn

如果有任何人想要破解私钥 d d d,那就必须算出 φ ( n ) φ(n) φ(n)(因为 d d d满足 d ⋅ e m o d    φ ( n ) ≡ 1 d\cdot e \mod φ(n)≡1 demodφ(n)1,且 e e e n n n是公开的),根据欧拉公式, φ ( n ) = ( p − 1 ) x ( q − 1 ) φ(n) = (p - 1) x (q - 1) φ(n)=(p1)x(q1),而通过一个大整数 n n n分解得到它的两素因子 p p p q q q是极端困难的,所以RSA的安全性也取决于这个大整数 n n n的位数.

6、基于离散对数难解性的ECC加密算法

椭圆曲线加密算法(ECC)是基于椭圆曲线数学的一种非对称密码算法,是建立在基于离散对数问题上的密码体制。随着分解大整数方法的进步以及各方面的完善,RSA 算法渐渐不能满足现状,ECC算法的需求性逐渐增大。ECC 以其明显的“短密钥”优势得到了广泛应用,并逐渐被确定为许多编码方式的数字签名标准。然而,ECC算法复杂度高,实现相对复杂,需要复杂的椭圆曲线运算。

ECC加密算法相关的椭圆曲线知识:


  • 韦尔斯特拉方程 : E : y 2 + a x y + b y = x 3 + c x 2 + d x + e E:y^2+axy+by=x^3+cx^2+dx+e E:y2+axy+by=x3+cx2+dx+e。密码学中,常采用的椭圆曲线为: E : y 2 = x 3 + a x + b E:y^2=x^3+ax+b E:y2=x3+ax+b,并要求 4 a 3 + 27 b 2 ≠ 0 4a^3 + 27b^2≠0 4a3+27b2=0,且椭圆曲线有且只有一个无穷远点 O O O ;
  • Hasse定理:如果 E E E是有限域 G F p GF_p GFp上的椭圆曲线, ( x , y ) (x,y) (x,y) E E E上的点,其中 x , y ∈ G F p x,y\in GF_p x,yGFp,曲线上的每个点都是非奇异的;
  • 椭圆曲线上的点集合对于加法规则构成一个Abel群: O + O = O O+O=O O+O=O;
    椭圆上的点 P P P P + O = P P+O=P P+O=P P P P的逆元是 − P -P P,且 P + ( − P ) = O P+(-P)=O P+(P)=O;加法满足交换律和结合律;
  • 椭圆曲线加法;椭圆曲线上的点 P ( x 1 ​ , y 1 ​ ) P(x_1​ ,y_1​ ) P(x1,y1), Q ( x 2 ​ , y 2 ​ ) Q(x_2​ ,y_2​ ) Q(x2,y2)的和 R ( x 3 ​ , y 3 ) R(x_3​ ,y_3 ) R(x3,y3)有如下关系:
    在这里插入图片描述
  • 如果椭圆曲线上一点 P P P,存在最小的正整数 n n n使得数乘 n P = O n P = O nP=O
    ,则将 n n n称为 P P P的阶,若 n n n不存在,则 P P P是无限阶的.

ECC算法也是由密钥生成、加密和解密 3个部分组成,具体如下。
密钥生成:

  • 选择一个椭圆曲线 E E E,构造一个椭圆群 E p ( a , b ) E_p(a,b) Ep(a,b)。。
  • 在椭圆群中挑选生成元点 G = ( x 0 , y 0 ) G=(x_0,y_0) G=(x0,y0),需满足 n G = O nG=O nG=O的最小的 n n n是一个非常大的素数。
  • 选择一个小于 n n n的整数 n B n_B nB作为私钥,然后利用 P B = n B G P_B=n_BG PB=nBG算出 P B P_B PB
  • 公钥为 ( E , n , G , P B ) (E,n,G,P_B) (E,n,G,PB),私钥为 n B n_B nB

加密:

  • 用户A将明文消息编码成一个数 m < p m<p m<p,并在椭圆群 E p ( a , b ) E_p(a,b) Ep(a,b)中任选一点 P t = ( x t , y t ) P_t=(x_t,y_t) Pt=(xt,yt);
  • 在区间 [ 1 , n − 1 ] [1,n-1] [1,n1]内,用户A选取一个随机数 k k k,计算 P 1 : P 1 = ( x 1 , y 1 ) = k G P_1:P_1=(x_1,y_1)=kG P1P1=(x1,y1)=kG;
  • 依据接收方 B B B的公钥 P B P_B PB,用户 A A A计算点 P 2 : P 2 = ( x 2 , y 2 ) = k P B P_2:P_2=(x_2,y_2)=kP_B P2P2=(x2,y2)=kPB
  • 用户 A A A计算密文 C = m x t + y t C=mx_t+y_t C=mxt+yt;
  • A A A传送加密数据 C m = { k G , P t + k P B , C } C_m=\{kG,P_t+kP_B,C\} Cm={kG,Pt+kPB,C}给接收方 B B B.

解密:

  • 接收方 B B B收到 C m C_m Cm;
  • 接收方 B B B使用私钥 n B n_B nB做运算: P t + k P B − n B ( k G ) = P t + k ( n B G ) − n B ( k G ) = P t P_t+kP_B-n_B(kG)=P_t+k(n_BG)-n_B(kG)=P_t Pt+kPBnB(kG)=Pt+k(nBG)nB(kG)=Pt;
    *接收方 B B B计算 m = ( C − y t ) / x t m=(C-y_t)/x_t m=(Cyt)/xt,得明文 m m m

密码学中,描述一条 F p F_p Fp上的椭圆曲线,常用到六个参量: T = ( p , a , b , G , n , h ) T=(p,a,b,G,n,h) T=(p,a,b,G,n,h) ( p , a , b ) (p ,a ,b) (p,a,b)用来确定一条椭圆曲线, G G G为基点, n n n为点 G G G的阶, h h h 是椭圆曲线上所有点的个数 m m m n n n相除的整数部分.

这几个参量取值的选择,直接影响了加密的安全性。参量值一般要求满足以下几个条件:


  • 1、 p p p当然越大越安全,但越大,计算速度会变慢,200位左右可以满足一般安全要求;
  • 2、 p ≠ n × h p≠n×h p=n×h
  • 3、 p t ≠ 1 m o d    n , 1 ≤ t < 20 pt≠1 \mod n,1≤t<20 pt=1modn1t<20
  • 4、 n n n为素数;
  • 5、 h ≤ 4 h≤4 h4

7、比特币中的非对称加密ECC

比特币系统选用的secp256k1中,ECC参数为:
p = 0 x F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F E F F F F F C 2 F p=0xFFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFE FFFFFC2F p=0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFFC2F
= 2 256 − 2 32 − 2 9 − 2 8 − 2 7 − 2 6 − 2 4 − 1 = 2^{256} − 2^{32} − 2^9 − 2^8 − 2^7 − 2^6 − 2^4 − 1 =225623229282726241,

a = 0 a = 0 a=0

b = 7 b = 7 b=7,

G = ( 0 x 79 B E 667 E F 9 D C B B A C 55 A 06295 C E 870 B 07029 B F C D B 2 D C E 28 D 959 F 2815 B 16 F 81798 , 0 x 483 a d a 7726 a 3 c 4655 d a 4 f b f c 0 e 1108 a 8 f d 17 b 448 a 68554199 c 47 d 08 f f b 10 d 4 b 8 ) G=(0x79BE667EF9DCBBAC55A06295CE870B07029BFCDB2DCE28D959F2815B16F81798, 0x483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8) G=(0x79BE667EF9DCBBAC55A06295CE870B07029BFCDB2DCE28D959F2815B16F81798,0x483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8),

n = 0 x F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F E B A A E D C E 6 A F 48 A 03 B B F D 25 E 8 C D 0364141 n = 0xFFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFE BAAEDCE6 AF48A03B BFD25E8C D0364141 n=0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEBAAEDCE6AF48A03BBFD25E8CD0364141,

h = 01 h = 01 h=01.

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

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

相关文章

ODYSSEE加速电机仿真优化

由于对低碳社会的强烈需求&#xff0c;电动汽车(EV)和混合动力汽车(HEV)的数量正在迅速增长。新能源汽车的主要部件是电池、逆变器和电机。电机市场的规模也将不断扩大。为了提高EV的性能&#xff0c;对电机设计工程师的要求越来越高。 除了EV市场&#xff0c;协作机器人市场也…

VMware 最新的安全漏洞公告VMSA-2024-0013

#深度好文计划# 一、摘要 2024年6月26日&#xff0c;VMware 发布了最新的安全漏洞公告 VMSA-2024-0013&#xff0c;修复了 VMware ESXi 和 VMware vCenter 中的多个安全漏洞。 VMSA-2024-0013&#xff1a;VMware ESXi 和 vCenter Server 更新修正了多个安全性漏洞 &#xff…

华为HCIP Datacom H12-821 卷16

1.判断题 在 VRRP 中,当设备状态变为 Master 后,,会立刻发送免费 ARP 来刷新下游设备的 MAC 表项,从而把用户的流量引到此台设备上来 A、对 B、错 正确答案: A 解析: 2.判断题 路由选择工具 route- policy 能够基于预先定义的条件来进行过滤并设置 BGP

5.9k!一款清新好用的后台管理系统!【送源码】

今天给大家分享的开源项目是一个优雅清新后台管理系统——Soybean Admin。 简介 官方是这样介绍这个项目的&#xff1a; Soybean Admin 使用的是Vue3作为前端框架&#xff0c;TypeScript作为开发语言&#xff0c;同时还整合了NaiveUI组件库&#xff0c;使得系统具有高可用性和…

原创作品—医疗行业软件界面UI、交互设计

在医疗行业大屏UI设计中&#xff0c;首要的是以用户为中心&#xff0c;深入理解医生、护士、管理层等用户群体的具体需求和工作流程。大屏设计应直观展示关键医疗数据、患者信息、设备状态等&#xff0c;确保用户能够迅速、准确地获取所需信息。同时&#xff0c;功能布局应合理…

用户中心项目全流程

企业做项目流程 需求分析 > 设计&#xff08;概要设计 、 详细设计&#xff09; > 技术选型 >初始化项目 / 引入需要的技术 > 写个小demo > 写代码 &#xff08;实现业务逻辑&#xff09; > 测试&#xff08;单元测试&#xff09;> 代码提交 / 代码评审 …

idea http client GET 请求 报503错误

idea 提供的 http client 插件&#xff0c;在 GET 请求时总是 报503 的错误&#xff0c;但请求URL可以在浏览器中正常访问。 GET localhost:8080/student Response file saved. > 2024-06-20T160906.503.html 有一种原因跟本地配置的代理有关&#xff0c;如下图。如果在…

unidbg介绍

1.unicorn介绍 好比是一个CPU&#xff0c;可以模拟执行各种指令 提供了很多编程语言接口&#xff0c;可以操作内存、寄存器等 但它不是一个系统&#xff0c;内存管理、文件管理、系统调用等都需要自己来实现 2.基于unicorn开发的框架 cemu用来学习汇编的工具 AndroidNativeEm…

AcWing算法基础课笔记——最短Hamilton路径

最短Hamilton路径 题目 给定一张 n 个点的带权无向图&#xff0c;点从 0~n-1 标号&#xff0c;求起点 0 到终点 n-1 的最短Hamilton路径。 Hamilton路径的定义是从 0 到 n-1 不重不漏地经过每个点恰好一次。 输入格式 第一行输入整数n。 接下来 n 行每行n个整数&#xff0c…

SpringCloud分布式微服务链路追踪方案:Skywalking

一、引言 随着微服务架构的广泛应用&#xff0c;系统的复杂性也随之增加。在这种复杂的系统中&#xff0c;应用通常由多个相互独立的服务组成&#xff0c;每个服务可能分布在不同的主机上。微服务架构虽然提高了系统的灵活性和可扩展性&#xff0c;但也带来了新的挑战&#xf…

第六篇:精通Docker Compose:打造高效的多容器应用环境

精通Docker Compose&#xff1a;打造高效的多容器应用环境 1. 引言 1.1 目的与重要性 在现代软件开发中&#xff0c;随着应用程序的复杂性不断增加&#xff0c;传统的单一容器部署方式已无法满足需求。Docker Compose作为一种强大的工具&#xff0c;专门用于定义和运行多容器…

【Spring】Spring学习笔记

Spring数据库 Spring JDBC 环境准备 创建Spring项目, 添加以下依赖 H2 Database: 用于充当嵌入式测试数据库JDBC API: 用于连接数据库Lombok: 用于简化pojo的编写 然后添加配置文件: spring.output.ansi.enabledALWAYS spring.datasource.username*********** spring.dataso…

Java-方法引用

方法引用概念 把已经有的方法拿过来用&#xff0c;当做函数式接口中抽象方法的方法体 前提条件 1、引用处必须是函数式接口 2、被引用的方法必须已经存在 3、被引用方法的形参和返回值 需要跟抽象方法保持一致 4、被引用方法的功能要满足当前需求 方法引用格式示例 方…

Micro-ROS是什么?

Micro-ROS是ROS&#xff08;Robot Operating System&#xff0c;机器人操作系统&#xff09;生态系统的一个重要组成部分&#xff0c;专为微控制器&#xff08;Microcontrollers&#xff09;设计的轻量级ROS版本。它的目标是在资源有限的嵌入式平台上实现ROS 2的功能&#xff0…

如何跑起来一个前后端项目

后端部署 第一步配置自己的maven 第二步优先导入自己本地jar包当本地没有在从远程下载 第三步找到配置文件 第四步成功运行后端部署完毕 前端部署 第一步看看项目node_modules有没有文件如果有就是已经安装好了对应的依赖&#xff0c;没有执行npm install 第二步运行即可

UE5 中的碰撞问题

文章目录 一、初始准备二、重叠和碰撞三、自定义碰撞 一、初始准备 首先我们创建一个 BP_ThirdPerson 项目&#xff0c;然后在项目中创建两个 Actor 的蓝图 Blueprint 首先是一个移动的 BP_Push&#xff0c;这里使用 time line 循环旋转 cube 的相对位置 得到效果如下 然后是…

用MySQL和navicatpremium做一个项目—(财务管理系统)。

1 ER图缩小的话怕你们看不清&#xff0c;所以截了两张图 2 vsdx绘图结果 3DDL和DML,都有点长分了好多次上传&#xff0c;慢慢看 DDL -- 用户表 CREATE TABLE users (user_id INT AUTO_INCREMENT PRIMARY KEY COMMENT 用户ID,username VARCHAR(50) NOT NULL UNIQUE COMMENT 用…

量化交易 - 策略回测

策略回测 1、什么是策略回测&#xff1f;2、策略回测的作用3、策略回测系统概述3.1策略回测中相关的指标介绍3.2量化交易策略的资金容量3.3 完整的策略回测系统包含哪些内容 1、什么是策略回测&#xff1f; 策略回测&#xff0c;也称之为策略回溯测试&#xff0c;是指利用交易…

002关于Geogebra软件的介绍及与MatLab的区别

为什么要学Geogebra&#xff1f; 因为和MatLab的科学计算相比&#xff0c;GeoGebra重点突出教学展示&#xff0c;对于教师、学生人群来讲再合适不过了&#xff0c;尤其是可以融入到PPT里边呈现交互式动画&#xff0c;想想听众的表情&#xff01;这不就弥补了看到PPT播放数学公…

AI 开发平台(Coze)搭建《美食推荐官》

前言 本文讲解如何从零开始&#xff0c;使用扣子平台去搭建《美食推荐官》 bot直达&#xff1a;美食推荐官 - 扣子 AI Bot (coze.cn) 欢迎大家体验一下&#xff01;&#xff01; 效果 正文 prompt 美食推荐官的首要任务就是推荐美食&#xff0c;基于这个我们要给他一个基…