مقالات

16.1: التشفير


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


Clkhash ومشروع Anonlink الأوسع تم تصميمه وتطويره ودعمه من قبل CSIRO's Data61 & lthttps: //www.data61.csiro.au/> __. إذا كنت تستخدم أي جزء من هذه المكتبة في بحثك ، فيرجى الاستشهاد به باستخدام إدخال BibTex التالي:

روابط المشروع

إحصائيات

اعرض الإحصائيات الخاصة بهذا المشروع عبر Libraries.io ، أو باستخدام مجموعة البيانات العامة الخاصة بنا على Google BigQuery

رخصة: ترخيص برنامج Apache (Apache)

عمال الصيانة

المصنفات

  • حالة التطوير
    • 5 - الإنتاج / الاسطبل
    • وحدة التحكم
    • تمت الموافقة على OSI :: ترخيص برنامج Apache
    • الإنجليزية
    • OS المستقلة
    • بايثون :: 3
    • بايثون :: 3.6
    • بايثون :: 3.7
    • Python :: 3.8
    • Python :: 3.9
    • بايثون :: التنفيذ :: CPython
    • بايثون :: التنفيذ :: PyPy
    • الأمن :: التشفير

    محتويات

    كان استخدام الأصفار جزءًا من بروتوكول عبور طبقة مآخذ التوصيل الآمنة (SSL) منذ إنشائه. نجح بروتوكول TLS في معظم الاستخدامات. ومع ذلك ، الاسم مجموعة شفرات لم يتم استخدامه في المسودة الأصلية لـ SSL. وبدلاً من ذلك ، تم استدعاء قدرة العميل والخادم على الاختيار من بين مجموعة صغيرة من الأصفار لتأمين اتصالهم اختيار الشفرات. [4] [5] لم يكن الاسم حتى SSL v3 (الإصدار الأخير من SSL) مجموعة شفرات كان مستعملا. [6] تم استخدام كل إصدار من TLS منذ ذلك الحين مجموعة شفرات في توحيدها. مفهوم والغرض من مجموعة شفرات لم يتغير منذ صياغة المصطلح لأول مرة. لقد كان ولا يزال يستخدم كهيكل يصف الخوارزميات التي يدعمها الجهاز حتى تتمكن آلتان من تحديد الخوارزميات التي يجب استخدامها لتأمين اتصالهما. ما تغير هو إصدارات الخوارزميات المدعومة في مجموعات التشفير. أضاف كل إصدار من TLS دعمًا لإصدارات أقوى من الخوارزميات وأزال دعم إصدارات الخوارزميات التي تم تحديدها على أنها غير آمنة.

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

    كل مجموعة تشفير لها اسم فريد يستخدم لتعريفها ووصف محتويات الخوارزمية الخاصة بها. يرمز كل جزء في اسم مجموعة التشفير إلى خوارزمية أو بروتوكول مختلف. مثال على اسم مجموعة التشفير: TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256

    معنى هذا الاسم هو:

    • TLS يحدد البروتوكول الذي تستخدمه مجموعة التشفير هذه عادةً ما يكون TLS.
    • ECDHE يشير إلى خوارزمية تبادل المفاتيح المستخدمة.
    • RSA آلية المصادقة أثناء المصافحة.
    • AES جلسة التشفير
    • 128 حجم مفتاح تشفير الجلسة (بت) للتشفير
    • GCM نوع التشفير (تبعية كتلة التشفير وخيارات إضافية)
    • شا (SHA2) دالة التجزئة. للحصول على ملخص 256 وما فوق. آلية التوقيع. يشير إلى خوارزمية مصادقة الرسالة المستخدمة لمصادقة رسالة.
    • 256 حجم الهضم (بت).

    لاستخدام مجموعات التشفير ، يجب أن يتفق العميل والخادم على مجموعة التشفير المحددة التي سيتم استخدامها في تبادل الرسائل. يجب أن يدعم كل من العميل والخادم مجموعة التشفير المتفق عليها. إذا لم يتفق العميل والخادم على مجموعة تشفير ، فلن يتم إجراء اتصال. [7] تحدث عملية الاختيار هذه أثناء بروتوكول مصافحة TLS. يتضمن TLS 1.3 بروتوكول مصافحة TLS الذي يختلف مقارنة بالنسخة السابقة والحالية من TLS / SSL.

    بعد تنسيق مجموعة التشفير المراد استخدامها ، لا يزال لدى الخادم والعميل القدرة على تغيير الأصفار المنسقة باستخدام ChangeCipherSpec البروتوكول في المصافحة الحالية أو في مصافحة جديدة.

    لاختبار أصفار TLS التي يدعمها الخادم ، يمكن استخدام ماسح SSL / TLS. [1]

    تعديل مصافحة TLS 1.0–1.2

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

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

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

    تحرير مصافحة TLS 1.3

    إذا كان هناك جهازان متطابقان عبر TLS 1.3 ، فإنهما ينسقان مجموعة التشفير المراد استخدامها باستخدام بروتوكول مصافحة TLS 1.3. تم تكثيف المصافحة في TLS 1.3 لرحلة واحدة فقط ذهابًا وإيابًا مقارنة برحلتين ذهابًا وإيابًا مطلوبين في الإصدارات السابقة من TLS / SSL.

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

    من خلال تخمين الخوارزمية الرئيسية المستخدمة ، فإنه يلغي رحلة الذهاب والإياب. بعد استلام العميل، يرسل الخادم ملف الخادم بمفتاحها وشهادة ومجموعة التشفير المختارة و تم الانتهاء من رسالة.

    بعد أن يتلقى العميل الخادم تم الانتهاء من الرسالة الآن منسقة مع الخادم الذي تستخدم فيه مجموعة التشفير. [8]

    في تعديل TLS 1.0–1.2

    الخوارزميات المدعومة في مجموعات التشفير TLS 1.0–1.2
    تبادل المفتاح / الاتفاق المصادقة كتلة / تيار الأصفار مصادقة الرسالة
    RSA RSA RC4 MD5 المستندة إلى التجزئة
    ديفي-هيلمان DSA ثلاثية DES دالة تجزئة SHA
    ECDH ECDSA AES
    SRP فكرة
    PSK DES
    كاميليا
    تشاتشا 20

    لمزيد من المعلومات حول الخوارزميات المدعومة في TLS 1.0–1.2 ، راجع أيضًا: أمان طبقة النقل § التطبيقات والاعتماد

    تحرير TLS 1.3

    في TLS 1.3 ، تم إسقاط العديد من الخوارزميات القديمة التي كانت مدعومة في الإصدارات المبكرة من TLS في محاولة لجعل البروتوكول أكثر أمانًا. [9] بالإضافة إلى ذلك ، يتم دمج كل خوارزميات التشفير والمصادقة في التشفير المصدق مع خوارزمية تشفير البيانات المرتبطة (AEAD). كما يجب الآن استخدام خوارزمية التجزئة في اشتقاق المفتاح المستند إلى HMAC (HKDF). [10] تمت إزالة جميع الأصفار غير التابعة لـ AEAD بسبب نقاط الضعف المحتملة أو نقاط الضعف ، ويجب على الأصفار استخدام خوارزمية تبادل مفاتيح سريعة الزوال بحيث يتم إنشاء أزواج مفاتيح جديدة لكل عملية تبادل. [11]

    يعتمد أمان طبقة نقل مخطط البيانات (DTLS) على TLS ، ولكنه يُستخدم بشكل خاص لاتصالات UDP بدلاً من اتصالات TCP. نظرًا لأن DTLS يعتمد على TLS ، فإنه قادر على استخدام غالبية مجموعات التشفير الموضحة لـ TLS. هناك حالات خاصة يجب مراعاتها عند استخدام مجموعات تشفير TLS مع DTLS. لا يدعم DTLS دفق التشفير RC4 مما يعني أنه لا يمكن استخدام تشفير TLS باستخدام RC4 مع DTLS. [12]

    لن يساعد تحديد ما إذا كانت مجموعة تشفير TLS متوافقة مع DTLS بالنظر إلى اسمها. ستظل كل مجموعة تشفير TLS تتضمن مساحة معرف TLS في اسمها. على سبيل المثال: TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256. بدلاً من ذلك ، تتضمن جميع سجلات معلمات TLS الآن العلامة DTLS- موافق للإشارة إلى ما إذا كانت مجموعة التشفير تدعم DTLS. [13]

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

    عند بدء المصافحة ، سيقدم العميل الحديث أعلى بروتوكول يدعمه. إذا فشل الاتصال ، فسيتم إعادة المحاولة تلقائيًا باستخدام بروتوكول أقل مثل TLS 1.0 أو SSL 3.0 حتى تنجح عملية الاتصال مع الخادم. الغرض من الرجوع إلى إصدار أقدم هو أن تكون الإصدارات الجديدة من TLS متوافقة مع الإصدارات الأقدم. ومع ذلك ، من الممكن للخصم الاستفادة من هذه الميزة وجعلها بحيث يقوم العميل تلقائيًا بالرجوع إلى إصدار TLS أو SSL الذي يدعم مجموعات التشفير ذات الخوارزميات المعروفة بضعف الأمان والثغرات الأمنية. [14] وقد أدى ذلك إلى هجمات مثل POODLE.

    تتمثل إحدى طرق تجنب هذا الخلل الأمني ​​في تعطيل قدرة الخادم أو العميل على الرجوع إلى إصدار SSL 3.0. يتمثل العيب في هذا الإصلاح في أنه سيجعله بحيث لا يمكن الوصول إلى بعض الأجهزة القديمة بواسطة أجهزة أحدث. إذا كان دعم SSL 3.0 مطلوبًا للأجهزة القديمة ، فهناك مجموعة تشفير TLS_FALLBACK_SCSV معتمدة تتحقق من عدم تشغيل عمليات الرجوع إلى إصدار سابق بسبب النوايا الضارة. [15]

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

    1. TLS_PSK_WITH_AES_128_CCM_8 (مفتاح مشترك مسبقًا) [16]
    2. TLS_ECDHE_ECDSA_WITH_AES_128_CCM_8 (الخامالمفتاح العمومي)

    تم تنفيذ كل مجموعة من مجموعات التشفير هذه للتشغيل على الأجهزة ذات القيود في طاقة المعالجة والذاكرة. يتم تنفيذ كلاهما في مشروع TinyDTLS مفتوح المصدر. السبب في قدرتها على العمل على هذه الأجهزة المقيدة هو أنه يمكن تنفيذها بطريقة خفيفة الوزن. استخدمت تطبيقات مجموعة تشفير المفاتيح المشتركة مسبقًا 1889 بايت فقط من ذاكرة الوصول العشوائي و 38266 من ذاكرة القراءة فقط التي تعتبر شديدة الوعي بالموارد مقارنة بمعظم خوارزميات التشفير والأمان. [17] يرجع هذا الاستخدام المنخفض للذاكرة إلى أن مجموعات التشفير هذه تستخدم خوارزميات فعالة مثبتة وآمنة ، ولكنها ربما ليست آمنة مثل المزيد من الخوارزميات المطلوبة للموارد exp: استخدام تشفير 128 بت مقابل تشفير 256 بت. بالإضافة إلى ذلك ، يستخدمون مفتاح مشترك مسبقًا أو الخام المفتاح العام الذي يتطلب مساحة ذاكرة وقدرة معالجة أقل مقارنة باستخدام البنية التحتية التقليدية للمفتاح العام (PKIX). [18]

    في البرمجة ، يشار إلى مجموعة التشفير بصيغتي الجمع وغير الجمع. كل واحد له تعريفات مختلفة:

    CipherSuite cipher_suites قائمة بخيارات التشفير التي يدعمها العميل. [19] مثال على كيفية القيام بذلك مجموعات_الشفرات يستخدم عادة أثناء عملية المصافحة:


    يتناول الملحق أ .16.1 إدارة حوادث وأحداث ونقاط ضعف أمن المعلومات. الهدف في منطقة الملحق أ هذا هو ضمان اتباع نهج متسق وفعال لدورة حياة الحوادث والأحداث ونقاط الضعف. تتناول ISO 27001: 2013 دورة الحياة بوضوح من خلال A.16.1.1 إلى A.16.1.7 وهي جزء مهم من نظام إدارة أمن المعلومات (ISMS) خاصة إذا كنت ترغب في الحصول على شهادة ISO 27001. دعونا نفهم هذه المتطلبات وما تعنيه بمزيد من التعمق الآن.

    A.16.1.1 المسؤوليات والإجراءات أمبير

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

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

    A.16.1.2 الإبلاغ عن أحداث أمن المعلومات

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

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

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

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

    A.16.1.3 الإبلاغ عن نقاط الضعف في أمن المعلومات

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

    A.16.1.4 تقييم & أمبير ؛ قرار بشأن أحداث أمن المعلومات

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

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

    A.16.1.5 الاستجابة لحوادث أمن المعلومات

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

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

    A.16.1.6 التعلم من حوادث أمن المعلومات

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

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

    A.16.1.7 جمع الأدلة

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

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

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


    16.1 شرح التوقيعات الرقمية

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

    يقدم الشكل 16-1 لمحة عامة عن استخدام التوقيعات الرقمية ، والتي تعمل على النحو التالي:

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

    تؤلف أليس رسالة وتنشئ توقيعًا باستخدام مفتاحها الخاص.

    ترسل أليس الرسالة والتوقيع إلى بوب.

    يستخدم بوب مفتاح أليس العام للتحقق من التوقيع. إذا كان التوقيع صحيحًا ، فيمكن أن يكون بوب واثقًا مما يلي:

    أليس هي مؤلفة الرسالة حقًا.

    لم تغير حواء محتويات الرسالة.

    الشكل 16-1. استخدام خوارزميات التوقيع غير المتماثلة لتوفير مصادقة الرسائل

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

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

    الشكل 16-2. استخدام رمز التجزئة كأساس لإنشاء توقيع رقمي

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

    الشكل 16-3. استخدام رمز التجزئة كأساس للتحقق من التوقيع الرقمي

    تسمح التوقيعات الرقمية لأكثر من شخص بتوقيع رسالة أو مستند ، مثل عقد. يوقع كل شخص على الرسالة باستخدام البروتوكول الأساسي الذي وصفناه ، ويرسل توقيعه إلى جميع الموقعين الآخرين. إذا رغب Alice and Bob في توقيع عقد رقمي ، فإن البروتوكول الأساسي الذي يستخدمونه هو كما يلي:

    توافق أليس وبوب على محتويات العقد الذي سيوقعانه.

    تنشئ أليس رمز تجزئة للعقد وتوقعه بمفتاحها الخاص.

    ينشئ بوب كود تجزئة للعقد ويوقعه بمفتاحه الخاص.

    تتبادل أليس وبوب التوقيعات الرقمية والمفاتيح العامة.

    يتحقق Alice من أن Bob قد استخدم رمز التجزئة الصحيح (وبالتالي فقد وقع الإصدار المتوقع من العقد) ويتحقق من التوقيع باستخدام مفتاحه العام.

    يتحقق بوب من أن أليس قد استخدمت رمز التجزئة الصحيح ويتحقق من التوقيع باستخدام مفتاحها العام.

    في حالة وجود أي نزاع ، يمكن لطرف ثالث (ربما قاضٍ أو محكم آخر) استخدام مفاتيح Alice و Bob العامة للتحقق من أن كلا من Alice و Bob قد وقعا على نفس العقد. لا يمكن لأي من الطرفين تغيير العقد (لأن رمز التجزئة لن يتطابق بعد ذلك) ولا ينكر أنهما وقعا العقد (لأن الطرف الثالث يمكنه التحقق من كل توقيع منفصل).

    16.1.1 أمن التوقيع الرقمي

    التوقيعات الرقمية لها هدفان: يجب أن تكون آمنة بشكل مشفر ويجب أن توفر ميزات أمان مكافئة للتوقيع بالحبر على مستند مطبوع. نلخص ميزات الأمان للتوقيعات الرقمية على النحو التالي:

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

    لا ينبغي أن تكون حواء قادرة على إعادة استخدام أحد توقيعات أليس الرقمية. يمكن لـ Eve فقط أخذ توقيع Alice من مستند واحد وربطه بآخر إذا كان كلا المستندين ينتجان نفس رمز تجزئة البيانات. انظر الفصل 13 للحصول على تفاصيل لماذا هذا ليس بالأمر السهل تحقيقه.

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

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

    من هذه الميزات ، يمكنك أن ترى أن التوقيعات الرقمية توفر نظيرًا معقولًا للتوقيع المادي. يمكنك أيضًا أن ترى أن الأمان الكامل للتوقيعات الرقمية يعتمد على الافتراضات التالية:

    لا تستطيع حواء التخمين أو الحصول على مفتاح أليس السري.

    يتعذر على Eve العثور على مستند ينتج عنه قيمة تجزئة بيانات محددة.

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

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

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

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

    16.1.2 خوارزميات التوقيع الرقمي لـ .NET Framework

    يتضمن .NET Framework خوارزميتين غير متماثلتين تدعمان التوقيعات الرقمية ، أحدهما هو خوارزمية RSA التي ناقشناها في الفصل 15 ، تحدد هذه الخوارزمية وظائف لكل من تشفير البيانات والتوقيعات الرقمية.

    الخوارزمية الثانية هي خوارزمية التوقيع الرقمي (DSA) ، التي تم نشرها على أنها FIPS الأمريكية في مايو 1994. يدعم DSA التوقيعات الرقمية ولكن ليس تشفير البيانات. تم إنشاؤه في البداية لتوفير خوارزمية قياسية للتوقيعات الرقمية للمشاريع الفيدرالية ، وقد اكتسب DSA الدعم في المشاريع التجارية تدريجيًا ولكنه لا يزال متخلفًا عن RSA من حيث الاعتماد.

    اعتمد منشئو DSA تصميمهم ، جزئيًا ، على خوارزمية الجمل التي قدمناها في الفصل 15. في القسم 16.4 من هذا الفصل ، نضيف دعمًا للتوقيعات وتنسيق التوقيع إلى تطبيق الجمل.

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

    16.1.3 إنشاء التوقيعات الرقمية

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

    بروتوكول تنسيق التوقيع الأكثر استخدامًا هو PKCS # 1 ، والذي نلخصه على النحو التالي:

    إنشاء H ، رمز تجزئة التشفير للمستند. SHA-1 و MD5 هما أكثر خوارزميات التجزئة استخدامًا ، راجع الفصل 13 للحصول على تفاصيل حول خوارزميات التجزئة هذه ودعم .NET Framework لها.

    اربط معرّف خوارزمية التجزئة والتمثيل السداسي العشري لرمز التجزئة معًا لتكوين قيمة DigestInfo. كل خوارزمية تجزئة لها معرف فريد. يسرد الجدول 16-1 المعرفات السداسية العشرية لكل من الخوارزميات التي يدعمها .NET Framework.

    قم بإنشاء صفيف من وحدات البايت المتروكة ، PS قيمة كل بايت هي 255. يعتمد عدد البايت المراد إنشاؤه على طول المفتاح وطول DigestInfo. عدد البايت هو حيث يتم التعبير عن أطوال DigestInfo والمفتاح بالبايت. سيكون طول PS 8 بايت على الأقل.

    اجمع ما يلي لتكوين البيانات المنسقة:

    بايت واحد بقيمة 0

    بايت واحد بقيمة 1

    DigestInfo ، ممثلة بالبايت

    يشير الاختصار PKCS إلى معيار تشفير المفتاح العام ، وهو عبارة عن سلسلة من المستندات التي نشرتها RSA Security ، والتي طور مؤسسوها خوارزمية RSA. يختلف تنسيق PKCS # 1 للتوقيعات الرقمية عن حشوة PKCS # 1 التي وصفناها في الفصل 15.

    يتناول كل معيار PKCS جانبًا محددًا من التشفير غير المتماثل ، ويصف PKCS # 1 كيفية استخدام خوارزمية RSA للتشفير والتوقيعات الرقمية. يتم تضمين كل من حشوة البيانات PKCS # 1 وتقنيات تنسيق التوقيع التي وصفناها في مستند PKCS # 1.

    الجدول 16-1. المعرفات السداسية العشرية لخوارزميات التجزئة

    30 20 30 0c 06 08 2a 86 48 86 f7 0d 02 05 05 00 04 10

    30 21 30 09 06 05 2b 0e 03 02 1a 05 00 04 14

    30 31 30 0d 06 09 60 86 48 01 65 03 04 02 01 05 00 04 20

    30 41 30 0d 06 09 60 86 48 01 65 03 04 02 02 05 00 04 30

    30 51 30 0d 06 09 60 86 48 01 65 03 04 02 03 05 00 04 40

    بمجرد إنشاء البيانات المنسقة ، قم بالتوقيع عليها باستخدام وظيفة التوقيع. في هذا القسم ، نواصل الرسوم التوضيحية باستخدام بروتوكول RSA. يتم عرض وظيفة توقيع RSA أدناه ، حيث s هي قيمة التوقيع و m هي البيانات المنسقة للتوقيع:

    القيمتان d و n هما معلمات مفتاح RSA ، راجع الفصل السابق للحصول على تفاصيل حول أزواج مفاتيح RSA وكيفية إنشائها. يعتمد طول مفتاح RSA المطلوب لإنشاء توقيع رقمي على حجم رمز التجزئة الذي تنتجه خوارزمية التجزئة المحددة. على سبيل المثال ، ينتج MD5 رمز تجزئة 128 بت ، ومع 18 بايت من معرف الخوارزمية و 11 بايت من البيانات التي يضيفها تنسيق PKCS # 1 كحد أدنى ، فأنت بحاجة إلى مفتاح قادر على معالجة 360 بت من البيانات. لذلك ، فإن أصغر طول مفتاح يمكنك استخدامه لتوقيع رمز تجزئة MD5 بتنسيق PKCS # 1 هو 368 بت.

    We won't walk through the computation required to create a digital signature because the numeric values that make up a 368-bit key are simply too large to print on a page see Chapter 15 for an example of using the RSA functions with small key lengths.

    To verify a signature, take the document you have received and create a PKCS #1-formatted hash code, following the protocol we described previously. Use the RSA verification function, shown below, where m 2 is the verification result, s is the digital signature, and e and n are the RSA public key parameters:

    When you verify the signature, the value of m 2 should be the PKCS #1-formatted hash code that you created from the document you received with the signature. If someone has tampered with the document in transit, the value of the hash code that you created will be different then the output of the verification function, and you should reject the signature.

    Notice that the RSA signature and verification functions are the same as the encryption and decryption functions that we described in Chapter 15 the signature and decryption functions are identical, as are the verification and encryption functions. This relationship does not apply to all asymmetric algorithms, and we describe a very different approach when we extend our ElGamal implementation in the Section 16.4.

    The DSA algorithm specification requires that PKCS #1 formatting is always used, and all hash codes are generated using the SHA-1 hashing algorithm. The SHA-1 algorithm ID is still included as part of the PKCS #1 formatting.


    Data Encryption Algorithm

    Always Encrypted uses the AEAD_AES_256_CBC_HMAC_SHA_256 algorithm to encrypt data in the database.

    AEAD_AES_256_CBC_HMAC_SHA_256 is derived from the specification draft at https://tools.ietf.org/html/draft-mcgrew-aead-aes-cbc-hmac-sha2-05. It uses an Authenticated Encryption scheme with Associated Data, following an Encrypt-then-MAC approach. That is, the plaintext is first encrypted, and the MAC is produced based on the resulting ciphertext.

    In order to conceal patterns, AEAD_AES_256_CBC_HMAC_SHA_256 uses the Cipher Block Chaining (CBC) mode of operation, where an initial value is fed into the system named the initialization vector (IV). The full description of the CBC mode can be found at https://csrc.nist.gov/publications/nistpubs/800-38a/sp800-38a.pdf.

    AEAD_AES_256_CBC_HMAC_SHA_256 computes a ciphertext value for a given plaintext value using the following steps.

    Step 1: Generating the initialization vector (IV)

    Always Encrypted supports two variations of AEAD_AES_256_CBC_HMAC_SHA_256:

    For randomized encryption, the IV is randomly generated. As a result, each time the same plaintext is encrypted, a different ciphertext is generated, which prevents any information disclosure.

    If there's deterministic encryption, the IV isn't randomly generated, but instead it's derived from the plaintext value using the following algorithm:

    Where iv_key is derived from the CEK in the following way:

    The HMAC value truncation is performed to fit one block of data as needed for the IV. As a result, deterministic encryption always produces the same ciphertext for a given plaintext value, which enables inferring whether two plaintext values are equal by comparing their corresponding ciphertext values. This limited information disclosure allows the database system to support equality comparison on encrypted column values.

    Deterministic encryption is more effective in concealing patterns, compared to alternatives, such as using a pre-defined IV value.

    Step 2: Computing AES_256_CBC Ciphertext

    After computing the IV, the AES_256_CBC ciphertext is generated:

    Where the encryption key (enc_key) is derived from the CEK as follows.

    Step 3: Computing MAC

    Subsequently, the MAC is computed using the following algorithm:

    Step 4: Concatenation

    Finally, the encrypted value is produced by concatenating the algorithm version byte, the MAC, the IV, and the AES_256_CBC ciphertext:


    16.1: Cryptography

    N161-058 TITLE: Computer-Aided Cryptographic Algorithm Design and Exploration Workbench

    TECHNOLOGY AREA(S): Information Systems

    OBJECTIVE: Design and develop an integrated workbench and tools for computer-aided design and exploration for cryptographic algorithms.

    DESCRIPTION: Cryptography has been one of the foundational building blocks for privacy and security in the cyber environment. Researchers in the field of cryptography are continuously exploring and developing new algorithms, classes/types, and capabilities recent advancements in cryptography include fully homomorphic encryption (FHE) and attribute-based encryption. However, algorithmic exploration in cryptography remains a laborious mathematical exercise. In addition, verifying the correctness and security of a cryptographic algorithm is equally laborious, manual, and error prone. For instance, several publications in cryptography have had to be retracted due to unforeseen errors in the formalizations of security proofs.

    The complexity and brittleness of the security properties of cryptographic algorithms make it especially difficult to develop an automated generator and verifier for new algorithms. However, recent developments in academic research have demonstrated the power of automation in cryptographic design [1,2] and in verifying the security of cryptographic proofs [3]. Currently, the tools developed for these works exist as academic prototypes and may not have been developed to interoperate with other tools. Relatively immature, these tools often require significant formal programming knowledge to operate successfully, and hence are not easily accessible to mainstream cryptographers (users).

    An easy-to-use cryptographic design and verification workbench can significantly reduce the amount of effort required and the error potential associated with cryptographic design exploration and verification. Such a toolset could serve as an integrated design environment capable of performing the full process of automated cryptographic algorithm design, from algorithmic exploration to proving security properties under many different attack scenarios (e.g., chosen ciphertext and/or plaintext attacks, etc.). This cryptographic workbench should integrate various theorem provers with a mechanized verification process, build special automated exploration tools for cryptographic algorithm design, and must be able to accommodate the integration of future tools. This workbench will also serve as a platform for fostering the integration and collaboration of researchers and developers of cryptographic automation tools.

    The tools and workbench developed in this SBIR topic would lower the barrier for cryptographic algorithm design and exploration, hence accelerating the discovery of various new types of cryptographic algorithms and protocols. The workbench should allow cryptographers to explore a wider range of the design space and construction for cryptographic algorithms, far beyond what can be achieved with manual exploration, without requiring its users to be experts in formal programming. Besides reducing the design effort and potential for error, computer-aided cryptography may allow for the discovery of a large number of secure algorithms of certain types and properties. The availability of a large collection of similarly secure algorithms would allow for further filtering of algorithms according to properties orthogonal to security, such as computational requirements, implementation complexity, and power requirements, depending on the particular needs of an application.

    PHASE I: Identify an initial set of tools suitable for computer-aided cryptographic design, design any missing elements in the tool chain, and devise methods which allow tools to interoperate. Design an extensible workbench to integrate the tools into an environment capable of performing the full process of automated cryptographic algorithm design. Develop an initial proof-of concept prototype for the workbench.

    PHASE II: Based upon the Phase I effort, develop and enhance the integrated workbench and tools for computer-aided design and exploration for cryptographic algorithms prototype into a fully functioning workbench.

    Demonstrate and evaluate the efficacy of the tool for exploring selected types of cryptographic algorithms and corresponding design goals, for example by showing that the workbench can successfully be used to design and develop a new cryptographic algorithm or be used to verify the security properties of an existing cryptographic algorithm.

    PHASE III DUAL USE APPLICATIONS: Upon successful completion of Phase II, the performer will provide support in transitioning the cryptographic workbench to the Navy for its intended use. The performer will develop a plan for integrating the product into the Navy s information system security framework. Usually as a result of the requirements of the operating environment, non-standard cryptographic algorithms have been employed in a variety of commercial devices and applications, e.g., RFID, embedded sensors, business and financial transactions, data warehousing, etc. Such custom cryptographic algorithms are often sub-par in the quality of security they provide. As such, the ability to automatically design, develop, and verify a secure (high-quality) cryptographic algorithm which fits particular design requirements will have strong commercial demand, and will improve the security of commercial devices and applications. The availability of the cryptographic workbench will also accelerate the discovery of various novel cryptographic capabilities such as homomorphic encryption and attribute-based-encryption at research institutes and universities around the world.

    1. Joseph A. Akinyele, Matthew Green, and Susan Hohenberger. Using smt solvers to automate design tasks for encryption and signature schemes. In Proceedings of the 2013 ACM Conference on Computer and Communications Security, CCS '13, pages 399-410, New Yo

    2. Joseph A. Akinyele, Matthew Green, Susan Hohenberger, and Matthew W. Pagano. Machine- generated algorithms, proofs and software for the batch verification of digital signature schemes. In Proceedings of the 2012 ACM Conference on Computer and Communications Security, CCS '12, pages 474-487, New York, NY, USA, 2012. ACM.

    3. Gilles Barthe, Benjamin Gregoire, Sylvain Heraud, and SantiagoZanella Beguelin. Computer-aided security proofs for the working cryptographer. In Phillip Rogaway, editor, Advances in Cryptology CRYPTO 2011, volume 6841 of Lecture Notes in Computer Scien

    4. Daniel Bleichenbacher. Chosen ciphertext attacks against protocols based on the rsa encryption standard pkcs #1. In CRYPTO, pages 1-12, 1998.

    5. Johannes Blomer and Gennadij Liske. Direct chosen-ciphertext secure attribute-based key encapsulations without random oracles. Cryptology ePrint Archive, Report 2013/646, 2013. http://eprint.iacr.org/.

    KEYWORDS: cryptography algorithmic design automation security proofs cyber encryption


    ISO 27001 Annex : A.10 Cryptography

    ISO 27001 Annex : A.10 Cryptography in this article explaining Cryptographic controls, Policy on the Utilization of Cryptographic Controls & Key Management.

    A.10.1 Cryptographic controls

    Its objective is to ensure the proper and efficient use of cryptography to protect the confidentiality, authenticity and/or integrity of the information.

    A.10.1.1 Policy on the Utilization of Cryptographic Controls

    Control- A policy on the use of cryptographic controls to secure information should be developed and enforced.

    Implementation Guidance- The following should be considered when designing a cryptographic policy:

    1. A management guide to the use of cryptographic controls across the organization, including the general principles by which business information should be protected
    2. Based on the risk assessment, the necessary level of security should be calculated taking into account the type, strength, and quality of the encryption algorithm necessary
    3. Usage of encryption to secure information transported by mobile or portable media devices or through communication lines
    4. Approach to key management, including strategies for coping with the security of cryptographic keys and the recovery of encrypted information in the event of missing, corrupted or damaged keys
    5. Roles and responsibilities, e.g. for who is responsible for whom
      Implementing policy
      key management including quality generation
    6. The standards to be followed in the organization for successful implementation (which solution for which business processes are used)
    7. The effect of encrypted information on controls that rely on content validation (e.g. malware detection).

    When enforcing the cryptographic policy of the organization, consideration should be given to regulations and national restrictions that may relate to the use of cryptographic techniques in different parts of the world and to issues relating to the trans-border flow of encrypted information.

    Specific information security goals can be accomplished by cryptographic control, e.g.

    • Confidentiality: use of information encryption to secure confidential or vital information, either stored or transmitted
    • Integrity/authenticity: use digital signatures or message authentication codes to check the authenticity or integrity of confidential or vital information stored or transmitted
    • Non-repudiation: use of cryptographic techniques to provide evidence of an occurrence or non- occurrence
    • Authentication: Use of cryptographic techniques to authentically request access to or transactions with users, entities, and resources of systems.

    Cryptography is the ultimate form of non-violent direct action
    -Julian Assange

    Other Information- Making a judgment as to whether a cryptographic solution is suitable can be seen as part of the broader risk assessment and control selection process. This assessment would then be used to decide if cryptographic control is sufficient, what form of control should be used, and for what function and business processes.

    A policy on the use of cryptographic controls is important to optimize the benefits and reduce the risks associated with the use of cryptographic techniques and to prevent inappropriate or incorrect use. Expert consultation should be taken into consideration in selecting suitable cryptographic controls to meet the objectives of the information security policy.

    The Organization aims to keep its information within the triads of the CIA. They also ensure the proper and efficient use of cryptography to protect the confidentiality, authenticity and/or integrity of the information and information processing facilities. Annex 10discusses the cryptographic controls and policies for those controls that an organization should maintain and implement over their entire life cycle. This famous certification of Lead Auditor and Lead Implementer covers all annexes to information security. Infosavvy , a Mumbai-based institute, offers certifications and training for multiple-domain-like management of information security, cybersecurity, and many others, including the IRCA CQI ISO27001:2013 Lead Auditor (LA) and ISO 27001 Lead Implementer (LI) (TÜV SÜD Certification).هذا certification covers various audits that an organization should perform to keep it away from the intended destructor. Infosavvywill help you understand and define the full scope of your organization’s cybersecurity posture which is essential to protect your company’s business against breaches. نحن لدينا trainers who are well-qualified and experienced with adequate training and know-how to ensure the effective management of information security. This will help the applicant gain the requisite skills to conduct the ISMS audit using commonly accepted auditing concepts, procedures, and techniques.

    A.10.1.2 Key Management

    Control- A policy on the use, security, and lifetime of cryptographic keys should be created and enforced over their entire life cycle.

    Implementation Guidance- ال policy should provide criteria for handling cryptographic keys over their entire life cycle, including generating, processing, archiving, retrieving, transmitting, removing, and destroying keys.

    Cryptographic algorithms, primary lengths, and implementation methods should be chosen in line with best practice. Appropriate key management includes safe processes for generating, processing, archiving, retrieving, transmitting, removing and destroying cryptographic keys.
    All cryptographic keys should be safe against change and loss. In addition, confidential and private keys require protection against unauthorized use as well as disclosure. The equipment used for generating, processing, and archiving keys should be physically secured.

    A key management framework should be based on an agreed set of principles, protocols, and appropriate methods for:

    1. Generate keys for various cryptographic schemes and applications
    2. Issuing and receiving a public key certificate
    3. Distribute key to intended entities with the activation of the keys on receiving
    4. Storing keys, including how approved users can access them
    5. Adjust or upgrade keys, including guidelines about when keys should be modified and how they should be modified.
    6. Addressing missing keys
    7. Revoking keys, and how keys can be deleted or disabled, e.g. when keys have been compromised or when a user leaves an organization (in such case keys should also be archived)
    8. Recovery of keys that are missing or corrupted
    9. Backup or archiving keys
    10. Destroying keys
    11. Logging and auditing of key management activities.

    In order to reduce the likelihood of improper use, key activation and deactivation dates should be defined in such a way that keys can only be used for the time period defined in the associated key management policy.

    The authenticity of public keys should also be considered in addition to managing secret and personal keys safely. This authentication process may be carried out using public key certificates, which are usually provided by a Certification Authority, which should be a recognized organization with adequate controls and procedures in place to provide the necessary degree of confidence.

    The nature of service level agreements or contracts with external suppliers of cryptographic services, e.g. with the Certification Authority, will cover issues of accountability, reliability of services, and response times for the delivery of services.

    Other information- The control of cryptographic keys is important for the successful use of cryptographic techniques. Further information on key management is provided in ISO / IEC 11770.


    Saturday, November 28, 2015

    16.1 due Nov 30

    1. I understood part of how elliptical curves work, but once it moved to explaining the law of addition and how to find other points on the curve because it seems that elliptical curves are always symmetrical. Or that the law of addition assumes that they are symmetrical across the x axis.


    2. I'm really interested to see how elliptical curves work in cryptography. I wonder how numbers grouped and organized in this way have a cryptographic application and how this helps with issues of security.


    The Cryptographic Hash Function

    We use a cryptographic hash function to construct an initial random number state from a pair of integers, or from a parent random number state for a child particle. Block encryption functions are perfectly good for this, themselves providing random numbers of good quality that are uncorrelated with linear congruential recurrence relations. The encryption key provides a means for the user to easily create a different random instance of the problem run, affecting the starting values for all of the particles in the application. The current crop of block encryption functions operating on 64 bits match our choice of a 64-bit unsigned integer for random number state quite nicely.

    The fact that an encryption algorithm is reversible is not essential, but does assure that the hash function provides a random, one-to-one, shuffle of the random number states produced by the generator. This property is guaranteed in the case of the 64-bit linear congruential generator, where the random number state is a full 64-bit value. Output collisions can occur in the other generators that do not fully use all possible 64-bit values, but the probability of such collisions is low.

    Any block encryption algorithm of sufficient quality will suffice as our random hash function for random number state generation. We have chosen the encryption algorithm IDEA [6] [7] because of its efficient portable implementation on general purpose computers. The IDEA encryption algorithm is comprised of 8 rounds of a Feistel network, mixing the operations of three 16-bit wide algebraic groups to scramble the result. We have found that two rounds of IDEA produces a suitably random output from its input, and that four rounds would offer an adequate safety margin against correlations being detectable between parent and child random number states produced by the hash function. The full 8 rounds of IDEA are available for the truly paranoid Monte Carlo practitioner. The user can adjust the number of rounds of IDEA used, in response to performance needs, in the event that the costs of random number state generation become significant. The number of rounds of IDEA used can be adjusted from 1, to the full 8 rounds, with 4 rounds being the default.

    The IDEA encryption algorithm employs a key of 128 bits. A default key is provided. This key was randomly chosen using dice. The subroutine that sets the IDEA key in our library takes two 32-bit integers provided as arguments by the user and constructs the 128-bit IDEA key by exclusive or'ing this 64 bits with the upper and lower 64 bits of the default key. It is very difficult, if not impossible, for the user to generate a bad choice for the encryption key. The default encryption key is the same as the one generated if the user passes zeros to RngSetKey .

    The functions to control the properties of the hash function are: void RngSetKey( Rng_UInt32 k1, Rng_UInt32 k2 )

    void RngSetKeyRounds( int n ) Here, Rng_UInt32 is a 32-bit unsigned integer and is defined in the header file rng.h . The RngSetKey() and RngSetKeyRounds() functions are used for all of the random number generators provided. The RngSetKeyRounds() function sets the number of rounds of IDEA used in the hash function, silently enforcing the range 1 through 8.

    RngSetKeyRounds() and RngSetKey() may be called in any order, but must, if used, be called before the other RNG routines are called. RngSetKeyRounds() does not have to be called, in which case the default value for the number of rounds is 4. The full IDEA encryption algorithm uses 8 rounds, but our tests have shown that changing a single bit avalanches with good randomness to all of the output bits in just two rounds. Since this was an empirical test, we added two more rounds to the default for a safety margin. Setting the number of rounds higher than 4 will slow down the process of seed generation, but should result in less correlation between the input and output. Setting the number of rounds to 1 produces clear evidence of correlations, but may be sufficiently random for applications where the speed of seed generation is paramount. Generally, the code developer should not expose control of the number of rounds to the user, who might easily set it too low without carefully checking statistical properties of application results.


    شاهد الفيديو: 2- انواع التشفير Types of encryption (شهر نوفمبر 2021).