Dokumentacioni i Shadowsocks

AEAD

AEAD qëndron për Kriptim i vërtetuar me të dhëna të lidhura. Shifrat AEAD ofrojnë njëkohësisht konfidencialitet, integritet dhe autenticitet. Ata kanë performancë të shkëlqyer dhe efikasitet të energjisë në pajisjet moderne. Përdoruesit duhet të përdorin shifra AEAD sa herë që është e mundur.

Rekomandohen shifrat e mëposhtme AEAD. Implementimet e pajtueshme të Shadowsocks duhet të mbështesin AEAD_CHACHA20_POLY1305. Implementimet për pajisjet me përshpejtim AES të harduerit duhet të zbatojnë gjithashtu AEAD_AES_128_GCM dhe AEAD_AES_256_GCM.

 

 

 

Emër

Pseudonim

Madhësia kryesore

Madhësia e kripës

Jo Madhësi

Madhësia e etiketës

AEAD_CHACHA20_POLY1305

chacha20-ietf-poly1305

32

32

12

16

AEAD_AES_256_GCM

aes-256-gcm

32

32

12

16

AEAD_AES_128_GCM

aes-128-gcm

16

16

12

16

Ju lutem referojuni Regjistri IANA AEAD për skemën dhe specifikimin e emërtimit.

Derivimi i çelësit

Çelësi kryesor mund të futet drejtpërdrejt nga përdoruesi ose të gjenerohet nga një fjalëkalim.

HKDF_SHA1 është një funksion që merr një çelës sekret, një kripë jo sekrete, një varg informacioni dhe prodhon një nënçelës që është kriptografikisht i fortë edhe nëse çelësi sekret i hyrjes është i dobët.

HKDF_SHA1 (çelës, kripë, informacion) => nënçelës

Vargu i informacionit lidh nënçelësin e krijuar me një kontekst specifik aplikacioni. Në rastin tonë, duhet të jetë vargu "ss-subkey" pa thonjëza.

Ne nxjerrim një nënçelës për sesion nga një çelës kryesor i parapërndarë duke përdorur HKDF_SHA1. Kripa duhet të jetë unike gjatë gjithë jetës së çelësit kryesor të përbashkët.

Kriptimi/Deshifrimi i vërtetuar

AE_encrypt është një funksion që merr një çelës sekret, një nonce jo sekrete, një mesazh dhe prodhon tekst shifror dhe një etiketë vërtetimi. Nonce duhet të jetë unik për një çelës të caktuar në çdo thirrje.

AE_encrypt (çelës, nonce, mesazh) => (shifertext, etiketë)

 

AE_decrypt është një funksion që merr një çelës sekret, nonce jo-sekrete, një tekst shifror, një etiketë vërtetimi dhe prodhon një mesazh origjinal. Nëse ndonjë nga hyrjet ngatërrohet, deshifrimi do të dështojë.

AE_decrypt (çelës, nonce, tekst shifror, etiketë) => mesazh

TCP

Një transmetim TCP i koduar AEAD fillon me një kripë të gjeneruar rastësisht për të nxjerrë nënçelësin për sesion, i ndjekur nga çdo numër pjesësh të koduara. Çdo copë ka strukturën e mëposhtme:

[gjatësia e ngarkesës së koduar] [etiketa e gjatësisë] [ngarkesa e koduar] [etiketa e ngarkesës]

 

Gjatësia e ngarkesës është një numër i plotë i panënshkruar nga big-endian 2-bajtë i kufizuar në 0x3FFF. Dy bitet më të larta janë të rezervuara dhe duhet të vendosen në zero. Prandaj, ngarkesa është e kufizuar në 16*1024 – 1 bajt.

Operacioni i parë i enkriptimit/dekriptimit AEAD përdor një nonce numërimi duke filluar nga 0. Pas çdo operacioni të enkriptimit/dekriptimit, nonce rritet me një sikur të ishte një numër i plotë pak-endian i panënshkruar. Vini re se çdo copë TCP përfshin dy operacione të enkriptimit/dekriptimit AEAD: një për gjatësinë e ngarkesës dhe një për ngarkesën. Prandaj, çdo pjesë e rrit nocen dy herë.

TCP

Një transmetim TCP i koduar AEAD fillon me një kripë të gjeneruar rastësisht për të nxjerrë nënçelësin për sesion, i ndjekur nga çdo numër pjesësh të koduara. Çdo copë ka strukturën e mëposhtme:

[gjatësia e ngarkesës së koduar] [etiketa e gjatësisë] [ngarkesa e koduar] [etiketa e ngarkesës]

 

Gjatësia e ngarkesës është një numër i plotë i panënshkruar nga big-endian 2-bajtë i kufizuar në 0x3FFF. Dy bitet më të larta janë të rezervuara dhe duhet të vendosen në zero. Prandaj, ngarkesa është e kufizuar në 16*1024 – 1 bajt.

Operacioni i parë i enkriptimit/dekriptimit AEAD përdor një nonce numërimi duke filluar nga 0. Pas çdo operacioni të enkriptimit/dekriptimit, nonce rritet me një sikur të ishte një numër i plotë pak-endian i panënshkruar. Vini re se çdo copë TCP përfshin dy operacione të enkriptimit/dekriptimit AEAD: një për gjatësinë e ngarkesës dhe një për ngarkesën. Prandaj, çdo pjesë e rrit nocen dy herë.

Filloni provën tuaj 5-ditore falas