LSH (دالة التجزئة)

LSH هي دالة تجزئة تشفيرية صُممت عام 2014 في كوريا الجنوبية لتوفير سلامة البيانات في بيئات البرمجيات العامة مثل أجهزة الكمبيوتر الشخصية والأجهزة الذكية . [ 1 ] تُعد LSH إحدى خوارزميات التشفير المعتمدة من قِبل البرنامج الكوري للتحقق من صحة وحدات التشفير (KCMVP)، وهي المعيار الوطني لكوريا الجنوبية (KS X 3262).

مواصفة

يظهر الشكل التالي البنية العامة لدالة التجزئة LSH.

الهيكل العام لـ LSH

تعتمد دالة التجزئة LSH على بنية Merkle-Damgård ذات الأنابيب العريضة مع إضافة أصفار. تتكون عملية تجزئة الرسائل في LSH من المراحل الثلاث التالية.

  1. التهيئة :
    • إضافة أصفار إلى رسالة سلسلة بتات معينة.
    • تحويل رسالة سلسلة البتات المبطنة إلى كتل رسائل مصفوفة من 32 كلمة.
    • تهيئة متغير التسلسل باستخدام متجه التهيئة.
  2. الضغط :
    • تحديث متغيرات التسلسل عن طريق تكرار دالة الضغط باستخدام كتل الرسائل.
  3. الحسم :
    • جيل منن{\displaystyle n}قيمة التجزئة ذات البتات من متغير السلسلة النهائي.
  • دالة التجزئة LSH
  • المدخلات: رسالة سلسلة بتم{\displaystyle m}
  • الناتج: قيمة التجزئةح{0،1}ن{\displaystyle h\in \{0,1\}^{n}}
  • إجراء

{\displaystyle \qquad }حشو الأصفار الواحديةم{\displaystyle m}

{\displaystyle \qquad }جيلت{\displaystyle t}كتل الرسائل{م(أنا)}أنا=0ت-1{\displaystyle \{{\textsf {M}}^{(i)}\}_{i=0}^{t-1}}، أينت=|م|+132w{\displaystyle t={\Big \lceil }{\frac {|m|+1}{32w}}{\Big \rceil }}من سلسلة البتات المبطنة

{\displaystyle \qquad }السيرة الذاتية(0)رابعاً{\displaystyle {\textsf {CV}}^{(0)}\leftarrow {\textsf {IV}}}

{\displaystyle \qquad }لأنا=0{\displaystyle i=0}ل(ت-1){\displaystyle (t-1)}يفعل

{\displaystyle \qquad }{\displaystyle \qquad }السيرة الذاتية(أنا+1)التليف الكيسي(السيرة الذاتية(أنا)،م(أنا)){\displaystyle {\textsf {CV}}^{(i+1)}\leftarrow {\textrm {CF}}({\textsf {CV}}^{(i)},{\textsf {M}}^{(i)})}

{\displaystyle \qquad }نهاية لـ

{\displaystyle \qquad }حالنهايةن(السيرة الذاتية(ت)){\displaystyle h\leftarrow {\textrm {FIN}}_{n}({\textsf {CV}}^{(t)})}

{\displaystyle \qquad }يعودح{\displaystyle h}

مواصفات دالة التجزئة LSH هي كما يلي.

مواصفات دالة التجزئة LSH
الخوارزميةحجم التجزئة بالبتات (ن{\displaystyle n})عدد الدوال المتدرجة (شمالs{\displaystyle N_{s}})ربط أحجام متغيرة بالبتاتحجم كتلة الرسالة بالبتاتحجم الكلمة بالبتات (w{\displaystyle w})
LSH-256-22422426512102432
LSH-256-256256
LSH-512-224224281024204864
LSH-512-256256
LSH-512-384384
LSH-512-512512

التهيئة

يتركم{\displaystyle m}لنفترض أن لدينا سلسلة بتات معينة من الرسائل.م{\displaystyle m}يتم إضافة أصفار تساوي واحدًا إلى نهاية السلسلة، أي يتم إلحاق البت '1' بنهاية السلسلة.م{\displaystyle m}وتُضاف الأصفار إلى البتات حتى يصبح طول البتات للرسالة المُضافة هو32wت{\displaystyle 32wt}، أينت=(|م|+1)/32w{\displaystyle t=\lceil (|m|+1)/32w\rceil }وx{\displaystyle \lceil x\rceil }هو أصغر عدد صحيح لا يقل عنx{\displaystyle x}.

يتركمص=م0م1...م(32wت-1){\displaystyle m_{p}=m_{0}\|m_{1}\|\ldots \|m_{(32wt-1)}}كن مملوءًا بالأصفار والآحاد32wت{\displaystyle 32wt}سلسلة بتاتم{\displaystyle m}. ثممص{\displaystyle m_{p}}يُعتبر4wت{\displaystyle 4wt}مصفوفة بايتمأ=(م[0]،...،م[4wت-1]){\displaystyle m_{a}=(m[0],\ldots ,m[4wt-1])}، أينم[ك]=م8كم(8ك+1)...م(8ك+7){\displaystyle m[k]=m_{8k}\|m_{(8k+1)}\|\ldots \|m_{(8k+7)}}للجميع0ك(4wت-1){\displaystyle 0\leq k\leq (4wt-1)}. ال4wت{\displaystyle 4wt}مصفوفة بايتمأ{\displaystyle m_{a}}يتحول إلى32ت{\displaystyle 32t}مصفوفة الكلماتم=(م[0]،...،م[32ت-1]){\displaystyle {\textsf {M}}=(M[0],\ldots ,M[32t-1])}على النحو التالي.

م[s]م[ws/8+(w/8-1)]...م[ws/8+1]م[ws/8]{\displaystyle M[s]\leftarrow m[ws/8+(w/8-1)]\|\ldots \|m[ws/8+1]\|m[ws/8]}(0s(32ت-1)){\displaystyle (0\leq s\leq (32t-1))}

من مصفوفة الكلماتم{\displaystyle {\textsf {M}}}، نُعرّفت{\displaystyle t}كتل رسائل مصفوفة من 32 كلمة{م(أنا)}أنا=0ت-1{\displaystyle \{{\textsf {M}}^{(i)}\}_{i=0}^{t-1}}على النحو التالي.

م(أنا)(م[32أنا]،م[32أنا+1]،...،م[32أنا+31]){\displaystyle {\textsf {M}}^{(i)}\leftarrow (M[32i],M[32i+1],\ldots ,M[32i+31])}(0أنا(ت-1)){\displaystyle (0\leq i\leq (t-1))}

متغير ربط المصفوفة المكونة من 16 كلمةالسيرة الذاتية(0){\displaystyle {\textsf {CV}}^{(0)}}يتم تهيئتها إلى متجه التهيئةرابعاً{\displaystyle {\textsf {IV}}}.

السيرة الذاتية(0)[ل]رابعاً[ل]{\displaystyle {\textsf {CV}}^{(0)}[l]\leftarrow {\textsf {IV}}[l]}(0ل15){\displaystyle (0\leq l\leq 15)}

متجه التهيئةرابعاً{\displaystyle {\textsf {IV}}}كما يلي. في الجداول التالية، يتم التعبير عن جميع القيم بصيغة النظام الست عشري.

متجه التهيئة LSH-256-224
رابعاً[0]{\displaystyle {\textsf {IV}}[0]}رابعاً[1]{\displaystyle {\textsf {IV}}[1]}رابعاً[2]{\displaystyle {\textsf {IV}}[2]}رابعاً[3]{\displaystyle {\textsf {IV}}[3]}رابعاً[4]{\displaystyle {\textsf {IV}}[4]}رابعاً[5]{\displaystyle {\textsf {IV}}[5]}رابعاً[6]{\displaystyle {\textsf {IV}}[6]}رابعاً[7]{\displaystyle {\textsf {IV}}[7]}
068608D362D8F7A7D76652AB4C600A43BDC40AA81ECA0B68DA1A89BE3147D354
رابعاً[8]{\displaystyle {\textsf {IV}}[8]}رابعاً[9]{\displaystyle {\textsf {IV}}[9]}رابعاً[10]{\displaystyle {\textsf {IV}}[10]}رابعاً[11]{\displaystyle {\textsf {IV}}[11]}رابعاً[12]{\displaystyle {\textsf {IV}}[12]}رابعاً[13]{\displaystyle {\textsf {IV}}[13]}رابعاً[14]{\displaystyle {\textsf {IV}}[14]}رابعاً[15]{\displaystyle {\textsf {IV}}[15]}
707EB4F9F65B38626B0B2ABE56B8EC0ACF237286EE0D1727336365958BB8D05F
متجه تهيئة LSH-256-256
رابعاً[0]{\displaystyle {\textsf {IV}}[0]}رابعاً[1]{\displaystyle {\textsf {IV}}[1]}رابعاً[2]{\displaystyle {\textsf {IV}}[2]}رابعاً[3]{\displaystyle {\textsf {IV}}[3]}رابعاً[4]{\displaystyle {\textsf {IV}}[4]}رابعاً[5]{\displaystyle {\textsf {IV}}[5]}رابعاً[6]{\displaystyle {\textsf {IV}}[6]}رابعاً[7]{\displaystyle {\textsf {IV}}[7]}
46A10F1FFDDCE486B41443A8198E6B9D3304388DB0F5A3C7B36061C47ADBD553
رابعاً[8]{\displaystyle {\textsf {IV}}[8]}رابعاً[9]{\displaystyle {\textsf {IV}}[9]}رابعاً[10]{\displaystyle {\textsf {IV}}[10]}رابعاً[11]{\displaystyle {\textsf {IV}}[11]}رابعاً[12]{\displaystyle {\textsf {IV}}[12]}رابعاً[13]{\displaystyle {\textsf {IV}}[13]}رابعاً[14]{\displaystyle {\textsf {IV}}[14]}رابعاً[15]{\displaystyle {\textsf {IV}}[15]}
105D53782F74DE545C2F2D95F2553FBE8051357A138668C847AA4484E01AFB41
متجه التهيئة LSH-512-224
رابعاً[0]{\displaystyle {\textsf {IV}}[0]}رابعاً[1]{\displaystyle {\textsf {IV}}[1]}رابعاً[2]{\displaystyle {\textsf {IV}}[2]}رابعاً[3]{\displaystyle {\textsf {IV}}[3]}
0C401E9FE8813A554A5F446268FD3D35FF13E452334F612AF8227661037E354A
رابعاً[4]{\displaystyle {\textsf {IV}}[4]}رابعاً[5]{\displaystyle {\textsf {IV}}[5]}رابعاً[6]{\displaystyle {\textsf {IV}}[6]}رابعاً[7]{\displaystyle {\textsf {IV}}[7]}
A5F223723C9CA29D95D965A11AED397901E23835B9AB02CC52D49CBAD5B30616
رابعاً[8]{\displaystyle {\textsf {IV}}[8]}رابعاً[9]{\displaystyle {\textsf {IV}}[9]}رابعاً[10]{\displaystyle {\textsf {IV}}[10]}رابعاً[11]{\displaystyle {\textsf {IV}}[11]}
9E5C2027773F4ED366A5C8801925B70122BBC85B4C6779D9C13171A42C559C23
رابعاً[12]{\displaystyle {\textsf {IV}}[12]}رابعاً[13]{\displaystyle {\textsf {IV}}[13]}رابعاً[14]{\displaystyle {\textsf {IV}}[14]}رابعاً[15]{\displaystyle {\textsf {IV}}[15]}
31E2B67D25BE3813D522C4DEED8E4D83A79F5509B43FBAFEE00D2CD88B4B6C6A
متجه التهيئة LSH-512-256
رابعاً[0]{\displaystyle {\textsf {IV}}[0]}رابعاً[1]{\displaystyle {\textsf {IV}}[1]}رابعاً[2]{\displaystyle {\textsf {IV}}[2]}رابعاً[3]{\displaystyle {\textsf {IV}}[3]}
6DC57C33DF989423D8EA7F6E8342C19976DF8356F8603AC440F1B44DE838223A
رابعاً[4]{\displaystyle {\textsf {IV}}[4]}رابعاً[5]{\displaystyle {\textsf {IV}}[5]}رابعاً[6]{\displaystyle {\textsf {IV}}[6]}رابعاً[7]{\displaystyle {\textsf {IV}}[7]}
39FFE7CFC31484CD39C4326CC52815488A2FF85A346045D8FF202AA46DBDD61E
رابعاً[8]{\displaystyle {\textsf {IV}}[8]}رابعاً[9]{\displaystyle {\textsf {IV}}[9]}رابعاً[10]{\displaystyle {\textsf {IV}}[10]}رابعاً[11]{\displaystyle {\textsf {IV}}[11]}
CF785B3CD5FCDB8B1F0323B64A8150BFFF75D972F29EA3552E567F30BF1CA9E1
رابعاً[12]{\displaystyle {\textsf {IV}}[12]}رابعاً[13]{\displaystyle {\textsf {IV}}[13]}رابعاً[14]{\displaystyle {\textsf {IV}}[14]}رابعاً[15]{\displaystyle {\textsf {IV}}[15]}
B596875BF8FF6DBAFCCA39B089EF4615ECFF4017D020B4B67E77384C772ED802
متجه التهيئة LSH-512-384
رابعاً[0]{\displaystyle {\textsf {IV}}[0]}رابعاً[1]{\displaystyle {\textsf {IV}}[1]}رابعاً[2]{\displaystyle {\textsf {IV}}[2]}رابعاً[3]{\displaystyle {\textsf {IV}}[3]}
53156A66292808F6B2C4F362B204C2BCB84B7213BFA05C4E976CEB7C1B299F73
رابعاً[4]{\displaystyle {\textsf {IV}}[4]}رابعاً[5]{\displaystyle {\textsf {IV}}[5]}رابعاً[6]{\displaystyle {\textsf {IV}}[6]}رابعاً[7]{\displaystyle {\textsf {IV}}[7]}
DF0CC63C0570AE97DA4441BAA486CE3F6559F5D9B5F2ACC222DACF19B4B52A16
رابعاً[8]{\displaystyle {\textsf {IV}}[8]}رابعاً[9]{\displaystyle {\textsf {IV}}[9]}رابعاً[10]{\displaystyle {\textsf {IV}}[10]}رابعاً[11]{\displaystyle {\textsf {IV}}[11]}
BBCDACEFDE80953AC9891A2879725B3E7C9FE6330237E440A30BA550553F7431
رابعاً[12]{\displaystyle {\textsf {IV}}[12]}رابعاً[13]{\displaystyle {\textsf {IV}}[13]}رابعاً[14]{\displaystyle {\textsf {IV}}[14]}رابعاً[15]{\displaystyle {\textsf {IV}}[15]}
BB08043FB34E3E30A0DEC48D54618EAD150317267464BC5732D1501FDE63DC93
متجه تهيئة LSH-512-512
رابعاً[0]{\displaystyle {\textsf {IV}}[0]}رابعاً[1]{\displaystyle {\textsf {IV}}[1]}رابعاً[2]{\displaystyle {\textsf {IV}}[2]}رابعاً[3]{\displaystyle {\textsf {IV}}[3]}
ADD50F3C7F07094EE3F3CEE8F9418A4FB527ECDE5B3D0AE92EF6DEC68076F501
رابعاً[4]{\displaystyle {\textsf {IV}}[4]}رابعاً[5]{\displaystyle {\textsf {IV}}[5]}رابعاً[6]{\displaystyle {\textsf {IV}}[6]}رابعاً[7]{\displaystyle {\textsf {IV}}[7]}
8CB994CAE5ACA216FBB9EAE4BBA48CC7650A526174725FEA1F9A61A73F8D8085
رابعاً[8]{\displaystyle {\textsf {IV}}[8]}رابعاً[9]{\displaystyle {\textsf {IV}}[9]}رابعاً[10]{\displaystyle {\textsf {IV}}[10]}رابعاً[11]{\displaystyle {\textsf {IV}}[11]}
B6607378173B539B1BC99853B0C0B9EDDF727FC19B182D47DBEF360CF893A457
رابعاً[12]{\displaystyle {\textsf {IV}}[12]}رابعاً[13]{\displaystyle {\textsf {IV}}[13]}رابعاً[14]{\displaystyle {\textsf {IV}}[14]}رابعاً[15]{\displaystyle {\textsf {IV}}[15]}
4981F5E570147E80D00C4490CA7D3E305D73940C0E4AE1EC894085E2EDB2D819

ضغط

في هذه المرحلة،ت{\displaystyle t}كتل رسائل مصفوفة من 32 كلمة{م(أنا)}أنا=0ت-1{\displaystyle \{{\textsf {M}}^{(i)}\}_{i=0}^{t-1}}والتي يتم إنشاؤها من رسالةم{\displaystyle m}في مرحلة التهيئة، يتم ضغط البيانات من خلال تكرار دوال الضغط. دالة الضغطالتليف الكيسي:دبليو16×دبليو32دبليو16{\displaystyle {\textrm {CF}}:{\mathcal {W}}^{16}\times {\mathcal {W}}^{32}\rightarrow {\mathcal {W}}^{16}}له مدخلان؛أنا{\displaystyle i}متغير ربط مكون من 16 كلمةالسيرة الذاتية(أنا){\displaystyle {\textsf {CV}}^{(i)}}وأنا{\displaystyle i}كتلة رسالة مكونة من 32 كلمةم(أنا){\displaystyle {\textsf {M}}^{(i)}}ويعيد ذلك(أنا+1){\displaystyle (i+1)}متغير ربط مكون من 16 كلمةالسيرة الذاتية(أنا+1){\displaystyle {\textsf {CV}}^{(i+1)}}هنا وفيما بعد،دبليوت{\displaystyle {\mathcal {W}}^{t}}يرمز إلى مجموعة جميعت{\displaystyle t}مصفوفات الكلمات لـت1{\displaystyle t\geq 1}.

تُستخدم الوظائف الأربع التالية في وظيفة الضغط:

  • وظيفة توسيع الرسائلMsgExp:دبليو32دبليو16(شمالs+1){\displaystyle {\textrm {MsgExp}}:{\mathcal {W}}^{32}\rightarrow {\mathcal {W}}^{16(Ns+1)}}
  • وظيفة إضافة الرسائلMsgAdd:دبليو16×دبليو16دبليو16{\displaystyle {\textrm {MsgAdd}}:{\mathcal {W}}^{16}\times {\mathcal {W}}^{16}\rightarrow {\mathcal {W}}^{16}}
  • وظيفة المزجمزجج:دبليو16دبليو16{\displaystyle {\textrm {Mix}}_{j}:{\mathcal {W}}^{16}\rightarrow {\mathcal {W}}^{16}}
  • دالة تبديل الكلماتWordPerm:دبليو16دبليو16{\displaystyle {\textrm {WordPerm}}:{\mathcal {W}}^{16}\rightarrow {\mathcal {W}}^{16}}

يوضح الشكل التالي البنية العامة لوظيفة الضغط.

وظيفة الضغط في LSH

في دالة الضغط، دالة توسيع الرسالةMsgExp{\displaystyle {\textrm {MsgExp}}}يُنشئ(شمالs+1){\displaystyle (N_{s}+1)}رسائل فرعية مكونة من 16 كلمة{مج(أنا)}ج=0شمالs{\displaystyle \{{\textsf {M}}_{j}^{(i)}\}_{j=0}^{N_{s}}}من المعطىم(أنا){\displaystyle {\textsf {M}}^{(i)}}. يتركتي=(تي[0]،...،تي[15]){\displaystyle {\textsf {T}}=(T[0],\ldots ,T[15])}أن تكون مصفوفة مؤقتة مكونة من 16 كلمة مضبوطة علىأنا{\displaystyle i}متغير السلسلة رقم -thالسيرة الذاتية(أنا){\displaystyle {\textsf {CV}}^{(i)}}. الج{\displaystyle j}دالة الخطوة رقم -خطوةج{\displaystyle {\textrm {Step}}_{j}}يحتوي على مدخلينتي{\displaystyle {\textsf {T}}}ومج(أنا){\displaystyle {\textsf {M}}_{j}^{(i)}}التحديثاتتي{\displaystyle {\textsf {T}}}، أي،تيخطوةج(تي،مج(أنا)){\displaystyle {\textsf {T}}\leftarrow {\textrm {Step}}_{j}\left({\textsf {T}},{\textsf {M}}_{j}^{(i)}\right)}يتم تنفيذ جميع وظائف الخطوات بالترتيبج=0،...،شمالs-1{\displaystyle j=0,\ldots ,N_{s}-1}ثم واحد آخرMsgAdd{\displaystyle {\textrm {MsgAdd}}}عملية بواسطةمشمالs(أنا){\displaystyle {\textsf {M}}_{N_{s}}^{(i)}}ثم يتم المضي قدماً، و(أنا+1){\displaystyle (i+1)}متغير السلسلة رقم -thالسيرة الذاتية(أنا+1){\displaystyle {\textsf {CV}}^{(i+1)}}تم ضبطه علىتي{\displaystyle {\textsf {T}}}فيما يلي شرح مفصل لعملية وظيفة الضغط.

  • دالة الضغطالتليف الكيسي{\displaystyle {\textrm {CF}}}
  • المدخلات: الـأنا{\displaystyle i}متغير السلسلة رقم -thالسيرة الذاتية(أنا)دبليو16{\displaystyle {\textsf {CV}}^{(i)}\in {\mathcal {W}}^{16}}وأنا{\displaystyle i}كتلة الرسائل رقم -thم(أنا)دبليو32{\displaystyle {\textsf {M}}^{(i)}\in {\mathcal {W}}^{32}}
  • الناتج: الـ(أنا+1){\displaystyle (i+1)}متغير السلسلة رقم -thالسيرة الذاتية(أنا+1)دبليو16{\displaystyle {\textsf {CV}}^{(i+1)}\in {\mathcal {W}}^{16}}
  • إجراء

{\displaystyle \qquad }{مج(أنا)}ج=0شمالsMsgExp(م(أنا)){\displaystyle \{{\textsf {M}}_{j}^{(i)}\}_{j=0}^{N_{s}}\leftarrow {\textrm {MsgExp}}\left({\textsf {M}}^{(i)}\right)}

{\displaystyle \qquad }تيالسيرة الذاتية(أنا){\displaystyle {\textsf {T}}\leftarrow {\textsf {CV}}^{(i)}}

{\displaystyle \qquad }لج=0{\displaystyle j=0}ل(شمالs-1){\displaystyle (N_{s}-1)}يفعل

{\displaystyle \qquad }{\displaystyle \qquad }تيخطوةج(تي،مج(أنا)){\displaystyle {\textsf {T}}\leftarrow {\textrm {Step}}_{j}\left({\textsf {T}},{\textsf {M}}_{j}^{(i)}\right)}

{\displaystyle \qquad }نهاية لـ

{\displaystyle \qquad }السيرة الذاتية(أنا+1)MsgAdd(تي،مشمالs(أنا)){\displaystyle {\textsf {CV}}^{(i+1)}\leftarrow {\textrm {MsgAdd}}\left({\textsf {T}},{\textsf {M}}_{N_{s}}^{(i)}\right)}

{\displaystyle \qquad }يعودالسيرة الذاتية(أنا+1){\displaystyle {\textsf {CV}}^{(i+1)}}

هناج{\displaystyle j}دالة الخطوة رقم -خطوةج:دبليو16×دبليو16دبليو16{\displaystyle {\textrm {Step}}_{j}:{\mathcal {W}}^{16}\times {\mathcal {W}}^{16}\rightarrow {\mathcal {W}}^{16}}وهو كما يلي.

خطوةج:=WordPermمزججMsgAdd{\displaystyle {\textrm {Step}}_{j}:={\textrm {WordPerm}}\circ {\textrm {Mix}}_{j}\circ {\textrm {MsgAdd}}}(0ج(شمالs-1)){\displaystyle (0\leq j\leq (N_{s}-1))}

يوضح الشكل التاليج{\displaystyle j}دالة الخطوة رقم -خطوةج{\displaystyle {\textrm {Step}}_{j}}من وظيفة الضغط.

الج{\displaystyle j}دالة الخطوة رقم -خطوةج{\displaystyle {\textrm {Step}}_{j}}

وظيفة توسيع الرسائل MsgExp

يتركم(أنا)=(م(أنا)[0]،...،م(أنا)[31]){\displaystyle {\textsf {M}}^{(i)}=(M^{(i)}[0],\ldots ,M^{(i)}[31])}كنأنا{\displaystyle i}كتلة رسالة مصفوفة من 32 كلمة. دالة توسيع الرسالةMsgExp{\displaystyle {\textrm {MsgExp}}}يُنشئ(شمالs+1){\displaystyle (N_{s}+1)}رسائل فرعية مكونة من 16 كلمة{مج(أنا)}ج=0شمالs{\displaystyle \{{\textsf {M}}_{j}^{(i)}\}_{j=0}^{N_{s}}}من كتلة الرسائلم(أنا){\displaystyle {\textsf {M}}^{(i)}}الرسالتان الفرعيتان الأوليانم0(أنا)=(م0(أنا)[0]،...،م0(أنا)[15]){\displaystyle {\textsf {M}}_{0}^{(i)}=(M_{0}^{(i)}[0],\ldots ,M_{0}^{(i)}[15])}وم1(أنا)=(م1(أنا)[0]،...،م1(أنا)[15]){\displaystyle {\textsf {M}}_{1}^{(i)}=(M_{1}^{(i)}[0],\ldots ,M_{1}^{(i)}[15])}يتم تعريفها على النحو التالي.

  • م0(أنا)(م(أنا)[0]،م(أنا)[1]،...،م(أنا)[15]){\displaystyle {\textsf {M}}_{0}^{(i)}\leftarrow (M^{(i)}[0],M^{(i)}[1],\ldots ,M^{(i)}[15])}
  • م1(أنا)(م(أنا)[16]،م(أنا)[17]،...،م(أنا)[31]){\displaystyle {\textsf {M}}_{1}^{(i)}\leftarrow (M^{(i)}[16],M^{(i)}[17],\ldots ,M^{(i)}[31])}

الرسائل الفرعية التالية{مج(أنا)=(مج(أنا)[0]،...،مج(أنا)[15])}ج=2شمالs{\displaystyle \{{\textsf {M}}_{j}^{(i)}=(M_{j}^{(i)}[0],\ldots ,M_{j}^{(i)}[15])\}_{j=2}^{N_{s}}}يتم توليدها على النحو التالي.

  • مج(أنا)[ل]مج-1(أنا)[ل]مج-2(أنا)[τ(ل)]{\displaystyle {\textsf {M}}_{j}^{(i)}[l]\leftarrow {\textsf {M}}_{j-1}^{(i)}[l]\boxplus {\textsf {M}}_{j-2}^{(i)}[\tau (l)]}(0ل15، 2جشمالs){\displaystyle (0\leq l\leq 15,\ 2\leq j\leq N_{s})}

هناτ{\displaystyle \tau }هل التبديل علىZ16{\displaystyle \mathbb {Z} _{16}}تم تعريفها على النحو التالي.

التبديلτ:Z16Z16{\displaystyle \tau :\mathbb {Z} _{16}\rightarrow \mathbb {Z} _{16}}
ل{\displaystyle l}0123456789101112131415
τ(ل){\displaystyle \tau (l)}3201745611108915121314

وظيفة إضافة الرسائل MsgAdd

لمصفوفتين من 16 كلمةX=(X[0]،...،X[15]){\displaystyle {\textsf {X}}=(X[0],\ldots ,X[15])}وY=(Y[0]،...،Y[15]){\displaystyle {\textsf {Y}}=(Y[0],\ldots ,Y[15])}وظيفة إضافة الرسائلMsgAdd:دبليو16×دبليو16دبليو16{\displaystyle {\textrm {MsgAdd}}:{\mathcal {W}}^{16}\times {\mathcal {W}}^{16}\rightarrow {\mathcal {W}}^{16}}يُعرَّف على النحو التالي.

MsgAdd(X،Y):=(X[0]Y[0]،...،X[15]Y[15]){\displaystyle {\textrm {MsgAdd}}({\textsf {X}},{\textsf {Y}}):=(X[0]\oplus Y[0],\ldots ,X[15]\oplus Y[15])}

وظيفة المزج

الج{\displaystyle j}وظيفة المزج رقم -thمزجج:دبليو16دبليو16{\displaystyle {\textrm {Mix}}_{j}:{\mathcal {W}}^{16}\rightarrow {\mathcal {W}}^{16}}يقوم بتحديث مصفوفة الكلمات الـ 16تي=(تي[0]،...،تي[15]){\displaystyle {\textsf {T}}=(T[0],\ldots ,T[15])}عن طريق خلط كل زوج من الكلمات؛تي[ل]{\displaystyle T[l]}وتي[ل+8]{\displaystyle T[l+8]}ل(0ل<8){\displaystyle (0\leq l<8)}. ل0ج<شمالs{\displaystyle 0\leq j<N_{s}}، وظيفة المزجمزجج{\displaystyle {\textrm {Mix}}_{j}}تتم العملية على النحو التالي.

(تي[ل]،تي[ل+8])مزجج،ل(تي[ل]،تي[ل+8]){\displaystyle (T[l],T[l+8])\leftarrow {\textrm {Mix}}_{j,l}(T[l],T[l+8])}(0ل<8){\displaystyle (0\leq l<8)}

هنامزجج،ل{\displaystyle {\textrm {Mix}}_{j,l}}هي دالة مزج كلمتين. ليكنX{\displaystyle X}وY{\displaystyle Y}كن كلمات. دالة المزج بين كلمتينمزجج،ل:دبليو2دبليو2{\displaystyle {\textrm {Mix}}_{j,l}:{\mathcal {W}}^{2}\rightarrow {\mathcal {W}}^{2}}يُعرَّف على النحو التالي.

  • دالة مزج كلمتينمزجج،ل{\displaystyle {\textrm {Mix}}_{j,l}}
  • المدخلات: كلماتX{\displaystyle X}وY{\displaystyle Y}
  • الناتج: كلماتX{\displaystyle X}وY{\displaystyle Y}
  • إجراء

{\displaystyle \qquad }XXY{\displaystyle X\leftarrow X\boxplus Y};XXαج{\displaystyle \qquad X\leftarrow X^{\lll \alpha _{j}}};

{\displaystyle \qquad }XXSجج[ل]{\displaystyle X\leftarrow X\oplus SC_{j}[l]};

{\displaystyle \qquad }YXY{\displaystyle Y\leftarrow X\boxplus Y};YYβج{\displaystyle \qquad Y\leftarrow Y^{\lll \beta _{j}}};

{\displaystyle \qquad }XXY{\displaystyle X\leftarrow X\boxplus Y};YYγل{\displaystyle \qquad Y\leftarrow Y^{\lll \gamma _{l}}};

{\displaystyle \qquad }يعودX{\displaystyle X}،Y{\displaystyle Y};

وظيفة المزج بين كلمتينمزجج،ل{\displaystyle {\textrm {Mix}}_{j,l}}يظهر ذلك في الشكل التالي.

وظيفة المزج بين كلمتينمزجج،ل(X،Y){\displaystyle {\textrm {Mix}}_{j,l}(X,Y)}

كميات دوران البتαج{\displaystyle \alpha _{j}}،βج{\displaystyle \beta _{j}}،γل{\displaystyle \gamma _{l}}يستخدم فيمزجج،ل{\displaystyle {\textrm {Mix}}_{j,l}}يتم عرضها في الجدول التالي.

كميات دوران البتαج{\displaystyle \alpha _{j}}،βج{\displaystyle \beta _{j}}، وγل{\displaystyle \gamma _{l}}
w{\displaystyle w}ج{\displaystyle j}αج{\displaystyle \alpha _{j}}βج{\displaystyle \beta _{j}}γ0{\displaystyle \gamma _{0}}γ1{\displaystyle \gamma _{1}}γ2{\displaystyle \gamma _{2}}γ3{\displaystyle \gamma _{3}}γ4{\displaystyle \gamma _{4}}γ5{\displaystyle \gamma _{5}}γ6{\displaystyle \gamma _{6}}γ7{\displaystyle \gamma _{7}}
32حتى291081624241680
غريب517
64حتى235901632488244056
غريب73

الج{\displaystyle j}ثابت مصفوفة من 8 كلماتSCج=(Sجج[0]،...،Sجج[7]){\displaystyle {\textsf {SC}}_{j}=(SC_{j}[0],\ldots ,SC_{j}[7])}يستخدم فيمزجج،ل{\displaystyle {\textrm {Mix}}_{j,l}}ل0ل<8{\displaystyle 0\leq l<8}يتم تعريفها على النحو التالي. ثابت المصفوفة الأولي المكون من 8 كلماتSC0=(Sج0[0]،...،Sج0[7]){\displaystyle {\textsf {SC}}_{0}=(SC_{0}[0],\ldots ,SC_{0}[7])}يتم تعريفها في الجدول التالي. لـ1ج<شمالs{\displaystyle 1\leq j<N_{s}}، الج{\displaystyle j}الثابت رقم -SCج=(Sجج[0]،...،Sجج[7]){\displaystyle {\textsf {SC}}_{j}=(SC_{j}[0],\ldots ,SC_{j}[7])}يتم إنشاؤه بواسطةSجج[ل]Sجج-1[ل]Sجج-1[ل]8{\displaystyle SC_{j}[l]\leftarrow SC_{j-1}[l]\boxplus SC_{j-1}[l]^{\lll 8}}ل0ل<8{\displaystyle 0\leq l<8}.

ثابت المصفوفة الأولي المكون من 8 كلماتSC0{\displaystyle {\textsf {SC}}_{0}}
w=32{\displaystyle w=32}w=64{\displaystyle w=64}
Sج0[0]{\displaystyle SC_{0}[0]}917caf9097884283c938982a
Sج0[1]{\displaystyle SC_{0}[1]}6c1b10a2ba1fca93533e2355
Sج0[2]{\displaystyle SC_{0}[2]}6f352943c519a2e87aeb1c03
Sج0[3]{\displaystyle SC_{0}[3]}cf7782439a0fc95462af17b1
Sج0[4]{\displaystyle SC_{0}[4]}2ceb7472fc3dda8ab019a82b
Sج0[5]{\displaystyle SC_{0}[5]}29e96ff202825d079a895407
Sج0[6]{\displaystyle SC_{0}[6]}8a9ba42879f2d0a7ee06a6f7
Sج0[7]{\displaystyle SC_{0}[7]}2eeb2642d76d15eed9fdf5fe

دالة تبديل الكلمات WordPerm

يتركX=(X[0]،...،X[15]){\displaystyle {\textsf {X}}=(X[0],\ldots ,X[15])}ليكن مصفوفة من 16 كلمة. دالة تبديل الكلماتWordPerm:دبليو16دبليو16{\displaystyle {\textrm {WordPerm}}:{\mathcal {W}}^{16}\rightarrow {\mathcal {W}}^{16}}يُعرَّف على النحو التالي.

WordPerm(X)=(X[σ(0)]،...،X[σ(15)]){\displaystyle {\textrm {WordPerm}}({\textsf {X}})=(X[\sigma (0)],\ldots ,X[\sigma (15)])}

هناσ{\displaystyle \sigma }هل التبديل علىZ16{\displaystyle \mathbb {Z} _{16}}كما هو موضح في الجدول التالي.

التبديلσ:Z16Z16{\displaystyle \sigma :\mathbb {Z} _{16}\rightarrow \mathbb {Z} _{16}}
ل{\displaystyle l}0123456789101112131415
σ(ل){\displaystyle \sigma (l)}6457121514132013811109

إتمام الإجراءات

دالة الإنهاءالنهايةن:دبليو16{0،1}ن{\displaystyle {\textrm {FIN}}_{n}:{\mathcal {W}}^{16}\rightarrow \{0,1\}^{n}}عمليات الإرجاعن{\displaystyle n}قيمة التجزئة ذات البتح{\displaystyle h}من متغير التسلسل النهائيالسيرة الذاتية(ت)=(جV(ت)[0]،...،جV(ت)[15]){\displaystyle {\textsf {CV}}^{(t)}=(CV^{(t)}[0],\ldots ,CV^{(t)}[15])}. متىح=(ح[0]،...،ح[7]){\displaystyle {\textsf {H}}=(H[0],\ldots ,H[7])}هو متغير مكون من 8 كلمات وحب=(حب[0]،...،حب[w-1]){\displaystyle {\textsf {h}}_{\textsf {b}}=(h_{b}[0],\ldots ,h_{b}[w-1])}هوw{\displaystyle w}متغير بايت، دالة الإنهاءالنهايةن{\displaystyle {\textrm {FIN}}_{n}}يقوم بالإجراء التالي.

  • ح[ل]جV(ت)[ل]جV(ت)[ل+8]{\displaystyle H[l]\leftarrow CV^{(t)}[l]\oplus CV^{(t)}[l+8]}(0ل7){\displaystyle (0\leq l\leq 7)}
  • حب[s]ح[8s/w][7:0](8sتعديلw){\displaystyle h_{b}[s]\leftarrow H[\lfloor 8s/w\rfloor ]_{[7:0]}^{\ggg (8s\mod w)}}(0s(w-1)){\displaystyle (0\leq s\leq (w-1))}
  • ح(حب[0]...حب[w-1])[0:ن-1]{\displaystyle h\leftarrow (h_{b}[0]\|\ldots \|h_{b}[w-1])_{[0:n-1]}}

هنا،X[أنا:ج]{\displaystyle X_{[i:j]}}يشيرxأناxأنا-1...xج{\displaystyle x_{i}\|x_{i-1}\|\ldots \|x_{j}}، سلسلة البتات الفرعية للكلمةX{\displaystyle X}لأناج{\displaystyle i\geq j}. وx[أنا:ج]{\displaystyle x_{[i:j]}}يشيرxأناxأنا+1...xج{\displaystyle x_{i}\|x_{i+1}\|\ldots \|x_{j}}، سلسلة البتات الفرعية لـل{\displaystyle l}سلسلة بتx=x0x1...xل-1{\displaystyle x=x_{0}\|x_{1}\|\ldots \|x_{l-1}}لأناج{\displaystyle i\leq j}.

حماية

يُعدّ LSH آمنًا ضد الهجمات المعروفة على دوال التجزئة حتى الآن. كما أنه مقاوم للتصادم.q<2ن/2{\displaystyle q<2^{n/2}}ومقاومة للصورة السابقة ومقاومة للصورة السابقة الثانية لـq<2ن{\displaystyle q<2^{n}}في نموذج التشفير المثالي، حيثq{\displaystyle q}يمثل هذا عددًا من الاستعلامات لبنية LSH. [ 1 ] تُعتبر LSH-256 آمنة ضد جميع هجمات دالة التجزئة الحالية عندما يكون عدد الخطوات 13 أو أكثر، بينما تُعتبر LSH-512 آمنة إذا كان عدد الخطوات 14 أو أكثر. تجدر الإشارة إلى أن الخطوات التي تعمل كهامش أمان تُمثل 50% من دالة الضغط. [ 1 ]

أداء

يتفوق LSH على SHA-2/3 في العديد من منصات البرامج. يوضح الجدول التالي سرعة تجزئة الرسائل بحجم 1 ميجابايت باستخدام LSH على عدة منصات.

سرعة تجزئة الرسائل بحجم 1 ميجابايت لـ LSH (دورات/بايت) [ 1 ]
منصةP1 [ أ ]P2 [ ب ]P3 [ ج ]P4 [ د ]P5 [ e ]P6 [ f ]P7 [ g ]P8 [ h ]
LSH-256-ن{\displaystyle n}3.603.865.263.8911.1715.0315.2814.84
LSH-512-ن{\displaystyle n}2.395.047.765.528.9418.7619.0018.10
  1. معالج Intel Core i7-4770K بسرعة 3.5 جيجاهرتز (Haswell)، نظام Ubuntu 12.04 64 بت، برنامج GCC 4.8.1 مع الخيار "-m64 -mavx2 -O3"
  2. معالج Intel Core i7-2600K بسرعة 3.40 جيجاهرتز (Sandy Bridge)، نظام Ubuntu 12.04 64 بت، برنامج GCC 4.8.1 مع الخيار "-m64 -msse4 -O3"
  3. معالج Intel Core 2 Quad Q9550 بسرعة 2.83 جيجاهرتز (يوركفيلد)، نظام التشغيل Windows 7 32 بت، برنامج Visual Studio 2012
  4. AMD FX-8350 @ 4GHz (Piledriver)، Ubuntu 12.04 64-bit، GCC 4.8.1 مع "-m64 -mxop -O3"
  5. معالج سامسونج Exynos 5250 ARM Cortex-A15 ثنائي النواة بسرعة 1.7 جيجاهرتز (Huins ACHRO 5250)، نظام أندرويد 4.1.1
  6. معالج كوالكوم سنابدراجون 800 كرايت 400 رباعي النواة بسرعة 2.26 جيجاهرتز (إل جي جي 2)، نظام أندرويد 4.4.2
  7. معالج كوالكوم سنابدراجون 800 كرايت 400 رباعي النواة بسرعة 2.3 جيجاهرتز (سامسونج جالاكسي إس 4)، نظام أندرويد 4.2.2
  8. معالج كوالكوم سنابدراجون 400 كرايت 300 ثنائي النواة بسرعة 1.7 جيجاهرتز (سامسونج جالاكسي إس 4 ميني)، نظام أندرويد 4.2.2

الجدول التالي هو مقارنة على المنصة القائمة على Haswell، تم قياس LSH على منصة Intel Core i7-4770k @ 3.5 GHz رباعية النواة، وتم قياس الآخرين على منصة Intel Core i5-4570S @ 2.9 GHz رباعية النواة.

قياس سرعة LSH و SHA-2 والمتأهلين النهائيين لـ SHA-3 على المنصة القائمة على وحدة المعالجة المركزية Haswell (دورات/بايت) [ 1 ]
الخوارزميةحجم الرسالة بالبايت
طويل40961536576648
LSH-256-2563.603.713.904.088.1965.37
Skein-512-2565.015.585.866.4913.12104.50
بليك-2566.617.637.879.0516.5872.50
غروستل-2569.4810.6812.1813.7137.94227.50
كيكاك-25610.5610.529.9011.9923.38187.50
SHA-25610.8211.9112.2613.5124.88106.62
JH-25614.7015.5015.9417.0631.94257.00
LSH-512-5122.392.542.793.3110.8185.62
Skein-512-5124.675.515.806.4413.59108.25
بليك-5124.966.176.827.3814.81116.50
SHA-5127.658.248.699.0317.22138.25
غروستل-51212.7815.4417.3017.9951.72417.38
JH-51214.2515.6616.1417.3432.69261.00
كيكاك-51216.3617.8618.4620.3521.56171.88

الجدول التالي تم قياسه على منصة Samsung Exynos 5250 ARM Cortex-A15 @ 1.7 GHz ثنائية النواة.

قياس سرعة LSH و SHA-2 و SHA-3 النهائية على المنصة القائمة على وحدة المعالجة المركزية Exynos 5250 ARM Cortex-A15 (دورات/بايت) [ 1 ]
الخوارزميةحجم الرسالة بالبايت
طويل40961536576648
LSH-256-25611.1711.5312.1612.6322.42192.68
Skein-512-25615.6416.7218.3322.6875.75609.25
بليك-25617.9419.1120.8825.4483.94542.38
SHA-25619.9121.1423.0328.1390.89578.50
JH-25634.6636.0638.1043.51113.92924.12
كيكاك-25636.0338.0140.5448.13125.001000.62
غروستل-25640.7042.7646.0354.94167.521020.62
LSH-512-5128.949.5610.5512.2838.82307.98
بليك-51213.4614.8216.8820.9877.53623.62
Skein-512-51215.6116.7318.3522.5675.59612.88
JH-51234.8836.2638.3644.01116.41939.38
SHA-51244.1346.4149.9754.55135.591088.38
كيكاك-51263.3164.5967.8577.21121.28968.00
غروستل-512131.35138.49150.15166.54446.533518.00

متجهات الاختبار

فيما يلي متجهات الاختبار لتقنية LSH لكل طول هضم. جميع القيم معبر عنها بالصيغة الست عشرية.

LSH-256-224("abc") = F7 C5 3B A4 03 4E 70 8E 74 FB A4 2E 55 99 7C A5 12 6B B7 62 36 88 F8 53 42 F7 37 32

LSH-256-256("abc") = 5F BF 36 5D AE A5 44 6A 70 53 C5 2B 57 40 4D 77 A0 7A 5F 48 A1 F7 C1 96 3A 08 98 با 1B 71 47 41

LSH-512-224("abc") = D1 68 32 34 51 3E C5 69 83 94 57 1E AD 12 8A 8C D5 37 3E 97 66 1B A2 0D CF 89 E4 89

LSH-512-256("abc") = CD 89 23 10 53 26 02 33 2B 61 3F 1E C1 1A 69 62 FC A6 1E A0 9E CF FC D4 BC F7 58 58 D8 02 ED EC

LSH-512-384("abc") = 5F 34 4E FA A0 E4 3C CD 2E 5E 19 4D 60 39 79 4B 4F B4 31 F1 0F B4 B6 5F D4 5E 9D A4 EC DE 0F 27 B6 6E 8D BD FA 47 25 2E 0D 0B 74 1B FD 91 F9 FE

LSH-512-512("abc") = A3 D9 3C FE 60 DC 1A AC DD 3B D4 BE F0 A6 98 53 81 A3 96 C7 D4 9D 9F D1 77 79 56 97 C3 53 52 08 B5 C5 72 24 BE F2 10 84 D4 20 83 E9 5A 4B D8 EB 33 E8 69 81 2B 65 03 1C 42 88 19 A1 E7 CE 59 6D

التطبيقات

برنامج LSH مجاني للاستخدام العام أو الخاص، التجاري أو غير التجاري. يمكن تنزيل شفرة المصدر لتوزيع برنامج LSH المكتوب بلغات C وJava وPython من صفحة تفعيل استخدام التشفير التابعة لوكالة KISA. [ 2 ]

KCMVP

يُعدّ LSH أحد خوارزميات التشفير المعتمدة من قبل البرنامج الكوري للتحقق من صحة وحدات التشفير (KCMVP). [ 3 ]

التقييس

يتم تضمين LSH في المعيار التالي.

  • KS X 3262، دالة التجزئة LSH (باللغة الكورية) [ 4 ]

مراجع

  1. 1 2 3 4 5 6 كيم، دونغ تشان؛ هونغ، ديوكجو؛ لي، جونغ كيون؛ كيم، وو هوان؛ كوون، دايسونغ (2015). "LSH: عائلة جديدة من دوال التجزئة السريعة والآمنة" . أمن المعلومات وعلم التشفير - ICISC 2014. سلسلة محاضرات في علوم الحاسوب. المجلد  8949. دار نشر سبرينغر الدولية. الصفحات 286-313 . doi : 10.1007/978-3-319-15943-0_18 . ISBN  978-3-319-15943-0.
  2. ^ "KISA 암호이용활성화 - 암호알고리즘 소스코드" . Seed.kisa.or.kr .
  3. ^ "كيسا 암호이용활성화 - 개요" . Seed.kisa.or.kr .
  4. "المعايير والشهادات الكورية (باللغة الكورية)" .