主頁 >  其他 > 京東云開發者|經典同態加密演算法Paillier解讀 - 原理、實作和應用

京東云開發者|經典同態加密演算法Paillier解讀 - 原理、實作和應用

2022-11-05 07:25:27 其他

摘要

隨著云計算和人工智能的興起,如何安全有效地利用資料,對持有大量數字資產的企業來說至關重要,同態加密,是解決云計算和分布式機器學習中資料安全問題的關鍵技術,也是隱私計算中,橫跨多方安全計算,聯邦學習和可信執行環境多個技術分支的熱門研究方向,

本文對經典同態加密演算法Pailier演算法及其相關技術進行介紹,重點分析了Paillier的實作原理和性能優化方案,同時對基于公鑰的加密演算法中的熱門演算法進行了橫向對比,最后介紹了Paillier演算法的一些實際應用,

【關鍵詞】:同態加密,多方安全計算,聯邦學習,隱私計算

1 背景知識

1.1 同態加密

同態加密(Homomorphic Encryption,HE)[1]是將資料加密后,對加密資料進行運算處理,之后對資料進行解密,解密結果等同于資料未進行加密,并進行同樣的運算處理,同態加密的概念最初在1978年,由Ron Rivest,Leonard Adleman和Michael L. Dertouzos共同提出,旨在解決在不接觸資料的前提下,對資料進行加工處理的問題,

目前,同態加密支持的運算主要為加法運算和乘法運算,按照其支持的運算程度,同態機密分為半同態加密(Partially Homomorphic Encryption, PHE)和全同態加密(Fully Homomorphic Encryption, FHE),半同態加密在資料加密后只持加法運算或乘法運算中的一種,根據其支持的運算的不同,又稱為加法同態加密或乘法同態加密,半同態加密由于機制相對簡單,相對于全同態加密技術,擁有著更好的性能,全同態加密對加密后的資料支持任意次數的加法和乘法運算,

1.2 復合剩余類問題

如果存在一個數那么符合公式z ≡ yn (mod n2)的數z,稱為y的模n2的n階剩余,復合剩余類問題(decisional composite residuosity assumption , DCRA),指的是給定一個合數n和整數z,很難確定模n2的n階剩余數z是否存在,

1.3 中國剩余定理

中國剩余定理(Chinese Remainder Theorem, CRT),又稱為孫子定理,源于《孫子算經》,是數論中的一個關于一元線性同余方程組的定理,說明了一元線性同余方程組有解的準則以及求解方法,

有物不知其數,三三數之剩二,五五數之剩三,七七數之剩二,問物幾何?
翻譯為數學語言為:

其通用方程為:

中國剩余定理的解法流程為:

2 Paillier演算法原理

2.1 Paillier簡介

在Paillier演算法出現之前,基于公鑰加密的演算法主要有兩個分支:

  • 以RSA為代表的,基于大數因數分解難題的公鑰加密演算法

  • 以ElGama為代表的,基于大數離散對數難題的公鑰加密演算法

Paillier加密演算法,由Pascal Paillier于1999年發表,給出了公鑰加密演算法的一個新的分支領域,Paillier基于復合剩余類難題,滿足加法同態和數乘同態,具有非常高效的運行時性能,

2.2 一個典型的應用場景

圖1 傳統聯邦學習

同態加密演算法使得密文資料,在沒有額外資料泄露的情況下,可以在第三方平臺進行進一步加工處理,隨著大規模云計算的興起,尤其是涉及到敏感資料的云計算,同態加密演算法將是其中至關重要的技識訓礎,我們以一個典型的聯邦學習的例子為切入點,看看Paillier演算法的原理和在實踐中應用的問題,

假設Alice和Bob想共同訓練一個網路模型,Alice和Bob各自持有一部分訓練資料,并且他們不想把自己的資料泄露給對方,那么在訓練期間,Alice和Bob需要互動各自訓練的梯度資料,并根據雙方的梯度資料,共同計算一個對雙方都合適的梯度值,用來執行聯合梯度下降程序,

2019年,Ligeng Zhu等人發表的“Deep Leakage from Gradients”論文中給出了一種演算法,可以從幾次迭代的梯度資料中,推斷出訓練的資料,標簽,模型等一系列隱私資訊,這使得在分布式機器學習中,通過傳輸梯度資料來進聯合模型訓練變得不再安全,那么如果在梯度資料傳輸的程序中,傳輸的是加密后的梯度資料,并且這些加密資料可以進行二次計算,那么便可以規避梯度資料傳輸程序帶來的安全風險,

2.3 Paillier演算法

2.3.1 密鑰生成

類似于RSA演算法,Paillier也擁有公鑰和私鑰對,

在上述程序中,Alice總計生成了6個數字:

p = 11
q = 19
n = 209
λ = 90
g = 147
μ = 153

 

Alice將 n 和g 封裝成公鑰 public-key = (n, g)
將λ和μ封裝成私鑰: private-key = (λ, μ)

2.3.2 加密

假設Bob需要加密明文m, 0 <= m < n. 且Bob收到了Alice發送過來的公鑰(n, g)

  • Bob選擇一個亂數r,滿足0 < r < n

  • Bob計算加密后的密文 c = gm.rn mod n2

m = 8
r = 3
n_square = pow(n, 2) # n_square = 43681
c = gmpy2.mod(pow(g, m)*pow(r, n), n_square) 
# c = 32948

 

2.3.3 解密

假設c是Bob發送過來的密文,且$c\in {\mathbb Z}_{{n^{{2}}}}^{{*}}$
Alice計算明文
m = L(cλ mod n2) * μ mod n

c = 32948
m  = gmpy2.mod(L(gmpy2.mod(pow(c, lam), n_square), n) * mu, n) 
# m =  8

 

正確性證明

為了證明解密操作的正確性,我們把加密的公式代入:

根據卡米切爾定理(Carmichael’s function)有:

繼續化簡得:

由于g ∈ Zn2*, n + 1 ∈ Zn2*, 那么一定存在唯一一對(a, b)使得:
② gλ mod n2 = (1 + naλ) * bnλ mod n2 = 1 + aλn mod n2

把上述公式帶入,高階多項式按二項式定理展開,得:
DEC(c) = L( (1 + naλ) * bnλ mod n2 ) * μ mod n = L(1 + amλ*n mod n2) * μ mod n

這里我們再看下μ的取值,同樣按照公式②展開,得
μ = L(gλ mod n2)-1 mod n = L(1 + aλn mod n2)-1 mod n

最后把函式L展開,得:
DEC(c) = (amλ mod n2) * (a * λ mod n2)-1 mod n = m

2.3.4 同態加

假設Alice計算的梯度資料為m1, Bob計算的梯度資料為m2,Bob需要計算雙方梯度資料的均值(m1 + m2)/ 2, 作為分布式梯度下降的梯度資料,

同態加的原理是利用了冪函式的ax1 * ax2 = ax1+x1的特性,對于Alice持有的資料m1的密文c1和Bob持有資料m2的密文c2,Bob使用如下公式計算同態加法運算:

c = c1 * c2 mod n2

Alice使用私鑰計算DEC(c) = m1 + m2

正確性證明

為了證明同態加的正確性, 我們把加密的公式代入同態加運算:
c = ((gm1rn mod n2) * (gm2rn mod n2)) mod n2 = (gm1rngm2rn) mod n2 = (gm1 + m2r2n) mod n2 = ENC(m1 + m2)
解密c等價于:
DEC(c) = DEC(ENC(m1 + m2)) = m1 + m2

對于密文和明文相加的同態運算,我們當然可以先對明文加密,之后再對兩個密文進行同態加運算的方式來計算,不過從上面的公式可以看出,擾動資料rn中的r是一個任意值,那么我們可以把計算密文c1和明文m2的和的計算轉換為:
c1 + m2 = (gm1rn mod n2 * gm2 mod n2) mod n2 = gm1+krn mod n2 = E(m1+m2)

這樣少了一次計算rn的運算量,提升了明文和密文相加運算的效率,

2.3.5 同態數乘

Paillier演算法目前只支持明文和密文相乘的計算方式,不支持密文和密文相乘,

同態數乘的原理是利用了冪函式的axk = akx的特性,
Bob使用Alice對明文m1加密后的密文c1和明文k,計算
c = c1k mod n2
Alice使用私鑰計算DEC(c) = k*m1

正確性證明
為了證明同態數乘的正確性, 我們把加密的公式代入同態數乘運算:
c = c1k mod n2 = (gm1*rn mod n2)k mod n2 = gk*m1* r1n mod n2 = E(k*m1)
解密c等價于:
DEC(c) = DEC(ENC(k * m1)) = k * m1

2.4 演算法優化

2.4.1 引數g優化

在原始Paillier方案中,g的取值只需滿足,Ivan和Mads在論文中給出了使用g = n + 1 的優化方案[3],并且證明了使用此方案后,可以和原始Paillier演算法保持相同的安全性,
在使用g = n + 1后,實作密鑰生成和加密程序的性能提升,

密鑰生成:
把g = n + 1帶入μ的生成公式,得
μ = L(gλ mod n2)-1 mod n = L((n + 1)}λ mod n2)}-1 mod n = L((1 + λ * n) mod n2)-1 mod n = λ-1 mod n
μ 生成可以直接取λ 對 n的模反元素,

加密:
把g = n+1,帶入加密公式,得c = gmrn mod n2 = (n + 1)mrn mod n2 = (n * m + 1) * rn mod n2

加密程序把計算g的m次冪的操作,變成了簡單的乘法操作:
c = (n*m+1)*rn mod n2

2.4.2 高階冪運算優化

在優化了原始Paillier加密程序的gm冪運算后,加密操作中最耗性能的操作就是對rn高階冪函式的計算,2010年,Ivan Damg?ard, Mads Jurik 和 Jesper Buus Nielsen給出了優化rn這個高階冪函式計算的方案[5],并證明了使用此方案后,可以和原始Paillier演算法保持相同的安全性,

密鑰生成:
要求p ≡ q ≡ 3 (mod 4), 且gcd(p – 1, q – 1) = 2.
λ = (p - 1)(q - 1) / 2
選擇一個亂數x,且$x ∈Zn*, h = -x2 mod n,
選擇一個自然數s,對于原版Paillier, 相當于為s設定了s = 1
hs = hns mod ns + 1
優化后,新的公鑰為public-key=(n, hs)

加密:
生成一個亂數α,, 其中k是密鑰長度
優化后使用如下公式進行加密操作:
c = (n * m + 1)hsα mod ns + 1
因為取值α << n, 使得加密計算程序中,計算hsα的性能,優于計算rn的性能.

2.4.3 使用中國剩余定理

用中國剩余定理,可以把諸如 ax mod n形式的高階冪函式取模操作,分解為低階冪函式對n的因子取模的操作,

由于分解操作,需要使用到生成私鑰的關鍵資料p和q,所以使用中國剩余定理對高階冪函式取模操作的優化,只能應用在使用私鑰的解密操作中,

解密:
使用中國剩余定理優化解密演算法的步驟如下:

  1. 定義分解因子p和q對應的函式 Lp(x) = (x-1) / p, Lq(x) = (x - 1) / q

  2. 計算hp ≡ (p - 1) * q (mod p), hq ≡ (q - 1) * p (mod q)

  3. 計算mp = Lp(cp - 1 mod p2) hp mod p, mq = Lq(cq - 1 mod q2) hq mod q

  4. 計算m = CRT(m_p, m_q) mod n, m 即為使用中國剩余定理優化的解密后的明文

2.4.4 性能優化對比

演算法使用Python代碼實作,密鑰長度取2048bit, s引數取1,取模之前的冪運算均采用模冪方法優化,其中后面的優化均是在前面優化的基礎上進行的優化,

 原版引數g優化冪運算優化(s=1)中國剩余定理(s =1)
密鑰生成 98.412 77.913 169.511 169.812
加密 20.043 9.107 4.704 4.704
解密 11.692 8.859 8.859 2.705
表1 Paillier性能優化對比
  

圖2 paillier性能優化對比
 

從表1和圖2中可以看到,經過引數g優化和冪運算優化后,加密運算的效率較之原版方案提升了約3.26倍,經過使用中國剩余定理優化后,解密運算的效率較之原版方案提升了約3.32倍,在密鑰生成上,使用了冪運算優化后,密鑰生成的時間增加了約42%,考慮到密鑰生成運算的次數,通常遠小于加解密運算的次數,相比之下密鑰生成的性能損失通常可以忽略不計,

2.5 來自多方計算的安全問題

在上面Alice和Bob使用Paillier同態加密來進行分布式梯度值計算時,Alice持有私鑰,對Bob加密后的梯度資料,進行同態運算,并生成最終分布式梯度計算的梯度值,這里有一個問題,在這個場景下,雖然Alice沒有獲得Bob的直接或加密后的梯度資料,但Alice知道最終的梯度值,這使得Alice可以根據差分結果,猜測出Bob本次計算的梯度資料,從而產生安全問題,

在多方安全計算中,由于同態計算的演算法,不一定能夠提供安全保證,使得我們必須應對計算程序中可能出現的安全問題,對于Alice和Bob的計算分布式梯度值的場景,可以根據當前的學習率引入合適的擾動資料來規避差分隱私問題,或者參與計算的多方至少是三方,

3 功能擴展

在原版Paillier中,明文m的定義域是[0, n),在Alice和Bob的進行的分布式機器學習場景中,需要能夠對浮點和負數進行加密運算,在實際應用中,如果只能加密正整數,那么Paillier的應用場景會受到較大的限制,實際上,計算機的布爾電路只能對0和1的二進制資料進行計算,無論是浮點數還是負數,甚至是整數的計算,都是通過特定的計算規則來完成的,我們可以參照這些規則,實作Paiiler演算法對浮點數和負數的支持,

3.1 浮點數支持

IEEE 754標準中,單精度浮點表示采用1位符號,8位階碼和23位分數,

對于浮點數,我們可以將所有參與計算的數值,編碼為更小的單位,在計算完成后再解碼,比如浮點數3.14,可以預先乘以100, 即3.14 = 314 * 10-2,之后計算程序中,整數部分和指數部分分別運算,

在計算機中,浮點數以符號位(Sign),階碼(Exponent)和分數(Fraction)三部分聯合來標識,底數(Base)固定為2,我們仍舊以3.14為例,3.14 = 0.785 * 22 = [11.0010001]2,實際使用中,為了表示更大的范圍,分數部分的取值范圍要求 1 <= fraction < 2, 這樣保證了分數部分的首位總是為1,這樣小數部分可以隱藏首位的1,為了使階碼可以使用負數,浮點標準規定了指數部分使用一個偏移值(Bias),這樣浮點數的值的計算方式為:
x = -1sign * (1 + Fraction) * 2(Exponent - Bias)

在擴充Paillier演算法定義域到浮點數時,浮點數各個部分的計算,均需程式來實作,這里我們參照浮點數的表示法,且不使用隱藏位,假設給定Bias=8,那么3.14就可以編碼為(E = 2,F=200(0.785 * 28)),我們再把整數2,經過同樣的編碼,得到(E=2, F=128)

在Paillier計算中,由于階碼相同,3.14 + 2 = (E = 2, F = 328),最終執行解碼,得到328 * 2-8} * 22 = 5.125,計算結果存在較大的精度損失,實際應用中,我們可以通過增大Bias的值,來提升計算結果的精度,

對于同態數乘來說,由于不需要階碼對齊,那么只需對F值做數乘,即可得到正確的結果,同樣對于3.14, 乘以3后得到(E = 2, F = 600),之后解碼,得到600 * 2-8 * 22 = 9.375,同樣由于示例中Bias取值問題,計算結果出現了較大的誤差,

3.2 負數支持

在計算機中,負數是以補碼的方式標識的,整數和負數相加,是通過溢位來使得計算結果符合預期值,如果我們把負數的位元組擴充,那么會得到一個原有位元組空間的最大值和對應負數之和的正數,在此基礎上使用此正數進行四則運算,之后再縮容到原來的位元組空間,那么得到的仍舊是正確的結果,

類似的,為了使Paillier能夠支持負數的計算,我們可以給負數m_1增加一個周期值n, 來把負數m_1轉換為正整數,那么對于同態加運算來說,計算結果c=ENC(m1 + m2 + n),
此時同態加計算的結果為:

  • 當 m1 + m2 >= 0時,DEC(c) = m1 + m2

  • 當-n <= m1 + m2 < 0時, DEC(c) = m1 + m2 + n

  • 當m1 + m2 < -n 時,計算結果不正確

同態數乘的計算結果為:

  • 當k * m1 >= 0 , 時DEC(c) = k * m1

  • 當-n <= k * m1 < 0時,DEC(c) = k * m1 + n

  • 當k * m1 < -n時,計算結果不正確

為了統一以上出現的各種場景,我們可以做如下限定:

  1. 運算元在參與同態計算前對n取模,用來統一正數可以直接參與計算,負數則需要補n再進行計算的問題,

  2. 設定運算元的最大值MAX_VALUE,比如32位整型的最大值,并使得n的取值大于3 * MAX_VALUE,這樣使得對于合法的m1和m2,不存在m1+ m2 < -n的場景,且m1 + m1 < 0時,計算結果總是大于MAX_VALUE,

至此,我們可以使用統一的規則,來處理負數參與同態運算時的各種場景,

4 主要公鑰加密演算法對比

Paillier,RSA和ELGamal演算法均為典型的基于公鑰的加密演算法,我們從功能指標和性能指標兩個方向,來對比這些加密演算法的區別和聯系,

4.1 功能指標對比

 PaillierRSAELGamal
安全基礎 復合剩余類問題 大數分解問題 離散對數問題
語意安全 否(可以使用諸如OAEP的隨機填充演算法來達到語意安全的效果)
公鑰加密/私鑰解密 支持 支持 支持
私鑰簽名/公鑰驗簽 不支持(可以實作更為復雜的門限簽名) 支持 支持
演算法復雜程度(非時間復雜度)
同態計算 同態加,同態數乘 同態乘 同態乘
表2 功能指標對比

4.2 性能指標對比

對4096-bit大小的明文進行加密:

 PaillierRSAELGamal
  s=1 s=2 s=3 s=4    
密鑰長度 4096 2048 1366 1024 4096 4096
密文大小 8192 6144 5462 5120 4096 8192
膨脹系數 2 1.5 1.33 1.25 1 2
表3 密文膨脹系數[5]
 

對1-bit大小的資料進行加密和解密運算,統計資料單位為ms,

 PaillierRSAELGamal
  s=1 s=2 s=4    
加密  
1024 0.262 0.284 0.387 0.002 0.264
2048 0.955 1.067 1.480 0.004 0.967
4096 3.705 4.146 5.755 0.008 3.711
8192 14.507 16.244 22.617 0.015 14.467
解密  
1024 0.149 0.153 0.214 0.039 0.132
2048 0.503 0.559 0.780 0.132 0.489
4096 1.898 2.128 2.958 0.486 1.865
8192 7.349 8.244 11.461 1.854 7.286
表4 加解密性能[5]
 

5 同態加密的應用

圖3 同態加密的應用
 

同態加密使得云計算和人工智能時代的資料,演算法,算力可以解耦,對于一家企業來說,無需完整具備以上三個條件也可以在云計算和人工智能時代獲取一席之地,

我們可以假設這樣一個場景,協和醫院擁有大量的高價值醫療行業資料,并想通過京東云服務的云計算和人工智能來進行資料分析,在同態加密之前,能夠采取的方案要么時協和將隱私資料的明文提供給京東云計算來進行資料分析,使得隱私資料外泄;要么是京東為持有敏感資料的企業,采用傳統的On-Premise模式,放棄云計算帶來的各種便利,而同態加密,使得協和可以以安全的方式向京東云服務提供隱私資料,京東云計算也可以在不解密的情況下使用這些資料進行資料分析,從而解決了這個兩難問題,依靠同態加密,使得基于數理統計相關的演算法和資料可以獨立開來,既可以依托于云計算的演算法和算力,又完美地保護了客戶的隱私資料,

同態加密的應用不止限于簡單的資料分析,在以下很多場景下都有其用武之地:

隱私集合求交
在隱私集合求交中,其中一個參與方構建如下的多項式

其中ri為亂數,ci 是另一參與方提供的求交資料的同態加密之后的密文,x是己方持有的求交資料同態加密后的密文,如果ci 和x中任一資料相同,那么得到的di,在解密后的值為0,否則不為0,

聯邦學習
在聯邦學習程序中,聯邦學習的參與者之間使用同態加密傳遞學習程序中的中間資訊,從而避免資訊接收方推斷出其它參與聯邦學習的參與方的私密資訊,保證了聯邦學習程序中的資訊安全性,

門限簽名
門限簽名是秘密共享和數字簽名技術的一種結合,傳統的簽名技術,私鑰被保存在一個可信的中心節點中,(t, n)門限簽名方案,把秘密分發給n個成員,組成一個簽名群體,在這個群體中,單個成員不再具有簽名的權限,只有集齊了t個或更多誠實的成員,才能對資料進行數字簽名,這個的t即是門限值,門限簽名防止了單個中心節點導致的秘密泄露或職權濫用,在證書頒發,多方身份識別,資產托管,電子投票等諸多領域具有應用價值,

聯合風控
在銀行或金融機構進行風險評估時,需要大量關于企業和個人的隱私資訊,對于參與聯合風控的資料提供方來說,不希望自身的隱私資料暴露給銀行或金融機構,而銀行和金融機構也不希望風控規則在三方環境下執行,參與聯合風控的資料提供方,通過對自身資料進行同態加密,使得銀行或金融機構能夠正常進行風險評估,同時又不泄露資料提供方的資料資訊,

同態加密技術被譽為隱私計算技術“皇冠上的明珠”,這項技術使得我們在不需要信賴云服務提供商的前提下,使用云服務提供商的計算和存盤能力,從而解決了云計算中的隱私資料保護問題,同態加密技術的特點,使其在數字貨幣,金融應用,醫療保健等領域有著非常廣泛的應用場景和實踐價值,同態加密技術為云計算和云存盤在應對隱私資料時,提供了一種可靠的解決方案,對同態加密技術的關注和研究,使得企業具有更多的理論和方案,來應對和解決私密資訊的計算和存盤問題,為資料的全面互聯互通,提供了一種行之有效的解決方案,

作者:孫曉軍

參考文獻

[1] P. Paillier, “Public-key cryptosystems based on composite degree residuosity classes,” in Proceedings of Advances in Cryptology (EUROCRYPT’99),pp. 223–238, Prague, Czech Republic, May 1999.

[2] Zhu, L., Liu, Z., Han, S.: Deep leakage from gradients. In: Annual Conference on Neural Information Processing Systems (NeurIPS) (2019)

[3] D. Choi, S. Choi, and D. Won, “Paillier’s cryptosystem revisited,” in Proceedings of the 8th ACM Conference on Computer and Communications Security(CCS’01), pp. 206–214, Philadelphia, Pennsylvania, USA, Nov. 2001

[4] I. Damgard and M. Jurik. A generalization, of Paillier's Eurocrypt '99, volume 1592 of LNCS. IACR,Springer-Verlag, 1999.

[5] I. Damg?ard, J. Jurik, and J. Nielsen, “A generalization of paillier’s public-key system with applications to electronic voting,” International Journal of Information Security, no. 9, pp. 371–385, 2010.

[6] Cao, Z. and Liu, L., "The Paillier's Cryptosystem and Some Variants Revisited." arXiv preprint arXiv:1511.05787,2015.

轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/527858.html

標籤:其他

上一篇:ISCTF2022WP

下一篇:Istio Ambient Mesh七層服務治理圖文詳解

標籤雲
其他(157675) Python(38076) JavaScript(25376) Java(17977) C(15215) 區塊鏈(8255) C#(7972) AI(7469) 爪哇(7425) MySQL(7132) html(6777) 基礎類(6313) sql(6102) 熊猫(6058) PHP(5869) 数组(5741) R(5409) Linux(5327) 反应(5209) 腳本語言(PerlPython)(5129) 非技術區(4971) Android(4554) 数据框(4311) css(4259) 节点.js(4032) C語言(3288) json(3245) 列表(3129) 扑(3119) C++語言(3117) 安卓(2998) 打字稿(2995) VBA(2789) Java相關(2746) 疑難問題(2699) 细绳(2522) 單片機工控(2479) iOS(2429) ASP.NET(2402) MongoDB(2323) 麻木的(2285) 正则表达式(2254) 字典(2211) 循环(2198) 迅速(2185) 擅长(2169) 镖(2155) 功能(1967) .NET技术(1958) Web開發(1951) python-3.x(1918) HtmlCss(1915) 弹簧靴(1913) C++(1909) xml(1889) PostgreSQL(1872) .NETCore(1853) 谷歌表格(1846) Unity3D(1843) for循环(1842)

熱門瀏覽
  • 網閘典型架構簡述

    網閘架構一般分為兩種:三主機的三系統架構網閘和雙主機的2+1架構網閘。 三主機架構分別為內端機、外端機和仲裁機。三機無論從軟體和硬體上均各自獨立。首先從硬體上來看,三機都用各自獨立的主板、記憶體及存盤設備。從軟體上來看,三機有各自獨立的作業系統。這樣能達到完全的三機獨立。對于“2+1”系統,“2”分為 ......

    uj5u.com 2020-09-10 02:00:44 more
  • 如何從xshell上傳檔案到centos linux虛擬機里

    如何從xshell上傳檔案到centos linux虛擬機里及:虛擬機CentOs下執行 yum -y install lrzsz命令,出現錯誤:鏡像無法找到軟體包 前言 一、安裝lrzsz步驟 二、上傳檔案 三、遇到的問題及解決方案 總結 前言 提示:其實很簡單,往虛擬機上安裝一個上傳檔案的工具 ......

    uj5u.com 2020-09-10 02:00:47 more
  • 一、SQLMAP入門

    一、SQLMAP入門 1、判斷是否存在注入 sqlmap.py -u 網址/id=1 id=1不可缺少。當注入點后面的引數大于兩個時。需要加雙引號, sqlmap.py -u "網址/id=1&uid=1" 2、判斷文本中的請求是否存在注入 從文本中加載http請求,SQLMAP可以從一個文本檔案中 ......

    uj5u.com 2020-09-10 02:00:50 more
  • Metasploit 簡單使用教程

    metasploit 簡單使用教程 浩先生, 2020-08-28 16:18:25 分類專欄: kail 網路安全 linux 文章標簽: linux資訊安全 編輯 著作權 metasploit 使用教程 前言 一、Metasploit是什么? 二、準備作業 三、具體步驟 前言 Msfconsole ......

    uj5u.com 2020-09-10 02:00:53 more
  • 游戲逆向之驅動層與用戶層通訊

    驅動層代碼: #pragma once #include <ntifs.h> #define add_code CTL_CODE(FILE_DEVICE_UNKNOWN,0x800,METHOD_BUFFERED,FILE_ANY_ACCESS) /* 更多游戲逆向視頻www.yxfzedu.com ......

    uj5u.com 2020-09-10 02:00:56 more
  • 北斗電力時鐘(北斗授時服務器)讓網路資料更精準

    北斗電力時鐘(北斗授時服務器)讓網路資料更精準 北斗電力時鐘(北斗授時服務器)讓網路資料更精準 京準電子科技官微——ahjzsz 近幾年,資訊技術的得了快速發展,互聯網在逐漸普及,其在人們生活和生產中都得到了廣泛應用,并且取得了不錯的應用效果。計算機網路資訊在電力系統中的應用,一方面使電力系統的運行 ......

    uj5u.com 2020-09-10 02:01:03 more
  • 【CTF】CTFHub 技能樹 彩蛋 writeup

    ?碎碎念 CTFHub:https://www.ctfhub.com/ 筆者入門CTF時時剛開始刷的是bugku的舊平臺,后來才有了CTFHub。 感覺不論是網頁UI設計,還是題目質量,賽事跟蹤,工具軟體都做得很不錯。 而且因為獨到的金幣制度的確讓人有一種想去刷題賺金幣的感覺。 個人還是非常喜歡這個 ......

    uj5u.com 2020-09-10 02:04:05 more
  • 02windows基礎操作

    我學到了一下幾點 Windows系統目錄結構與滲透的作用 常見Windows的服務詳解 Windows埠詳解 常用的Windows注冊表詳解 hacker DOS命令詳解(net user / type /md /rd/ dir /cd /net use copy、批處理 等) 利用dos命令制作 ......

    uj5u.com 2020-09-10 02:04:18 more
  • 03.Linux基礎操作

    我學到了以下幾點 01Linux系統介紹02系統安裝,密碼啊破解03Linux常用命令04LAMP 01LINUX windows: win03 8 12 16 19 配置不繁瑣 Linux:redhat,centos(紅帽社區版),Ubuntu server,suse unix:金融機構,證券,銀 ......

    uj5u.com 2020-09-10 02:04:30 more
  • 05HTML

    01HTML介紹 02頭部標簽講解03基礎標簽講解04表單標簽講解 HTML前段語言 js1.了解代碼2.根據代碼 懂得挖掘漏洞 (POST注入/XSS漏洞上傳)3.黑帽seo 白帽seo 客戶網站被黑帽植入劫持代碼如何處理4.熟悉html表單 <html><head><title>TDK標題,描述 ......

    uj5u.com 2020-09-10 02:04:36 more
最新发布
  • 2023年最新微信小程式抓包教程

    01 開門見山 隔一個月發一篇文章,不過分。 首先回顧一下《微信系結手機號資料庫被脫庫事件》,我也是第一時間得知了這個訊息,然后跟蹤了整件事情的經過。下面是這起事件的相關截圖以及近日流出的一萬條資料樣本: 個人認為這件事也沒什么,還不如關注一下之前45億快遞資料查詢渠道疑似在近日復活的訊息。 訊息是 ......

    uj5u.com 2023-04-20 08:48:24 more
  • web3 產品介紹:metamask 錢包 使用最多的瀏覽器插件錢包

    Metamask錢包是一種基于區塊鏈技術的數字貨幣錢包,它允許用戶在安全、便捷的環境下管理自己的加密資產。Metamask錢包是以太坊生態系統中最流行的錢包之一,它具有易于使用、安全性高和功能強大等優點。 本文將詳細介紹Metamask錢包的功能和使用方法。 一、 Metamask錢包的功能 數字資 ......

    uj5u.com 2023-04-20 08:47:46 more
  • vulnhub_Earth

    前言 靶機地址->>>vulnhub_Earth 攻擊機ip:192.168.20.121 靶機ip:192.168.20.122 參考文章 https://www.cnblogs.com/Jing-X/archive/2022/04/03/16097695.html https://www.cnb ......

    uj5u.com 2023-04-20 07:46:20 more
  • 從4k到42k,軟體測驗工程師的漲薪史,給我看哭了

    清明節一過,盲猜大家已經無心上班,在數著日子準備過五一,但一想到銀行卡里的余額……瞬間心情就不美麗了。最近,2023年高校畢業生就業調查顯示,本科畢業月平均起薪為5825元。調查一出,便有很多同學表示自己又被平均了。看著這一資料,不免讓人想到前不久中國青年報的一項調查:近六成大學生認為畢業10年內會 ......

    uj5u.com 2023-04-20 07:44:00 more
  • 最新版本 Stable Diffusion 開源 AI 繪畫工具之中文自動提詞篇

    🎈 標簽生成器 由于輸入正向提示詞 prompt 和反向提示詞 negative prompt 都是使用英文,所以對學習母語的我們非常不友好 使用網址:https://tinygeeker.github.io/p/ai-prompt-generator 這個網址是為了讓大家在使用 AI 繪畫的時候 ......

    uj5u.com 2023-04-20 07:43:36 more
  • 漫談前端自動化測驗演進之路及測驗工具分析

    隨著前端技術的不斷發展和應用程式的日益復雜,前端自動化測驗也在不斷演進。隨著 Web 應用程式變得越來越復雜,自動化測驗的需求也越來越高。如今,自動化測驗已經成為 Web 應用程式開發程序中不可或缺的一部分,它們可以幫助開發人員更快地發現和修復錯誤,提高應用程式的性能和可靠性。 ......

    uj5u.com 2023-04-20 07:43:16 more
  • CANN開發實踐:4個DVPP記憶體問題的典型案例解讀

    摘要:由于DVPP媒體資料處理功能對存放輸入、輸出資料的記憶體有更高的要求(例如,記憶體首地址128位元組對齊),因此需呼叫專用的記憶體申請介面,那么本期就分享幾個關于DVPP記憶體問題的典型案例,并給出原因分析及解決方法。 本文分享自華為云社區《FAQ_DVPP記憶體問題案例》,作者:昇騰CANN。 DVPP ......

    uj5u.com 2023-04-20 07:43:03 more
  • msf學習

    msf學習 以kali自帶的msf為例 一、msf核心模塊與功能 msf模塊都放在/usr/share/metasploit-framework/modules目錄下 1、auxiliary 輔助模塊,輔助滲透(埠掃描、登錄密碼爆破、漏洞驗證等) 2、encoders 編碼器模塊,主要包含各種編碼 ......

    uj5u.com 2023-04-20 07:42:59 more
  • Halcon軟體安裝與界面簡介

    1. 下載Halcon17版本到到本地 2. 雙擊安裝包后 3. 步驟如下 1.2 Halcon軟體安裝 界面分為四大塊 1. Halcon的五個助手 1) 影像采集助手:與相機連接,設定相機引數,采集影像 2) 標定助手:九點標定或是其它的標定,生成標定檔案及內參外參,可以將像素單位轉換為長度單位 ......

    uj5u.com 2023-04-20 07:42:17 more
  • 在MacOS下使用Unity3D開發游戲

    第一次發博客,先發一下我的游戲開發環境吧。 去年2月份買了一臺MacBookPro2021 M1pro(以下簡稱mbp),這一年來一直在用mbp開發游戲。我大致分享一下我的開發工具以及使用體驗。 1、Unity 官網鏈接: https://unity.cn/releases 我一般使用的Apple ......

    uj5u.com 2023-04-20 07:40:19 more