ChaCha20-Poly1305
ChaCha20-Poly1305 એ વધારાના ડેટા (AEAD) અલ્ગોરિધમ સાથે પ્રમાણિત એન્ક્રિપ્શન છે, જે ChaCha20 સ્ટ્રીમ સાઇફરને પોલી1305 સંદેશ પ્રમાણીકરણ કોડ સાથે જોડે છે. IETF પ્રોટોકોલમાં તેનો ઉપયોગ RFC 8439 માં પ્રમાણિત કરવામાં આવ્યો છે. તે ઝડપી સોફ્ટવેર પ્રદર્શન ધરાવે છે, અને હાર્ડવેર પ્રવેગક વિના, સામાન્ય રીતે AES-GCM કરતા ઝડપી હોય છે. બાંધકામના બે બિલ્ડિંગ બ્લોક્સ, પોલી1305 અને ચાચા20 એલ્ગોરિધમ્સ, બંને 2005 અને 2008 માં ડેનિયલ જે. બર્નસ્ટીન દ્વારા સ્વતંત્ર રીતે ડિઝાઇન કરવામાં આવ્યા હતા. 2013-2014 માં, મૂળ ChaCha20 અલ્ગોરિધમનો એક પ્રકાર (32-બીટ કાઉન્ટર અને 96-બીટ નોન્સનો ઉપયોગ કરીને) અને મૂળ પોલી1305નો એક પ્રકાર (2 સ્ટ્રિંગ્સને પ્રમાણિત કરતા) ને TLS અને DTLSમાં ઉપયોગમાં લેવા માટે IETF ડ્રાફ્ટમાં જોડવામાં આવ્યા હતા, અને ગૂગલ દ્વારા સુરક્ષા અને પ્રદર્શનના કારણોસર, નવા સમર્થિત સાઇફર તરીકે પસંદ કરવામાં આવ્યા હતા. TLS માટે ગૂગલ દ્વારા અપનાવવામાં આવ્યા પછી ટૂંક સમયમાં, ChaCha20, પોલી1305 અને સંયુક્ત AEAD મોડને thechacha20-poly1305@openssh.com પ્રમાણિત એન્ક્રિપ્શન સાઇફર દ્વારા ઓપનએસએસએચમાં ઉમેરવામાં આવે છે પરંતુ ChaCha20 અલ્ગોરિધમ માટે મૂળ 64-બીટ કાઉન્ટર અને 64-બીટ નોનસ રાખવામાં આવે છે. 2015 માં, AEAD અલ્ગોરિધમનો ઉપયોગ RFC 7539 અને RFC 7905 માં TLS 1.2 અને DTLS 1.2 માં અને RFC 7634 માં IPsec માં થાય છે. તે જ વર્ષે, તેને ક્લાઉડફ્લેયર દ્વારા વૈકલ્પિક સિફરસુઇટ તરીકે સંકલિત કરવામાં આવ્યું હતું. જૂન 2018માં, આર. એફ. સી. 7539ને અપડેટ કરવામાં આવ્યું હતું અને તેના સ્થાને આર. એફ. સી. 8439 મૂકવામાં આવ્યું હતું. વર્ણન આરએફસી 8439માં વર્ણવ્યા મુજબ ચાચા20-પોલી1305 અલ્ગોરિધમ 128-બીટ (ટેગનું કદ) ના સાઇફરટેક્સ્ટ વિસ્તરણ સાથે પ્લેનટેક્સ્ટને એન્ક્રિપ્ટ કરવા માટે 256-બીટ કી અને 96-બીટ નોનસને ઇનપુટ તરીકે લે છે. ચાચા20-પોલી1305 બાંધકામમાં, ચાચા20 નો ઉપયોગ કાઉન્ટર મોડમાં કી સ્ટ્રીમ મેળવવા માટે થાય છે જે પ્લેનટેક્સ્ટ સાથે XOR છે. સાઇફરટેક્સ્ટ અને સંકળાયેલ ડેટાને પછી પોલી1305 ના પ્રકારનો ઉપયોગ કરીને પ્રમાણિત કરવામાં આવે છે જે પહેલા બે શબ્દમાળાઓને એકમાં એન્કોડ કરે છે. જે રીતે સાઇફર અને વન ટાઇમ ઓથેન્ટિકેટરને જોડવામાં આવે છે તે ચોક્કસપણે AES-GCM બાંધકામ સાથે સમાન છે કે કેવી રીતે પ્રથમ બ્લોકનો ઉપયોગ ઓથેન્ટિકેટરને બીજ કરવા માટે કરવામાં આવે છે અને પછી 16-બાઈટ ટેગ સાથે સાઇફરટેક્સ્ટને કેવી રીતે પ્રમાણિત કરવામાં આવે છે. AES-128 અને AES-256 બંને સાથે 16 બાઇટ્સ (128 બીટ) ની સરખામણીમાં ChaCha20 સાથે મુખ્ય બાહ્ય તફાવત તેના 64 બાઈટ (512 બીટ) બ્લોકનું કદ છે. મોટા બ્લોકનું કદ આધુનિક સીપીયુ પર ઉચ્ચ પ્રદર્શનને સક્ષમ કરે છે અને 32 બીટ કાઉન્ટર ઓવરફ્લો પહેલાં મોટા પ્રવાહોને મંજૂરી આપે છે. વેરિયન્ટ્સ XChaCha20-Poly1305-એક્સટેન્ડેડ નોનસ વેરિઅન્ટ XChaCha20-Poly1305 કન્સ્ટ્રક્શન એ ChaCha20 ને બદલે XChaCha20 નો ઉપયોગ કરીને ChaCha20-Poly1305 કન્સ્ટ્રક્શનનું એક્સટેન્ડેડ 192-બીટ નોનસ વેરિઅન્ટ છે. રેન્ડમ રીતે નોનસીસ પસંદ કરતી વખતે, XChaCha20-Poly1305 બાંધકામ મૂળ બાંધકામ કરતાં વધુ સારી સુરક્ષા માટે પરવાનગી આપે છે. બાંધકામને પ્રમાણિત કરવાનો પ્રયાસ જુલાઈ 2020માં સમાપ્ત થયો હતો. સાલસા20-પોલી1305 અને એક્સસાલસા20-પોલી1305 સાલસા20-પોલી1305 અને એક્સસાલસા20-પોલી1305 ચાચા20-પોલી1305 અને એક્સચાલસા20-પોલી1305 અલ્ગોરિધમ્સના પ્રકારો છે, જે ચાચા20 અને એક્સચાલસા20ની જગ્યાએ સાલસા20 અને એક્સસાલસા20નો ઉપયોગ કરે છે. તેઓ એન. એ. સી. એલ. અને લિબસોડિયમમાં લાગુ કરવામાં આવે છે પરંતુ પ્રમાણિત નથી. ચાચાનો ઉપયોગ કરતા પ્રકારોને વ્યવહારમાં પસંદ કરવામાં આવે છે કારણ કે તેઓ સાલસા કરતાં રાઉન્ડ દીઠ વધુ સારી રીતે પ્રસરણ પ્રદાન કરે છે. ChaCha20-Poly1305 નો ઉપયોગ આઇપીએસઈસી, એસએસએચ, ટીએલએસ 1.2, ડીટીએલએસ 1.2, ટીએલએસ 1.3, વાયરગાર્ડ, એસ/એમઆઇએમઇ 4, ઓટીઆરવી 4 અને અન્ય બહુવિધ પ્રોટોકોલમાં થાય છે. તેનો ઉપયોગ બોર્ગ જેવા સોફ્ટવેરમાં પ્રમાણભૂત ડેટા એન્ક્રિપ્શન તરીકે થાય છે. અન્યમાં, તે ઓપનએસએસએલ અને લિબસોડિયમમાં લાગુ કરવામાં આવે છે. પ્રદર્શન ChaCha20-Poly1305 સામાન્ય રીતે વધુ પ્રચલિત AES-GCM અલ્ગોરિધમ કરતાં વધુ સારું પ્રદર્શન પ્રદાન કરે છે, તે સિસ્ટમો પર પણ જ્યાં CPU (ઓ) પાસે AES-NI સૂચના સમૂહ વિસ્તરણ હોય છે. સોફ્ટવેર અમલીકરણ સાથે એન્ક્રિપ્શન અને ડિક્રિપ્શનની ઝડપ પહેલેથી જ 1 GB/s થી ઉપર હોય છે જ્યારે એક જ કોર પર કરવામાં આવે છે, જો વધુ કોર સમાંતર ઉપયોગમાં લેવાય તો લગભગ રેખીય રીતે સ્કેલિંગ થાય છે. AES-NI એક જ કોર પર લગભગ સમાન ગતિ સુધી પહોંચે છે પરંતુ તે બહુવિધ CPU માટે પણ સ્કેલ કરતું નથી, અને સૂચના સેટ એક્સ્ટેંશન વિના તેને અસરકારક રીતે અમલમાં મૂકવું મુશ્કેલ છે. પરિણામે, ચાચા20-પોલી1305 ને કેટલીકવાર તેના સમાન સ્તરની સુરક્ષાને કારણે અને મોબાઇલ ઉપકરણોને લગતા કેટલાક ઉપયોગના કિસ્સાઓમાં, જે મોટે ભાગે એઆરએમ-આધારિત સીપીયુનો ઉપયોગ કરે છે, તેના કારણે એઇએસ-જીસીએમ કરતાં વધુ પસંદ કરવામાં આવે છે. સુરક્ષા ચાચા20-પોલી1305 બાંધકામ એકલ અને બહુ-વપરાશકર્તા સેટિંગ માટે પ્રમાણભૂત મોડેલ અને આદર્શ ક્રમચય મોડેલમાં સુરક્ષિત સાબિત થયું છે. જો કે, જી. સી. એમ. ની જેમ જ, સુરક્ષા એન્ક્રિપ્ટેડ દરેક સંદેશ માટે એક અનન્ય નોન્સ પસંદ કરવા પર આધાર રાખે છે. એઇએસ-જીસીએમની સરખામણીમાં, ચાચા20-પોલી1305નું અમલીકરણ સમયના હુમલાઓ માટે ઓછું સંવેદનશીલ છે. પ્રમાણિત એન્ક્રિપ્શન ગેલોઇસ/કાઉન્ટર મોડ સાલસા 20 પોલી1305 બાહ્ય કડીઓ આરએફસી 8439: આઈઈટીએફ પ્રોટોકોલ માટે ચાચા 20 અને પોલી1305 આરએફસી 7634: ચાચા 20, પોલી1305, અને ઇન્ટરનેટ કી એક્સચેન્જ પ્રોટોકોલ (આઈકેઈ) અને આઈપીએસઈસી આરએફસી 7905 માં તેમનો ઉપયોગઃ ચાચા 20-પોલી1305 પરિવહન સ્તર સુરક્ષા માટે સાઇફર સ્યુટ (ટીએલએસ) આરએફસી 8103: ક્રિપ્ટોગ્રાફિક સંદેશ વાક્યરચના (સીએમએસ) સંદર્ભોમાં ચાચા 20-પોલી1305 પ્રમાણિત એન્ક્રિપ્શનનો ઉપયોગ સંદેશ પ્રમાણીકરણ યોજનાઓ સ્ટ્રીમ સંકેતો