• 0
باسم الموجي

مناقشة برنامج التشفير!

سؤال

رابط الموضوع الأصلي

التشفير الذي لا يكسر

ــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــ

جميل

لكن لا داعي لهذه الكلمة

مع ذلك فإنه من المستحيل كسرها!

التشفير باستخدام xor من أسهل الطرق في التشفير وفي الكسر أيضا

يكفي أن تتسرب بعض الكلمات الغير مشفرة لكسر الشفرة باستخدام xor مرة أخرى

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

تم تعديل بواسطه باسم الموجي
0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

36 إجابة على هذا السؤال .

  • 0

أهلاً باسم,

حسناً, أنا معك في أن العنوان مثير بعض الشيء,

و لكن الطريقة ليست من عندي و يمكنك البحث عنها قبل أن أضع تكملة الموضوع :rolleyes:

التشفير سيتم باستخدام العامل XOR و لكننا سنستخدم نظرية تمكننا من حرق اعصاب الـ Frequency Analyzers دون أن يصلوا لأي نتيجة :P

تحياتي ,,

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

حسنا اين الموضوع الان ؟؟

اقصد اين البداية ؟

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

اجمل المواضيع الى قلبي هي التشفير ..

هل تذكر يا خالد عندما ارسلت اليك الرساله على الخاص .. واخبرتك بانه لدي مشاريع .؟؟

مشروعي هو تكملة الخوارزمية التي اعمل عليها الان .. وقد توصلت الى بناء الفكرة ومشيت بها .. ولكن بسبب الدراسه توقفت ..

وان شااءاالله اكملها ..

ولكن معك هنا اشارك افيدك واستفيد منك ..

فانا ادرس التشفير حاليا وان شاءالله هو مشروع الماجستير بعد التخرج من الكلية ..

ابدأ بطرح الفكره لكي اشاركك الراي والكود ..

تحياتي العطرة ..

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

ممكن نستخدم خوارزمية huffman .. هي سهلة التطبيق وعملية ولكن لا اعلم هل من الممكن تطبيقها على ملفات غير نصية ... والظاهر أنكم تريدون شيء جديد .. huffman قديم جدا :D .

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

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

بالنسبه لهوفمان يالشمري فهي تستخدم للضغط وليس للتشفير ، لكن بالـتأكيد الملف الناتج لا يشبه الملف الأصلي نتيجه للضغط لذلك البعض يعتبرها تشفير .

أما بالنسبه لشفرات XOR فالذي أعلمه أنها من أبسط الشفرات القابله للكسر كما ذكر أخ باسم ، لكن هذا بالطبع اذا استخدم لوحده .

أما لو استخدم مع "نظريات" أخرى فاحتمال تكون من أقوى الشفرات مثل DES والتي تم كسرها أيضا ..

في انتظار نظريات أخ خالد :) :)

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

السلام عليكم ,,

عذراً لأنني لم أوضح عن ماهية المشروع نفسه,

عندما بدأت بالقراءة عن عملية التشفير باستخدام XOR, كانت معظم الطرق تتكلم عن ضغط البيانات أولاً للتخلص من تكرار الحروف في النص الأصلي,

و لكن ما لبثت أن وضعت يدي على موضوع الـ One-time pad أو ما يسمى Vernam cipher

الصورة التالية يمكن أن تبسط المفهوم :

post-89451-1202484148_thumb.png

هل رأيتم! البيانات يتم تشفيرها ببيانات عشوائية, بالتالي حتى لو عرف أحد أي معلومة من البيانات المشفرة فلن ينفع ذلك في فك شفرة البيانات الباقية!

أنصحكم بالرجوع للوصلات في الأعلى حول النظرية لمعرفة النظرية و هل هي مثبتة أم لا!

أتمنى أن يفيدنا الأخ باسم خصوصاً خلال عملية بناء المشروع ;)

أنا طرحت الفكرة فقط لأنها سهلة, و كيف يمكن أن نستخدم أدوات خارجية مبرمجة على أيادي مبرمجين آخرين, الأمر ليس بذلك السهولة و خصوصاً عند المبتدئين,

الهدف كما تلاحظون بعيد عن فكرة المشروع الأساسية!

و لكن هذا ما أردته في الحقيقة!

لأننا لسنا بصدد إنتاج منتج برمجي و إنما مشروع تعليمي!

بالتأكيد سنتعرف على نقاط الضعف التي سيقع فيها برنامجنا بسبب عدم تطبيق النظرية بشكل صحيح! في النظرية كل شيء كامل و لكن في الواقع لدينا نقاط ضعف و حدود!

و بالمناسبة إذا كنتم من محبي التشفير Romansy : كتاب التشفير العربي

كما قلت لكم انتظرونا في الحلقات القادمة :P

تم تعديل بواسطه Khaled.Alshaya
0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

بما أن الشفره هي One Time Pad ، اذا فالناتج مباشره أمن جدا ولا يمكن كسره ، سواء استخدمنا العمليه XOR أو حتى عمليه الجمع العاديه ، وذلك لأننا سوف نتعامل مع بيانات عشوائيه ....

وبالتالي فإن الشفره أمنه ولا يمكن كسرها بالطرق العاديه ....

ولكن المشكله تبقى في البيانات العشوائيه ؟ كيف ستولد أعداد عشوائيه لا تتكرر أبدا ، أو اذا تكررت تتكرر بعد دوره Priod كبيره جدا ..

بالمناسبه الأمر ممتع جدا، وكما ذكرت فالنظريه قد تختلف عن التطبيق :)

في انتظار الأخوه المختصين باسم ، سنان وغيرهم .....

الى اللقاء .

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

اقتباس من ويكيبيديا وبالتحديد من الرابط الذي وضعه الأخ خالد

The theoretical perfect security of the one-time-pad applies only in a theoretically perfect setting; no real-world implementation of any cryptosystem can provide perfect security because practical considerations introduce potential vulnerabilities. These practical considerations of security and convenience have meant that the one-time-pad is, in practice, little-used.

حتى أوضح معنى هذا الكلام سأشرح مثالا مبسطا لكن هذا لا يمنع أن الأمر يمكن تعميمه

سنفترض أننا سنقوم بتشفير قاعدة بيانات لطلاب مدرسة وسنفترض أن الشفرة 64 bits أي 8 Bytes

من المؤكد أن هذه القاعدة تحتوي على اسم "محمد" أو إذا تكلمنا بالإنجليزية "Mohammad"

أنا لن أتكلم الآن عن الـ Frequency Analysis لكن سأتكلم الآن عن طريقة أخرى

لاحظ معي أن كلمة "Mohammad" تحتوي على 8 Bytes

والآن سنفترض أن هذه الكلمة هي أول كلمة في القاعدة المراد كسر شفرتها ثم سنقوم بعمل xor بين كلمة "Mohammad" وأول كلمة في القاعدة

لاحظ معي أن

a xor b xor b = a

ما الذي يعنيه هذا ؟

يعني لو افترضنا أن a هي الشفرة و b=Mohammad فأنت ستقوم بحساب a xor b وتكون هذه هي الكلمة الموجودة في القاعدة وأنا سأقوم بعمل xor بينها وبين b مرة أخرى وبالتالي سأحصل على a و a هنا هي الشفرة

طبعا كل هذا بافتراض أن أول كلمة هي "Mohammad" وبعد أن أحصل على هذه الشفرة الإفتراضية يمكنني الآن أن أستخدمها لكسر تشفير القاعدة

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

ماذا سأفعل الآن ؟

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

كل ما سبق يمكن القيام به باستخدام برامج متخصصة بشكل آلي ولن يحتاج سوى ثواني معدودة

لذلك فاستخدام التشفير بـ One Time Pad مثالي لكن بشرط أن تكون البيانات هي نفسها مثالية :lol:

بمعنى أن البيانات لابد أن تكون غير قابلة للتخمين

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

يعني لو افترضنا أن أحد الباحثين قام بارسال ملف مشفر لوزارة الدفاع الأمريكية ليشرح له طريقة جديدة لتصنيع رؤوس نووية فنحن نعلم جيدا أن كلمة رؤوس وكلمة نووية ستكون موجودة في هذه الرسالة ومن خلال هذه المعلومة التافهة يمكن سحق التشفير سحقا طالما أنه One Time Pad :lol: بالطريقة السابقة

هذا المثال للتوضيح فقط ولكن الأمر أكبر من ذلك بكثير

وتحياتي

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

السلام عليكم ,,

شكراً لك أخ باسم على المثال, و لكن لدي سؤال ؟

إذا استطعنا تخمين رؤوس نووية في المثال السابق, فلن نستطيع الحصول على أي معلومات حول البيانات الباقية, أليس كذلك ؟

بالتالي لا يمكن أن نعتمد على التخمين ؟

بالمناسبة, البرنامج الذي سنقوم بعمله يمعل في حالة كانت البيانات أصغر من 5 أو 6 kilobytes فقط لكي نضمن عشوائية البيانات من المصدر العشوائي, إضافة إلى ذلك سنناقش كيفية استخدام مكتبات أفضل, و هل هناك طرق أفضل ؟!!

بالطبع تشفيرنا ليس مثالياً, فلايوجد أي برنامج مثالي أصلاً!

و لكني كنت أقصد أن النظرية التي يطبقها برنامجنا مثالية!

تحياتي ,,

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0
إذا استطعنا تخمين رؤوس نووية في المثال السابق, فلن نستطيع الحصول على أي معلومات حول البيانات الباقية, أليس كذلك ؟

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

أرجو أن يكون كلامي واضح

وعموما أنا ليس عندي اعتراض على مشروعك أنا فقط كنت أريد أن أوضح حقائق متعلقة بالتشفير قد تخفى على الكثيرين فيظنوا أن المشروع مثالي

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

موضوع رووعه

بس يشتي همتكم ..

مع التحيه

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

السلام عليكم ,,

مرحبا أخي باسم,

حسناً أعترف أني بالغت قليلاً في العنوان :P, و لكن يكفينا شرف المحاولة :D

على كل حال, موضوع التخمين نفسه, ليس صعباً كثيراً, لأنه يجب عليك تخمين كمية من البيانات تبني عليها تخميناتك الباقية :lol:

في المستقبل سنحاول بإذن الله إضافة عملية ضغط للبيانات قبل تشفيرها, لكي يصغر الحجم و يصغر معها الـ Key الخاص بعملية التشفير نفسها!

إضافة إلى ذلك و هو الأهم تشويه البيانات قبل تشفيرها, و بالتالي نحصل على ميزتين في وقت واحد,

أفكر في LZW و لكن لن ندخل حالياً في هذا الموضوع قبل انتهاء المشروع :P

تحياتي ,,

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

خالد ..

قبل ان اطرح اي فكرة بخصوص صلب الموضوع ..

لدي اقتراح بسيط ..

لما لا نفكر (نحن) بطريقة تشفير جديدة (خوارزمية ) .. يعني لا نعتمد على xor ولا ماشابه ذلك من الامور ..

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

ما هو رايك .. ؟؟

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

السلام عليكم ,,

أخ سنان ماتطلبه ليس صعباً, و لكنه مستحيل :(

مع كل ما نعرفه, فنحن لا نستطيع استيعاب نظريات سهلة في التشفير, فكيف سنستطيع اختراع شيء لا نعرف عنه غير اسمه!

بالمناسبة العربي الوحيد المشهور في هذا المجال هو دكتور الهندسة الكهربائية ابراهيم القاضي

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0
بالمناسبة العربي الوحيد المشهور في هذا المجال هو دكتور الهندسة الكهربائية ابراهيم القاضي

هناك ثان, د. طاهر الجمل, مصري يحمل الجنسية الأمريكية لديه خوارزمية التشفير Elgamal وهي تعتمد على اللوغاريثم المتقطع

http://en.wikipedia.org/wiki/Taher_Elgamal

تم تعديل بواسطه Junkie
0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0
ماتطلبه ليس صعباً, و لكنه مستحيل

لا مستحيل ولا شي ..

التفكير هو اجمل شئ .. واستغلال العقل الذي وهبه الله لنا .. هو اساس العمل ..

لنفكر الان ..

كلمة sinan .. اريد ان اشفرها بطريقة جديده ..

اولا علينا تحديد شئ مهم وهو .. هل التشفير باتجاه واحد .. ام باتجاهين .. ؟

الفرق بينهما هو ان الشفرة بالاتجاه الواحد لا يمكن ان تعود للكلمة الاصلية ابدا .. ومثالها شفرات md بجميع اصدارتها . والتي تستخدم hash ..

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

الشفرات البسيطة جدا والتي يمكن تحليلها بسهولة .. مثل هذه الشفرة التالية ..

sinan + 5 = 's' + 5 ,i + 5 , n + 5 , a + 5 , n + 5

فالناتج سيكون حروف اخرى .. ولكن كيف يمكن ان نرجع هذه الحروف الناتجه الى اصلها .. ؟؟

يمكن ذلك بمجرد عكس عملية التشفير .. اي بطرح 5 من كل حرف ..

اما ما اقصده بالطريقة الخاصه .. فهي طريقة تبتكر مع الشفرة ..

لناخذ الrsa ..

هذه الشفرة تستخدم مبدا المفتاح العام والمفتاح الخاص ..

المفتاح العام للشفره .. نستخدمه لتشفير الرساله .. لنفرض ان 2222233333 هو مفتاحنا العام وهو 128 بت ... وهو المسموح به دوليا من امريكا .. نستخدم هذا المفتاح لتشفير الرساله .. ولكن لفكها .. فاننا لا يمكن ان نستخدم هذا المفتاح ... وانما مفتاح اخر وفق معادلة الrsa لكي نرجع الرسالة الى اصلها وبذلك تم الحل ..

اذا فلنحدد اولا هل هي خوارزمية اتجاه واحد ام اثنين ..

وعلى اي مبدا تشفير نعتمد .. هل مبدا المفتاح العام والخاص .. ام hash ام ماذا ..؟

هكذا نستطيع بناء شفرتنا ..

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

تحياتي العطرة ..

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

السلام عليكم ,,

سنستخدم مفهوم الـ Symmetric-key cryptography, لا أدري هل يترجم إلى المفتاح التماثلي ؟

سأطرح مقدمة عن المشروع و الأجزاء الأساسية فيه عما قريب,

أخ سنان, كل شيء ممكن و لكن من هو عبقري الرياضيات لدينا في المنتدى الذي يستطيع اكتشاف نظرية تشفير جديدة,

بالنسبة لي, فمعلوماتي لا تتجاوز معلومات طالب جامعي :wacko:

بمعنى أوضح مالدينا هو أساسيات!

بالتوفيق في مشروعك.

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0
أخ سنان ماتطلبه ليس صعباً, و لكنه مستحيل

طبعا مستحيل

يبدو أن الأخ سنان كتب هذه المشاركة وهو نائم والظاهر أن هذا كان جزء من الحلم :lol:

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

ما تطلبه يا أخ سنان ممكن أن يكون رسالة دكتوراه وليس مشروع تعليمي

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

حضرتك جيت تكحلها عميتها :lol:

كيف أصبحت أنا كاتب الموضوع يا أخ خالد

المفروض مشاركتك تكون أول مشاركة حتى يكون الكلام مفهوم لأي شخص جديد سيدخل على الموضوع

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

لماذا لا تكون نتيجة فك التشفير معتمدة على حل التشفير

بعنى آخر :

يعني مثلا دالة تأخذ مفتاح التشفير من المستخدم لتفك تشفير دالة أخرى مشفرة على أساسه

و هذه الدالة تكون عمل البرنامج او تشفير آخر أو اساسي

يعني أي اختلاف سيكون شيء آخر جدا و طبعا فك التشفير معتمد على الحل يعني لا يمكن برمجته عكسيا

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0
طبعا مستحيل

يبدو أن الأخ سنان كتب هذه المشاركة وهو نائم والظاهر أن هذا كان جزء من الحلم

لماذا هذا الكلام باسم ..؟؟؟

الشخص عندما يفكر بالتطور وتطوير شئ غير موجود .. يصبح حلم ..؟؟

اسالك سؤال .. هل خوارزمية تشفير جديدة ابسط ام بناء نظام تشغيل ... اللي كل شهر يدخل عضو يريد صناعة نظام تشغيل خاص به ..

ما تطلبه يا أخ سنان ممكن أن يكون رسالة دكتوراه وليس مشروع تعليمي

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

خلص اذا كانت الفكرة غير مرحب بها .. انا ساشارك معكم في فكرة خالد ان شااءلله ..

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

خالد لدي رأي بشان شكل البرنامج ..

اذا لم يكن المشروع حاويا على نافذه تطبيق اي انه ليس windows app ..

اقتراحي ان يكون مشابها لبرنامج john الخاص بكسر تشفير الmd5 ..

اي انه نكتب الامر من سطر الاوامر .. بالشكل التالي ..

crypto -e file.txt

في هذا الامر سيقوم المشروع بتشفير الملف file .txt .. باستخدام الايعاز e- .. ويعني encrypt .. اي تشفير ..

واذا اردنا تشفير كلمة ..

crypto -e sun

هنا سيقوم يتشفير الكلمة sun ..

اما فك التشفير فيكون كالتالي ..

crypto -d file.txt

حيث ان d- تعني decrypt اي فك التشفير ..

ومن الممكن ان نضيف عدة اوامر اخرى .. مثلا تشفير كم كلمة من ملف ..

وهذا كله يتم باستخدام مؤشرات سطر الاوامر (argc و argv* ) ....

لكي يكون المشروع اقوى من ناحية شكل العمل ..

فما هو رايك ...؟؟؟

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

السلام عليكم ,,

أخ سنان,

اسالك سؤال .. هل خوارزمية تشفير جديدة ابسط ام بناء نظام تشغيل ... اللي كل شهر يدخل عضو يريد صناعة نظام تشغيل خاص به ..

صدقني أن بناء نظام تشغيل أسهل مما تطلبه !!

بالنسبة لـ

اي انه نكتب الامر من سطر الاوامر .. بالشكل التالي ..

crypto -e file.txt

في هذا الامر سيقوم المشروع بتشفير الملف file .txt .. باستخدام الايعاز e- .. ويعني encrypt .. اي تشفير ..

واذا اردنا تشفير كلمة ..

crypto -e sun

هنا سيقوم يتشفير الكلمة sun ..

اما فك التشفير فيكون كالتالي ..

crypto -d file.txt

حيث ان d- تعني decrypt اي فك التشفير ..

هذه بسيطة, وبإذن سيتم إضافة الميزة للبرنامج,

تحياتي ,,

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

طيب يا خالد .. انا من يومها اتنازلت عن فكرتي ..

واريد ان اشاركك المشروع .. فاين اطرح مشاركاتي معك ..

هنا في هذا الموضوع ام الموضوع الاخر ..؟؟

رجاءا وضح لي لاني لا اعرف الفرق بيين الاثنين ..؟؟

تحياتي العطرة ..

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
زوار
This topic is now closed to further replies.

  • يستعرض القسم حالياً   0 members

    لا يوجد أعضاء مسجلين يشاهدون هذه الصفحة .