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

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.

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

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

相关文章

前端实现对本地文件的IO操作

前言 在网页中&#xff0c;前端已经可以读取本地文件系统&#xff0c;对本地的文件进行IO读写&#xff0c;甚至可以制作一个简单的VScode编辑器。这篇文章以渐进式方式实现此功能&#xff0c;文末附上所有代码。 首先看整体功能演示 功能概述 我们将实现一个简单的 Web 应…

Xilinx FPGA:vivado这里记录一个小小的问题

问题描述&#xff1a;uart_data从rx模块输入到ctrl模块后就没有值了。 问题一&#xff1a;首先我仿真例化了两个模块&#xff0c;并且&#xff0c;我选取了单独例化的rx模块中的uart_data 的值&#xff0c;所以在仿真中它是有值的。 timescale 1ns / 1ps module test_bench_TO…

QCC51XX---开启手机log日志

QCC51XX---系统学习目录_trbi200软件-CSDN博客 目录 1.Vivo 2.华为 3.小米 4.三星 5.oppo 1.Vivo *#*#112#*#* 输入命令后会进入log日志系统(由于版本原因,界面可能不同),打开log开关,log就会在后台自动录制。 点击设置,则可进入图1(右边)的界面,可以导出log,导出…

小程序中echarts的bug

这个文字在手机上显示会有黑的的阴影 textStyle: {fontSize: 12,wrap: true,textShadowColor: "#fff", // 文字本身的阴影颜色textShadowBlur: 10, // 文字本身的阴影长度textShadowOffsetX: 10, // 文字本身的阴影X偏移textShadowOffsetY: 10, //阴影Y偏移}

转:关于征集第三批工业软件新场景新技术难题解决思路的公告

工业软件是先进工业知识与经验的凝炼&#xff0c;工业软件自身的先进性既来自对先进工业先进需求的汲取提炼&#xff0c;也来自对根技术新突破、新成果的高效采用。为增强根技术新成果提供方与工业软件厂家或最终用户方的连接&#xff0c;促进国产工业软件差异化竞争力的打造&a…

游戏服务器研究三:bigworld 的 load balance 算法

1. 前言 bigworld 的 load balance 算法的大致思路是知道的&#xff0c;即 动态区域分割 动态边界调整。但具体是怎么实现的&#xff0c;不清楚&#xff0c;网上也不找到相关的文章介绍&#xff0c;所以只能自己看代码进行分析。 本文大致记录我所分析到的算法实现&#xff…

vue3项目登录成功后根据角色菜单来跳转指定页面(无首页)

前言&#xff1a;需求不想要首页&#xff0c;登录什么角色跳转到这个角色经常使用的页面。&#xff08;例如&#xff1a;审核者角色的人输入用户名密码成功后就自动跳转到待审核的页面&#xff0c;仓库管理员登录成功则自动跳转到仓库列表&#xff09; 需要解决的点和想法&…

C语言类型转换理解不同的基本类型为什么能够进行运算

类型转换 1.类型转换1.1隐式转换1.2常用算术转换1.2强制类型转换 1.类型转换 在执行算数运算时&#xff0c;计算机比C语言的限制更多。为了让计算机执行算术运算&#xff0c;通常要求操作数用相同的大小&#xff08;即为的数量相同&#xff09;&#xff0c;但是C语言却允许混合…

SpringBoot优点达项目实战:登录功能实现(四)

SpringBoot优点达项目实战&#xff1a;登录功能实现&#xff08;四&#xff09; 文章目录 SpringBoot优点达项目实战&#xff1a;登录功能实现&#xff08;四&#xff09;1、查看接口2、查看数据库3、代码实现1、创建实体类2、controller实现3、service层实现4、Mapper层 4、测…

JVM专题十二:JVM 中的收集器二

上一篇JVM专题十一&#xff1a;JVM 中的收集器一咱们介绍了垃圾收集器的分类&#xff0c;已经主流的分代垃圾收集器重点看了CMS与三色标记算法&#xff0c;本篇咱们继续来看意G1、ZGC等。 G1收集器 G1&#xff08;Garbage-First Garbage Collector&#xff09;是一种服务器端的…

React实现二级评论

1. 什么是二级评论 图片来源–blackfrog的掘金文章 口语化的讲当我发布一个评论的时候就是一级评论&#xff0c;当我回复我发布的评论的时候就是二级评论并且将所有回复二级评论的评论也归于二级评论。 2. 二级评论功能的实现逻辑 在这里后端设计了四个接口分别是 获取所有…

千呼新零售2.0-OCR拍照识别采购单

千呼新零售2.0系统是零售行业连锁店一体化收银系统&#xff0c;包括线下收银线上商城连锁店管理ERP管理商品管理供应商管理会员营销等功能为一体&#xff0c;线上线下数据全部打通。 适用于商超、便利店、水果、生鲜、母婴、服装、零食、百货、宠物、中医养生、大健康等连锁店…

目标检测系列(四)利用pyqt5实现yolov8目标检测GUI界面

目录 1、pyqt5安装 2、PyCharm添加Qt Designer、PyUIC 3、Qt Designer设计界面 4、根据ui文件自动生成py文件 5、修改py文件来调用检测程序 6、执行py文件启动 1、pyqt5安装 Qt Designer&#xff1a;一个用于创建图形用户界面的工具&#xff0c;可轻松构建复杂的用户界面…

ChatUI:使用Gradio.NET为LLamaWorker快速创建大模型演示界面

Gradio.NET 是 Gradio 的.NET 移植版本。它是一个能够助力迅速搭建机器学习模型演示界面的库&#xff0c;其提供了简洁的 API&#xff0c;仅需寥寥数行代码就能创建出一个具备交互性的界面。在本篇文章中&#xff0c;我们将会阐述如何借助 Gradio.NET 为 LLamaWorker 快捷地创建…

Python 基础 (标准库):堆 heap

1. 官方文档 heapq --- 堆队列算法 — Python 3.12.4 文档 2. 相关概念 堆 heap 是一种具体的数据结构&#xff08;concrete data structures&#xff09;&#xff1b;优先级队列 priority queue 是一种抽象的数据结构&#xff08;abstract data structures&#xff09;&…

【数据结构】——链表经典OJ(leetcode)

文章目录 一、 相交链表二、 反转链表三、 回文链表四、 环形链表五、 环形链表 II六、 合并两个有序链表七、 两数相加八、 删除链表的倒数第N个节点九、 随机链表的复制 一、 相交链表 双指针法 struct ListNode *getIntersectionNode(struct ListNode *headA, struct ListN…

MySQL进阶-索引-使用规则-最左前缀法则和范围查询

文章目录 1、最左前缀法则2、启动mysql3、查询tb_user4、查看tb_user的索引5、执行计划 profession 软件工程 and age31 and status 06、执行计划 profession 软件工程 and age317、执行计划 profession 软件工程8、执行计划 age31 and status 09、执行计划 status 010、执行…

直流电机双闭环调速Simulink仿真

直流电机参数&#xff1a; 仿真模型算法介绍&#xff1a; 1&#xff09;三相整流桥&#xff0c;采用半控功率器件SCR晶闸管&#xff1b; 2&#xff09;采用转速环、电流环 双闭环控制算法&#xff1b; 3&#xff09;外环-转速环&#xff0c;采用PI 比例积分控制&#xff1b;…

通信系统网络架构_3.移动通信网络架构

移动通信网为移动互联网提供了强有力的支持&#xff0c;尤其是5G网络为个人用户、垂直行业等提供了多样化的服务。以下从业务应用角度给出面向5G网络的组网方式。 1.5GS与DN互连 5GS&#xff08;5G System&#xff09;在为移动终端用户&#xff08;User Equipment&#xff0c;…

搜维尔科技:【研究】触觉手套比控制器更能带来身临其境、更安全、更高效的虚拟体验

自然交互可提高VR模拟的有效性。研究表明&#xff0c;触觉手套比控制器更能带来身临其境、更安全、更高效的虚拟体验。 以下是验证 医疗培训中的触觉技术 “ 95.5%的参与者表示触摸是 XR 教育的重要组成部分&#xff0c;90.9% 的参与者表示 XR 触觉将提供一个安全的学习场所。…