Shadowsocks ලේඛන

AEAD

AEAD සම්බන්ධිත දත්ත සමඟ Authenticated Encryption යන්නෙන් අදහස් කෙරේ. AEAD කේතාංක එකවරම රහස්‍යභාවය, අඛණ්ඩතාව සහ අව්‍යාජත්වය සපයයි. නවීන දෘඩාංග මත ඔවුන් විශිෂ්ට කාර්ය සාධනයක් සහ බලශක්ති කාර්යක්ෂමතාවයක් ඇත. පරිශීලකයන් හැකි සෑම විටම AEAD කේතාංක භාවිතා කළ යුතුය.

පහත AEAD කේතාංක නිර්දේශ කෙරේ. අනුකූල Shadowsocks ක්‍රියාත්මක කිරීම් AEAD_CHACHA20_POLY1305 සඳහා සහය විය යුතුය. දෘඩාංග AES ත්වරණය සහිත උපාංග සඳහා ක්‍රියාත්මක කිරීම AEAD_AES_128_GCM සහ AEAD_AES_256_GCM ද ක්‍රියාත්මක කළ යුතුය.

 

 

 

නම

අන්වර්ථ

යතුරු ප්රමාණය

ලුණු ප්රමාණය

Nonce Size

Tag ප්රමාණය

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

කරුණාකර අමතන්න IANA AEAD රෙජිස්ට්රි යෝජනා ක්රමය සහ පිරිවිතර නම් කිරීම සඳහා.

ප්රධාන ව්යුත්පන්න

ප්‍රධාන යතුර පරිශීලකයාගෙන් සෘජුවම ආදානය කළ හැක හෝ මුරපදයකින් ජනනය කළ හැක.

HKDF_SHA1 යනු රහස් යතුරක්, රහසිගත නොවන ලවණයක්, තොරතුරු තන්තුවක් ගන්නා ශ්‍රිතයක් වන අතර ආදාන රහස් යතුර දුර්වල වුවද ගුප්ත ලේඛනමය වශයෙන් ශක්තිමත් උප යතුරක් නිපදවයි.

HKDF_SHA1(යතුර, ලුණු, තොරතුරු) => උප යතුර

තොරතුරු තන්තුව ජනනය කරන ලද උප යතුර නිශ්චිත යෙදුම් සන්දර්භයකට සම්බන්ධ කරයි. අපගේ නඩුවේදී, එය උපුටා දැක්වීම් නොමැතිව "ss-subkey" තන්තුව විය යුතුය.

අපි HKDF_SHA1 භාවිතයෙන් පෙර-බෙදාගත් ප්‍රධාන යතුරකින් එක් සැසියකට උප යතුරක් ලබා ගනිමු. පෙර-බෙදාගත් ප්‍රධාන යතුරේ මුළු ජීවිත කාලය පුරාම ලුණු අද්විතීය විය යුතුය.

සත්‍යාපිත සංකේතනය/විකේතනය

AE_encrypt යනු රහස් යතුරක්, රහසිගත නොවන දෙයක්, පණිවිඩයක් ගන්නා ශ්‍රිතයක් වන අතර කේතාංක පෙළ සහ සත්‍යාපන ටැගයක් නිපදවයි. සෑම ආයාචනයකම දී ඇති යතුරක් සඳහා නොන්ස් අනන්‍ය විය යුතුය.

AE_encrypt(key, nonce, message) => (ciphertext, tag)

 

AE_decrypt යනු රහස් යතුරක්, රහසිගත නොවන nonce, ciphertext, සත්‍යාපන ටැගයක් ගෙන මුල් පණිවිඩයක් නිපදවන ශ්‍රිතයකි. කිසියම් ආදානයක් විකෘති වී ඇත්නම්, විකේතනය අසාර්ථක වනු ඇත.

AE_decrypt(key, nonce, ciphertext, tag) => පණිවිඩය

TCP

AEAD සංකේතනය කරන ලද TCP ප්‍රවාහයක් එක් සැසියකට උප යතුරක් ව්‍යුත්පන්න කිරීම සඳහා අහඹු ලෙස ජනනය කරන ලද ලුණු සමඟ ආරම්භ වේ, ඉන්පසු ඕනෑම සංකේතනය කළ කුට්ටි ගණනකි. සෑම කොටසකටම පහත ව්යුහය ඇත:

[සංකේතනය කළ ගෙවීමේ දිග][දිග ටැගය][සංකේතනය කළ ගෙවීම්][ගෙවීම් ටැගය]

 

පේලෝඩ් දිග යනු 2x0FFF ට සීමා කර ඇති බයිට් 3 විශාල-එන්ඩියන් අත්සන් නොකළ පූර්ණ සංඛ්‍යාවකි. ඉහළ බිටු දෙක වෙන් කර ඇති අතර බිංදුවට සැකසිය යුතුය. එබැවින් ගෙවීම 16*1024 - 1 බයිට් වලට සීමා වේ.

පළමු AEAD එන්ක්‍රිප්ට්/ඩික්‍රිප්ට් මෙහෙයුම 0 සිට ආරම්භ වන ගණන් කිරීමේ නොන්ස් එකක් භාවිතා කරයි. එක් එක් එන්ක්‍රිප්ට්/ඩීක්‍රිප්ට් මෙහෙයුමෙන් පසුව, නොන්ස් එක අත්සන් නොකළ ලිට්ල්-එන්ඩියන් නිඛිලයක් මෙන් වැඩි වේ. සෑම TCP කුට්ටියකටම AEAD සංකේතනය/විකේතනය කිරීමේ මෙහෙයුම් දෙකක් ඇතුළත් වන බව සලකන්න: එකක් ගෙවීමේ දිග සඳහා සහ එකක් ගෙවීම සඳහා. එබැවින් සෑම කුට්ටියක්ම වරක් දෙවරක් වැඩි කරයි.

TCP

AEAD සංකේතනය කරන ලද TCP ප්‍රවාහයක් එක් සැසියකට උප යතුරක් ව්‍යුත්පන්න කිරීම සඳහා අහඹු ලෙස ජනනය කරන ලද ලුණු සමඟ ආරම්භ වේ, ඉන්පසු ඕනෑම සංකේතනය කළ කුට්ටි ගණනකි. සෑම කොටසකටම පහත ව්යුහය ඇත:

[සංකේතනය කළ ගෙවීමේ දිග][දිග ටැගය][සංකේතනය කළ ගෙවීම්][ගෙවීම් ටැගය]

 

පේලෝඩ් දිග යනු 2x0FFF ට සීමා කර ඇති බයිට් 3 විශාල-එන්ඩියන් අත්සන් නොකළ පූර්ණ සංඛ්‍යාවකි. ඉහළ බිටු දෙක වෙන් කර ඇති අතර බිංදුවට සැකසිය යුතුය. එබැවින් ගෙවීම 16*1024 - 1 බයිට් වලට සීමා වේ.

පළමු AEAD එන්ක්‍රිප්ට්/ඩික්‍රිප්ට් මෙහෙයුම 0 සිට ආරම්භ වන ගණන් කිරීමේ නොන්ස් එකක් භාවිතා කරයි. එක් එක් එන්ක්‍රිප්ට්/ඩීක්‍රිප්ට් මෙහෙයුමෙන් පසුව, නොන්ස් එක අත්සන් නොකළ ලිට්ල්-එන්ඩියන් නිඛිලයක් මෙන් වැඩි වේ. සෑම TCP කුට්ටියකටම AEAD සංකේතනය/විකේතනය කිරීමේ මෙහෙයුම් දෙකක් ඇතුළත් වන බව සලකන්න: එකක් ගෙවීමේ දිග සඳහා සහ එකක් ගෙවීම සඳහා. එබැවින් සෑම කුට්ටියක්ම වරක් දෙවරක් වැඩි කරයි.

ඔබගේ දින 5ක නොමිලේ අත්හදා බැලීම අරඹන්න