[right]
[center][b][color:b4e4=red][font:b4e4="]بروتوكول [/font][/color][/b][b][color:b4e4=red][font:b4e4="]المفتاح العام[/font][/color][/b][b][color:b4e4=red][font:b4e4="]:[/font][/color][/b][b][i][color:b4e4=red]Public Key[/color][/i][/b] [b][i][color:b4e4=red]Protocol[/color][/i][/b]
[/center]
إن أنظمة تشفير المفتاح العام هي مناسبة بشكل مثالي للتوقيعات
الرقمية .لنفرض أن تشفير المفتاح العام من أجل مستخدم (u)مدخل عبر E(M,K[sub]U[/sub])وإن
تحويل المفتاح الخاص لـ u
مكتوب D(M,K[sub]U[/sub]) يمكن افتراض E على أنها التحويل الخاص(بما أن u هو الوحيد الذي يستطيع بك تشفيرها) وأن D
كتحويل موثق حيث أن u هو الوحيد الذي يستطيع إنتاجها . مثلاً في خوارزمية RSA إن D وE تبادليان
[center][center]D(E(M,-),-)
=M=E(D(M,-),-)[/center][/center]
إذا
أرسل S رسالة M إلىR يستخدم S التحويل الموثق لينتج D(M,K[sub]S[/sub]).ثم يرسل S D(M,K[sub]S[/sub]) إلى R. يفك R تشفير الرسالة مع مفتاح التحويل العام
الخاص بـ S لحساب E(D(M,K[sub]S[/sub]). بما أن S فقط يستطيع خلق رسالة E(-,K[sub]S[/sub])
، فإن الرسالة حتماً قادمة من S. هذا الاختبار يفي متطلب الوثوقية و سوف يحفظ D(M,K[sub]S[/sub]) R . إذا S
أراد لاحقاً أن يدعي بأن الرسالة ضرورة فإن R يستطيع بسهولة إبرازE(M,K[sub]S[/sub]) .
يستطيع أي شخص التحقق بأن D(M,K[sub]S[/sub]) حولت إلى M
باستخدام مفتاح التحويل العام الخاص بـS ولكن فقط S يستطيع إنتاج -D(M,K[sub]S[/sub])
لذلك فإن D(M,K[sub]S[/sub]) يجب أن تكون مرسلة من قبل S وهذا الاختبار يفي بنتطلب
عدم التزوير.
إن حل المفتاح العام هو أقل إرباكاً بشكل
واضح من حل المفتاح الخاص ويوجد سيئة واحدة له هي بأن الرسالة موثقة ولكنها ليست
خاصة وهذا يعني أن أي شخص يعرف المفتاح العام لـ S يستطيع ترجمة الرسالة . نستطيع التغلب
على هذه السيئة باستخدام تشفيرين .
بما
أن S
يرسلM
إلى R فإنه يمكن بلوغ الوثوقية من خلال
المفتاح الخاص التابع لـ S ويمكن بلوغ السرية من
خلال المفتاح العام التابع لـ R ، مثلاً يستطيع S إرسال E(D(M,K[sub]S[/sub]),K[sub]R[/sub]) إلى R
، بما أن S
هو فقط يستطيع إنتاج D(-,K[sub]S[/sub]) فإن الرسالة ستكون حتماً من S ولكن بما أن R يستطيع فك تشفير E(-,K[sub]R[/sub]) فإن محتوى الرسالة يبقى خاصاً حتى يقوم R بتحويلهاوهكذا باستخدام تشفيرين فإننا
نحصل على بروتوكول يؤمن الخصوصية والوثوقية .
إن
الطابع الزمني كما وصفناه سابقاً يمكن أن يستخدم ليحمي من إعادة الاستخدام وتابع
الضمان يستطيع أيضاً منع تقسيم النص المشفر إلى أجزاء وإعادة تشكيله.
[b][color:b4e4=red][font:b4e4="]بروتوكول التصويت بواسطة
الكومبيوتر: [/font][/color][/b]
[b][color:b4e4=red]Voting By Computer Protocol[/color][/b]
هناك
مشكلة تتعلق برسالة موثقة غير قابلة للتتبع حتى الآن فمثلاً هناك اتصالات تسمح
للناس لمشاركين في تجربة ما الإجابة بشكل سري على استفسار موثوق ومن ناحية أخرى
يمكن للكومبيوتر القيام بالانتخاب ،هناك مثال آخر يستخدم إجراءات آلية خاصة ( مثل
حسابات بنك سويسرا ) حيث تكون التمويلات المالية موثوقة ولكن غير قابلة لتتبع أثر
المرسل الاصلي .
في
الحالات الثلاث السابقة نحتاج إلى بروتوكول ليؤكد الوثوقية والشرعية حيث على كل
رسالة في النظام أن تأتي من مستخدم شرعي ولكن يمكن أن يرتبط مستخدم برسالة معينة
حالما يتم بعبث هذه الرسالة. إن متطلبات أمن هذا البروتوكول هي التالية :
1-
يستطيع
المستخدمون الموثوقون فقط إرسال الرسائل .
2-
يستطيع كل
مستخدم إرسال رسالة واحدة فقط في كل مرة .
3-
لا أحد يستطيع
تحديد من قام بارسال رسالة ما .
لرؤية
آلية عمل البروتوكول سنشرح مثالاً عن التصويت.
ليكن لدينا ثلاثة مصوتين (J,K,L) يصوتون بـ(نعم) أو(لا ) على قضية ما
وليكن لكل مصوت تابع مفتاح التشفير العام ( PULIC KEY
ENCYPTION FUNCTION)
لأنه سيكون هناك مستويات منفصلة من التوابع وسنرمز بـ E[sub]U[/sub] و D[sub]U[/sub] إلى كلاً من التحويلات العامة والخاصة
من أجل كل مستخدم (u) .
تابع التشفير
الأول (E) هو تابع تشفير تقليدي لكن الثاني (R)
يغلف الرسالة بسلسلة عشوائية ومن ثم يشفر النتيجة .
يمكن لشخصين أن
يكون لهما نفس التصويت وعندها يجب على البروتوكول أن يسمح لكل مستخدم بتمييز
تصويته بدون أن يكون لديه القدرة لمعرفة تصويت الآخرين ولو كان مماثلاً لتصويته .
يزوّد التشفير (R)
مع سلسلة عشوائية بالسرية المطلوبة حيث يتم ظاهرياً حجب التصويتين لأن التصويتين
المتطابقين يملكان سلسلتين عشوائيتين مختلفتين .
[font:b4e4="]يمكن لكل مصوّت بشكل منفرد أن يعرف تصويته وبما أن
كل فك تشفير [/font][font:b4e4="]R تابع لشخص ما معروف فقط من قبله لذلك فإن المرسل فقط يستطيع أن
يؤكد أن ورقة اقتراعه هي ضمن الأوراق التي سوف تحصل . [/font] [font:b4e4="]. [/font]
[b][i][color:b4e4=red]بروتوكول التصويت : [/color][/i][/b]
يختار كل مصوت صوت ( V )
ويحسب مستخدماً التشفير العام
[center][center]R[sub]J[/sub](R[sub]R[/sub]
( R[sub]L[/sub] ( E[sub]J[/sub] ( E[sub]X[/sub] ( E[sub]L[/sub] (V ))))))[/center][/center]
ترسل كل
التصويتات المشفرة إلى المصوت الأول (
J ) الذي يتحقق من أن
ورقة تصويته هي بين المجموعة المستقبلة ثم يزيل J المستوى الأول من التشفير من كل الأوراق
باستخدام
[center][center]D[sub]J[/sub]
( R[sub]J[/sub] ( R[sub]R[/sub]( R[sub]L[/sub] ( E[sub]R[/sub] (V))))) = R[sub]K[/sub]
( R[sub]L[/sub] ( E[sub]J[/sub] ( E[sub]K[/sub] ( E[sub]L [/sub]( V )))))[/center][/center]
ثم يبعث ( J )
الأوراق في ترتيب عشوائي إلى K الذي يتحقق من ورقته ويفك تشفير مستوى واحد وينتج :
[center][center]D[sub]K[/sub]
( R[sub]K[/sub] ( R[sub]L[/sub] ( E[sub]J[/sub] (E[sub]R[/sub] ( E[sub]L[/sub]
( V )))))) = R[sub]L[/sub] ( E[sub]J[/sub] ( E[sub]K[/sub] ( E[sub]L[/sub] ( V
)))[/center][/center]
ويبعث k هذه النتيجة إلى L الذي يبعث E[sub]J[/sub](
E[sub]R[/sub] ( E[sub]L[/sub] ( V ))) إلى J
من أجل كل ( v ) ويوقع L الأصوات مع توقيع رقمي باعثاً هذا
التوقيع إلى J
و k ، حيث يزيل J مستواً واحد آخر من التشفير ويتحقق بأن
صوته ما زال في المجموعة و يحول هذه الأوراق إلى K ، ويبعث التوقيعات الرقمية للأوراق إلى K و L ، يستقبلK الـE[sub]K[/sub](
E[sub]L[/sub] ( V ))
من J ويزيل K التشفير ليحصل
على E[sub]L[/sub]
( V ) من أجل L يزيل E[sub]L[/sub]
وينشر النتائج .وهكذا يعمل هذا البروتوكول لأن عملية التحليل هي سلسلة ذات 6 ارتباطات
[img(27,12)]
file:///C:/Users/DELL/AppData/Local/Temp/msohtmlclip1/01/clip_image001.gif[/img][img(27,12)]file:///C:/Users/DELL/AppData/Local/Temp/msohtmlclip1/01/clip_image001.gif[/img][img(27,12)]file:///C:/Users/DELL/AppData/Local/Temp/msohtmlclip1/01/clip_image001.gif[/img][img(27,12)]file:///C:/Users/DELL/AppData/Local/Temp/msohtmlclip1/01/clip_image001.gif[/img][img(27,12)]file:///C:/Users/DELL/AppData/Local/Temp/msohtmlclip1/01/clip_image001.gif[/img]J K L J
K L
يمكن
للنتائج في كل ارتباط من السلسلة أن تصبح عامة بدون أن يستطيع أي شخص التراجع ( BACKWARD )
لكن شخص واحد فقط يستطيع التقدم (
FORWARD ) ، هذا يعني :
[img(27,12)]
file:///C:/Users/DELL/AppData/Local/Temp/msohtmlclip1/01/clip_image002.gif[/img]لنفرض بأن J نقل الأصوات وحررها إلى K يستطيع J فقط إنجاز هذا التحويل لكن K يستطيع فقط إنجاز التحويل العكسي J K لرؤية إن كان J قد مرر لـ K ما يطابق ما قد بدأ به J .هذه القابلية للتحقق من كل أعمال الآخرين تمنع
أي شخص من الغش .
[/right]