سؤال

يا رفاق، هناك الكثير من الشفرات المختلفة المتاحة - ولكن أي منها هو الأكثر أمانًا للاستخدام في الوقت الحاضر؟

قائمة: http://www.php.net/manual/en/mcrypt.ciphers.php

هل كانت مفيدة؟

المحلول

إذا لم يكن من المؤكد استخدام AES (المعروف أيضًا باسم "Rijndael") مع مفتاح 128 بت. إذا كنت قد طورت نوعًا من الوثن حول حجم المفتاح ، فيمكنك الوفاء بالمشاهير غير المنطقية عن طريق اختيار مفتاح أكبر ، على سبيل المثال 192 أو 256 بت ؛ التكلفة الإضافية ليست مرتفعة (+40 ٪ من عبء العمل لـ AES-256 ، مقارنة بـ AES-128 ، ويستغرق الأمر جدًا جداً شبكة سريعة لمراقبة هذا الاختلاف بالفعل).

احذر من أنه بغض النظر عن حجم المفتاح الذي تم اختياره ، فإن Cipher الصحيح لـ AES هو دائمًا MCRYPT_RIJNDAEL_128. وذلك لأن معيار AES يشير إلى نكهة تشفير Rijndael بحجم كتلة 128 بت. إذا كنت تريد AES-256 ، فأنت بحاجة إلى استخدام MCRYPT_RIJNDAEL_128 مع مفتاح 256 بت (32 بايت) ، لا MCRYPT_RIJNDAEL_256.

تم نشر AES في عام 1998 واعتمدته حكومة الولايات المتحدة كمعيار اتحادي في عام 2001 ، ولا يظهر أي علامة على الضعف في الوقت الحاضر. تم العثور على بعض الخصائص الرياضية لاحقًا ، لكنها لا تؤثر على الأمن الفعلي ؛ في الغالب ، يسلطون الضوء على أن لدينا بعض المعرفة الدقيقة نسبيا حول سبب آمنة AES. لم تلقت أي خوارزمية تشفير أخرى متماثلة الكثير من الاهتمام (من قبل الآلاف من المشفرات الموهوبين) من AES.

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

نصائح أخرى

بالإضافة إلى إجابة Thomas Pornin العظيمة ، يجب عليك أيضًا التفكير في ما تحاول تحقيقه من حيث "الأمن" (السرية/النزاهة/الأصالة/توافر).

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

على سبيل المثال ، من المحتمل ألا يكون هناك أي جدوى من تشفير بيانات الجلسة حقًا مع سلسلة كاملة من عمليات 256 بت عندما تهدف البيانات حقًا إلى الاستمرار في 20-30 دقيقة. ستكون خوارزمية 128 بت آمنة قريبة من مرتين أو على الأقل تستخدم دورات على مدار الساعة وتكون (إن لم يكن أكثر) آمنة.

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

وعدم نسيان أي منهما (كما أشار توماس) ، يمكنك تنفيذ طريقة آمنة (أو طرق) بشكل غير مؤلم. مع وجود كميات هائلة من المتغيرات في كل صيغة وما شابه ، قد يكون من الصعب تنفيذ شيء "آمن" بالفعل.

بشكل عام ، هناك شيء آمن مثل المفتاح هو فتحه. إذا تركت مفاتيح سيارتي في السيارة مع فتح السيارة ، فإن المفاتيح ليست آمنة وهي مفتوحة لأخذ أي شخص يسير في الماضي. سوف يكون Bloomfish مع مفتاح شخصية من 32 مشتت جيدًا آمنًا مثل أي شيء آخر اليوم. ومع ذلك ، يمكن كسر مفتاح حرف 3 في غمضة عين.

"أقوى التشفير هو AES-256"

من التفاصيل على موقع Bruce Schneier على الويب ، من المفارقات أن AES-256 قد تكون الأقل أمانًا من بين الأحجام الرئيسية الثلاثة 128 و 192 و 256. هناك مشكلات مع جيل المفاتيح في متغير 256 بت.

بعض الخوارزميات أفضل من غيرها في أشياء مختلفة - لست متأكدًا من معاييرك الخاصة بـ "الأكثر أمانًا".

من المؤكد أنك لا ينبغي أن تستخدم أيًا من الخوارزميات المستندة إلى DES هذه الأيام (على افتراض أن لديك خيار حر). AES (Rijndael) هو المعيار الحالي للهيئات NIST والهيئات الأخرى.

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

HTH

جيم

وفقًا لورقة NIST، كان لدى RJINDAEL هامش أمان منخفض مقارنةً بـ MARS أو twofish أو الثعبان.إذا كنت حقا بحاجة إلى أقوى التشفير، فاختر واحدة منها.

http://csrc.nist.gov/archive/aes/round2/r2report.pdf

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

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

يبدو أن الثعبان يتمتع بهامش أمان عالي.لدى Serpent أيضًا بنية بسيطة ، والتي قد تسهل تحليلها الأمني ​​خلال الإطار الزمني المحدد لعملية تطوير AES.

يبدو أن Twofish تتمتع بهامش أمان عالي.نظرًا لأن Twofish يستخدم وظيفة الجولة المعتمدة على المفاتيح ، فقد يكون لمفهوم هامش الأمان معنى أقل لهذه الخوارزمية من المتأهلين النهائيين الآخرين.أدى اعتماد صناديق S-Twofish على بتات k/2 فقط من الانتروبيا في حالة K-bit الرئيسية إلى تكهنات بأن مزدوج قد يكون قابلاً للانقسام والانقسام ، على الرغم من أنه لم يتم العثور على مثل هذا الهجوم.تلقى Twofish بعض الانتقادات لتعقيدها ، مما يجعل التحليل صعبًا خلال الإطار الزمني لعملية تطوير AES. "

إذا كنت ترغب في إلقاء نظرة على التفاصيل ، فهناك مقال ، بشكل رئيسي من قبلي ، على أصفاف الكتلة في http://en.citizendium.org/wiki/block_cipher

للامتثال للمعايير الأمريكية الحالية ، استخدم AES ، التي كانت تعمل سابقًا Rijndael. يجب أن يكون أي من المتأهلين النهائيين الآخرين من مسابقة AES-الثعبان ، المريخ ، Twofish أو RC-6-على ما يرام أيضًا. أعتقد أنك بحاجة إلى ترخيص لـ RC6.

عادةً ما أستخدم AES-128 نظرًا لأن AES تمت الموافقة عليها. أقوى تشفير هو AES-256 (MCRYPT_RIJNDAEL_256).

لدى Mcrypt تصميم وحدات ويمكن إضافة تشفير جديد بسهولة.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top