الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

فك التشفير :1 خوارزمية قيصر

بدأه kenham في 20 يونيو 2014 · 14 رد · 5,907 مشاهدة · في لغة Python
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم

 

التشفير بطريقة قيصر من الكلاسيكية و التي تعتمد على تبديل الأحرف

 

المهم الآن الهدف من هذا الموضوع هو برمجة برنامج لفك تشفير نص مشفر بخوارزمية قيصر من دون معرفة المفتاح

 

لكن بطريقة أوتوماتيكية و ليس بإختيار الحل بأنفسنا

 

أولا فرضا أننا نعلم اللغة و ل تكن الإنجليزية مثلا

 

و ثانيا بأن نطور البرنامج ليعمل مع أي لغة(هذا صعب نوعا ما)

 

للمساعدة:

 

*عدد إحتمالات الحلول هو 26 إحتمال

 

*بإمكاننا إستعمال مبدأ تكرار الأحرف(الحرف الأكثر تكرارا باللغة الإنجليزية هو e)

 

*هذا الرابط مفيد جدا بموضوع فك التشفير سواءا بكريقة قيصر أو بالطرق التي سنتطرق لها لاحقا    :http://www.simonsingh.net/The_Black_Chamber/crackingsubstitution.html

 

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

 

فكيف سنتمكن من فك خوارزميات حديثة كال DES  و ال MD5

 

هذا المواضيع مفيدة لمن يريدون أن يتعلو ال cracking  و ال hacking

 

أنتضر ردودكم

#2
def caesarCipher(mode, message, key):
    message = message.lower()
    
    if mode == 'd':
        key = -key
        
    translated = ''
    for symbol in message:
        if symbol.isalpha():
            num = ord(symbol) + key
            if num > ord('z'):
                num -= 26
            elif num < ord('a'):
                num += 26
            translated += chr(num)
        else:
            translated += symbol
    return translated

def caesarCipherBruteForce(message):
    i = 1
    while i <= 25:
        print('key: '+str(i)+'\t=> ', caesarCipher('d', message, i))
        i += 1
        
message = caesarCipher('e', 'secret message', 5)
caesarCipherBruteForce(message)

خرج البرنامج سيكون

key: 1    => wigvix qiwweki
key: 2    => vhfuhw phvvdjh
key: 3    => ugetgv oguucig
key: 4    => tfdsfu nfttbhf
key: 5    => secret message
key: 6    => rdbqds ldrrzfd
....
key: 25    => ykixkz skyygmk

تم تعديل هذه المشاركة بواسطة m ahmed في 26 يونيو 2014 في 06:49

2
#3

محاولتك هذه :

 

تعتمد على إيجاد جميع الحلول و إختيار الحل يدويا

 

إنها بداية جيدة،لكن مازال أماننا الكثير للإنجازه و سنعمل على مراحل

 

المطلوب الآن هو جعل البرنامج يختار الحل بنفسه،نفرض أن اللغة المستعملة هي الإنجليزية

#4
صاحب الموقع الذي نشرته قام بالاشارة الى احد رواد علم التشفير العرب وهو يعقوب الكندي

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

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

انصح الجميع بالاطلاع عليه حيث انه يحتوي معلومات قيمة 


لي عودة بعد ان احاول حل المشكل المطروح 

2
#5

اتوقع لايمكن ايجاد الحل مباشرة الا في حالة كون الكلمة صحيحة في اللغة يعني لها معنى بشرط ان نعرّف البرنامج على الكلمة أو الجملة ..

لكن أرى ان هذه الطريقة غير منطقية!
وبما ان عدد الاحتمالات هو 25 احتمال اتوقع ان افضل طريقة هي ان نجرب جميع الاحتمالات ونجلعها تظهر لنا جميعها ومن ثم نقدر نمّيزها..
 

#6
اقتباس

 

وبما ان عدد الاحتمالات هو 25 احتمال اتوقع ان افضل طريقة هي ان نجرب جميع الاحتمالات ونجلعها تظهر لنا جميعها ومن ثم نقدر نمّيزها..

 

 

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

 

25 ‘حتمال عدد قليل و يمكننا مقارنته بالعين المجرد

 

لكن خوارزمية مثل mono alphabetic بها 26! إحتمال أي  403291461126605635584000000

 

هنا من المستحيل معرفة الحل يدويا و حتى بالبرمجة سيكون صعبا نوعا ما

 

لذا من المستحسن أن نجعل البرنامج يفكك التشفير بشكل أوتوماتيكي

 

حتى نكون مستعدين لتفكيك خوارزميات أعقد :)

 

في إنتضار تفاعلكم

#7

بالنسبة لي أشوف الحل مستحيل!!
لأننا ندور في حلقة ليس لها بداية ولا نهاية!
وهذا البرهان: :)
لو حسبنا الازاحة من a الى اول حرف في الكلمة مثلا كانت الكلمة المشفرة def
من a الى d الازاحة (المفتاح) تساوي 3 اذًا الكلمة بعد فك التشفير هي abc
وإذا شفرنا xyz وجعلنا الازاحة تساوي 6 الكلمة المشفرة ستكون def
... الخ

فقط هذا استنتاجي ولا ادري ربما كلامي خاطئ

في انتظار رأيك :)

#8
m ahmed

 

لم أفهم ما تقوله

 

أرجو أن توضح رجاءا,

 

عن أس حل تتكلم؟؟

#9

أقصد فك التشفير مباشرة اذا لم نعرف المفتاح
مثلا لو قلت لك فك تشفير هذه الكلمة vtxltk أو ماهو المفتاح

#10
اقتباس

مثلا لو قلت لك فك تشفير هذه الكلمة vtxltk أو ماهو المفتاح

 

Key #19: caesar

 

أتقصد أن فك التشفير مستحيل؟؟

 

لا ليس ميتحيلا أبدا

 

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

 

من أبرزها johnny the ripper

 

يبدو أنك لم تشاهد الرابط الذي وضعته من قبل  http://www.simonsing...bstitution.html

 

و إلا لما قلت هذا الكلام

 

أرجو أن تتأكد من صحة آرائك و معلوماتك المرة القادمة قبل أم تضرب مجهودنا بالصفر

تم تعديل هذه المشاركة بواسطة kenham في 5 يوليو 2014 في 00:54

#11

أتوقع انك حصلت على الكلمة بعد أن جربت عدة مفاتيح

أريد منك أن تفك تشفير هذه لو سمحت (mfhex)!

#12

الأخ الكريم هذا الموضوع مخصص لصنع برنامج لفك التشفير بالبايثون

 

و الرجاء الإلتزام بالموضوع

 

إن لم تقتنع بفكرة فك التشفيك

 

فيوجد مواضيع أخرى كثير بالمنتدى و شكرا لك

#13
kenham كتب:

الأخ الكريم هذا الموضوع مخصص لصنع برنامج لفك التشفير بالبايثون

 

و الرجاء الإلتزام بالموضوع

لم أخرج عن الموضوع

 

kenham كتب:

إن لم تقتنع بفكرة فك التشفيك

نعم قلت مستحيل!، أنت تقول غير مستحيل اذَا اثبت انه ليس مستحيل! :)

 

kenham كتب:
فيوجد مواضيع أخرى كثير بالمنتدى و شكرا لك

 

العفو :)

#14

الحل هو:

 

pikha
fyaxq
ibdat

 

 

لو كانت الرسالة المشفرة أطول لكان هناك إحتمال وحيد

 

عمليا التراسل نت المستحيل أن يكون بكلمة واحدة فقط :)

 

ر جاءا دعك من هذا الآن

 

إذا طنت تريد التفكير في فك التشفير تفضل

 

و إلا دعنا نعمل رجاءا

#15

الطريقة المستعملة في فك التشفير هي إحصاء جميع الإحتمالات كما فعل الأخ m ahmed

 

لكن عوض أن رتقارن الأحتمالات يدويا،تبرمج برنامج لتقارن الكلمات الناتجة مع ملف يحمل أغلب كلمات تلك اللغة

 

لسنا مضطرين لكتابة هذه الكلامة بأنفسنا بإمكاننا إستعمال قواعد بيانات جاهزة لقواميس

 

أو بإمكاننا إستعمال الأنترنت في ذلك

 

لكن توجد طرق أخرى لتقليل الإحتمالات ،و التي سنستعملها هنا

 

من بينها الأحرف الأكثر تكرارا: صاحب هذه الطريقة هو العالم المسلم يعقوب ابن إسحاق الكندي كما قال الأخ med reda

 

هذا جدول يبين الحروف الأكثر تكرارا في اللغة الإنجليزية: http://www.simonsingh.net/The_Black_Chamber/letterfrequencies.html

 

كما نلاحظ فأن الحرف الأكثر تكرارا في اللغة الإنجليزية هو ال E

 

و مثال الأخ m ahmed  خير دليل على ذلك

 

لقد شفر النص secret message بهذا النص 13 حرف،4 حروف فيها ال E

 

هذه الطريقة تستعمل عندما يكون عندنا نص طويل

 

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

 

لكن بالتأكيد هي موجودة من قبل

 

في اللغة الإنجليزية يوجد نوعين من الحروف حروف ساكنة و حروف متحركة

 

من المستحيل ورود 3 أحرف ساكنة متتالية في كلمة إنجايزية

 

مثلا لو نرى أحتمالات فك تشفير vtxltk

 

أولا تحصي جميع الإحتمالات:

uswksj
trvjri
squiqh
rpthpg
qosgof
pnrfne
omqemd
nlpdlc
mkockb
ljnbja
kimaiz
jhlzhy
igkygx
hfjxfw
geiwev
fdhvdu
ecguct
dbftbs
caesar
bzdrzq
aycqyp
zxbpxo
ywaown
xvznvm
wuymul

 

بإستبعاد الكلمات التي ورد بها 3 أحرف ساكنة متتالية يصيح لدينا الإحتمالات التالية فقط:

squiqh
qosgof
omqemd
kimaiz
igkygx
geiwev
ecguct
caesar
aycqyp
ywaown
wuymul

 

بما أن النص المشفر عبارة عن كلمة واحدة لا يمكن إيتعمال تواتر الأرح

 

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

    • Order Of Frequency Of Single Letters
      • E T A O I N S H R D L U
    • Order Of Frequency Of Digraphs
      • th er on an re he in ed nd ha at en es of or nt ea ti to it st io le is ou ar as de rt ve
    • Order Of Frequency Of Trigraphs
      • the and tha ent ion tio for nde has nce edt tis oft sth men
    • Order Of Frequency Of Most Common Doubles
      • ss ee tt ff ll mm oo
    • Order Of Frequency Of Initial Letters
      • T O A W B C D S F M R H I Y E G L N P U J K
    • Order Of Frequency Of Final Letters
      • E S T D N R Y F L O G H A K M P U W
    • One-Letter Words
      • a, I
    • Most Frequent Two-Letter Words
      • of, to, in, it, is, be, as, at, so, we, he, by, or, on, do, if, me, my, up, an, go, no, us, am
    • Most Frequent Three-Letter Words
      • the, and, for, are, but, not, you, all, any, can, had, her, was, one, our, out, day, get, has, him, his, how, man, new, now, old, see, two, way, who, boy, did, its, let, put, say, she, too, use
    • Most Frequent Four-Letter Words
      • that, with, have, this, will, your, from, they, know, want, been, good, much, some, time

 

باستعمال:

 

Order Of Frequency Of Digraphs

  • th er on an re he in ed nd ha at en es of or nt ea ti to it st io le is ou ar as de rt ve

 

نلاحظ أن الثنائية الوحيدة المذكورة بالإحتمالات في ar بالإحتمال caesar

 

 

 

و هناك أمر مهم جدا و هو معرفة تامة بالجهة المرسلة و المستقبلة للرسالة المشفرة

 

 

و هو الأمر الأكثر أهمية مقلا لو كنا في حرب من المحتمل ورود بعض الكلمات التي تدل على الحرب

 

هنا الأخ    m ahmed   هو صاحب الرسالة المشفرة و قد وضعها لقسم اليايضون بموضوع فك التشفير

 

و هذا ما يأكد صحة الإحتمال

 

 

أعرف أن طرائق فك التسفير معقدة جدا،لكن هذا هو التشفير

 

و على قدر التعب و المجهود تكون النتائج مرضية

 

أرجو أن تفهمو قصدي

تم تعديل هذه المشاركة بواسطة kenham في 5 يوليو 2014 في 22:04

مواضيع مشابهة