QARMA
ક્યૂ. એ. આર. એમ. એ. (ક્વોલકોમ એ. આર. એમ. ઓથેન્ટિકેટરમાંથી) એક હળવું ઝટકો આપી શકાય તેવું બ્લોક સાઇફર છે, જે મુખ્યત્વે પોઇન્ટર ઓથેન્ટિકેશન કોડ માટે ક્રિપ્ટોગ્રાફિક હેશ તરીકે સોફ્ટવેરના રક્ષણ માટે એ. આર. એમ. વી. 8 આર્કિટેક્ચરમાં તેના ઉપયોગ માટે જાણીતું છે. સાઇફરની દરખાસ્ત રોબર્ટો અવાન્ઝી દ્વારા 2016 માં કરવામાં આવી હતી. ક્યુએઆરએમએની બે આવૃત્તિઓ વ્યાખ્યાયિત કરવામાં આવી છેઃ ક્યુએઆરએમએ-64 (128-બીટ એન્ક્રિપ્શન કી સાથે 64-બીટ બ્લોક કદ) અને ક્યુએઆરએમએ-128 (256-બીટ કી સાથે 128-બીટ બ્લોક કદ). કર્માની રચના પ્રિન્સ અને મેન્ટિસથી પ્રભાવિત હતી. સાઇફર ઓછી વિલંબતા (જેમ કે મેમરી એન્ક્રિપ્શન) સાથે સંપૂર્ણ-અનરોલ્ડ હાર્ડવેર અમલીકરણ માટે બનાવાયેલ છે. એક્સટીએસ મોડથી વિપરીત, સરનામાંનો સીધો ઉપયોગ ઝટકો તરીકે થઈ શકે છે અને પહેલા બ્લોક એન્ક્રિપ્શનથી તેને સફેદ કરવાની જરૂર નથી. આર્કિટેક્ચર ક્યૂ. એ. આર. એમ. એ. એ ત્રણ તબક્કાઓનો ઉપયોગ કરતું એક સમાન-મેન્સોર સાઇફર છે, જેમાં વચ્ચે સફેદ કીઓ ડબલ્યુ0 અને ડબલ્યુ1 એક્સઓઆરનો ઉપયોગ થાય છેઃ ક્રમચય એફ એ કોર કી કે0 નો ઉપયોગ કરે છે અને ટ્વીક ટી દ્વારા પરિમાણિત છે. તેની અંદર આર રાઉન્ડ છે (ક્યૂ. એ. આર. એમ. એ.-64 માટે આર = 7, ક્યૂ. એ. આર. એમ. એ.-128 માટે આર = 11); "કેન્દ્રીય" ક્રમચય સી એ કી કે1 નો ઉપયોગ કરે છે અને તેને સરળ કી પરિવર્તન (બે કેન્દ્રીય રાઉન્ડ ધરાવે છે) દ્વારા ઉલટાવી શકાય તે રીતે ડિઝાઇન કરવામાં આવે છે; ત્રીજું ક્રમચય પ્રથમ (આર વધુ રાઉન્ડ) નો વ્યસ્ત છે. બધી કીઓ માસ્ટર એન્ક્રિપ્શન કી Kમાંથી વિશિષ્ટતાનો ઉપયોગ કરીને મેળવવામાં આવે છેઃ K ને અર્ધભાગમાં ડબલ્યુ0 કોન્કેટેનેશન k0 તરીકે વિભાજિત કરવામાં આવે છે, દરેકમાં અર્ધ-કદના બિટ્સ હશે; એન્ક્રિપ્શન માટે ડબલ્યુ1 = (ડબલ્યુ0>> 1) + (ડબલ્યુ0>> (અર્ધ-કદ-1); એન્ક્રિપ્શન માટે ડબલ્યુ1 = કે0; ડિક્રિપ્શન માટે, જ્યાં સુધી કે0 + α નો ઉપયોગ મુખ્ય કી તરીકે થાય ત્યાં સુધી સમાન ડિઝાઇનનો ઉપયોગ કરી શકાય છે, ડબલ્યુ1 = ક્યૂ. કે0, ડબલ્યુ1 અને ડબલ્યુ0 ને અદલાબદલી કરવામાં આવે છે. અહીં α એક વિશેષ અચળાંક છે અને Q એક વિશેષ અનૈચ્છિક મેટ્રિક્સ છે. આ રચના પ્રિન્સમાં આલ્ફા પ્રતિબિંબ જેવી જ છે. ડેટાને 16 કોષોમાં વહેંચવામાં આવે છે (ક્યૂએઆરએમએ-64 માટે 4-બીટ નિબ્બલ્સ, ક્યૂએઆરએમએ-128 માટે 8-બીટ બાઇટ્સ). આંતરિક સ્થિતિમાં 16 કોષો પણ હોય છે, જે 4x4 મેટ્રિક્સમાં ગોઠવાયેલા હોય છે, અને તેને પ્લેનટેક્સ્ટ (W0 સાથે XOR) દ્વારા શરૂ કરવામાં આવે છે. દરેક રાઉન્ડમાં, સ્થિતિ કામગીરી દ્વારા રૂપાંતરિત થાય છેઃ શફલ સેલ્સ છે, કોષોનું MIDORI ક્રમચય ([0,11,6,13,10,1,12,7,5,14,3,8,15,4,9,2]); મિક્સકોલમ છેઃ દરેક સ્તંભને નિશ્ચિત મેટ્રિક્સ M દ્વારા ગુણાકાર કરવામાં આવે છે; સબસેલ્સ છેઃ દરેક કોષને S-બોક્સનો ઉપયોગ કરીને રૂપાંતરિત કરવામાં આવે છે. દરેક રાઉન્ડ માટે ટ્વીકનો ઉપયોગ કરીને અપડેટ કરવામાં આવે છેઃ MANTIS માંથી કોષ ક્રમચયો ([6,5,14,15,0,1,2,3,7,12,13,4,8,9,10,11]); એક LFSR છે જે સંખ્યાઓ [0,1,3,4,8,11,13] સાથે દરેક કોષ પર લાગુ થાય છે. QARMA-64 માટે, LFSR એ (b3, b2, b1, b0) (b0 + b1, b3, b2, b1), (b7, b6,., b0) (b0 + b2, b7, b6,., b1) છે. કેન્દ્રીય રાઉન્ડ, બે રાઉન્ડ (અને) ઉપરાંત, અનૈચ્છિક મેટ્રિક્સ દ્વારા રાજ્યનો ગુણાકાર સમાવેશ થાય છે પ્ર. સંદર્ભો સ્ત્રોતો બાહ્ય કડીઓ ક્યુએઆરએમએ-64 ઓપન-સોર્સ (એમઆઇટી લાઇસન્સ) ના જાહેર-ડોમેન પાયથોન અમલીકરણ સી બ્લોક સાઇફર્સમાં ક્યુએઆરએમએ-64 નું અમલીકરણ