منتديات كركوك تايمز

منتديات كركوك تايمز
 
الرئيسيةس .و .جالتسجيلدخول
أفضل 10 أعضاء في هذا المنتدى
فيــرو - 3141
 
شميران كركوكي - 2120
 
Rasti - 1769
 
zoba - 1578
 
كــاردينيــا - 1350
 
دمعة حزن - 579
 
A.O.J - 538
 
Aramos - 497
 
ديدار - 410
 
دانيار كوردى - 404
 
المواضيع الأخيرة
» استضافة مجانية مع دومين .com مجاني مدى الحياة
الخميس 10 ديسمبر 2015, 4:36 pm من طرف hayderaltimimi

» ليلى والخمسين حرامي .. بقلمي
الإثنين 09 نوفمبر 2015, 7:19 pm من طرف حجي تمساح

» شل c99 مع الشرح بالفيديو
الأربعاء 04 سبتمبر 2013, 4:56 pm من طرف فيــرو

» شل c99 مع الشرح بالفيديو
الأربعاء 04 سبتمبر 2013, 4:52 pm من طرف فيــرو

» ثغرة XSS
الثلاثاء 27 أغسطس 2013, 5:20 pm من طرف فيــرو

» موقع يقدم اخر الثغرات
السبت 24 أغسطس 2013, 7:04 am من طرف فيــرو

» ثغرة جديدة
السبت 24 أغسطس 2013, 7:01 am من طرف فيــرو

» برنامج الهجوم على المواقع
السبت 24 أغسطس 2013, 4:57 am من طرف فيــرو

عداد الزوار

hit counter

شاطر | 
 

 التشفير بطريقة Vigenere's cipher))

استعرض الموضوع السابق استعرض الموضوع التالي اذهب الى الأسفل 
كاتب الموضوعرسالة
فيــرو
مؤســـس منتديـــات كركوك تايمزمؤســـس منتديـــات كركوك تايمز
بيانات العضو
الجنس : ذكر
عدد المساهمات : 3141
نقاط : 41178
تاريخ التسجيل : 20/09/2009
العمر : 27

مُساهمةموضوع: التشفير بطريقة Vigenere's cipher))   الجمعة 06 نوفمبر 2009, 1:48 am

هذه الطريقة ظهرت في 1586م ,وقد ظهر بدورها لتلغي المعالم الإحصائية لأي لغة حيث وأن عملية الاستبدال فيها للحرف الواحد يمكن أن تأخذ حروف متعددة أي أن الحرف الواحد (R) على سبيل المثال في الكلمة((Remember يمكن أن يستبدل الحرف الأول بحرف ما ويستبدل الحرف الثاني (R) بحرف آخر كما سنرى فيما بعد :
وتعتمد هذه الطريقة على الآتي:
أ ـ اكتب مصفوفة 26× 26 تمثل الحروف الإنجليزية على النحو :



ب ـ اختار أي مفتاح مناسب .

للقيام بعملية التشفير أتبع ما يلي:
1) اكتب المفتاح المتعارف عليه في سطر وكرره كلما دعة الحاجة (أو كرر جزء منه) .
2) اكتب محتويات الرسالة المراد إرسالها تحت المفتاح (أو تكرار المفتاح ) .
3) اجعل حرف الرسالة المراد إرسالها هو بداية الصف في المصفوفة 26× 26، وجعل ما يقابل هذا الحرف من المفتاح أو تكراره هو العمود المصفوفة( 26× 26).
4) حرف التقاطع بين الصف والعمود في المصفوفة( 26× 26 )هو الحرف الذي سوف نستبدله عن حرف الرسالة وبالتالي هو حرف الشفرة الذي سوف نرسله .
مثال :-
سوف نوجد الشفرة للرسالة الآتية:- (I hope that you are very well . ) بفرض أن المفتاح المستخدم هو (SALEHNO)
أولا: نوجد المفتاح مع تكراره كما يلي(S ALEH NOSA LEH NOS ALEH NOSA) .

KEY= (S ALEH NOSA LEH NOS ALEH NOSA)
Plain text= (I HOPE THAT YOU ARE VERY WELL)
Ciphertext=(A HZT L GVST JSB NFW VPVF JSDL)

دراسة وتحليل طريقة(Vigenere's cipher)

عند دراسة هذه الشفرة نجد الآتي:
أولاً:- عدد حروف الشفرة مساوية لعدد حروف الرسالة الأصلية .
ثانياً:- أن حروف الرسالة الأصلية تم استبدالها بحروف أخرى وأن الحرف المتكرر في الرسالة الأصلية تم استبداله بحروف غير متماثلة .
فعلى سبيل المثال:-
نجد أن الحرف H وجد مرتين في الرسالة، ولقد تم استبداله في الحالة الأولى بالحرف H نفسه، أما في الحالة الثانية فقد تم استبداله إلى الحرف V . وكذلك فقد وجد الحرف T مرتين في الرسالة الأصلية ، وقد تم استبداله في المرة الأولى بالحرف G أما في الحرف الثاني فقد تم استبداله بالحرف T نفسه .
أما الحرف E فقد وجد خمس مرات في الرسالة الأصلية وقد تم استبداله كما في الجدول : -

E E E E E
S P P W L

وكذلك حرف O , فقد وجد مرتين في الرسالة الأصلية وقد تم استبداله في الحالة الأولى بالحرف Z وفي المرة الثانية بالحرف S .
من تتبع استبدال الحروف وجدنا أن بعض الحروف كانت تستبدل بنفسها والسبب في ذلك وجود الحرف A في المفتاح المستخدم، والآن سوف نثبت الرسالة وسوف تغير المفتاح المستخدم فقط ونظر ماذا يحدث:
نفرض أن المفتاح هو(SLEHNOM)
يكون المفتاح المولد هو : S LEHN OMSL EHN OMS KEHN OMSL)) نكرر المفتاح ليصبح بطول النص المرد تشفيره
النص الأصلي (Plain text) : (I HOPE THAT YOU ARE VERY WEEL)
النص المشفر (Ciphertext): (A SSWR HTSE CVH ODW GIYL KQDW)
فإذا تابعنا نفس الحروف الأولى فنجد أن الحرف H وجد مرتين وتم استبداله بالحالة الأولى بالحرف S وبالحالة الثانية بالحرف T وكذلك الحرف T وجد مرتين أيضاً وقد تم استبداله بالمرة الأولى بالحرف H وبالمرة الثانية بالحرف E . أما الحرف E فقد وجد خمس مرات وتم استبداله على النحو التالي:
E E E E E
D Q I W R
أما الحرف O , فقد وجد مرتين وتم استبداله بالمرة الأولى بالحرف S وبالمرة الثانية بالحرف V . عند استخدام مفتاح خال من الحرف A تكون الشفرة أكثر حصانه ، وذلك لأن تقاطع الحرف A مع أي حرف آخر فإن نتيجة التقاطع هو ذلك الحرف الآخر، وهذا جعل بعض لحروف في الرسالة هي نفس الحروف بالشفرة كما في الحالة السابقة . أما في هذه الحالة، فلم نجد أن أحد الحروف بالشفرة هو نفسه بالرسالة . فإذا درسنا الشفرة بنوع من التروي نجد أن أكثر الحروف تكراراً الحرف W .
وإذا استبدلنا هذا الحرف بالحرف E الذي يعتبر أكثر الحرف تكراراً باللغة الإنجليزية لم نصل إلى حل لأن الحرف هو في الحقيقة عبارة عن شفرة للحروف التالية: L, E, P . وكذلك نجد في المقام الثاني الحرف S وإذا استبدلناه عن الحرف T الذي يأتي بالمقام الثاني من تكرار الحروف باللغة الإنجليزية، لم نصل إلى حل أيضاً لأن في الحقيقة الحرف S هو عبارة عن استبدال للحروف A,O,,H من هذه الدراسة نجد أن هذه لطريقة(Vigenere's cipher) تبدد الخواص الإحصائية للغة المستخدمة وبالتالي فهي أقوى من (Caesar cipher) .

طريقه فك تشفر طريقة (Vigenere's cipher) :-
عند استقبال الشفرة يتم وضعها تحت المفتاح أو تكرارها ثم يتم أخذ أحد حروف المفتاح ويكون الحرف من المفتاح هو الصف المطلوب في المصفوفة والحرف من الشفرة هو العمود من المصفوفة ويكون أعلى العمود هو أحد حروف الرسالة الأصلية(plaintext).ويتم تكرار هذه العملية في كل حروف الشفرة ونستطيع فك شفرة من اجل أيجاد الرسالة الأصلية لمستخدم (Vigenere's Cipher) .


خوارزمية التشفير وفك التشفير بالفيجول بيسك :
الرمز:

Public Function EncodeVigenere(ByVal PlainIn As String, ByVal key As String) As String
Dim i As Long
Dim Cin As Integer
Dim Ckey As Integer
Dim Cout As Integer
Dim Keypos As Integer
key = TrimText(key, True, False, False, False)
If Len(key) < 2 Then
    MsgBox "Key size too small", vbCritical
    Exit Function
    End If
PlainIn = TrimText(PlainIn, True, False, False, False)
If PlainIn = "" Then Exit Function
Keypos = 1
For i = 1 To Len(PlainIn)
    Cin = Asc(Mid(PlainIn, i, 1)) - 64
    Ckey = Asc(Mid(key, Keypos, 1)) - 64
    Cout = Cin + (Ckey - 1)
    If Cout > 26 Then Cout = Cout - 26
    EncodeVigenere = EncodeVigenere & Chr(Cout + 64)
    Keypos = Keypos + 1: If Keypos > Len(key) Then Keypos = 1
Next i
End Function
Public Function DecodeVigenere(ByVal PlainIn As String, ByVal key As String)
Dim i As Long
Dim Cin As Integer
Dim Ckey As Integer
Dim Cout As Integer
Dim Keypos As Integer
key = TrimText(key, True, False, False, False)
If Len(key) < 2 Then
    MsgBox "Key size too small", vbCritical
    Exit Function
    End If
PlainIn = TrimText(PlainIn, True, False, False, False)
If PlainIn = "" Then Exit Function
Keypos = 1
For i = 1 To Len(PlainIn)
    Cin = Asc(Mid(PlainIn, i, 1)) - 64
    Ckey = Asc(Mid(key, Keypos, 1)) - 64
    Cout = Cin - (Ckey - 1)
    If Cout < 1 Then Cout = Cout + 26
    DecodeVigenere = DecodeVigenere & Chr(Cout + 64)
    Keypos = Keypos + 1: If Keypos > Len(key) Then Keypos = 1
Next i
End Function
Public Function TrimText(TextIn As String, Letters As Boolean, Numbers As Boolean, Spaces As Boolean, Points As Boolean)
Dim i As Long
Dim tmp As Byte
For i = 1 To Len(TextIn)
    tmp = Asc(UCase(Mid(TextIn, i, 1)))
    If Letters = True And (tmp > 64 And tmp < 123) Then
        TrimText = TrimText & Chr(tmp)
    ElseIf Numbers = True And (tmp > 47 And tmp < 58) Then
        TrimText = TrimText & Chr(tmp)
    ElseIf Spaces = True And tmp = 32 Then
        TrimText = TrimText & Chr(tmp)
    ElseIf Points = True And tmp = 46 Then
        TrimText = TrimText & Chr(tmp)
    End If
Next
End Function
توقيــع العضو فيــرو
الرجوع الى أعلى الصفحة اذهب الى الأسفل
http://xp10.ahlamontada.com
Rasti
أدارةأدارة
بيانات العضو
الجنس : ذكر
عدد المساهمات : 1769
نقاط : 38701
تاريخ التسجيل : 20/09/2009
العمر : 29

مُساهمةموضوع: رد: التشفير بطريقة Vigenere's cipher))   الأربعاء 11 نوفمبر 2009, 6:19 pm

شكرا للمعلومة القيمة يا مبدع
توقيــع العضو Rasti
الرجوع الى أعلى الصفحة اذهب الى الأسفل
شميران كركوكي
أدارةأدارة
بيانات العضو
الجنس : ذكر
عدد المساهمات : 2120
نقاط : 16982
تاريخ التسجيل : 23/09/2009
العمر : 28

مُساهمةموضوع: رد: التشفير بطريقة Vigenere's cipher))   الخميس 24 يونيو 2010, 12:12 am

شــــــــــــــكــــــــــــــرا
توقيــع العضو شميران كركوكي



بیر له‌ زیان بكه‌وه‌ به‌لام خه‌فه‌تی بو مه‌خو
الرجوع الى أعلى الصفحة اذهب الى الأسفل
 

التشفير بطريقة Vigenere's cipher))

استعرض الموضوع السابق استعرض الموضوع التالي الرجوع الى أعلى الصفحة 
صفحة 1 من اصل 1

صلاحيات هذا المنتدى:لاتستطيع الرد على المواضيع في هذا المنتدى
منتديات كركوك تايمز :: منتديات الكومبيوتر و الانترنيت :: منتدى الكومبيوتر و الانترنيت العام-
a
انتقل الى: