QARMA
قارما (کوالکوم اے آر ایم تصدیق کنندہ سے) ایک ہلکا پھلکا موافقت پذیر بلاک سائفر ہے جو بنیادی طور پر پوائنٹر تصدیق کوڈ کے لیے کرپٹوگرافک ہیش کے طور پر سافٹ ویئر کے تحفظ کے لیے اے آر ایم وی 8 فن تعمیر میں اس کے استعمال کے لیے جانا جاتا ہے۔ سائفر کی تجویز 2016 میں رابرٹو ایونزی نے پیش کی تھی۔ قارما کے دو ورژنوں کی وضاحت کی گئی ہے: قارما-64 (128 بٹ خفیہ کاری کلید کے ساتھ 64 بٹ بلاک سائز) اور قارما-128 (256 بٹ کلید کے ساتھ 128 بٹ بلاک سائز)۔ قارما کا ڈیزائن پرنس اور مانٹس سے متاثر تھا۔ سائفر کا مقصد کم تاخیر (جیسے میموری انکرپشن) کے ساتھ مکمل طور پر غیر درج شدہ ہارڈ ویئر کے نفاذ کے لیے ہے۔ ایکس ٹی ایس موڈ کے برعکس، ایڈریس کو براہ راست موافقت کے طور پر استعمال کیا جا سکتا ہے اور اسے پہلے بلاک انکرپشن کے ساتھ سفید کرنے کی ضرورت نہیں ہے۔ آرکیٹیکچر قارما تین مراحل کا استعمال کرتے ہوئے ایک یکساں-مینسور سائفر ہے، جس میں سفید کرنے والی چابیاں ڈبلیو 0 اور ڈبلیو 1 ایکس او آر درمیان میں ہیں: تعدد ایف بنیادی کلید کے 0 کا استعمال کر رہا ہے اور ٹوک ٹی کے ذریعے پیرامیٹرائز کیا گیا ہے۔ اس کے اندر آر راؤنڈ ہوتے ہیں (قارما-64 کے لیے آر = 7، قارما-128 کے لیے آر = 11) ؛ "مرکزی" تعدد سی کلیدی کے 1 کا استعمال کر رہا ہے اور اسے ایک سادہ کلیدی تبدیلی کے ذریعے تبدیل کرنے کے لیے ڈیزائن کیا گیا ہے (جس میں دو مرکزی راؤنڈ ہوتے ہیں) ؛ تیسرا تعدد پہلے (آر مزید راؤنڈ) کا الٹا ہوتا ہے۔ تمام چابیاں مہارت کا استعمال کرتے ہوئے ماسٹر خفیہ کاری کلید K سے حاصل کی جاتی ہیں: K کو حصوں میں تقسیم کیا جاتا ہے جیسا کہ w0 کنکیٹی نیشن k0، ہر ایک میں نصف سائز کے بٹس ہوں گے ؛ خفیہ کاری کے لیے w1 = (w0>> 1) + (w0>> (نصف سائز-1) ؛ خفیہ کاری کے لیے k1 = k0 ؛ ڈکرپشن کے لیے، اسی ڈیزائن کو اس وقت تک استعمال کیا جا سکتا ہے جب تک کہ k0 + α کو بنیادی کلید کے طور پر استعمال کیا جائے، k1 = Q • k0، w1 اور w0 کو تبدیل کیا جائے۔ یہاں α ایک خاص مستقل اور 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]۔ قارما-64 کے لیے، ایل ایف ایس آر (بی 3، بی 2، بی 1، بی 0) (بی 0 + بی 1، بی 3، بی 2، بی 1) ہے، قارما-128 کے لیے، (بی 7، بی 6،.، بی 0) (بی 0 + بی 2، بی 7، بی 6،.، بی 1)، کے راؤنڈ الٹی کارروائیوں پر مشتمل ہوتے ہیں۔ مرکزی راؤنڈز، دو راؤنڈز (اور) کے علاوہ، ایک غیر ارادی میٹرکس کے ذریعے ریاست کا ضرب شامل ہے۔ حوالہ جات ذرائع بیرونی لنکس عوامی ڈومین ازگر کا نفاذ قارما-64 اوپن سورس (ایم آئی ٹی لائسنس) سی بلاک سائفرز میں قارما-64 کا نفاذ۔