تحدثت في موضوعين سابقين عن التشفير باتجاه واحد والتشفير بالمفتاح المتناظر، وأختم اليوم بالحديث عن التشفير بالمفتاح الغير متناظر أو المفتاح العلني.
التشفير بالمفتاح الغير متناظر (Asymmetric key encryption) هو أسلوب من أساليب التشفير يتم فيه تشفير البيانات باستخدام مفتاح ما وفك تشفيرها باستخدام مفتاح آخر، ولهذا السبب سمي بالتشفير الغير متناظر، لأن مفتاح التشفير يختلف عن مفتاح فك التشفير، وبالتالي فإنه يسمح بتوزيع صلاحيات التشفير وفك التشفير على الجهات المختلفة بأن يعطي لبعضهم مفاتيح التشفير فقط ويعطي للآخرين مفاتيح فك التشفير.
ويسمى هذا النوع من التشفير أيضا بالتشفير بالمفتاح العلني (public-key encryption)، لأنك تستطيع أن تنشر أحد المفتاحين وهو يسمى المفتاح العلني (public-key)، وتحتفظ بالآخر سريا، ويسمى المفتاح الخاص (private-key).
وعندما تقوم بنشر المفتاح العلني، فإن أي أحد يستطيع استخدامه لتشفير البيانات التي يريدك أن تحصل عليها، لكن لن يتمكن أحد من فك تشفير هذه البيانات باستخدام هذا المفتاح العلني، لأن المفتاح العلني ينفع للتشفير فقط ولا يمكن استخدامه لفك التشفير، أما فك التشفير فيكون باستخدام المفتاح الخاص الذي يكون عندك أنت فقط، وبالتالي أنت ستكون الشخص الوحيد الذي يمكنه قراءة الرسائل التي شفرت لك باستخدام مفتاحك العلني.
وأشهر خوارزميات هذا النوع من التشفير هي خوارزمية RSA (Rivest, Shamir and Adleman) نسبة إلى العلماء الثلاثة الذين وضعوا هذه الخوارزمية.
وكالعادة، سنأخذ أمثلة عملية على استخدام التشفير المتناظر أو التشفير بالمفتاح العلني.
تخزين البيانات على مزود معرّض للاختراق
إذا كنت تقوم باستقبال معلومات حساسة لتخزينها على جهاز ما متصل بالشبكة لاستخدامها لاحقا، فإن أفضل طريقة لحفظها من الاختراق هي تشفيرها بأسلوب المفتاح العلني.
إذا كان لديك مثلا متجر الكتروني متصل بالشبكة، وكنت تريد تخزين أرقام بطاقات الائتمان فور الحصول عليها من زبائنك لتتيح لهم شراء البضائع لاحقا دون الحاجة لإعادة ادخال هذه المعلومات في كل مرة، فإنك تواجه خطر الاختراق وحصول المخترق على هذه المعلومات.
لمواجهة هذا الخطر، يمكنك أن تقوم بوضع مفتاح التشفير العلني في المزود المتصل بالشبكة وتستخدمه لتشفير أرقام بطاقات الائتمان، بشرط أن تضع المفتاح الخاص الذي ستستخدمه لفك التشفير في مكان منفصل عن المزود، وبهذه الطريقة، إذا تمكن أحد من اختراق المزود فإنه لن يستطيع معرفة أرقام بطاقات الائتمان لأنها مشفرة، حتى لو تمكن من معرفة مفتاح التشفير العلني الذي استخدمه المزود لتشفيرها.
يمكنك بعد ذلك أن تقوم بأخذ هذه المعلومات المشفرة بصفة دورية (صباح كل يوم مثلا) ونقلها إلى جهاز مستقل يقوم بمهمة طلب الأموال من هذه البطاقات بعد أن تزوده بالمفتاح الخاص الذي يحتاجه لفك التشفير، ويكون هذا الجهاز على مستوى أعلى من الأمن ويتصل بالشبكة فقط لتنفيذ هذه العملية لفترة قصيرة، على العكس من المزود الأساسي للموقع الذي يجب أن يكون متصلا طوال اليوم ويجب أن يوفر الكثير من الخدمات التي قد تستخدم لاختراقه.
ولزيادة الأمان، فإن المفتاح الخاص لا يخزن حتى في الجهاز الآمن، بل يخزن في كرت ذاكرة خاص، ويكون عادة محميا أيضا بأن يكون هذا المفتاح الخاص نفسه مشفرا بجملة مرور (pass phase) تحفظها أو بمعلومات البصمة أو شبكية العين إذا كانت المعلومات حساسة جدا.
تبادل البيانات عبر خط معرض للتنصت
إذا احتاج جهازان من أجهزة الكمبيوتر لتبادل المعلومات فيما بينهما على الإنترنت، فإنهما سيواجهان مشكلة سهولة التنصت على اتصال الانترنت لأن بياناتها تنتقل على الشبكة على خطوط غير آمنة.
التشفير بالمفتاح العمومي هو أفضل حل لهذه المشكلة.
كما شرحت قبل بضعة فقرات، سأقول بعبارات أخرى، إذا كان لديك جهازين هما (أ) و(ب)، وأراد (أ) أن يرسل رسالة مشفرة إلى (ب)، فإن عليه أن يحصل على المفتاح العمومي للجهاز (ب) ويستخدمه لتشفير الرسائل المرسلة إليه، وبما أن (ب) هو الوحيد الذي يملك المفتاح الخاص فإنه الوحيد الذي يستطيع فك تشفير هذه الرسالة، ولنفرض الآن بأن هنالك جهاز ثالث (ج) وهو أيضا يريد أن يرسل رسالة مشفرة إلى (ب) فإنه يستطيع أن يستخدم المفتاح العلني نفسه للجهاز (ب) الذي استخدمه (أ) ليرسل إليه رسالته، وفي نفس الوقت فإن (أ) لا يستطيع أن يعرف محتوى المعلومات التي يرسلها (ج) إلى (ب) ولا (ج) يستطيع أن يعرف محتوى المعلومات التي يرسلها (أ) إلى (ب).
بهذه الطريقة نكون قد اقتربنا كثير من ايجاد حل شامل للاتصال الآمن عبر الشبكة لارسال البيانات الحساسة إلى الخدمات الآمنة، مثل المواقع التي تّظهر القفل الذهبي الصغير في شاشة المتصفح وتبدأ عناوينها بالمقطع https بدلا من http.
فعندما تزور أحد هذه المواقع فإن الموقع يرسل لك مفتاحه العلني ويقوم متصفحك بالمقابل بارسال مفتاحك العلني إلى ذلك الموقع، وبذلك يتمكن كل منكما من ارسال رسائل مشفرة لا يمكن لأحد فك تشفيرها إلا الطرف الآخر.
لكن لا تزال هنالك مشكلتان في ذلك.
المشكلة الأولى هي أن تشفير البيانات باستخدام أسلوب التشفير بالمفتاح الغير متناظر عملية معقدة ترهق معالج الكمبيوتر وتستغرق الكثير من الوقت، لذا فإنها غير عملية لتبادل رسائل طويلة نسبيا، والحل لهذه المشكلة يكمن في استخدام الأسلوب الأسرع في التشفير وهو أسلوب التشفير بالمفتاح المتناظر.
قلنا سابقا بأن مشكلة التشفير بالمفتاح المتناظر هي عدم وجود طريقة آمنة وعملية لنقل المفتاح الذي يستخدم لتشفير البيانات وفك تشفيرها عبر الشبكة، لكن الآن بفضل التشفير بالمفتاح الغير متناظر فإن ذلك أصبح أمرا سهلا.
ما ستقوم به المواقع الآن هي أنها بعد تتبادل مع المتصفح المفاتيح العلنية، فإنها لن تستخدم هذه المفاتيح لتشفير البيانات نفسها، بل ستستخدمها لتشفير مفتاح التشفير الذي سينتج عشوائيا لهذه العملية وسيتم تغييره الآن بصفة دورية أثناء الاتصال بين المزود والزبون.
أما البيانات نفسها التي سيتم تبادلها فسيتم تشفيرها باستخدام التشفير المتناظر، أي باستخدام خوارزميات مثل DES وAES.
المشكلة الثانية في نظام التشفير هذا هي أنه لا يزال قابلا للاختراق بسهولة باستخدام هجوم يدعى هجوم الرجل الذي في الوسط (Man in the middle attack).
قلنا قبل قليل بأننا عندما نقوم بزيارة واحدة من المواقع الآمنة فإننا نستقبل منها مفتاحها العمومي لنتمكن من تشفير البيانات الحساسة وإعادة ارسالها إلى الموقع، لكن المشكلة التي تطرح نفسها هي: ما الذي يضمن لك بأن الذي أرسل لك هذا المفتاح العمومي هو الموقع الذي تريد التعامل معه؟
ما يحدث في هذا النوع من الهجمات هو أن المخترق يقوم باعتراض الاتصال بينك وبين المزود، بحيث يأخذ البيانات التي أردت ارسالها منذ البداية من جهازك إلى المزود ويرسلها هو إلى المزود من جهازه هو، فيعتقد المزود بأنك موجود على جهاز المخترق، وفي نفس الوقت، يقوم المخترق بالرد عليك ويرسل إليك المفتاح العلني الخاص به، بدلا من أن تحصل على المفتاح العلني الخاص بالمزود الحقيقي الذي تريد التعامل معه، وعندما تقوم بتشفير البيانات بالمفتاح العلني للمخترق، فإنه سيتمكن من فك تشفيرها باستخدام المفتاح الخاص به، وبعد ذلك.
كما أنك عندما تحاول ارسال المفتاح العلني الخاص بك إلى المزود، فإن المخترق سيأخذ هذا المفتاح ويحفظ به عنده ويرسل بدلا منه المفتاح العلني الخاص به إلى المزود، وبالتالي فإن المزود سيشفر البيانات بالمفتاح العلني الخاص بالمخترق أيضا وبالتالي فإن المخترق سيتمكن من فك تشفيرها باستخدام مفتاحه الخاص، وبعد ذلك يقوم بتشفيرها بمفتاحك العلني وارسالها إليك حتى تشعر بأن الاتصال يتم بصورة صحيحة مع المزود، لكن ما يحدث في الواقع هو أن المخترق يقوم بإدارة اتصالين مشفرين منفصلين، الاتصال الأول بينك وبينه، والاتصال الثاني بينه وبين المزود، وبين هذين الاتصالين تكون البيانات غير مشفرة، وبذلك يحصل على ما يريد، وهو التنصت على المعلومات المتبادلة بينك وبين المزود.
ويمكنك أن تقول بعبارة أخرى بأنه ينتحل شخصية المزود بالنسبة للزبون وينتحل شخصية الزبون بالنسبة للمزود، فيتوهم الطرفان بأنهما يتخاطبان مباشرة مع بعضها البعض دون أن يعلما بأنها في الواقع يتخاطبان مع جهاز المخترق، وفي أثناء ذلك فإن المخترق يحصل على كافة المعلومات الغير مشفرة بكونه يلعب دور الوسيط بينهما، ولهذا السبب سمي هذا الاختراق باختراق الرجل في المنتصف أو الرجل الوسيط.
والحل لهذه المشكلة يكون باستخدام أمر يسمى الشهادات الالكترونية، وهي أيضا تعتمد على تقنية التشفير بالمفتاح العلني.
توثيق صحة البيانات ومصدرها (التوقيع الالكتروني والشهادات الالكترونية)
كما كنت أقول قبل قليل، التبادل الالكتروني الآمن على الانترنت يتطلب وجود طريقة نتأكد منها من شخصية الطرف الذي نتصل به ومن أن الرسائل التي نستقبلها منه قادمة بالفعل منه وأنها ليست رسائل مزورة، والتقنية المستخدمة لتحقيق ذلك تسمى التوقيع الالكتروني (Digital Signing).
في التوقيع الالكتروني، يقوم المزود الذي سيقوم بإرسال رسالة ما للزبون (بغض النظر عن حالة الرسالة من حيث كونها مشفرة أو لا) بتشفير هذه الرسالة النهائية مرة أخيرة باستخدام المفتاح الخاص به، وعندما تصل الرسالة إلى الزبون فإنه يقوم بفك تشفيرها باستخدام المفتاح العلني للمزود، فإذا نتج عن فك تشفير هذه الرسالة النتيجة التي يتوقعها الزبون فإنه يعلم بأن المزود هو بالفعل مصدر هذه الرسالة.
فلاحظ هنا بأننا نقوم بعملية عكسية، فبدلا من أن نشفر الرسالة بالمفتاح العلني ونرسلها للمزود، بحيث لا يتمكن أحد من فكها إلا المزود، فإن المزود يقوم هو بتشفيرها بمفتاحه الخاص ويرسلها إلى الزبون، بحيث يتمكن أي شخص من فك تشفير الرسالة باستخدام المفتاح العلني للمزود، لكن المزود وحده فقط يكون قادرا على تشفيرها باستخدام المفتاح الخاص لأنه وحده الذي يملك المفتاح الخاص، وبالتالي نكون متأكدين من أن الرسائل التي تقبل فك التشفير باستخدام المفتاح العلني للمزود هي رسائل مرسلة من المزود نفسه.
ولاحظ أيضا بأن الرسائل في هذه الحالة تكون عادة مشفرة مرتين، في المرة الأولى تشفر الرسالة الأصلية المحتوية على المعلومات الحساسة بالمفتاح العلني للزبون حتى لا يتمكن أحد من فك تشفيرها سوى الزبون، وتشفر بعد ذلك هذه الرسالة المشفرة نفسها مرة أخرى باستخدام المفتاح الخاص للمزود ليثبت للزبون بأنه هو الذي قام بارسال الرسالة وذلك بأنها تقبل فك التشفير بالمفتاح العلني للمزود.
وكما شرحت سابقا فإن هذه العملية تتم في بداية الاتصال فقط للاتفاق على مفتاح متناظر مؤقت ليستخدم مع البيانات الفعلية للاتصال لتسريع الأمور.
لكن تظل هنا مشكلة أخيرة بحاجة للحل، وهذه المشكلة هي أننا قلنا بأن المزود سيقوم بتشفير الرسائل باستخدام مفتاحه الخاص وأن كون هذه الرسائل قابلة للفك باستخدام المفتاح العلني للمزود هو الدليل على أنها صادرة من المزود، لكن ما الذي يضمن بأن هذا المفتاح العلني هو المفتاح الصادر من المزود أصلا؟ وأنه ليس مفتاحا لمخترق وضع نفسه في منتصف الطريق بينك وبين المزود؟
هنا يأتي دور الشهادات الالكتروني (Digital Certificates)، وهذه الشهادات هي عبارة عن رسالة تقول بأن الجهة الفلانية مثلا تشهد بأن المفتاح العلني للمزود الفلاني هو كذا.
دعنا نأخذ مثالا على ذلك، لنفرض بأنك تريد زيارة الموقع example.com، فبمجرد أن تقوم بزيارة هذا الموقع سيرسل لك شهادة موقعة من جهة ما ولنسميها authority.com، وهذه الشهادة الموقعة هي رسالة تقول بأن المفتاح العلني للموقع example.com هو كذا، وتكون هذه الشهادة نفسها موقعة من قبل authority.com بأن تكون مشفرة باستخدام مفتاحها الخاص وبالتالي فإنها تكون قابلة للفك فقط باستخدام المفتاح العلني لهذه الجهة authority.com.
في النهاية، من أين سنحصل على المفتاح العلني لهذه الجهة authority.com؟ ومن الذي سيضمن لنا صحة مفتاحها العلني قبل أن تضمن هي لنا صحة المفتاح العلني للموقع الذي نزوره؟ المفتاح العلني لهذه الجهة سيكون في الواقع يكون مخزنا في المتصفح منذ أن حصلنا عليه وقمنا بتركيبه على الجهاز.
والجهات التي تقوم بذلك وتقدم هذه الخدمات عديدة، أشهرها هي Verisign/Thawte وهما الشركتان الأشهر وأصبحتا شركة واحدة قبل بضعة أعوام، وهنالك أيضا Geotrust وهي أيضا شركة معروفة، وعدة شركات أخرى.
لاحظ بأن المفتاح العلني للشركة يجب أن يكون مخزنا مع المتصفح حتى يستطيع المتصفح أن يثق بالشهادات التي تصدرها الشركة، لذا فإن الشهادات التي تعطيها هذه الشركات قد تختلف في دعمها للمتصفحات، فقد تدعم شهادات Thawte متصفحات قديمة مثل الاصدارة الرابعة من Internet Explorer بينما شركة Geotrust تدعم Internet Explorer من الاصدارة الخامسة فما فوق.
خاتمة
ها قد انتهت جولتنا في أساليب التشفير، بعد أن انتهيت من كتابة هذه المواضيع الثلاثة وقمت بقرائتها، أحسست بأنني أعيش في معركة، فتجد بأنك تحل مشكلة من هنا لتظهر مشكلة من هناك، لكننا تمكنا في النهاية من حل كل المشاكل التي واجهتنا في سبيل تحقيق اتصال آمن مع موقع على الإنترنت، ومن المهم أن تعرف بأن كل هذه الحلول مطلوبة ومهمة لتحقيق قدر عال من الأمان، لأنني من خلال خبرتي وجدت بأن الكثير من الأشخاص يقوم بتطبيق جزء فقط من هذه الحلول فتظل هنالك ثغرات في نظامه، وعندما تقول له مثلا بأن المخترق يستطيع أن يلعب دور الرجل في الوسط فإنه يتسائل معترضا: ومن الذي سيقوم بذلك؟
وهذا النوع من التفكير هو أكبر مشكلة في الأمن والحماية، أن تكون لديك القناعة بأن المخترقين كسالى وأنهم مشغولون عنك بأمور أخرى، نصحتي لك أخي العزيز: اغلق كل الثغرات ونم قرير العين، ومفتوح العين الأخرى.
14/08/2005 @ 1:55 pm
شبايك قال:
مشكور على المجهود الطيب…
لي تعليق وحيد أرجو أن تقبله:
الاستثناء بكلمة (غير) في اللغة لا يُعرف بأل، فلا تقول الغير معقول، بل غير المعقول، وأما إذا جاءت كلمة (غير) مفردة فيمكن تعريفها بأل وقتها وهي ذات معنى مخالف وقتها، ولذا فعنوانك يجب أن يكون:
التشفير بالمفتاح غير المتناظر
14/08/2005 @ 2:01 pm
أحمد الهاشمي قال:
أشكرك أخي العزيز شبايك على التصحيح، وقد قمت بتعديل العنوان، وسأقوم بتصحيحها إذا رأيتها في أماكن أخرى من المقالة إن شاء الله.
12/09/2005 @ 8:13 pm
الشيخ ناصر الشيخ قال:
خوارزمية الRSA اعمل عليها كمشروع للتخرج لنيل درجة البكلاريوس في علوم الحاسوب وقد قمت بكتابة البرنامج كامل للتشفير بال RSA بلغة الجافا ولكن هنالك مشكلة ارسال النص المشفر من جهاز الى اخر فالمرجو منك مدنا ببعض المعلومات عن كود الارسال بلغة الجافا للنص المشفر مع العلم ان النص المشفر عبارة عن ملف نصي
وشكرا
12/09/2005 @ 8:33 pm
أحمد الهاشمي قال:
الأخ العزيز ناصر الشيخ ..
كيف تريد ارسال النص المشفر؟ هل تريد ارساله عبر البريد الالكتروني؟ أو إلى نموذج ويب؟ أم إلى مزود FTP؟ أم إلى مزود من نوع خاص؟ أم ماذا؟
21/10/2005 @ 8:34 pm
ألف قال:
اهتمامك بالكتابة عن التعمية بالعربية يسعدني جدا.
22/10/2005 @ 12:58 am
أحمد الهاشمي قال:
الأخ العزيز ألف ..
سرني كثيرا أن أسمع بأن ما كتبته أسعدك، وإن شاء الله أظل عند حسن ظنك.
13/11/2005 @ 6:04 am
نواف قال:
الأخ الكريم الهاشمي ..
أسعد الله اوقاتك .. لدي سؤال أو مشكله ولاأدري ان كان في اطار موضوعك ..وهو التشفير ولكن التشفير الخاص بنظام التشغيل ويندوز بنظام الملفات NTFS ..
عانيت مع هذه الهشكله طويلاً ولم أجد لها حلاً وطرت فرحا عندما وجدت احدا يتكلم عن التشفير واشهادات حيث ان خبرتي قليله ..حيث اني قمت بتشفير بياناتي الشخصيه وهي مهمه جدا لي .. ولكن أخطأت عندما قمت بنقلها لهاردديسك اخر وقمت بعمل فورمات للهاردديسك الاول ..فأصبحت الملفات التي نقلتها عالقه في الهاردديسك الثاني حيث لايمكن نقلها او فتحها او التصرف فيها باي شكل من الاشكال .. حيث انه ينباني برفض الوصول ويقوم بعرض شفره طويله على انه لايمكن لاحد الدخول للبيانات الابهذه الشهاده او بهذا التصريح .. هل اجد لديك حل جزاك الله خيرا في الدنيا والاخره ..
13/11/2005 @ 10:28 am
أحمد الهاشمي قال:
الأخ العزيز نواف ..
الحقيقة هي أنني لا أعرف الكثير عن التشفير في نظام الملفات NTFS، لكنني سأحاول البحث في الموضوع.
هل لك أن تخبرني كيف قمت بنقل الملفات من هارديسك إلى الآخر بالضبط؟
15/11/2005 @ 6:24 am
نواف قال:
أشكرك يالهاشمي .. فعلا لاأريد ان أثقل عليك وأستحلفك إن كان عبئاً عليك أن تترك الأمر برمته ..
اما طريقة النقل فقد قمت بمجرد النسخ واللصق .. كما تفعل عند نقل البيانات من Hard disk لاَخر لغرض عمل الفورمات لاحدها ..
تحياتي لك
15/11/2005 @ 6:32 pm
أحمد الهاشمي قال:
الأخ العزيز نواف ..
أنا في خدمتك أخي العزيز، فلا تحمل همّا.
مما قرأته إلى الآن، فإنه يبدو لي للأسف الشديد بأنه لا توجد طريقة لاستعادة البيانات، لأن الشهادة تكون مخزنة في مكان ما على جهاز الكمبيوتر، ومن الضروري عند عمل نسخة احتياطية من الكمبيوتر أن تقوم بعمل نسخة احتياطية من الشهادة أيضا، لكنك في الغالب قمت بنقل ملفاتك فقط ولم تقم بعمل نسخة من هذه الشهادة أو نقل الملفات التي تحتوي على الشهادة.
هل قمت بنقل ملفاتك فقط أم كافة الملفات التي على الجهاز، بما في ذلك ملفات النظام وغيرها؟
15/11/2005 @ 6:53 pm
أحمد الهاشمي قال:
الأخ العزيز نواف ..
هل قمت بنقل محتوى الدليل Documents and Settings التي تحتوي على مجلدات المستخدمين بما فيها مجلد سطح المكتب وMy Documents وغيرها؟
18/11/2005 @ 8:55 am
نواف قال:
العزيز الهاشمي..
للأسف ..
لا فقط قمت بنقل ال My Documents التي توجد به ملفاتي الخاصه ..
18/11/2005 @ 11:10 am
أحمد الهاشمي قال:
الأخ العزيز نواف ..
يبدو من ذلك بأن من المستحيل الآن استعادة البيانات دون الحصول على المفتاح المستخدم للتشفير.
قد يظل هنالك احتمال أخير، وهو استعادة مفتاح التشفير من القرص الصلب الذي قمت بعمل format له.
هل قمت بعمل format بالخيار السريع (Quick Format) أم بالطريقة العادية البطيئة؟
ماذا فعلت بالقرص الصلب بعد عمل format له؟
19/11/2005 @ 10:18 am
نواف قال:
عزيزي الهاشمي بارك الله فيك وأنار طريقك..
القرص الصلب موجود مازلت احتفظ به .. في مره سابقه قمت باستخدام احد برامج استعادة الملفات بعد عمل التهيئه للقرص .. وقد تمكنت من استعادتها كلها ولكنها لايمكن فتحها لانها كانت مشفره قبل تهيئة القرص .. هل تعتقد أني لو استعدت معها ملفات ال Documents and Settings هل نكون بهذا قد استعدنا مفتاح التشفير ؟ أم ان الموضوع متعلق بنفس القرص الصلب الأول ولايمكن فك التشفير الا بوجود البيانات عليه؟
يسر الله كل أمرك ..
19/11/2005 @ 4:35 pm
أحمد الهاشمي قال:
الأخ العزيز نواف ..
هنالك مقالة جيدة عن الموضوع بالانجليزية على هذا العنوان:
http://www.brienposey.com/kb/recovering_encrypted_data.asp
أعتقد بأن السؤال التالي الآن هو أنه بما أنك تمكنت من استعادة الملفات التي على القرص الصلب الأصلي، هل تمكنت من تشغيل Windows مرة أخرى بعد الفرمته؟ أم أنك تستطيع نقل الملفات فقط دون أن تتمكن من تشغيل Windows؟
لأنك إذا كنت تستطيع تشغيل Windows فهنالك طريقة مشروحة في المقالة لنقل ملفات الشهادات إلى الجهاز الجديد لتتمكن من فتح الملفات المشفرة على الجهاز الجديد.
حسبما فهمت من المقالة أيضا، فإن شهادات التشفير التي يمكنك استخدامها لفك تشفير الملفات مخزنة هنا:
Documents and Settings\ApplicationData\Microsoft\SystemCertificates\My\Certificates
لاحظ بأن الدليل ApplicationData دليل مخفي، لذا فإنك قد تحتاج لتعديل خيارات المجلدات لاظهاره، وقد وجدت هذا المسار على جهازي، لكنه كان فارغا، والسبب في الغالب هو أنني لم أستخدم التشفير أبدا جهازي، والمفترض أنك ستجد ملفات الشهادات في هذا المسار على الجهاز الذي استخدمته للتشفير.
إذا لم تكن قد تمكنت من تشغيل Windows بعد، فربما تريد أن تجرب نسخ كافة الملفات الموجودة في الدليل السابق إلى نفس المسار على الجهاز الجديد ثم إعادة تشغيل الجهاز ومحاولة فتح الملفات المشفرة.
جرب هذه الطرق وأخبرني بما يحدث معك.
إذا كان بامكانك الحصول على الملفات من القرص الصلب المفرمت، فإنني أعتقد بأنك ستتمكن من استعادة الملفات بقليل من الصبر والمثابرة إن شاء الله.
20/11/2005 @ 12:17 pm
فاطمه القاضي قال:
مرحبا سبق وأن أرسلت إليك وأتنمي من حضرتك أن تساعدني في إيجاد معلومات مهمه عن الموضوع الخاص بالتشفير
21/11/2005 @ 10:48 am
فاطمة القاضي قال:
بسم الله الرحمن الرحيم
أنا طالبه في المعهد العالي و أحضر في مشروع التخرج وأتمني من حضرتك أن تساعدني في إيجاد أي معلومات متعلقه بموضوع المشروع وهو “”"تشفير بيانات ملف نصي بأحدي لغات البرمجة ومن الأفضل أن تكون لغة السي أو السي++”"”.
مع خالص شكري وتقديري وأرجو أن يكون الرد بسرعة
25/11/2005 @ 11:03 pm
أحمد الهاشمي قال:
الأخت الفاضلة فاطمة ..
أعتذر بداية عن التأخر في الرد على سؤالك في البريد وهنا أيضا، وبالنسبة للإجابة فهنالك الكثير من الأمور التي ستحتاجين لمعرفتها لتحقيق ذلك، فهل لك أن توضحي أكثر طبيعة المعلومات التي تريدينها؟
فيما يلي أول نتيجتين عند البحث عن كلمة cryptography في Google، الأول هو موقع يحتوي على الكثير من الوصلات لمواقع أخرى عن التشفير، والثاني هو كتاب كامل عن التشفير يمكنك تنزيله في هيئة ملفات PDF:
http://world.std.com/~franl/crypto.html
http://www.cacr.math.uwaterloo.ca/hac/
23/02/2006 @ 10:21 pm
المنير قال:
مشكور على الموضوع الذي وضعته لعلم التشفير و الله يجزاك خير لقد وضحت لي كثير من الامور فيه وارجو ان تتحفنا بمزيد من المواضيع في نفس الشأن لي اهمية هذا العلم وقلة العارفين فيه من العرب
وشكرا
24/02/2006 @ 10:28 am
أحمد الهاشمي قال:
الأخ العزيز المنير ..
حياك الله أخي العزيز، وإن شاء الله أظل عند حسن ظنك.
3/03/2006 @ 5:16 pm
محمد الصويغ قال:
السلام عليكم
د: أحمد الهاشمي ..
مشكلتي نفس مشكلة المنير ..
وسأحاول أن أفعل طريقتك ومشكوووور
3/03/2006 @ 5:40 pm
أحمد الهاشمي قال:
الأخ العزيز محمد الصويغ ..
وعليكم السلام ورحمة الله وبركاته ..
حياك الله أخي العزيز، وإن شاء الله تنفع معك الطريقة.
25/04/2006 @ 4:02 am
محمد سليم قال:
انا مش عارف ابداء ازاى بس اولا
انا بعمل فى شركه isp مقدى خدمه الانترنت
بس انا عايز اتعلم بدائيات التشفير بالعربيه فساعدنى وبارك الله فيك
27/04/2006 @ 9:35 am
أحمد الهاشمي قال:
الأخ العزيز محمد السليم ..
هل تعني بسؤالك أنك تريد مصادر عربية تتحدث بالتفصيل عن التشفير؟ إذا كان هذا هو المقصود، فأعتذر لك بأنني لا أعرف مصادر عربية عن الموضوع، أما إذا كنت تعني بأنك تريد تشفير مستندات أو معلومات عربية، فالطريقة هي نفسها التي تستخدم في تشفير المعلومات بأي لغة أخرى أو في تشفير أي نوع من أنواع البيانات سواءا الصور أو الرسومات أو غيرها.
وفي كل الأحوال، يمكنك الاطلاع على الوصلات التي وضعتها في الرد الأخت الفاضلة فاطمة القاضي قبل بضع تعليقات من تعليقك، لكنها معلومات بالانجليزية للأسف.
تمنياتي لك بالتوفيق.
27/04/2006 @ 1:07 pm
HANI قال:
مرحبا
شكرا جزيلا علىالمقال الرائع ولكن عندي سوال؟
ممكن تبين طريقة التشفير بالرسم ولو كان مبسط؟
وشكرا
27/04/2006 @ 3:33 pm
أحمد الهاشمي قال:
الأخ العزيز هاني ..
التشفير يستخدم في عدة أمور، وبالتالي هنالك عشرات الرسومات التوضيحية التي يمكن رسمها، ولا أخفيك سرا بأنني لست جيدا في انشاء مثل هذه الرسومات على الكمبيوتر، لكنني سأحاول القيام بذلك إذا حددت لي استخداما معينا للتشفير تريدني أن أشرحه.
21/07/2006 @ 6:53 pm
samir قال:
orudo tachfurat aw al code de multifision
22/07/2006 @ 10:42 pm
أحمد الهاشمي قال:
الأخ العزيز سمير ..
للأسف لم أفهم عبارتك، هل لك أن توضح أكثر ما الذي تريده؟
27/07/2006 @ 2:57 pm
FAISAL قال:
بس لو تعطني اسم محل يبيع كتب برمجه عربي (Python)
28/07/2006 @ 12:08 am
أحمد الهاشمي قال:
الأخ العزيز FAISAL ..
للأسف لا أعرف أية كتب عربية مطبوعة حول البرمجة بلغة Python.
17/09/2006 @ 6:00 am
ابو سند قال:
كل الي ابقوله اني اشكرك ياخي العزيز احمد وابيك تعطيني اي رابط لتعليم طريقة تغير امتداد الملفات لتشفير الرساله
14/10/2006 @ 10:34 am
أبو عمر قال:
اتمنى ان تشرح لنا باستفاضه طريقه تشفير
DES
حيث اني كمبتدا اذا فهمت هذه الطريقه استطيع افهم ما بعدها من طرق او تحديثات التي حدثت على DES
وان كان هناك تطبيقات لهذه الطريقه عن طريق لغة الجافا التي افهمها يكون افضل
وبارك الله فيكم
14/10/2006 @ 8:19 pm
أحمد الهاشمي قال:
الأخ العزيز أبو سند ..
حياك الله أخي العزيز، لكنني للأسف لم أفهم قصدك؟ ما الذي تريد تحقيقه بالضبط؟
الأخ العزيز أبو عمر ..
خوارزمية DES مشروحة في هذه الصفحة:
http://www.aci.net/Kalliste/des.htm
أما بالنسبة لشفرات Java فللأسف ليست لدي، لكنني أتوقع بأنك ستجد شيئا منها على الانترنت إذا بحثت عن عبارة مثل java des implementation.
16/10/2006 @ 6:58 am
نورة قال:
انا اقوم بعمل بروجكت بسيط في مادة الرياضيات ومطلوب مني برنامج عن التشفير
ما افضل لغه اختارها لعمل البرنامج
c++ or java
بعضهم عملها بالاوراكل لكن لااعرف لها واخاف ابدى البروجكت واكون غير موفقه في اختيار اللغه فانتظر منكم المشوره
هل هناك اكواد جاهزه تخدم في هذه المسأله؟؟
وشكرا
19/10/2006 @ 3:01 pm
محمد العنقري قال:
أريد معرفه كيفيه تحويل الحروف الى أرقام من أجل أستخدامها في عمليت التشفير على خوارزميه ال RSA
19/10/2006 @ 4:42 pm
أحمد الهاشمي قال:
الأخت الفاضلة نورة ..
إذا كان المطلوب مجرد استخدام لخوارزميات التشفير الجاهزة، فأي من اللغتين جيد وستجدين له مكتبات جاهزة للقيام بذلك بسهولة شديدة، وحتى Oracle وكافة أنظمة قواعد البيانات الحديثة توفر طرقا جاهزة لتشفير البيانات باستخدام الخوارزميات الشهيرة مثل RSA.
أما إذا كان المطلوب هو أن تكتبي الشفرة البرمجية التي تقوم بعملية التشفير بنفسك، فلغة C++ قد تكون أسرع قليلا، أما Java فقد تكون عملية أكثر، بالنسبة للأسطر التي ستكتبينها لتقوم بعملية التشفير نفسها، فستكون تقريبا متطابقة بين اللغتين، بل ربما يمكنك قص الشفرة من برنامج C++ ولصقها في برنامج Java وستعمل دون أية تعديلات تذكر، فليس هنالك فرق كبير بالنسبة للتشفير، الفرق سيكون في الأمور الأخرى التي تريدين أن يقوم بها البرنامج وهذه راجعة لك.
الأخ العزيز محمد العنقري ..
هل لك أن توضح لي أكثر ما الذي تريد تحقيقه عمليا؟ فأنا لم أفهم قصدك في تحويل الأحرف إلى أرقام، الأحرف دائما ممثلة بأرقام داخل الكمبيوتر، وعملية التحويل تتم تلقائيا عند عرض نص على الشاشة أو عن طباعة أمر ما على الطابعة.
25/11/2006 @ 9:15 am
زين القاضي قال:
أنا لدي نفس المشكلة التي حصلت للأخ نواف المذكور في الأعلى …
فأرجو الإفادة إذا كانت الطريقة المذكورة قد نجحت
أو إذا كان هناك أي استجادة في الموضوع .
1/12/2006 @ 7:16 pm
عمرو قال:
اشاء الله عليك اخي الهاشمي ..
جزاك الله خيرا..
كنت اريد ان اعرف طريقه لفك شفره (او كلمه السر ) لبرنامج smart crypto
هذا برنامج خاص بالاجهزه المحموله ويستخدم لتشفير الملفات والصور ..
انا استطعت ان انقل هذه الصور والملفات الى الجهاز ولكن لا استطيع ان افتحها.
فهل هناك برنامج او طريقه لفك هذا النوع من الملفات ؟؟
وجزاك االه خيرا..
اخوك عمرو
19/12/2006 @ 11:13 am
علاء عبدالخالق قال:
ياريت لو فيه كتاب عربي للتشفير للمبتدئين
20/12/2006 @ 11:23 am
ريــــــــــــــــــــــــــــــم قال:
مشكوراخوي على الموضوع..
بس لو سمحت نحن طلاب سنه اولى فكلية التقنيا
وبعدنا مش ماخذين اي شي عن نظام التشفير بس نحن مجموعه من الطالبات حبينه انسوي بروجكت عن التشفير ……ونعرضه كشي اضافي على دراستنا ..
حبيت اخبرك انا نحن اخترنا هالموضوع لان هو موضوع مش مطروح بشكل كبير فالإمارات .. واذا بدينا فيه يعني بيكون شي عظيم لان نحن طالبات سنه اولى . فلو تكرمت ممكن اتساعدنا وتعطينا معلومات بدايه وبسيطه عن نظم التشفير.. وكون لك ممتنى
24/12/2006 @ 7:12 pm
أحمد الهاشمي قال:
الأخ العزيز زين القاضي ..
لا أعرف للأسف غير ما هو مكتوب في الأعلى، ولا أعتقد بأن هنالك حل آخر.
الأخ العزيز عمرو ..
يؤسفني أن أخبرك أنني لا أعرف شيئا عن هذا البرنامج، ولا أعرف الحل لهذه المشكلة.
الأخ العزيز علاء عبدالخالق ..
لا أعرف كتابا عربيا عن التشفير، لعل أحد ما لديه المزيد عن ذلك.
الأخت الفاضلة ريم ..
وفقكم الله أختي الفاضلة، بداية لدي ثلاثة مقالات عن التشفير في هذه المدونة، المقالة هذه التي كتبت بها هذا التعليق ومقالتين أخرتين تجدين الوصلات إليها في بداية هذه المقالة، فيما عدى ذلك، ليس لدي أية مقالات أخرى عن الموضوع، يمكنك أيضا قراءة التعليقات على هذه المقالات الثلاثة وستجدين عدة وصلات لصفحات بها المزيد من المعلومات ضمن إجاباتي على أسئلة المعلقين.
2/01/2007 @ 6:38 pm
محمد العنقري --الاردن قال:
انا الان أقوم بعمل مشروع تخرج على خوارزميه ال rsa وأصبحت في المرحله الاخيره منه وان شاء الله سوف نقوم بعرض العمل للأستفاده منه والسلام
21/01/2007 @ 8:21 pm
SARI قال:
اريد كود تشفير بلغة السي او باسكال
2/03/2007 @ 12:21 am
خيكم هاني قال:
السلام عليكم
تسلموا جميعا على هالمعلومات
بس اذا امكن انا البروجكت تبعي عن التشفير بخوارزمية ال DES بلغة السي فقط مو سي بلس بلس ولا سي هاش بس سي
اذا امكن تساعدوني بكتاب او مصدر عن الاكواد الخاصة بالخوارزمية بلغة السي ضروري
اذا في احد يعرف كتابة هذه الاكواد ممكن يبعتلي على ايميلي:
home_087@hotmail.com
وشكرا
10/03/2007 @ 10:53 pm
ابوناصر قال:
الاخ الكريم احمد ،، تحية طيبة وبعد ،،
أشكرك بالفعل على هذا المجهود الرائع ،، وانا لدي مشروع تخرج هذا العام وسيتناول موضوع تشفير رسائل البريد الالكتروني بطريقة ( random positioning of an embedded key ) داخل الرسلة والمقتاح المستخدم سيكون الـ Time stamp وأريد بعض الخوارزميات المساعدة كي أفهم طريقة عمل التشفير وما هي طريقة التشفير المناسبة للاستخدام ،،
سؤال: في حال استخدام طريقة RSA ماذا يستخدم كمفتاح عام وماذا يستخدم كفتاح خاص لهذا العمل؟
أرجو افادتي اخي الكريم ،، واعذرني على الاطالة ،،
تحياتي لك ،،
17/04/2007 @ 2:13 pm
باهر محمود قال:
الاستاذ الفاضل احمد الهاشمي
بارك الله فيكم
اخي,
اني لم اجد حلا للمشكلة التي اواجهها الا وهي,انه في بعض الاحيان تظهر الرسائل التي استلمها
بصورة مشفّرة .وارجو مساعدتي بطريقة تحل لي هذه المشكلة وساكون ممتناً
تحياتي وبالتوفيق.
23/04/2007 @ 9:14 pm
adeeb al sharjaby_yemen قال:
السلام عليكم ورحمه الله وبركاته انا اديب عبد الغنى ادرس فى كليه عدن هندسه كمبيوتر”سنه ولالى
اريد ان اطرح موضوعى هو كيف فيه ان نكتب نص ما مكون من عبارات اوجمل مثل “علينا ان نتقابل فى اعند المطعم الكبير” هذا مثل كيف يمكن ان اشفره هذا الكلام الى الارقام بحيث يكون شفره مثل كما اعرف من الدكتور زين عمر جزاه الله خير ان فى نضام التشفير كل حرف له رقم معين حر ف كبير اى ش يكون قمته 65 وهكذا لاى ال زد ما فى الحروف الصغيره يكون من 95 000 ان شاء الله يكون مقصود واضح ولكم جزيل الشكر و جزاكم الله خير 00
م\ اديب عبد
الغنى
25/04/2007 @ 10:22 pm
بنبونة قال:
من فضلك يا د.احمد الهاشمى اريد الكود الخاص بالخوارزمية des ولكن بلغة net.
لانى اعمل على مشروع تخرج بعنوان التشفير واريد كود هذه الخوارزمية ضرورى جدا
واذا امكن ايضا تزويدى بالكود الخاص بالخوارزمية RSA والخوارزمية RC4
30/04/2007 @ 1:27 am
ayman-kassas قال:
السلام عليكم:
الله يعطيك العافية أخ أحمد على على هالمعلومات الكتير مفيدة واللي فعلا متعوب عليها ومشكور كتير كتيرعلى هالأسلوب المنهجي والسلس في شرح خورزميات التشفير وكيفية عملها معتمدا مبدأ (طرح المشكلة ثم محاولة حلها )
بس عن جد في عندي سؤالين كتير محيريني وبأمل أني لاقي جوابن عندك بإذن الله
السؤال:
عرفنا اخر الشي إنو خوارزمية التشفير بالمفتاح غير لمتناظر هي الخوارزمية ذات الأمان الأعلى واللي تم أعتمادها كأسلوب تشفير معطيات لبروتوكول https
بس رجعنا وأثرنا مشكلة أنو إيش اللي بيضمن انتقال المفتاح العام للموقع الذي يتصفحه المستخدم
إلى المستخدم نفسه بشكل أمن وأن مخترقا ما لم يتلاعب به قبل وصوله إلى الزبون(المتصفح)
فأتت الشهادات والتواقيع الإلكترونية لتحل هذه المشكلة عن طريق حصول الموقع على شهادة موقعة من مواقع عالية الوثوقية والتي تضمن بأن المفتاح العام لموقع ما هو المفتاح المرسل حاليا (مشفر ضمن الشهادة الرقمية)وأنه لم يخضع لأي تعديل وذلك عندما يقوم برنامج المتصفح نفسه بفك شيفرة الشهادة الرقمية بمفتاح Verisign العام المخزن لديه مسبقا
والسؤال:
1-مالذي يضمن بأن مفتاح الموقع العام الذي يريد التسجيل بموقع Verisign قد وصل إلى موقع Verisign بشكله الصحيح (أثناء تسجيل الموقع لدىVerisign )و أنه لم يتم التلاعب به من قبل مخترق ما
2-عند تصفح موقع ما فإنه سيرسل للزبون شهادة رقمية موقعة من Verisign مثلا فإذا تم التلاعب بمحتوى الشهادة الألكترونية قبل أن يتلقاها برنامج مستكشف إنترنيت , فكيف سيعرف
برنامج المستكشف بعد فك تشفير الشهادة بأنه قد حصل على المفتاح العام الخطا أو أنه حصل على المفتاح الصحيح لأن متصفح الزبون لا يعلم أصلا المفتاح العام للموقع الذي يريد أن يزوره وإنما يستخرجه من الشهادة الموقعة
وأنا أاسف إذا طولت عليك والله يعطيك العافية
6/05/2007 @ 7:14 pm
madani قال:
اشكرك على المعلومات الوفيرة والمفهومة المضمون .
ارجوا منكم اتتفضلوا بشرح حول md5
9/05/2007 @ 9:59 pm
بنبونة قال:
الرجاء شرح خوارزمية RC4
16/06/2007 @ 4:34 am
احمد قال:
سلام الله عليكم,ارجو المساعدة يا اخوان لا استطيع الدخول الى المواقع الامنة قمت باعداد المتصفح 7العربي ومازالت المشكله لدي وشكرا.
22/08/2007 @ 9:48 pm
oulddah قال:
أولا شكرا على المعلومات
ثانيا: أنا متخصص في هذا المجال وكنت أعددت رسالة الماجستير على النظام RSA وإنشاء المفاتيح و توليد الأعداد الأولية الكبرى وكذلك تفكيك الأعداد إلى جداءاتها الأولية ولهذا الغرض أنجزت برنامج متكامل للتشفير وانتاج المفاتيح وتوليد الأعداد الاولية وتفكيك الأعداد إلى جداءاتها الأولية وكان ذلك بلغة السي كما قمت باستخدام المكتبة GMP وهي مكتبة مشهورة جدا وفي المختبر قمنا بتجريب مكتبة أعددناها لهذا الغرض على بطاقة DSP من أجل الحساب المتوازي والآن أعد الدكتوراه في نفس الميدان لكن باستخدام Elliptics curves
لمن يهتم بهذه الأمور يمكنني أن أقدم أية مساعدة كما يشرفني طلب المساعدة منكم في حالة أي استشكال.
ولماذا لا يمكننا العمل يوما ما معا على حل بعض الاشكالات المطروحة في هذا المجال وشكرا لكم جزيلا
21/09/2007 @ 4:42 am
._. الهادئة ._. قال:
السلام عليكم اخي الهاشمي
انا حبيت استشيرك في حاجتين لو سمحت
اولا:انا طالبة في ترم التخرج و حابة اعمل مشروعي في الشبكات المهم انه بعد تشاورات عديدة قررنا مع الدكتور ان يكون في التشفير بحيث ان يرسل جهاز رسالة نصية لا تظهر الا للمرسل اليه فقط واي شخص اخر تظهر له و كانها صورة ولكن تكون وجودة شفرة بين المستقبل و المرسل و حين يدخلها المستقبل المحدد بالضبط فان الصورة تتحول الى النص اما غيره فلا يمكن لان النص مشفر و طبعا دور الشبكات في هذا الموضوع في ربط الاجهزة لا سلكيا ان شاء الله فانا حابة اعرف اولا رايك في الموضوع وهل سيفيدنا التشفير في ذلك بحكم معرفتك..
ثانيا: لو كانت اجابتك بنعم(ان شاء الله) فماذا نستخدم اسهل شيء من خوارزميات النتشفير ..
ثالثا: هل يمكن استخدام التشفير في لغة #c (السي شارب)
ولك كثير الشكروارجوا الرد باقصى سرعة الله يسعدك