الشروع في العمل مع نظام تشفير SRVB

نشرت: 2022-03-11

مقدمة

يعد أمن المعلومات مجالًا رائعًا للمعرفة يمكن أن يشمل أي شيء من علوم الكمبيوتر النظرية إلى هندسة البرمجيات ، وحتى مراقبة سيكولوجية الخطأ البشري.

تقديم نظام التشفير SRVB

علم التشفير هو الآن واحد من العديد من الأبطال التقنيين المجهولين في حياتنا اليومية. تعتمد الشبكات الاجتماعية ، والخدمات المصرفية عبر الإنترنت ، والاستخبارات العسكرية ، وأي نظام معلومات آخر يتعامل مع المعلومات الحساسة ، بشكل كبير على التشفير. يتيح لنا التشفير التمتع بالخصوصية ، والتي يعتبرها البعض حق الإنسان الثاني عشر.

ستمنحك هذه المقالة مقدمة عن المبادئ الكامنة وراء أنظمة التشفير بالمفتاح العام وتقدم لك نظام التشفير Santana Rocha-Villas Boas (SRVB) ، وهو نظام تشفير طوره مؤلف المقال والبروفيسور دانيال سانتانا روشا. في وقت كتابة هذا التقرير ، كان مؤلفو الخوارزمية يعدون حملة تتضمن مكافأة مالية لأي شخص يتمكن من فك الشفرة. نظرًا لأن المقالة ستغطي وظائف الخوارزمية بالتفصيل ، فهذا هو أفضل مكان لبدء السعي للحصول على الجائزة. يتوفر مزيد من المعلومات على موقع SRVB.

ما هو نظام التشفير؟

أليس وبوب يتحدثان عبر قناة غير آمنة

التشفير هو أي طريقة لإعاقة إمكانية تفسير رسالة ما ، مع الاستمرار في السماح بطريقة لتفسيرها بشكل عملي طالما يتم توفير تعليمات محددة ، والتي عادة ما تسمى "المفتاح". في حين أن هذا تعريف واسع للغاية يشمل حتى أقدم التقنيات ، فمن الجدير بالذكر أن هذا لا يغطي كل شيء موجود لأمن المعلومات.

السباق التكنولوجي بين طرق التشفير وطرق كسرها من المتوقع ألا يكون له فائز نهائي. من المتوقع أن يرفع كل جيل جديد معايير أمن المعلومات وتحليل التشفير ، وهي مجموعة من التقنيات لفك / فك تشفير الرسائل المشفرة بشكل منهجي ، أي تجاوز الأمان أو التشفير.

لكي يتم اعتبار نظام التشفير (تقنية معينة للتشفير) آمنًا من قبل مستخدميه ، يجب أن يحصل على موافقة المجتمع الدولي للخبراء ، وبالتالي يكون معروفًا للجمهور ، وهو ما يُعرف بمبدأ Kerckhoffs. ومع ذلك ، فإن هذا الشرط بالذات يعرض النظام للتدقيق من مجتمع تحليل الشفرات في العالم ، والذي سيحاول ابتكار طرق لكسر التشفير بشكل منهجي.

كيف يمكن للمرء أن يجعل عملية تشفير معينة سرية بدرجة كافية بحيث لا يتمكن سوى الوكلاء المقصودين من فك تشفيرها ، بينما في نفس الوقت عامة بما يكفي بحيث يمكن لمجتمع تحليل التشفير في العالم أن يشهد على قوتها؟ الجواب هو العنصر الذي يعتبر عنصرا أساسيا في علم التشفير: المفتاح. مفتاح نظام التشفير هو معلمة إما لخوارزميات التشفير أو فك التشفير أو كليهما. من خلال الحفاظ على سرية المعلمات ، بدلاً من عائلة الخوارزمية ، يمكن تحقيق كلا المطلبين المتناقضين. شريطة أن تكون عائلة المعلمات كبيرة بما يكفي (ربما لانهائية) ويمكن إثبات أن كل مكون من مكوناتها يحتوي على خصائص مناسبة ، فلن يكون من الممكن للمهاجمين تحديد المعلمات بمجرد الفحص.

أخيرًا ، لكي يعمل المفتاح بفعالية ، يجب إنتاجه بسهولة ولكن يكاد يكون من المستحيل تخمينه. مع القوة الحسابية لأجهزة الكمبيوتر الحالية ، سيحتاج الكمبيوتر إلى وقت أقل لفك تشفير مفتاح تم إنشاؤه بواسطة الإنسان مما قد يحتاجه أي إنسان حتى لتخيله ، بالإضافة إلى حقيقة أنه ليس من الفعال التكلفة لإنشاء مفاتيح بهذه الطريقة على أي حال. لهذا السبب ، تميل المفاتيح إلى أن يتم إنشاؤها بواسطة خوارزمية.

يجب ألا تنشئ خوارزمية توليد المفاتيح مخرجات يمكن التنبؤ بها / قابلة للتكرار كنتيجة للاستخدام النموذجي. نظرًا لأن الخوارزميات تؤدي الإجراءات دون أي عملية ذكية ، يصبح السؤال كيف يمكن القيام بذلك. الإجابة هي تحويل خوارزميات توليد المفاتيح إلى خرائط تحول كمية كبيرة من البتات العشوائية إلى مفاتيح. يمكن الحصول على وحدات بت عشوائية حقًا من نظام التشغيل ، مما يولدها من عدم اليقين في الكون. قد تكون بعض المصادر عبارة عن حركة الماوس أو زمن انتقال حزمة الشبكة أو حتى الأجهزة المخصصة ، اعتمادًا على التطبيق.


أنظمة تشفير المفتاح العام

تشفير المفتاح غير المتماثل

استعد للمفاجأة مرة أخرى ، لأننا سنقدم الآن مفهومًا يبدو أنه يتعارض مع ما قلناه للتو: المفتاح العام.

حتى الآن ، رأينا إنشاء اتصال آمن بعد تبادل المعلمات السرية (المفاتيح) بشكل آمن ، لكن مشكلة تبادل المعلمات عبر قناة عامة لا تزال قائمة. في الوقت الحالي ، سنقدم مفهومًا يحل مشكلة أكثر وضوحًا: إنشاء قناة آمنة.

افترض أن أليس تعمل مع بوب ، وأنهم يريدون الحفاظ على تفاعلات عملهم آمنة باستخدام التشفير. يمكنهم مقابلة مفاتيح التشفير الخاصة بهم وتبادلها عن طريق إعطاء محرك أقراص فلاش USB مع مفاتيحهم لبعضهم البعض. ولكن ماذا لو تواجدت أليس وبوب في قارات مختلفة. كيف تنشئ قناة آمنة لا وجود لها؟

لن يكون إرسال المفاتيح عبر البريد الإلكتروني خيارًا ، لأن منافسهم حواء يمكنه اعتراض التبادل واستخدام مفاتيحهم لقراءة جميع البيانات المشفرة بعد ذلك. إذا كان لديهم أي قناة رقمية أخرى يمكنهم من خلالها نقل هذه البيانات الحساسة ، فلن يحتاجوا إلى التشفير ، وبالتالي المفاتيح ، في المقام الأول. لا يزال من الممكن أيضًا اعتراض إرسال المفتاح عبر البريد الفعلي ، لأنه يتطلب تبادل المعلومات الحساسة في البداية. سيكون إرسال مفتاح مخفي عن طريق الاختباء داخل بيانات أخرى أمرًا ذكيًا ، ولكنه عديم الفائدة ما لم يكن المرسل متأكدًا من أن المستلم ، والمستلم وحده ، على دراية بوجود مثل هذه الرسالة ويعرف كيفية استخلاصها. كما يحدث ، فإن إدراك وجود رسالة مع وصف كيفية استخراج المفتاح من البيانات هو نوع من المفاتيح بحد ذاته ، مما يعيدنا إلى المربع الأول.

يتمثل الحل في ابتكار نظام تشفير لا تكفي معلمة التشفير الخاصة به لتفسير الرسالة الأصلية بشكل عملي [1] ، والاحتفاظ بالمعامل الذي يسمح بتفسير الرسالة. نسمي هذه المعلمة بالمفتاح الخاص. استنادًا إلى المفتاح الخاص ، يمكن للمرء بشكل عملي إنشاء مجموعة من المعلمات لأداة تشفير دون جعل هذه المعلمات الجديدة قادرة بنفسها على الكشف عن المفتاح الخاص. يمكن مشاركة مجموعة المعلمات هذه بشكل عام ، لأنه ليس من المهم جدًا من يمكنه تشفير شيء ما ، طالما أن شخصًا واحدًا فقط يمكنه فك تشفيره. نظرًا لأن هذه المجموعة من المعلمات الخاصة بأداة التشفير يمكن جعلها عامة ، فإنها تسمى المفتاح العام.

التشفير حيث تختلف مفاتيح التشفير وفك التشفير ، ولا يمكن استخدام الأول بشكل عملي لاستنتاج الأخير ، يسمى التشفير غير المتماثل ، بينما التشفير المتماثل هو ما لدينا عندما تكون هذه المفاتيح متطابقة ، أو يمكن استنتاجها بسهولة من بعضها البعض.

ترسل أليس إلى بوب مفتاحها العمومي ، والذي لا يمكن استخدامه إلا لتشفير الأشياء التي تستطيع وحدها فك تشفيرها (باستخدام مفتاحها الخاص ، والذي تحتفظ به بشكل خاص) ، وعلى العكس من ذلك ، يرسل بوب مفتاح أليس العام ، والذي يمكن استخدامه فقط لتشفير الأشياء يمكنه وحده فك تشفير (عن طريق مفتاحه الخاص ، والذي يحتفظ به أيضًا بشكل خاص). ولكن كيف يمكن للمرء أن ينشر معلمة لخوارزمية تشفير لا يمكن من خلالها استنتاج الخوارزمية العكسية الدقيقة؟

تكمن الإجابة في مجال الرياضيات الأقرب إلى البرمجة ، نظرية التعقيد الحسابي. لقد سمع أي شخص تعمق في المسائل الرياضية عن التحولات التي يسهل القيام بها بطريقة واحدة ، ولكن من الصعب القيام بالعكس. في حساب التفاضل والتكامل ، على سبيل المثال ، فإن العثور على مشتق من الكتاب المدرسي عادة ما يكون تمرينًا مباشرًا ، بينما القيام بالعكس (مثل حل أي جزء لا يتجزأ من التفاضل والتكامل أو التفاضل والتكامل المادي ، على سبيل المثال) يتطلب عملية استقصائية أكثر لفرضية أول مجموعات من الوظائف التي مضمونة (أو معقولة على الأقل) لاحتواء الحل (الحلول) وحل المشكلات العكسية لإيجاد حلول من هذه العائلات.

أحد الأمثلة المستخدمة بالفعل في نظام تشفير RSA هو ضرب الأعداد الأولية الكبيرة مقابل تحليل المنتج الناتج دون معرفة العوامل بالفعل. الضرب أمر تافه ، لكن التحليل يتطلب منك أن تخمن عشوائيًا [2] العوامل الأولية ، التي تحتوي على مئات الأرقام. من الخصائص المهمة للعملية الحاجة إلى توسيع نطاقها بشكل جيد. ستؤدي إضافة بضعة أرقام إلى حجم الأعداد الأولية في RSA إلى مفتاح يتطلب عمليات أكثر بآلاف المرات للتصدع مع إضافة زيادة طفيفة في التعقيد إلى عملية التشفير. بشكل تقريبي للغاية ، يتم استخدام ناتج الأعداد الأولية للتشفير ، بينما يتم استخدام زوج العوامل الأولية لفك التشفير.

مع وضع كل هذا في الاعتبار ، دعونا نلقي نظرة على كيفية عمل نظام تشفير SRVB.

الخوارزمية الأساسية - النظر في SRVB

نظرة على نظام تشفير SRVB

مشكلة مجموع المجموعة الجزئية

مثل أي نظام تشفير بمفتاح عمومي آخر ، يعتمد SRVB على صعوبة حل مشكلة معينة يسهل إنتاجها. في حالة SRVB ، إنها مشكلة مجموع المجموعة الفرعية ، والتي يمكن وصفها على النحو التالي:

بالنظر إلى العدد الصحيح $ w $ و $ v_1 ، \ cdot \ cdot \ cdot ، v_N \ في Z $ ابحث عن التسلسل $ b_1، \ cdot \ cdot \ cdot، b_N \ in {0،1} $ ، مثل هذا $ \ sum_ {i = 1} ^ {N} v_i b_i = w $.

من الواضح أنه يمكن إنتاج هذه المشكلة عن طريق الانتقاء العشوائي لعدد N الصحيح ، واختيار مجموعة فرعية منها بشكل عشوائي وتلخيص هذه المجموعة الفرعية - وهو أمر تافه.

قد يكون للبحث بالقوة الغاشمة تعقيد $ O (N * 2 ^ N) $ ، حساب لكل مجموعة من قيم $ b $ s. تم تقديم نهج أكثر كفاءة بواسطة Horowitz و Sahni في عام 1972 ، مع تعقيد $ O (N * 2 ^ {N / 2}) $. تكون المشكلة على الأقل بنفس الصعوبة إذا استبدلنا $ b $ s و $ w $ بمتجهات الأبعاد للأعداد الصحيحة $ k $. ومع ذلك ، يجب أن يكون للمجال الذي ستعقد فيه هذه المشكلة الأكثر صعوبة أيضًا تماثلًا مع حلقة حيث تحدث نسخة أسهل من نفس المشكلة ، كما سنرى أدناه. لهذا السبب ، يستغل SRVB مشكلة مجموع المجموعة الفرعية ضمن الأعداد الصحيحة الغاوسية ، حيث $ k = 2 $.

هناك حالة خاصة حيث يسهل حساب هذه المشكلة من خلال استخدام خوارزمية جشعة. إذا قمنا بفرز عوامل قياس التسلسل $ v_1، \ cdot \ cdot \ cdot، v_N $ حيث يكون كل عدد صحيح في التسلسل أكبر من مجموع كل الأعداد الصحيحة التي سبقته ($ \ forall i، \ sum_ {j = 1} ^ {i-1} v_j <v_i $) ، يمكن للمرء استخدام نهج جشع للعثور على التسلسل b في الوقت الخطي. يُطلق على التسلسل الذي يحتوي على الخصائص الموصوفة اسم التسلسل الفائق .

فيما يلي وصف بسيط للحل الجشع لهذه الحالة:

  1. ابدأ بـ $ i = N $ ، العامل الملاحظ حاليًا ، و $ w '= w $ ، باقي $ w $

  2. إذا كان عامل القياس الحالي أكبر من أن يتناسب مع ما تبقى من $ w $ ، أي $ v_i> w '$ ، فقم بتعيين $ b_i = 0 $ وانتقل إلى الخطوة التالية. وإلا فإننا نعلم أن عامل القياس يجب أن يكون في التسلسل (نظرًا لأن باقي العوامل أصغر من $ v_i $) وقمنا بتعيين $ b_i = 1 $.

  3. $ w '\ Leftarrow w' - v_i * b_i $ ، $ i \ Leftarrow i - 1 $. إذا كان $ i> 0 $ ، فارجع إلى الخطوة 2.

  4. تحقق الآن من $ w '== 0 $ ، وإلا فقد تم إتلاف المشكلة

يعمل هذا لأننا نعلم أن جميع المضاعفات الأصغر من المضاعفات التي تمت ملاحظتها حاليًا لا يمكن أن تغطي بشكل جماعي أكبر قدر ممكن من المجموع (الفرعي) $ w '$ كما يمكن للمضاعف الحالي. لذلك إذا كان المجموع المتبقي أكبر من العامل الحالي ، فنحن نعلم على وجه اليقين أن جميع العوامل التالية معًا ستفشل في تلخيصه بدون مساعدة العامل الحالي. من ناحية أخرى ، نظرًا لأن جميع المضاعفات موجبة ، إذا كان العامل الحالي $ v_i $ أكبر من المجموع المتبقي $ w '$ ، فإن إضافة أي عامل آخر سيجعل النتيجة تتجاوز $ w' $ أكثر.

دعنا نضع تدوينًا لبقية المقالة. اخترنا $ v_1 و \ cdot \ cdot \ cdot و v_n $ و $ w $ ليكونوا عوامل ومجموع تسلسل الزيادة الفائقة ، بينما سيكون $ u_1 و \ cdot \ cdot \ cdot و u_n $ و $ y $ علنًا المعلمات المتوفرة التي يتم توفيرها لاسترداد $ b_1، \ cdot \ cdot \ cdot، b_n $.

باستخدام التسلسل $ u_1 ، \ cdot \ cdot \ cdot ، تم اختيار u_n $ بحيث لا يتم زيادة حجمه بشكل كبير ، ويتم إتاحة الرقم $ y $ للجمهور ، ولا تتوفر معلومات كافية للجمهور لاستعادة التسلسل $ b_1 ، \ cdot \ cdot \ cdot ، b_n $. ومع ذلك ، إذا كان هناك تسلسل زيادة فائقة $ v_1 ، \ cdot \ cdot \ cdot ، v_n $ يمكن أن يحل محل التسلسل $ u_1 ، \ cdot \ cdot \ cdot ، u_n $ ، فيمكن للمرء استخدام هذا التسلسل لحل المشكلة باستخدام نهج الجشع.

أدناه سنوضح كيف يعمل ذلك.

استخدام مجاميع المجموعات الفرعية في نظام تشفير سابق

في عام 1978 ، ابتكر رالف ميركل ومارتن هيلمان طريقة لاستغلال هذين النموذجين على الظهر والخطية لعملية المعامل لبناء اتصال بين التسلسلين الموصوفين في القسم السابق - وبالتالي تصور نظام تشفير المفتاح العام. كانت الفكرة هي تحويل الحقيبة السهلة (التي تتكون من متجه متزايد للأعداد الصحيحة) إلى الحقيبة الصلبة (التي تفتقر إلى هذه الخاصية) عن طريق عملية خطية (المعامل) مع معاملات سرية. يتكون التحويل من ضرب كل $ v_i $ في $ \ theta $ وأخذ ما تبقى من هذا المنتج في $ \ alpha $ ، حيث $ \ alpha \ gt \ sum_ {i = 1} ^ N v_i $ و $ \ gcd (\ alpha، \ theta) = 1 دولار (قيدان سيتم تبريرهما قريبًا). النتيجة ، التسلسل $ u_1 ، \ ldots ، u_N $ ، لم تعد تتزايد بشكل كبير ، ويمكن اعتبارها حقيبة صلبة .

سيتم منح تبديل عشوائي للتسلسل $ u_1، \ ldots، u_N $ للطرف الذي يريد تشفير وإرسال رسالة إلينا. يتم إجراء التبديل بحيث يواجه الطرف الثالث وقتًا أكثر صعوبة في تخمين التسلسل الفائق الأصلي. يتم استخدام كتل البت في الرسالة كمعامِلات $ b_1، \ ldots، b_N $. يتم التشفير بضرب تسلسل المفاتيح مع تسلسل المعاملات هذا ، وتلخيص المضاعفات في النتيجة التي سنسميها $ y $. يمكن لمالك المفتاح الخاص فقط تحويل $ y $ إلى $ w $ المقابل الذي يمكن الحصول عليه إذا تم ضرب هذه الكتل $ b_1 ، \ ldots ، b_N $ مع الأعداد الصحيحة السهلة (التسلسل $ v_1، \ ldots ، v_N $). يتم ذلك عن طريق ضرب $ y $ في $ \ theta ^ {- 1} $ ، وهو معكوس مضاعف $ \ theta $ modulus $ \ alpha $ (الذي يعتمد وجوده على شرط $ \ gcd (\ alpha، \ ثيتا) = 1 دولار). بمعنى آخر ، $ (\ theta * \ theta ^ {- 1}) \ bmod \ alpha = 1 $. بعد ذلك ، نحسب $ w = (y * \ theta ^ {- 1}) \ bmod a $. والسبب في ضمان نجاحه هو خطية المعامل ، أي أن التركيبة الخطية للباقي تساوي باقي المجموعة الخطية.

إذا طبقنا تعريف $ u $ على التوالي ، وحلقة خارج القسمة ، وخاصية خطية عامل المقياس ، فسنرى التطابق:

$ \ start {align} y & = \ sum_ {i = 1} ^ N b_iu_i \ newline & = \ sum_ {i = 1} ^ N b_i (v_i * \ theta \ bmod \ alpha) \ newline & = \ sum_ { i = 1} ^ N b_i * v_i * \ theta \ bmod \ alpha \ newline & = \ left [\ sum_ {i = 1} ^ N b_i * v_i * \ theta \ right] \ bmod \ alpha \ newline & = \ يسار [\ sum_ {i = 1} ^ N b_i * v_i \ right] * \ theta \ bmod \ alpha \ newline & = w * \ theta \ bmod \ alpha \ end {align} $

وبالتالي يمكن استرداد المبلغ السهل $ w $ بضرب كلا الطرفين بـ $ \ theta ^ {- 1} $ وأخذ المعامل بـ $ \ alpha $. للقيام بذلك ، على المرء أن يعرف كلاً من $ \ alpha $ و $ \ theta $ (اللذان يسمحان للمستخدم بسهولة حساب $ \ theta ^ {- 1} $) ، والتي يجب أن تظل خاصة كأجزاء من المفتاح الخاص.

قيد واحد ، $ \ alpha \ gt \ sum_ {i = 1} ^ N v_i $ ، تم تركه غير مبرر وهنا يأتي شرح ذلك: تتكون المساواة بين السطر الثاني والثالث من المساواة بين فئات المتبقي من حاصل القسمة حلقة الأعداد الصحيحة modulo $ \ alpha $. بمعنى آخر ، فإنه ينص فقط على المساواة بين الأعضاء المتبقين عند القسمة على $ \ alpha $ ، وهو ليس شرطًا كافيًا للمساواة بين الأعضاء أنفسهم . نتيجة لذلك ، يمكن تعيين أكثر من متجه واحد من قيم $ b $ في $ y $ واحد ، والذي يتم منعه عن طريق الحد من الحد الأقصى المحتمل للمجموعة الفرعية (أي مجموع كل الطرود $ v_i $) $ w_ {max} $ to تكون أصغر من $ \ alpha $ لأي مجموعة من قيم $ b $.

تمامًا مثل أي مثال آخر للحياة اليومية ، غالبًا ما تكون المعرفة الكاملة لجميع الفرضيات مستحيلة وليست سهلة أبدًا. نتيجة لذلك ، يتعين علينا الاعتماد على الحدس الرياضي عند الحكم على ما إذا كان نظام التشفير آمنًا للاستخدام ، والذي لا يوفر لنا أي ضمانات فعلية. بعد ست سنوات من إنشائه ، تم كسر نظام تشفير MH بهجوم من قبل A. Shamir. كانت هناك عدة محاولات أخرى لإحياء MH ، فشل العديد منها أيضًا.


نظام التشفير Santana Rocha - Villas Boas (SRVB)

في عام 2016 ، بعد بضع عصف ذهني مع مؤلف هذا المقال حول احتمالات مستوحاة بشكل مختلف [3] لنظام تشفير ، كان لدى Daniel Santana Rocha فكرة استبدال $ \ theta $ و $ \ alpha $ بواسطة Gaussian Integers. ولأسباب فنية أكثر ، أدى هذا النهج إلى المقاومة ضد هجوم شامير المشار إليه.

لقد ابتكر أيضًا كتلة صغيرة تتكون من العديد من الخطوات للمزيج الخطي الموصوف سابقًا من الحقيبة الصلبة . في كل واحد منهم ، سيتم إضافة عدد صحيح (غاوسي) جديد ، يعادل واحدًا ، أعلى من مجموع كل ما سبق في نهاية المتسلسلة ، بينما سيتم إسقاط الأصغر حاليًا.

يتم تطبيق قيد مختلف ولكنه مماثل بشكل أنيق على $ \ alpha $ ، والذي أصبح الآن عددًا صحيحًا من Gaussian. نطلب $ w_ {max} \ leq \ vert \ alpha \ vert ^ 2 $. من الصعب جدًا إضفاء الطابع الرسمي على السبب ، ولكن لحسن الحظ يمكن فهمه بسهولة من وصف أنيق:

تخيل شبكة مربعة في مستوى الأعداد المركبة ، ضلعها وتر المثلث القائم الزاوية من القسطرة أ و ب ، بالتوازي مع المحورين الحقيقي والخيالي. ويرد أدناه مثال على هذه الشبكة. يمكن تمثيل الأعداد الصحيحة من Guassian modulo $ \ alpha = a + bi $ بالنقاط الموجودة داخل هذه الشبكة. داخل مثل هذه الشبكة توجد نقاط $ \ vert \ alpha \ vert ^ 2 $ المميزة. إذا اخترنا مبلغًا كبيرًا بما يكفي $ \ alpha $ ، يمكننا أن نلائم جميع التركيبات الخطية للحقيبة سهلة الحمل.

بنية

هذا هو التمثيل الرسومي للتشابه $ f: Z / n \ rightarrow Z [i] / (\ alpha) $ ، حيث $ n = 13 $ و $ \ alpha = a + bi = 3 + 2i $ (لاحظ أن $ n $ و $ \ alpha $ يلبي بالفعل $ n = \ vert \ alpha \ vert ^ 2 = a ^ 2 + b ^ 2 $ كما هو مطلوب). تمثل النقاط الأعداد الصحيحة الغاوسية ، أي الأعداد المركبة $ a + bi $ ، حيث $ a $ و $ b $ عددان صحيحان. كالعادة يمثل المحور الأفقي الجزء الحقيقي بينما يمثل المحور الرأسي الجزء التخيلي. وبالتالي ، فإن تحريك نقطة واحدة إلى اليمين أو اليسار يعادل إضافة +1 أو -1 إلى قيمتها الحالية ، على التوالي. وبالمثل ، فإن تحريك نقطة واحدة لأعلى أو لأسفل يتوافق مع إضافة + i أو -i ، على التوالي.

النقاط الحمراء هي تلك التي تعادل $ 0 \ bmod (\ alpha) $. بصرف النظر عن هؤلاء ، قمنا أيضًا بتلوين 4 أزواج أخرى من النقاط.

اللون يعادل ... mod α
البرتقالي 1 دولار
أخضر $ i $
أزرق -1 دولار-أنا $
البنفسجي $ 1-i $

يتم تعريف تماثل الشكل $ f $ بتحويل العنصر $ i $ th من التسلسل الدوري $ (0،1،2، \ cdot \ cdot \ cdot، 10،11،12،0،1،2، \ cdot \ cdot \ cdot) $ في العنصر $ i $ th من التسلسل الدوري أيضًا للنقاط في الشكل ، والذي يلتزم بالقواعد التالية:

  1. يبدأ من النقطة الحمراء للصف الأول ؛
  2. يتبع الأسهم الأفقية اليمنى ؛ ماعادا هذا
  3. عند اتباع الأسهم يقود التسلسل خارج الشبكة ، فإنه سيصل إلى إحدى النقاط غير السوداء. بدلاً من الذهاب إلى هذه النقطة ، فإنه يقفز إلى نفس النقطة الملونة (أي النقطة المكافئة modulo $ \ alpha $) داخل نفس المربع ؛ وأخيرا
  4. عندما تكون هذه النقطة غير السوداء حمراء (والتي تحدث بعد مرور جميع الألوان الأخرى) ، يقفز التسلسل إلى النقطة الحمراء العلوية ، وبالتالي إعادة بدء الدورة ؛

لتعيين الأعداد الصحيحة الطبيعية $ Y $ على الأقل ، يجب أن يأخذ المرء مربعًا بمساحة $ \ vert \ alpha \ vert ^ 2 $ (حيث $ \ vert \ alpha \ vert = \ sqrt {a ^ 2 + b ^ 2} $ هو ، حسب نظرية فيثاغورس ، مقياس جانبه) على الأقل بنفس الارتفاع.

لاحظ أن كل "قفزة" تغير رقم الصف $ r $ إلى $ r \ leftarrow (r + b) (mod a + b) $ إذا قام المرء بحساب الصفوف من أعلى إلى أسفل ، وبشكل مكافئ ، إلى $ r \ leftarrow (r + a) (mod a + b) $ إذا كان المرء يحسب من الأسفل إلى الأعلى. ومن ثم ، فإن الشرط الضروري والكافي لكل صف (ونقطة) يتم تجواله مرة واحدة بالضبط في كل دورة هو أن حجم القفزات هو جريمة مشتركة مع عدد الصفوف ، أو بعبارة أخرى ، $ gcd (a ، a + ب) = gcd (ب ، أ + ب) = 1 دولار. نظرًا لخصائص عامل القاسم المشترك الأكبر ، فإن كلاهما يعادل $ gcd (a، b) = 1 $.

لاحظت YS Villas Boas الحاجة إلى مشاركة بقيمة $ a $ و $ b $. من أجل الحفاظ على الزيادة الفائقة ، يجب أن يتجاوز كل عدد صحيح جديد $ w $ مضاف في نهاية التسلسل مجموع كل الأعداد الحالية ($ w> \ sum_ {i = 1} ^ k v_i $). لاحظ أنه من أجل تحقيق ذلك ، يجب أن يكون معاملا الضرب $ b_i $ 1 على الأقل ، وبالتالي ، لا يمكن تعيين كل بت في المعاملين 0 و 1. إذا كانت المعاملات 0 و 1 ، فإن الكتلة فقط تتكون فقط من تلك التي من شأنها أن ترضي الزيادة الفائقة. لهذا السبب ، تم تعيين البتتين 0 و 1 على التوالي لمعاملات الضرب 1 و 2.

أخيرًا ، وبصورة أقل تافهة: أثناء كل خطوة من خطوات فك التشفير ، يجب إيجاد عدد صحيح جديد $ v_1 $ كحل للمعادلة $ b_1 v_1 = v_ {n + 1} - \ sum_ {i = 2} ^ {n} b_i v_i $ ، حيث يُعرف كل من $ v_i $ و $ b_i $ بـ $ 1 <i \ leq n $. نظرًا لأننا أيضًا لا نعرف $ b_1 $ ، فإننا ننتهي بنظام به معادلة واحدة ومتغيرين ، مما يترك لنا درجة واحدة من الحرية. لتصحيح ذلك ، يتعين علينا التحكيم في قيمة موجبة واحدة (من أجل البساطة ، 1) يتم تخصيصها دائمًا إلى $ b_1 $ ، وبالتالي التخلص من الغموض. وبالتالي ، نظرًا لأن المعامل الأول ثابت على 1 ، لتشفير $ n $ بت في كل خطوة ، يجب أن تكون متواليات الأعداد الصحيحة لدينا $ n + 1 $ عنصرًا طويلاً.

أحد الإجراءات الفنية النهائية التي يجب حلها هي الحالة التي لا يكون فيها الحجم بالبايت للرسالة مضاعفًا لحجم الكتلة. بمعنى آخر ، ما العمل بالبايتات المحتملة المتبقية من كتلة البيانات الأخيرة بحيث يتم الاحتفاظ بجميع وحدات البايت الخاصة بالمحتوى الأصلي بمجرد استرداد كتل البيانات ، ولكن ليس أكثر منها؟ لقد حللنا ذلك بتكرار آخر بايت من الرسالة مرة واحدة. هذه النسخة ، إذن ، متبوعة بتسلسل عشوائي حيث يكون كل مكون مطلوبًا فقط ليكون مختلفًا عن السابق. وبالتالي ، عندما يتم استرداد كتل البيانات ، يتم اقتطاع آخرها ، أو في أسوأ الحالات ، الكتلة التي تسبق الأخيرة في التكرار الأخير للبايت. [4]

الآن دعنا نعرض مثالاً على نظام تشفير SRVB.

نبدأ بالمعلمات:

دولار ك = 4 دولارات ؛

دولار م = 4 دولارات ؛

التي ينتج عنها طول كتلة $ l = 4 * 4 = 16 $ ، وتسلسل زيادة فائقة من $ k + 1 = 5 $ أعداد صحيحة طبيعية ، يتم تشغيلها - أي ، مدمجة خطيًا ، مُلحقة بنتيجة هذه المجموعة الخطية ، و خفضت إلى آخر عناصر $ k + 1 $ - $ m = 4 $ مرة ؛

من أجل البساطة ، دع ما يلي هو المتجه (الزيادة الفائقة) لـ $ v_i $:

(1،2،4،8،16) دولار

في الواقع ، تسلسل القوى الخمس الأولى للعدد 2 ، فقط لأن هذا هو التسلسل الفائق الذي يحتوي على خمسة عناصر وأصغر قيم موجبة تمامًا (وبالتالي تجنب 0 في المفتاح العمومي ، والذي من شأنه أن يتخلى عن المقابل 0 من نظيره ).

كما قلنا سابقًا ، بالنسبة إلى $ \ alpha = a + bi $ ، يجب أن تكون الأعداد الصحيحة $ a $ و $ b $ جريمة مشتركة ، ووفقًا للقيد الجديد الذي ذكرناه ، يجب أن نطلب ذلك $ a ^ 2 + b ^ 2 = \ vert \ alpha \ vert ^ 2 \ geq W $. ينتج عن الحساب السريع $ W = 1590 $. نظرًا لأن $ \ sqrt {1590} \ simeq 39.8 $ ، فإن $ \ alpha $ المراد اختياره سيكون $ \ alpha = 39 + 40i $ ، لأنه كبير بما يكفي لاستيعاب تماثل مع حلقة من الأعداد الصحيحة مع 1590 مكونًا على الأقل ، مع إرضاء $ gcd (a، b) = 1 $. نحتاج أيضًا إلى اختيار $ \ theta $ بحيث يكون $ gcd (a، \ theta) = 1 $ [5] ويفضل ألا يكون منخفضًا جدًا ، بحيث يكون $ (a_1 * \ theta) \٪ \ alpha \ neq v_1 * \ theta $، (لتجنب الإفصاح عن المعلومات أيضًا). $ \ theta = 60 $ يقوم بالمهمة ، وينتج:

$ -19-1i ، 1 + 38i ، 3-3i ، 6-6i ، 12-12i $ [6]

دعونا نتسخ أيدينا ، إذن. خذ الرسالة Hello Toptal! . أولاً نقوم بتعيينها في مصفوفة من البايتات وفقًا لـ ASCII واتفاقيةنا لاقتطاع كتل البيانات:

 01001000 01100101 01101100 01101100 01101111 00100000 01010100 01101111 01110000 01110100 01100001 01101100 00100001 00100001

نظرًا لأن كتلة البيانات لدينا 16 بت = 2 بايت طويلة ، ورسالتنا تتكون من 13 حرفًا ، ينتهي بنا الأمر بـ 7 كتل بيانات كل منها 2 بايت ، حيث تحتوي المجموعة الأخيرة على ضعف تمثيل البت للحرف "!" . دعونا نقوم بتشفير الكتلة الأولى خطوة بخطوة. انتبه جيدًا لأن وحدات بت كل بايت مأخوذة حسب أهميتها.

م = 01001000 01100101 دولار

  • الحلمة الأولى من البايت الأول: $ (0،0،0،1) \ rightarrow (1،1،1،1،2) \ cdot (-19-1i، 1 + 38i، 3-3i، 6-6i، 12 -12 ط) = 15 + 4 ط دولار
  • الحلمة الثانية للبايت الأول: $ (0،0،1،0) \ rightarrow (1،1،1،2،1) \ cdot (1 + 38i، 3-3i، 6-6i، 12-12i، 15 + 4) = 49 + 9 ط دولار
  • الحلمة الأولى للبايت الثاني: $ (0،1،0،0) \ rightarrow (1،1،2،1،2) \ cdot (3-3i، 6-6i، 12-12i، 15 + 4i، 49 + 9i) = 106-10i دولار
  • الحلمة الثانية للبايت الثاني: $ (0،1،1،0) \ rightarrow (1،1،2،2،1) \ cdot (6-6i، 12-12i، 15 + 4i، 49 + 9i، 106- 10i) = 252-2i دولار

وبالتالي ، قمنا للتو بتعيينها

"He" $ \ Rightarrow (12-12i، 15 + 4i، 49 + 9i، 106-10i، 252-2i) $

باقي الرسالة المشفرة كالتالي:

"ll" $ \ Rightarrow (12-12i، 21-2i، 61-3i، 185-31i، 367-59i) $

"o" $ \ Rightarrow (12-12i، 25 + 33i، 65 + 32i، 111 + 44i، 244 + 124i) $

"إلى" $ \ Rightarrow (12-12i، 9 + 10i، 46 + 12i، 149 + 5i، 277 + 31i) $

"pt" $ \ Rightarrow (12-12i، 3 + 16i، 46 + 12i، 73 + 23i، 201 + 49i) $

“al” $ \ Rightarrow (12-12i، 4 + 54i، 44 + 53i، 117 + 193i، 231 + 389i) $

"!!" $ \ Rightarrow (12-12i، 4 + 54i، 32 + 65i، 63 + 92i، 121 + 247i) $

الآن ، بالنسبة لفك التشفير ، لدينا $ \ theta ^ {- 1} = 60 ^ {- 1} = 27 + i $:

$ ($ ”He” $ \ Rightarrow) $ (12-12i، 15 + 4i، 49 + 9i، 106-10i، 252-2i) * \ theta ^ {- 1} \٪ \ alpha = (16،47 ، 93،223،527) دولار

الآن ، تأتي الخوارزمية الجشعة:

أولاً ، نطرح كل عامل مساهم مضروبًا في واحد ، لأنه من المعروف أنها ساهمت مرة واحدة على الأقل في العنصر الأخير ، مما أدى إلى:

  • الحلمة الثانية للبايت الثاني:

$ T \ leftarrow (527-233-93-47-16) = 148 دولارًا

$ (T \ geq 223) = (148 \ geq 223) = خطأ \ Rightarrow b_1 = 0 ؛ T \ leftarrow (T - 0 * 223) = 148 دولارًا

$ (T \ geq 93) = (148 \ geq 93) = صحيح \ Rightarrow b_2 = 1 ؛ T \ leftarrow (T - 1 * 93) = 55 دولارًا

$ (T \ geq 47) = 55 \ geq 47) = صحيح \ Rightarrow b_3 = 1 ؛ T \ leftarrow (T - 1 * 47) = 8 دولار

$ (T \ geq 16) = 8 \ geq 16) = خطأ \ Rightarrow b_4 = 0 ؛ T \ leftarrow (T - 0 * 16) = 8 دولار

النتيجة: 0110 ؛

المتبقي: 8 (يضاف إلى بداية التسلسل كعنصر أدنى جديد) ؛

إسقاط 527 من نهاية التسلسل الحالي ؛

  • الحلمة الأولى من البايت الثاني:

$ T \ leftarrow (233-93-47-16-8) = 59 دولارًا

$ (T \ geq 93) = (59 \ geq 93) = خطأ \ Rightarrow b_1 = 0 ؛ T \ leftarrow (T - 0 * 93) = 59 دولارًا

$ (T \ geq 47) = (59 \ geq 47) = صحيح \ Rightarrow b_2 = 1 ؛ T \ leftarrow (T - 1 * 47) = 12 دولارًا

$ (T \ geq 16) = (12 \ geq 16) = خطأ \ Rightarrow b_3 = 0 ؛ T \ leftarrow (T - 0 8 16) = 12 دولارًا

$ (T \ geq 8) = (12 \ geq 8) = صحيح \ Rightarrow b_4 = 1 ؛ T \ leftarrow (T - 0 * 12) = 4 دولار

النتيجة: 0101 ؛

المتبقي: 4 (يضاف إلى بداية التسلسل كعنصر أدنى جديد) ؛

أسقط 233 من نهائي التسلسل الحالي ؛

  • الحلمة الثانية من البايت الأول:

$ T \ leftarrow (93 - 47 - 16 - 8 - 4) = 18 دولار

$ (T \ geq 47) = (18 \ geq 47) = خطأ \ Rightarrow b_1 = 0 ؛ T \ leftarrow (T - 0 * 47) = 18 دولارًا

$ (T \ geq 16) = (18 \ geq 16) = صحيح \ Rightarrow b_2 = 1 ؛ T \ leftarrow (T - 1 * 16) = 2 دولار

$ (T \ geq 8) = (2 \ geq 8) = خطأ \ Rightarrow b_3 = 0 ؛ T \ leftarrow (T - 0 * 8) = 2 دولار

$ (T \ geq 4) = (2 \ geq 4) = خطأ \ Rightarrow b_4 = 0 ؛ T \ leftarrow (T - 0 * 4) = 2 دولار

النتيجة: 0100 ؛

المتبقي: 2 (يضاف إلى بداية التسلسل كعنصر أدنى جديد) ؛

إسقاط 93 من نهائي التسلسل الحالي ؛

  • الحلمة الأولى من البايت الأول:

$ T \ leftarrow (47-16-8-4-2) = 17 $

$ (T \ geq 16) = (17 \ geq 16) = صحيح \ Rightarrow b_1 = 1 ؛ T \ leftarrow (T - 1 * 16) = 1 دولار

$ (T \ geq 8) = (1 \ geq 8) = خطأ \ Rightarrow b_2 = 0 ؛ T \ leftarrow (T - 0 * 8) = 1 دولار

$ (T \ geq 4) = (1 \ geq 4) = خطأ \ Rightarrow b_3 = 0 ؛ T \ leftarrow (T - 0 * 4) = 1 دولار

$ (T \ geq 2) = (1 \ geq 4) = خطأ \ Rightarrow b_4 = 0 ؛ T \ leftarrow (T - 0 * 2) = 1 دولار

النتيجة: 1000 ؛

المتبقي: 1 (يضاف إلى بداية التسلسل كعنصر أدنى جديد) ؛

إسقاط 47 من نهائي التسلسل الحالي ؛

نتيجة لذلك ، قمنا باستعادة كتلة البيانات: "01001000 01100101" التي تحتوي على أول حرفين "هو" من رسالتنا. ليس ذلك فحسب ، لقد قمنا أيضًا باسترداد تسلسل الزيادة الفائقة للمفتاح الخاص بشكل صحيح $ (1،2،4،8،16) $.

تعمل خرائط كتل البيانات الأخرى بنفس الطريقة.


مقارنة مع أنظمة التشفير الرئيسية للمفتاح العام

مقارنة مع أنظمة التشفير الرئيسية للمفتاح العام

SRVB هو:

  1. مجاني تمامًا وعام ؛

  2. أبسط بكثير وأسهل في الفهم والتنفيذ من ECC [7] ؛

  3. وفيرة في المفاتيح ، وبالتالي فهي غير مكلفة تقريبًا ، على عكس ، على سبيل المثال ، RSA ، التي تعتمد على الأعداد الأولية ، والتي تكون باهظة الثمن.

يمكننا بالفعل تلخيص نقاط الضعف الأكثر احتمالا. نظرًا لأن SRVB ينحدر من MH ، فمن السهل الشك في أنه سيكون عرضة لتعميم هجوم شامير ، أو أي هجوم آخر يكسرها. على الرغم من أن المؤلف لديه أسباب للاعتقاد بأن هذا لن يكون هو الحال ، إلا أنه لم يتم تأكيد ذلك حتى الآن (وهو أمر نموذجي للغاية عند التعامل مع أنظمة التشفير).


ماذا بعد؟

لاحظ روشا بعض التعميمات لاستخدام حلقات خارج القسمة ، والتي يمكن أن تؤدي إلى زيادة تعقيد تحليل التشفير. يجب علينا التحقيق في هذه الاحتمالات أيضا.

التعتيم الجبر الخطي

كما يحدث ، أثناء تطوير وتوثيق SRVB ، توصلت Villas Boas إلى نهج آخر لتحسين مفهوم نظام تشفير المفتاح العام على الظهر والذي لن يتم شرحه بالتفصيل هنا ، حتى لا تصبح هذه المقالة طويلة جدًا ومرهقة ، ولكن هنا قشط منها. إذا لم تنجح في استيعاب الأمر ، فلا داعي للقلق ، فقط ترقب إصدار مقالتنا التالية ، والتي سنخوض فيها التفاصيل بشكل أكثر تفصيلاً: انظر المجموع الجزئي $ y $ ، من ، على سبيل المثال ، عناصر حلقة حاصل $ N $ $ u_i $ (التي تتوافق بشكل متماثل مع الأعداد الصحيحة الموجبة $ v_i $ للتسلسل المتزايد الفائق ، كما كان من قبل) كضرب لمتجه صف لهذه $ u_i $ بواسطة متجه عمود $ B $ ( لثنائي) من الأصفار والآحاد [8] .

$ y = \ sum_ {i = 1} ^ n u_i b_i = (u_1، \ cdot \ cdot \ cdot، u_n) ^ T \ cdot (b_1، \ cdot \ cdot \ cdot، b_n) $ = UB،

حيث $ b_i \ in {0،1} $

الآن ، تخيل أنه بدلاً من هذا المتجه $ u_i $ ، لديك ، على اليسار مصفوفة V $ n $ على $ N $ (مع $ n <N $) ، بها $ v_i $ (الأعداد الصحيحة من الزيادة الفائقة التسلسل) المتجه باعتباره (بدون فقدان العموم) صفه الأول وجميع المدخلات الأخرى مليئة بالضوضاء. لاحظ الآن أن ضرب V في نفس المتجه B يمنحك متجه عمود W يحتوي على $ w $ كإدخال أول وضوضاء في الآخرين. الآن ، خذ مصفوفة V هذه واضربها في [9] n عشوائيًا في n مصفوفة R على اليسار ، معرّف n في N مصفوفة P:

P = RV

الفكرة هي أن بوب يستخدم P كمفتاح عام جديد. بسبب عشوائية R ، المتجه

$ Y = PB = RV B = RW $

يحتوي على المعلومات $ w $ التي تحجبها الضوضاء الموجودة في صفوف أخرى من V. يحسب Bob أيضًا مقدمًا ويخزن متجه الصف S الذي يرضي:

$ R ^ TS ^ T = e_1 $

عندما ترسل Alice Y إلى Bob ، وجد SY فقط ، للأسباب التالية:

$ SY = S (PB) = S ((RV) B) = SRVB = {e_1} ^ TR ^ {- 1} ((RV) B) = $

(حتى الآن التعريفات فقط)

$ {e_1} ^ T (VB) = {e_1} ^ TW = w $

(الآن ، استغلال الترابطية لإلغاء روبية)

and then proceeds as before to extract the vector of $b_i$ from $w$ by means of the greedy algorithm.

So, in one word, the Linear Algebraic Obscuring exploits the associativity of matricial multiplication (the fact that we could expand the terms and then operate their components in a new order provided we that preserved the sequence of all the operands in the sequence) to 'linearly' scramble and then filter (in the encryption and in the decryption respectively) noise to/from $w$. And in limit case $n = 1$, the system elegantly goes back to original to Rocha's approach.

The SRVB Campaign – a prize challenge

The SRVB Campaign

As explained before, in accordance to Kerckhoffs' principle, experience shows that antiquity of a publicly known unbroken cryptosystem is the main source of reliability of it, far more than any theoretical argumentation by the own authors, apart from anything else, because definitive proof of efficacy of the algorithms usually are not available.

And here it is our great chance to put these concepts to practice to earn a big money prize: Aware of this fact, we launched the aforementioned campaign, which is basically a crowdfunding for a prize automatically awarded to the first one that manages to break a message. The money is going to be converted to bitcoins in a given wallet whose private key will be SRVB encrypted and published so that anyone able to decipher it can simply take the money anonymously, no questions asked.

شكر وتقدير

This article in particular and the whole SRVB Crypto project in general have been greatly helped by Prof. Charles F. de Barros, assistant professor at the Federal University of Sao Joao Del Rei. Prof. Barros provided us a technical review of the SRVB cryptosystem itself. I judged it necessary to submit to before daring to publish, and that I would certainly take much longer to do by myself.

In addition, I also would like to extend my deep gratitude to professor Adnan Ademovic for his extraordinarily insightful, attentive, and patient work as the editor of this article.


قائمة المصطلحات

  1. Cryptology/Cryptography: The science/practice of making a message nearly impossible to interpret without a specific set of instructions (in this context, the so-called "key"), thus allowing agents who share these instructions to communicate securely even if tapped by third parties;
  2. Steganography: The science/practice of hiding a message within another by means of adding apparently innocuous modifications to the latter;
  3. Key generation: the mapping of (expectedly) random inputs into (as random) valid keys;
  4. Encryption/Encoding: The easily computable mapping of an easily interpretable message into another that is either hard or impossible to construe, by means of an (as randomly specified) element the one correspondent to the key of a (by Kerckhoffs' principle, publicly known and validated) family of algorithms;
  5. Decryption/Decoding: The easily computable mapping that consists of the inverse of the previous, also being definable by an (as randomly specified, and therefore, unknown and hard to be guessed by third parties) element _again, the one correspondent to the key_ of a (by the same principle, usually known) family of algorithms, that thus outputs the original message when input with the encrypted one;
  6. Cryptosystem: A triad of the family of encoding algorithms, the family of corresponding decrypting algorithms, and a key generating algorithm;
  7. Allies: The agents with whom the communication is intended, and who are expected to act according to the protocol's rules;
  8. Enemies/Third Parties: The agents with whom the communication is not intended, but try, nevertheless, to eavesdrop the communication and bypass the security enhanced by the cryptosystem;
  9. Secure Channel: Any protocol (procedure) for communication that is easy to use while also effectively preventing third parties to feasibly construe what is meant by its users;
  10. Insecure Channel: any channel (ie, protocol or procedure) that, as the name suggests, is not a secure channel;
  11. Breaking a Key: The process of discovering a key by means of public pieces of information (like an encrypted message or public key) other than the key itself to be discovered and that was not expected to feasibly allow the discovery of the key. Since the information that results from this process grants the decryption of the messages, this is a particular case of…
  12. Breaking/Deciphering a message: Any way to deduce the original content of an encrypted message only by means of the encrypted message itself and other pieces of information that were not expected to suffice for the deduction of the original content;
  13. Breaking a Cryptosystem: Discovery of a systematic way to feasibly break whatever message is encrypted by this method under whatever parameter;
  14. Kerckhoffs' Principle/Desideratum/Axiom/Law: A cryptologic principle named after the dutch cryptographer Auguste Kerckhoffs, according to which, in order for a cryptosystem to be deemed secure, everything about it except by its (private) keys must be of public knowledge;
  15. Key: Secret parametrization of a cryptosystem allowing it to be infeasible to be guessed (and consequently broken) by third parties while also being validated by the community of cryptanalysts (in accordance to Kerckhoffs' principle);
  16. Symmetric Cryptosystem: Any cryptosystem on which any parameter for the encoding suffices for easily deducing the parameter for decoding, and, for this reason, must be kept private. One can rephrase it by saying that the encryption and decryption parameters are both equivalent to the key;
  17. Asymmetric/Public Key Cryptosystem: Any cryptosystem for which there is a way to express the parameters for the encoding that does not suffice to feasibly deduce the correspondent parameter for decoding, allowing it to be sent to allies through an insecure channel, or even made public, and thus creating a secure channel where there was none;
  18. Public Key: A component of an asymmetric cryptosystem that suffices for parameterizing the encryption but does not suffice for feasibly deducing the decryption parameter, ie, the…
  19. Private Key: A component of an asymmetric cryptosystem that suffices for parameterizing the decryption and thus must be kept privately and usually also suffices for parameterizing the encryption;

[1] Note that, here, the phrases decipher or decrypt do not apply, because before a given cryptosystem (with all its components, including its keys) is well defined, one cannot classify a given method of construing the original message from the encrypted one as the intended communication (decryption) or an attack (deciphering).

[2] Though there are techniques to improve this guessing work, it still remains far more difficult discovering than multiplying them.

[3] The first inspiration was to look at the tree of the tau conjecture, an infinite tree rooted in the number 1, whose other nodes consist of integers resulting in one binary operation of sum, subtraction, or multiplication between previous nodes, possibly one node operated with itself. The theory's goal relates to the depth, in this tree, in which each integer first appears. It is apparently hard to find large numbers in low branches (even if we relax the need for it), but is it immediate to check if a given sequence of operations indeed produces a given result.

[4] This is surely not the most natural approach, but by adopting this, one ensures that this byte filling (called padding)…

  1. Conceals the size of the padding (differently, for example of ciphertext stealing) and obscures the end of the message, thus rendering chosen-plaintext attacks more difficult;
  2. Enhances a distribution of bits as close to uniform as possible;

If the last blocks of every message were known to be systematically biased in a far from uniform distribution, an attacker could exploit this fact to do a statistical cryptanalysis, for any given sample of messages would be statistically more representative than otherwise. In other words, the last blocks being statistically less diverse, they become they become the weakest links of the message.

[5] Make no mistake: this greatest common divisor is Gaussian, while the previous is real.

[6] …which is not perfect, because it easily gives away the fact that the last three components are proportional to 1, 2, and 4. But, again, for the sake of simplicity, we will ignore this detail.

[7] …which is so complex that there are a few notorious cases of failure to implement and maintain protocols based on it.

[8] Here, we will not adopt Rocha's approach of a multiple linear combinations block, which also allows us to randomly permute the bis to obscure them even more.

[9] Though not totally random. Its transpose must span the subspace generated by the vector $ e_1 = (1,0,…,0) $.