基于量子同态加密的安全多方凸包协议

news2024/10/7 14:31:40
摘要
安全多方计算几何(SMCG)是安全多方计算的一个分支。该协议是为SMCG中安全的多方凸包计算而设计的。首先,提出了一种基于量子同态加密的安全双方值比较协议。由于量子同态加密的性质,该协议可以很好地保护量子电路执行过程中数据的安全性和各方之间的交互。结果由一个半可信的第三方宣布。利用上述设计的值比较协议,提出了一种安全的多方凸包协议,可以安全地解决多个用户点集的公共凸包问题。然后进行了正确性和安全性分析,证明了该协议是安全可靠的。

背景

随着信息技术的发展,安全问题一直是学术界关注的热点问题。安全多方计算(SMC)旨在解决多个相互不信任的参与者共同计算某一类型任务的问题,同时保护他们的信息不被泄露。SMC起源于姚在1982年提出的百万富翁问题,两个百万富翁在不知道彼此财富的情况下比较财富。它涉及到经典计算中的各种问题,其中安全多方计算几何(SMCG)也是一个值得研究的方向。2001年,Atallah首次给出了数的安全计算几何问题的定义研究,包括点包含问题、交点问题和凸包问题,并对其中一些问题提出了解决方案。后续学者也对这些SMCG问题进行了研究,如点包含问题、几何相交问题、最近点或点对问题、求解凸包问题等。
然而,上述问题的解决方案受到计算复杂性的限制。由于量子算法的出现,如Shor算法和Grover算法,这些基于计算复杂度的安全算法将面临威胁。因此,有必要研究基于量子力学的安全多方计算几何。Shi等于2016年提出了一种基于相位编码量子私有查询的任意区域隐私保护点包含协议。2017年,Peng等也使用相位编码的量子隐私查询解决了双方距离解决问题。不久之后,Chen等人发表了一篇论文,指出了Peng方案在安全性上的不足,分析了原方案存在不足的原因,并提出了新的解决方案。2018年,Peng等人提出了一种使用基于QKD的量子私有查询进行安全的双方距离计算的量子协议。Liu等人在2019年发表的文章中提出了一种基于oracle和量子计数算法的协议来处理两方几何相交问题,但该方法仅限于两方的参与,不能很好地扩展到多方的情况下。
在本文中,作者率先使用量子同态加密来解决多方凸包问题。两个或多个用户有自己的点集。作者协议的目的是如何在不泄露用户自身信息的情况下找出所有用户点集的共同凸包,凸包点的信息是所有人都知道的。提出了一种基于量子同态加密的值比较协议,保证了数据值的安全性。然后将该协议应用于凸包计算协议中,最后得到了该协议的解。

基础知识

量子同态加密

QHE方案解决的问题是,当数据被加密后,经过同态求值,最终的解密结果与原始明文的相同计算结果相同,可以解决安全计算问题。QHE方案由四种算法组成(密钥生成,加密算法,评估算法,解密算法)。

  1. 密钥生成算法将随机生成一个加密密钥ek和一个解密密钥dk。根据给定的ek算法计算dk
  2. 加密算法ε对量子态σ进行加密并输出加密后的量子态 E ε ( e k , δ ) E_ε(ek,δ) Eε(ek,δ)
  3. 评估算法是对加密数据 ε ( e k , δ ) ε(ek, δ) ε(ekδ)进行量子计算U,执行后得到最终的密文 E ε ( e k , δ ) E_ε(ek, δ) Eε(ekδ)
  4. 解密算法D对 E ε ′ ( e k , δ ) E'_ε(ek, δ) Eε(ekδ)进行解密,输出明文 σ ′ = D ( d k , E e ′ ( e k , σ ) ) σ' = D(dk, E'_e(ek, σ)) σ=D(dk,Ee(ekσ)) σ ′ = U σ U † σ' = UσU^† σ=UσU
    在本文中,我们使用X门和Z门对明文量子比特 σ σ σ进行加密,并被Boykin等人证明是完全安全的。
    在密钥生成中,可以对原始密文进行量子门操作,而原始密钥ek根据密钥更新算法生成最终解密密钥dk。量子门的每次执行称为 G i ( i = 1 , 2 … k , k 是执行的总次数 ) G_i (i = 1,2…k, k是执行的总次数) Gi(i=1,2k,k是执行的总次数),每个量子门是集合 S = S = S={ X , Y , Z , H , S , T , C N O T X, Y, Z, H, S, T,CNOT X,Y,Z,H,S,T,CNOT}的一个元素。密钥更新算法有以下几种情况:如果Gi = X或Y或Z,假设它作用于ek的第m位,则密钥更新算法第i步的密钥值不变。如式(1)所示
    在这里插入图片描述
    如果Gi = H,假设它作用于ek的第m位,则密钥更新算法第i步的密钥值遵循式(2)。
    在这里插入图片描述
    如果Gi = S,假设它作用于ek的第m位,则密钥更新算法第i步的密钥值遵循式(3)
    在这里插入图片描述
    如果Gi = S,假设它作用于ek的第m位和第l位,则密钥更新算法第i步的密钥值遵循式(4)。
    在这里插入图片描述
    如果Gi = T,则由于执行T门进行求值而发生s错误。则有s错误为 T X x Z z ∣ ψ ⟩ = X x Z x S x T ∣ ψ ⟩ TX^xZ^z|\psi\rangle=X^xZ^xS^xT|\psi\rangle TXxZzψ=XxZxSxTψ。为了消除s误差,Gao等设计了一种基于Sx旋转贝尔测量的T门过程量子电路,如图1所示。执行此电路后,可以得到ra和rb,然后 T X x ⊕ z S x Z z ∣ ψ ⟩ = X x ⊕ r a Z x ⊕ z ⊕ r b T ∣ ψ ⟩ TX^{x\oplus z}S^xZ^z|\psi\rangle=X^{x\oplus r_a}Z^{x\oplus z\oplus r_b}T|\psi\rangle TXxzSxZzψ=XxraZxzrbTψ
    在这里插入图片描述
    假设Gi = T作用于ek的第m位,则密钥更新算法第i步的密钥值遵循式(5)。
    在这里插入图片描述

量子逻辑门与量子减法电路

逻辑门电路是量子计算的基础。单量子比特门包括泡利操作X、Y、Z、Hadamard门H和相位门T、S。量子减法器的设计是为了从n两个二进制数a和b中获取减法信息。本文中我们使用Yuan设计的量子减法器,其具体思想是:首先从最低位开始减法,然后考虑是否需要从上面的位借用,然后减去第二个位直到最后一位。为了重用常数输入,使用复位操作将常数输入设置为0,可以显著减少常数输入的数量。量子位输入减法电路如图所示。
在这里插入图片描述

基于同态加密的值比较协议(VCP_QHE)

本节介绍了一个基于量子同态加密的私有比较协议,可以安全地保护双方之间的值比较。参与者包括Alice、Bob(两个信息所有者)和半信任的第三方。我们可以将半可信的第三方划分为计算中心和密钥分发中心,其中计算中心只负责消息的计算,而半可信的密钥中心负责密钥的分发。在我们的协议中,我们使用水平偏振和垂直偏振来表示点信息,水平偏振光子|1>表示二进制消息1,垂直偏振光子|0>表示二进制消息0。Alice和Bob分别将加密后的信息发送到计算中心的量子电路U进行计算。量子电路U包含多个逻辑门,它们属于集合S = {X, Y, Z, H, S, T, CNOT}。协议流程图如图4所示,具体步骤如下:
在这里插入图片描述

  1. 密钥中心随机生成一个长度为2n的密钥ek = (x0,z0),其中x0,z0属于{0,1}n。然后通过BB84量子密钥分发协议将ek发送给Alice和Bob。
  2. Alice和Bob分别对他们的信息进行编码,Alice和Bob分别用ek对其编码的光子序列 ∣ ψ A ⟩ = ∣ ψ A 1 ψ A 2 ψ A 3 ⋅ ⋅ ⋅ ψ A n ⟩ |\psi_A\rangle=|\psi_A^1\psi_A^2\psi_A^3···\psi_A^n\rangle ψA=ψA1ψA2ψA3⋅⋅⋅ψAn, ∣ ψ B ⟩ = ∣ ψ B 1 ψ B 2 ψ B 3 ⋅ ⋅ ⋅ ψ B n ⟩ |\psi_B\rangle=|\psi_B^1\psi_B^2\psi_B^3···\psi_B^n\rangle ψB=ψB1ψB2ψB3⋅⋅⋅ψBn进行加密,得到密文序列 ∣ ψ A ′ ⟩ = X x 1 Z z 1 ∣ ψ A 1 ⟩ ⊗ X x 2 Z z 2 ∣ ψ A 2 ⟩ ⋅ ⋅ ⋅ ⊗ X x n Z z n ∣ ψ A n ⟩ |\psi_A'\rangle=X^{x_1}Z^{z_1}|\psi_A^1\rangle \otimes X^{x_2}Z^{z_2}|\psi_A^2\rangle ···\otimes X^{x_n}Z^{z_n}|\psi_A^n\rangle ψA=Xx1Zz1ψA1Xx2Zz2ψA2⋅⋅⋅XxnZznψAn, ∣ ψ B ′ ⟩ = X x 1 Z z 1 ∣ ψ B 1 ⟩ ⊗ X x 2 Z z 2 ∣ ψ B 2 ⟩ ⋅ ⋅ ⋅ ⊗ X x n Z z n ∣ ψ B n ⟩ |\psi_B'\rangle=X^{x_1}Z^{z_1}|\psi_B^1\rangle \otimes X^{x_2}Z^{z_2}|\psi_B^2\rangle ···\otimes X^{x_n}Z^{z_n}|\psi_B^n\rangle ψB=Xx1Zz1ψB1Xx2Zz2ψB2⋅⋅⋅XxnZznψBn。这些密文序列是需要发到计算中心去执行而提前制备的。为了防止第三方窃听,Alice和Bob准备了一些诱饵光子,每个光子从 ∣ 10 ⟩ ∣ 11 ⟩ ∣ + ⟩ ∣ − ⟩ |10\rangle|11\rangle |+\rangle |-\rangle ∣10∣11+中选择。这些诱饵光子将被随机插入。完成这个操作之后,新序列才会被发送到计算中心。
  3. 计算中心接收到Alice和Bob发送的加密序列后,Alice和Bob公布诱饵光子的插入位置和对应的测量基,若插入的诱饵为|0>或者|1>,则测量基为|0>或者|1>,[1}};若插入的诱饵为|+>或者|->,则测量基为|+>或者|->。计算中心根据所提供的信息进行排序。如果测量结果没有达到Alice和Bob设定的阈值,协议将终止。否则,计算中心丢弃诱饵光子,获得原始加密序列 ∣ ψ A ′ ⟩ |\psi'_A\rangle ψA ∣ ψ B ′ ⟩ |\psi'_B\rangle ψB。为了使输入计算的位长一致,计算中心在计算前在序列长度较短的加密序列前面加上I0 >,使两个序列的长度一致。
  4. 计算中心构建量子减法电路,取两个加密序列作为电路输入。同时,密钥中心根据计算中心执行的量子逻辑门对原密钥周进行更新。假设我们将电路中的量子逻辑门每次执行设置为Gi,总共执行K次,那么最终的密文结果可以表示为 G k ( G k − 1 ( ⋅ ⋅ ⋅ ( G 2 ( G 1 ( ∣ ψ A ′ ⟩ , ∣ ψ B ′ ⟩ ) ) ) ⋅ ⋅ ⋅ ) ) G_k(G_{k-1}(···(G2(G1(|\psi'_A\rangle,|\psi'_B\rangle)))···)) Gk(Gk1(⋅⋅⋅(G2(G1(ψA,ψB⟩)))⋅⋅⋅))。解密密钥为 d k = ( x k , z k ) dk = (xk, zk) dk=(xk,zk),稍后将解释密钥更新规则。最后,计算中心将计算结果发送到密钥中心。
  5. 密钥中心收到结果后,使用解密密钥dk对其进行解密和测量,最终得到Alice和Bob减去的信息(计算结果)。
  6. 密钥中心向Alice和Bob宣布最终结果,协议结束。

基于VCP_QHE的安全多方凸包协议

假设有多个用户Ui(i>1),每个用户都有自己的点集seti,想要求解点集的公共凸包Σseti。但是他们不希望对方知道自己的信息,只能知道凸包上的信息。目前经典各方提出的安全协议是基于计算复杂度的,这类协议的问题受到量子计算的威胁。为了更清晰地描述这一过程,本文描述了双方安全凸包协议,最后扩展为安全多方凸包协议。在两方协议中,假设我们的参与者是Alice和Bob,以及一个半可信的第三方。Alice有一个私有的点集合SA= (p1, p2, p3…, pm), Bob有一个私有点集SB = (q1, q2,q3 …qn)。Alice和Bob需要在不泄露他们自己的点集信息的情况下计算m + n个点的凸包。具体步骤如下:

步骤1 Alice和Bob分别计算y轴坐标中最小的点pA min∈SA和qB min∈SB(注意这里也可以选择y轴上的最大值或x轴上的最小最大值,只要所需点是当前集合中的极值点即可)。
步骤2 Alice和Bob用VCP_QHE比较他们的极值点pA min和qB min的值大小。
如果pA min >qB min,那么qB min是m + n集合的一个极值点和凸包上的一个点。通过qB min生成x轴方向的水平单位矢量→v0v1 (v0是矢量上的一个点,v1 = qB min)。
如果pA min <pbmin,那么pA min是m + n集合的一个极值点也是凸包上的一个点。通过pA min生成x轴方向的水平单位矢量→v0v1 (v0是矢量上的一个点,v1 = pA min)。
若pA min = qB min,则pA min和qB min都是m + n集合的极值点和凸包上的两个点。通过pA min和qB min生成向量→v0v1,v0 = pA min, v1 = qB min。
步骤3 Alice计算余弦值 c o s l ( l = 1 , 2 , … , m ) cos_l(l = 1,2,…, m) cosl(l=1,2,m) v i p l → \overrightarrow {v_ip_l} vipl v i − 1 v i → \overrightarrow{v_{i-1}v_i} vi1vi (i表示第i个凸包点,l=1,2,3…m),并选择其最大余弦值cos A。同时,Bob计算余弦值cost(t =1,2,…), n)的 v i q t → \overrightarrow {v_iq_t} viqt v i − 1 v i → \overrightarrow {v_{i-1}v_i} vi1vi ,然后选择其最大余弦值cos B。
步骤4 Alice和Bob通过VCP_QHE比较了 c o s A ( c o s < v i p m a x → , v i − 1 v i → > ) cosA(cos<\overrightarrow {v_ip_{max}},\overrightarrow {v_{i-1}v_i}>) cosA(cos<vipmax ,vi1vi >) c o s B ( c o s < v i p m a x → , v i − 1 v i → > ) cosB(cos<\overrightarrow {v_ip_{max}},\overrightarrow {v_{i-1}v_i}>) cosB(cos<vipmax ,vi1vi >)的大小。p max和q max分别是Alice和Bob的点集中余弦值最大的点。比较结果将在三种情况下:
若cos A>cos B,则pmax为凸包点,设p max→vi+1。循环第3步和第4步,直到vi+1≡v1,其中最后一个凸点是第一个凸点,然后协议结束。若cos A<cos B,则q max为凸包点,设q max→vi+1。循环第3步和第4步,直到vi+1≡v1,其中最后一个凸点是第一个凸点,然后协议结束。如果cos A=cos B。
步骤5 Alice和Bob分别计算凸壳点vi到p max, q max的距离disA, disB,然后通过VCP_QHE比较这两个距离。如果没有的话。disB,则设置p max→vi+1,否则设置q max→vi+1。循环第3步和第4步,直到vi+1≡v1,其中最后一个凸点是第一个凸点,然后协议结束。

由于协议解的整个过程是根据前一个凸壳点得到下一个凸壳点,我们可以知道两个凸壳点可以形成一个凸壳的边,所以每得到两个凸壳点就会形成一个凸壳边,所有边的集合就是一个完整的凸壳。由此得到的点集合代表了整个点集合的凸壳(即,根据所得到的点的顺序由直线形成的闭环是凸壳)。
根据上述安全的双方凸包协议,我们还可以将其扩展到安全的多方凸包计算。多用户Ui(i = 1,2,3…,n)协议的过程与双方凸包协议的过程大致相同。在步骤1中,Ui分别得到自己的极值点,然后使用VCP_QHE协议最终得到一个极值点Σ Si(所有点的集合); VCP_QHE还用于求解步骤3中的最大余弦值和步骤5中的最大距离。由于我们设计的VCP_QHE是由双方来解决的,所以我们需要对多个用户的输入进行两两判断。最后,经过循环判断,每个用户Ui都可以得到所有点的凸包。

精确度分析

在本节中,我们对VCP_QHE和安全多方凸包协议进行了用例分析。首先,我们分析VCP_QHE协议,假设Alice有数据IA= 58, Bob有数据IB= 30,并将它们分别编码为二进制,得到IA =(1,1,1,0,1,0)和IB=(1,1,1,1,0)。由于IA和IB的长度不一致,我们在较小的I前面加上|0>,得到两者的长度一致的I’B=(0,1,1,1,1,0)。通过计算中心(即IA−IB)的计算和密钥中心(即Ires = (1,1,1,0,0) > 0的解密,我们可以知道IA >IB
在这里插入图片描述
通过VCP_QHE协议对cos A和cos B进行判断,得出cos A<cos B,因此新的凸包点为q3。然后以q3为基点,得到后续凸包点。流程为q1→q3→q2→p2→p1→q1,如上图所示。
对于安全多方凸包的正确性分析,我们假设Alice和Bob有点集SA= {(0,1), (1,6), (2,4)}, SB={(3,0),(4,8),(6,1)},如图所示。Alice和Bob计算了他们点集中的最小y轴坐标,分别标记为p1和q1。通过对p1和q1应用VCP_QHE协议可以看出,q1是整个集合中沿y轴方向的最小点,也是第一个凸包点。根据q1,分别得到Alice和Bob的最大余弦值如式6和式7所示。
在这里插入图片描述
在不失一般性的前提下,假设有n个用户U1 U2…,则每个用户包含各自的点信息。每个用户计算自己的点集Ei中的极值点,通过VCP_QHE协议比较Ei,得到第一个凸包点C1。Ui计算最小余弦值 c o s < C 1 , C 1 P k > i cos<C_1,C_1P_k>_i cos<C1,C1Pk>i由点C1的水平向量 C 1 P k C_1P_k C1Pk组成。然后比较通过VCP_QHE得到最小余弦值 c o s < C 1 , C 1 P k > i cos<C_1,C_1P_k>_i cos<C1,C1Pk>i和在整个点集中的 c o s < C 1 , C 1 P k > i cos<C_1,C_1P_k>_i cos<C1,C1Pk>i。即可以得到第二凸包点C2。因此,每个用户首先找到自己的点与凸包边Ci−2Ci−1形成的最小余弦值,然后通过安全VCP_QHE协议比较余弦值。当获得下一个凸包点Ci值时,第一个凸包点的信息相同。然后解出所有凸包点,所有凸包点C1C2…Cm。整个解决过程是完全正确的,并且安全性也得益于同态加密的保证。

安全性分析

由于我们是第一个使用量子同态加密来解决凸包问题的,因此没有其他协议可以与我们比较。我们只能从以下几个角度来分析所提议协议的安全性。

数据与密钥安全

由于初始加密密钥ek是由密钥中心使用安全密钥生成算法QOTP随机生成的,因此可以保证生成的初始密钥的安全性。在密钥更新算法中,当密钥中心与计算中心交互时,计算中心只提供每一步执行的量子逻辑门,因此(x,z)中间密钥和最终dk在密钥更新过程中是安全的。在数据安全方面,由于初始密钥和解密密钥由密钥中心所有,因此密钥中心窃听数据的可能性很大。但是,在我们的协议中,这是不可行的,因为用户通过密钥中心分发的初始密钥ek对数据进行加密,然后通过安全的量子通道直接传输到计算中心,计算中心只有在数据输入通过门电路完成后才会将得到的数据发送到密钥中心进行解密。因此,密钥中心只能获得操作后的数据信息,而无法获得原始的明文信息。所以数据是安全的。

外部攻击

外部攻击者可以在密钥分发、密文传输和同态评估过程中进行攻击。在密钥分发过程中,使用BB84协议分发密钥,因此外部攻击者无法获取密钥。在密文传输过程中,外部攻击者可能会攻击量子信道以获取数据。但是,在数据传输之前,用户会在加密的光子序列中随机添加诱饵光子。因此,即使攻击者拦截了密文信息,也无法知道原始信息是什么。在同态评估过程中,计算与关键中心之间的通信是通过量子信道进行的,并且在信息中插入诱饵光子以防止被窃听,因此也是安全的。

内部攻击

在这种情况下,如果N个不诚实的参与者想要窃取其他人的信息,我们的协议也是完全安全的。由于半可信的密钥中心和计算中心必须忠实于实现过程,不能与其他参与者或第三方合作,因此它们只能从自己获得的信息中推断出其他人的信息。我们在上节中描述了用户数据的安全性。因此,密钥中心和计算中心无法获取其他用户的真实信息。另一方面,由于关键中心公布的最终结果没有公布具体的差异,用户无法通过差异数据获取其他各方的信息,也无法与其他参与者合作获取用户的真实数据。所以我们的协议可以抵抗参与者的攻击。

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

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

相关文章

分享一套功能齐全的免费开源MES系统

万界星空科技的开源MES功能&#xff1a; 1、基础数据管理&#xff1a; 2、质量管理&#xff1a; 质检项目维护&#xff0c;根据物料或者型号管理质检项目。检验页面&#xff0c;抽检确认。 3、工艺文件管理 &#xff1a;工艺参数&#xff0c;BOM文件&#xff0c;导入导出 报表&…

【树莓派入门】

一、镜像烧录 烧录器&#xff1a;Raspberry Pi Imager 下载链接&#xff1a;树莓派镜像烧录器下载 创建 ssh 文件 手动创建一个空白记事本.txt文件&#xff0c;命名为ssh&#xff0c;重命名&#xff0c;删掉.txt扩展名。将这个文件放入SD卡的boot盘中 wpa_supplicant.conf …

电流源电路

3.3.3电流源电路 镜像电流源 电路 分析 仿真 比例电流源 电路 分析 仿真 加射极输出器的电流源1 电路 分析 仿真 加射极输出器的电流源2 电路 分析 仿真 威尔逊电流源 电路 分析 仿真

Docker 全栈体系(八)

Docker 体系&#xff08;高级篇&#xff09; 六、Docker轻量级可视化工具Portainer 1. 是什么 Portainer 是一款轻量级的应用&#xff0c;它提供了图形化界面&#xff0c;用于方便地管理Docker环境&#xff0c;包括单机环境和集群环境。 2. 安装 官网 https://www.portain…

QTday3消息弹框/计时器

闹钟小软件 widget.cpp #ifndef WIDGET_H #define WIDGET_H#include <QWidget> #include <QDebug> #include <QPushButton> #include <QLabel> #include <QTimer> #include <QTimerEvent> #include <QTime> #include <QMessageB…

版本适配好帮手 Android SDK Upgrade Assistant / Android Studio Giraffe新功能

首先是新版本一顿下载↓&#xff1a; Download Android Studio & App Tools - Android Developers 在Tools中找到Android SDK Upgrade Assistant 可以在此直接查看SDK升级相关信息&#xff0c;不用跑到WEB端去查看了。 例如看一下之前经常要对老项目维护的android 12蓝牙…

umy-ui树形结构表格懒加载用法详解

效果图 在做后台时&#xff0c;使用的iview组件库中的树形表格&#xff0c;但数据量过大时会导致页面卡死&#xff0c;借助umy-ui的虚拟表格完美解决了数据量大卡顿的问题。 先放文档&#xff1a;http://www.umyui.com/umycomponent/u-table-column-api 安装 npm install u…

Ubuntu Server版 之 mysql 系列

Ubuntu 分 桌面版 和 服务版 桌面版 &#xff1a;有额外的简易界面 服务版&#xff1a;是纯黑框的。没有任何UI界面的可言 安装mysql 安装位置 一般按照的位置存放在 /usr/bin 中 sudo apt-get install mysql-server查看mysql的状态 service mysql status mysql 安全设置…

对原型、原型链的理解

在 JavaScript 中是使用构造两数来新建一个对象的&#xff0c;每一个构造函数的内部都有一个 prototype 属性&#xff0c;它的属性值是一个对象&#xff0c;这个对象包含了可以由该构造西数的所有实例共享的属性和方法。当使用构造函数新建一个对象后&#xff0c;在这个对象的内…

js加载和长任务

js加载和长任务 本文将讲解以下浏览器如何加载js&#xff0c;并介绍一些可以提高网页加载速度的方法。 Evaluate Script 如果我们在devtools的performance中分析过网站的加载性能&#xff0c;可能会看到一个很长的任务&#xff0c;叫做Evaluate Script. 在这种情况下&#x…

IDS(Intrusion Detection Systems)

计算机安全的三大中心目标是&#xff1a;保密性(Conf idential ity)、完整性(Integrity)、可用性(Availability)。 身份认证与识别、访问控制机制、加密技术、防火墙技术等技术共同特征就是集中在系统的自身加固和 防护上&#xff0c;属于静态的安全防御技术&#xff0c;缺乏主…

【微服务架构设计】微服务不是魔术:处理超时

微服务很重要。它们可以为我们的架构和团队带来一些相当大的胜利&#xff0c;但微服务也有很多成本。随着微服务、无服务器和其他分布式系统架构在行业中变得更加普遍&#xff0c;我们将它们的问题和解决它们的策略内化是至关重要的。在本文中&#xff0c;我们将研究网络边界可…

上门居家养老小程序社区养老小程序开发方案详解

居家养老管理社区养老小程序有哪些功能呢&#xff1f; 1.选择养老服务类型 医疗护理&#xff0c;家政服务预约&#xff0c;上门助浴、上门做饭&#xff0c;上门助餐&#xff0c;生活照护&#xff0c;康复理疗、精神慰藉、委托代办等。各项服务的详情介绍。 2.选择预约时间 选择…

Linux_NVR_SDK 编译应用 -基于iTOP-RK3568开发板

在源码 build/app 目录下有发布版本的 RKMPI 以及编译配置&#xff0c;目前的编译方式只支持 Cmake 脚本。如果要编译其他应用&#xff0c;可以参考 build/app/build/build.sh 脚本配置编译工具链。 以编译 RKMPI 应用程序为例&#xff0c;进行示范&#xff1a; 1. 使能 sdk…

BIM与GIS融合:公路设计施工信息化的创新解决方案

随着信息技术的不断发展和应用&#xff0c;建筑行业也迎来了数字化转型。BIM&#xff08;建筑信息模型&#xff09;和GIS&#xff08;地理信息系统&#xff09;作为建筑行业中的重要技术&#xff0c;它们的融合对于实现公路施工信息化具有重要意义。Bim技术可以提供精细的建筑信…

(无人机方向)ros小白之键盘控制无人机(终端方式)

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言一&#xff1a;配置pycharm的ros开发环境二&#xff1a;核心代码讲解三 效果演示XTDrone 四 完整代码 前言 ubuntu 18.04 pycharm ros melodic 做一个在终端中…

Android 截图功能实现

Android 截图功能实现 简介效果图功能实现1. 截取当前可见范围屏幕2. 截取当前可见范围屏幕&#xff08;不包含状态栏&#xff09;3. 截取某个控件4. 截取ScrollView5. 长截图6. 截屏动画效果7. 显示截屏结果&#xff0c;自动消失6. 完整代码 简介 在Android应用中开发截图功能…

Kibana+Prometheus+node_exporter 监控告警部署

下载好三个软件包 一、prometheus安装部署 1、解压 linxxubuntu:~/module$ tar -xvf prometheus-2.45.0-rc.0.linux-amd64.tar.gz 2、修改配置文件的IP地址 # my global config global:scrape_interval: 15s # Set the scrape interval to every 15 seconds. Default is ever…

xshell连接Windows中通过wsl安装的linux子系统-Ubuntu 22.04

xshell连接Windows中通过wsl安装的linux子系统-Ubuntu 22.04 一、安装linux子系统 1.1、 启动或关闭Windows功能-适用于Linux的Windows子系统 1.2 WSL 官方文档 使用 WSL 在 Windows 上安装 Linux //1-安装 WSL 命令 wsl --install//2-检查正在运行的 WSL 版本&#xff1a;…

LeetCode221.Maximal-Square<最大正方形>

题目&#xff1a; 思路&#xff1a; 这题是动态规划&#xff0c;但是不会写。想着判断dp的 <上&#xff0c;左&#xff0c;左上> 去了。发现只能这样最大只能判断面积为4的正方形因为只会判断另外三个方格。而要想判断更大的正方形那就需要递归操作了。那肯定会超时了。…