0% found this document useful (0 votes)
30 views

Introduction To Cryptography

Uploaded by

A D
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
30 views

Introduction To Cryptography

Uploaded by

A D
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 197

‫ﺑﻪ ﻧﺎم ﺧﺪا‬

‫داﻧﺸ ﺪهی ﻋﻠﻮم رﯾﺎﺿ‬

‫‪ ١۵‬ﺑﻬﻤﻦ ‪١٣٩١‬‬ ‫ﻣﻘﺪﻣﻪای ﺑﺮ رﻣﺰﻧ ﺎری‬

‫ﺟﻠﺴﻪی ‪ :١‬ﻣﻘﺪﻣﻪ‬
‫ﻧ ﺎرﻧﺪه‪ :‬ﺳﻬ ﺻﺎﻟﺤﯿﺎن ﻗﻤﺼﺮی‬ ‫ﻣﺪرس‪ :‬دﮐﺘﺮ ﺷﻬﺮام ﺧﺰاﺋ‬

‫‪ ١‬ﻣﻔﺎﻫﯿﻢ اوﻟﯿﻪ‬
‫اﻣﺮوزه در رﻣﺰﻧ ﺎری ‪ ١‬ﻣﺴﺎﺋﻞ ﮔﻮﻧﺎﮔﻮﻧ ﻣﺎﻧﻨﺪ ﭘﺮوﺗ ﻞﻫﺎی رﻣﺰﻧ ﺎری ‪ ٢‬ﻣﻄﺮح ﻣ ﺑﺎﺷﺪ وﻟﯿ ﻦ ﻣﻮﺿﻮع اﺻﻠ اﯾﻦ درس‬
‫اوﻟﯿﻪﻫﺎی رﻣﺰﻧ ﺎری ‪ ٣‬و درک اﻫﻤﯿﺖ آنﻫﺎﺳﺖ‪.‬‬
‫ﺗﺎﮐﯿﺪ ﺑﺮ اﯾﻦ ﻧ ﺘﻪ ﮐﻪ رﻣﺰﻧ ﺎری و ﮐﺪﯾﻨ ‪ ۴‬دو اﻣﺮ ﻣﺘﻔﺎوت ﻣ ﺑﺎﺷﻨﺪ‪ ،‬اﻣﺮی اﻟﺰاﻣ ﺳﺖ‪ .‬در واﻗﻊ ﮐﺪﯾﻨ ﻗﺴﻤﺘ از‬
‫ﻋﻤﻠﯿﺎت اﻧﺘﻘﺎل ﯾ ﭘﯿﺎم اﺳﺖ‪ .‬دو ﻧﻮع ﮐﺪﯾﻨ وﺟﻮد دارد‪ .‬ﻧﻮع اول‪ ،‬ﮐﺪﯾﻨ ﻣﻨﺒﻊ اﺳﺖ ﮐﻪ ﺟﺰﺋ از ﻣﺪل اوﻟﯿﻪ زﯾﺮ‬
‫اﺳﺖ ﮐﻪ اﻧﺘﻘﺎل اﻃﻼﻋﺎت را ﻧﺸﺎن ﻣ دﻫﺪ‪.‬‬

‫ﻣﻨﺒﻊ ‪.‬‬
‫اﻃﻼﻋﺎﺗ‬ ‫ﻣﻨﺒﻊ‬ ‫ﮐﺪﯾﻨ‬ ‫ﮐﺎﻧﺎل‬ ‫ﮐﺪﯾﻨ‬

‫‪Eve‬‬ ‫ﮐﺎﻧﺎل ارﺳﺎﻟ‬

‫دادهﻫﺎی‬
‫ﻣﻨﺒﻊ‬ ‫دﮐﺪﯾﻨ‬ ‫ﮐﺎﻧﺎل‬ ‫دﮐﺪﯾﻨ‬
‫ارﺳﺎﻟ‬

‫در ﺷ ﻞ ﺑﺎﻻ‪ ،‬ﻣﻨﺒﻊ اﻃﻼﻋﺎﺗ ﻣ ﺗﻮاﻧﺪ ﺷﺎﻣﻞ ﻫﺮ ﻧﻮﻋ از اﻃﻼﻋﺎت از ﻗﺒﯿﻞ‪ :‬ﺻﻮت‪ ،‬ﺗﺼﻮﯾﺮ‪ ،‬ﻣﺘﻦ و ‪ ...‬ﺑﺎﺷﺪ‪ .‬وﻇﯿﻔﻪ‬
‫»ﮐﺪﯾﻨ ﻣﻨﺒﻊ« ﻧﯿﺰ ﻓﺸﺮدهﺳﺎزی اﻃﻼﻋﺎت ﻣﻮﺟﻮد در ﻣﻨﺒﻊ و ﺗﺒﺪﯾﻞ ﮐﺮدنﺷﺎن ﺑﻪ ﺑﯿﺖﻫﺎی ‪ ٠‬و ‪ ١‬اﺳﺖ‪.‬‬
‫‪١‬‬
‫‪cryptography‬‬
‫‪٢‬‬
‫‪cryptographic perimitives‬‬
‫‪٣‬‬
‫‪cryptographic protocoles‬‬
‫‪۴‬‬
‫‪coding‬‬

‫‪١-١‬‬
‫ﺑﺮای ﮐﺎﻫﺶ اﺣﺘﻤﺎل ﺧﻄﺎی ﮐﺎﻧﺎل ﻧﯿﺎز ﺑﻪ اﺿﺎﻓﻪ ﮐﺮدن ﻧﻮع دوم از ﮐﺪﯾﻨ ‪ ،‬ﯾﻌﻨ »ﮐﺪﯾﻨ ﮐﺎﻧﺎل«‪ ،‬ﻣﯿﺎن »ﮐﺪﯾﻨ ﻣﻨﺒﻊ«‬
‫و »ﮐﺎﻧﺎل ارﺳﺎﻟ « اﺳﺖ‪ Eve .‬ﯾﺎ ﺣﻤﻠﻪ ﮐﻨﻨﺪه ‪ ۵‬و ﯾﺎ ﻣﻬﺎﺟﻢ ‪ ۶‬ﮐﺎﻣﭙﯿﻮﺗﺮی اﺳﺖ ﮐﻪ ﻗﺼﺪ ﺣﻤﻠﻪ و دزدﯾﺪن اﻃﻼﻋﺎت را‬
‫دارد و ﻫﻤﺎن ﻃﻮر ﮐﻪ در ﺷ ﻞ ﻧﺸﺎن داده ﺷﺪه اﺳﺖ ﻫﺪف ﺣﻤﻠﻪﻫﺎﯾﺶ ﮐﺎﻧﺎل ارﺗﺒﺎﻃ اﺳﺖ‪ .‬در واﻗﻊ ﯾ از اﻫﺪاف رﻣﺰ‬
‫ﻧ ﺎری ﻣﺤﺮﻣﺎﻧ ‪ ٧‬و ﺟﻠﻮﮔﯿﺮی از ﭼﻨﯿﻦ ﺣﻤﻼﺗ اﺳﺖ‪ .‬در رﻣﺰﻧ ﺎری ﺑﺮای رﺳﯿﺪن ﺑﻪ ﻫﺪف »ﻣﺤﺮﻣﺎﻧ « اﻟ ﻮرﯾﺘﻢﻫﺎی‬
‫‪ Enc‬و ‪ Dec‬را ﺑﻪ دﯾﺎﮔﺮام ﺑﺎﻻ اﺿﺎﻓﻪ ﻣ ﮐﻨﯿﻢ ﮐﻪ ﻫﺮ دو ﺑﻪ ﮐﻠﯿﺪ رﻣﺰ ‪ k‬واﺑﺴﺘﻪاﻧﺪ‪:‬‬

‫‪k‬‬

‫ﻣﻨﺒﻊ ‪.‬‬
‫اﻃﻼﻋﺎﺗ‬ ‫ﻣﻨﺒﻊ‬ ‫ﮐﺪﯾﻨ‬ ‫‪Enc‬‬ ‫ﮐﺎﻧﺎل‬ ‫ﮐﺪﯾﻨ‬

‫‪Eve‬‬ ‫ﮐﺎﻧﺎل ارﺳﺎﻟ‬

‫دادهﻫﺎی‬
‫ﻣﻨﺒﻊ‬ ‫دﮐﺪﯾﻨ‬ ‫‪Dec‬‬ ‫ﮐﺎﻧﺎل‬ ‫دﮐﺪﯾﻨ‬
‫ارﺳﺎﻟ‬

‫‪k‬‬

‫در واﻗﻊ ﺗﻨﻬﺎ ﻗﺴﻤﺘ از دﯾﺎﮔﺮام ﺑﺎﻻ ﮐﻪ ﻣﺮﺑﻮط ﺑﻪ اﻟ ﻮرﯾﺘﻢﻫﺎی رﻣﺰﻧ ﺎری اﺳﺖ‪ ،‬ﻣﺪ ﻧﻈﺮ ﻣﺎ در اﯾﻦ درس ﻣ ﺑﺎﺷﺪ‪ .‬ﺳﻪ‬
‫ﻗﺴﻤﺖ »ﮐﺪﯾﻨ ﮐﺎﻧﺎل«‪» ،‬ﮐﺎﻧﺎل« و »دﮐﺪﯾﻨ ﮐﺎﻧﺎل« را ﻣﺠﻤﻮﻋﺎً »ﮐﺎﻧﺎل« ﻣ ﻧﺎﻣﯿﻢ‪ .‬ﻓﺮض ﻣ ﮐﻨﯿﻢ ﮐﺎﻧﺎلﻫﺎ ﺑﺪون ﺧﻄﺎ‬
‫ﺑﻮده و از ﺑﺮرﺳ اﺷﺎن ﺻﺮف ﻧﻈﺮ ﻣ ﮐﻨﯿﻢ‪.‬‬
‫ﺣﺎل دو ﮐﺎﻣﭙﯿﻮﺗﺮ ‪ Alice‬و ‪ Bob‬را در ﻧﻈﺮ ﺑ ﯿﺮﯾﺪ ﮐﻪ از ﻃﺮﯾﻖ ﮐﺎﻧﺎﻟ ﮐﻪ ﺗﻮﺳﻂ ‪ Eve‬رﺻﺪ ﻣ ﺷﻮد‪ ،‬ﻗﺼﺪ ﻣ ﺎﻟﻤﻪ‬
‫دارﻧﺪ‪:‬‬

‫‪۵‬‬
‫‪attacker‬‬
‫‪۶‬‬
‫‪adversary‬‬
‫‪٧‬‬
‫‪confidenciality‬‬

‫‪١-٢‬‬
‫ﺷ ﻞ ‪ Alice :١‬و ‪ Bob‬ﻗﺼﺪ ﻣ ﺎﻟﻤﻪ دارﻧﺪ‪.‬‬

‫ﺣﺎل ﻓﺮض ﮐﻨﯿﺪ ‪ Alice‬ﻗﺼﺪ ارﺳﺎل ﻣﺘﻦ اﺻﻠ ‪ m ٨‬را ﺑﻪ ‪ Bob‬از ﻃﺮﯾﻖ اﯾﻦ ﮐﺎﻧﺎل دارد‪) .‬ﺗﻮﺟﻪ ﮐﻨﯿﺪ ﮐﻪ ﺑﺨﺶﻫﺎی‬
‫ﮐﺪﯾﻨ و دﮐﺪﯾﻨ ﻣﻨﺒﻊ ﻣﻮرد ﺗﻮﺟﻪ ﻣﺎ ﻧﯿﺴﺘﻨﺪ و ‪ m‬را ﺑﻪ ﺻﻮرت رﺷﺘﻪای از ﺣﺮوف روی ﯾ اﻟﻔﺒﺎ ﻣﺎﻧﻨﺪ اﻟﻔﺒﺎی }‪{۰, ۱‬‬
‫در ﻧﻈﺮ ﻣ ﮔﯿﺮﯾﻢ(‪ .‬اﺑﺘﺪا ﺑﺎ اﺳﺘﻔﺎده از اﻟ ﻮرﯾﺘﻢ رﻣﺰﻧ ﺎری ‪ Enc‬ﻋﻤﻠﯿﺎت رﻣﺰﮐﺮدن ‪ ٩‬ﻣﺘﻦ ‪ m‬و ﺗﺒﺪﯾﻞ آن ﺑﻪ ﻣﺘﻦ رﻣﺰی ‪c ١٠‬‬
‫اﻧﺠﺎم ﻣ ﺷﻮد‪ .‬ﭘﺲ از ارﺳﺎل ﻣﺘﻦ رﻣﺰی ‪ c‬از ﻃﺮﯾﻖ ﮐﺎﻧﺎل و درﯾﺎﻓﺖ آن در ﺳﻤﺖ دﯾ ﺮ‪ ،‬ﻧﻮﺑﺖ ﺑﻪ رﻣﺰﮔﺸﺎﯾ ‪ ١١‬ﻣ رﺳﺪ‪.‬‬
‫اﯾﻦ ﮐﺎر ﺗﻮﺳﻂ اﻟ ﻮرﯾﺘﻢ رﻣﺰﮔﺸﺎﯾ ‪ Dec‬اﻧﺠﺎم ﻣ ﺷﻮد و ﭘﺲ از آن ﻣﺘﻦ اﺻﻠ ‪ m‬در اﺧﺘﯿﺎر ‪ Bob‬ﻗﺮار ﻣ ﮔﯿﺮد‪ .‬ﻫﺮ‬
‫دو اﻟ ﻮرﯾﺘﻢ ‪ Enc‬و ‪ Dec‬ﻧﯿﺎزﻣﻨﺪ ﮐﻠﯿﺪ ﻣﺸﺘﺮک ‪ k‬ﻫﺴﺘﻨﺪ )ﻣﻌﻤﻮﻻ ‪ ٨٠‬اﻟ ‪ ٢۵۶‬ﺑﯿﺖ( ﮐﻪ ﺑﺎﯾﺪ آن را از ﻃﺮﯾﻖ ﮐﺎﻧﺎل‬
‫اﻣﻨ ﮐﻪ ‪ Eve‬ﺑﻪ آن دﺳﺘﺮﺳ ﻧﺪارد‪ ،‬ﺑﻪ اﺷﺘﺮاک ﺑ ﺬارﻧﺪ‪ ١٢ .‬دﯾﺎﮔﺮام ذﯾﻞ‪ ،‬ﻋﻤﻠﯿﺎت ﺑﺎﻻ را ﻧﺸﺎن ﻣ دﻫﺪ‪:‬‬

‫‪Eve‬‬

‫‪.‬‬ ‫‪m‬‬ ‫‪c‬‬ ‫‪c‬‬ ‫‪m‬‬


‫‪Alice‬‬ ‫‪Enc‬‬ ‫ﮐﺎﻧﺎل‬ ‫‪Dec‬‬ ‫‪Bob‬‬

‫‪k‬‬ ‫‪k‬‬

‫ﺳﯿﺴﺘﻢ رﻣﺰ ﻣ ﭘﺮدازﯾﻢ‪.‬‬ ‫ﺣﺎل ﺑﻪ ﺷﺮح ﻧﻤﻮﻧﻪ ﺳﺎدهای از ﯾ‬

‫ﺳﯿﺴﺘﻢ رﻣﺰ ﺳﺰار‬ ‫‪٢‬‬


‫ﻣﺘﻦ رﻣﺰﺷﺪه زﯾﺮ ﺗﻮﺳﻂ ‪ Eve‬رﺻﺪ ﺷﺪه اﺳﺖ‪:‬‬
‫‪٨‬‬
‫‪plaintext‬‬
‫‪٩‬‬
‫‪encryption‬‬
‫‪١٠‬‬
‫‪ciphertext‬‬
‫‪١١‬‬
‫‪decryption‬‬
‫‪١٢‬‬
‫‪key establishment‬‬

‫‪١-٣‬‬
‫”‪“L dp d fubswrjudskhu dqg L pdnh vhfuhw frghv‬‬

‫آﯾﺎ ﻣ ﺗﻮاﻧﯿﺪ ﺣﺪس ﺑﺰﻧﯿﺪ ﮐﻪ ﻣﺘﻦ اﺻﻠ ﭼﻪ ﺑﻮده اﺳﺖ؟‬


‫در واﻗﻊ ﺑﺎ ﮐﻤ ﺑﺮرﺳ ﮐﻠﻤﺎت ﺗ و دو ﺣﺮﻓ زﺑﺎن اﻧ ﻠﯿﺴ درﺧﻮاﻫﯿﺪ ﯾﺎﻓﺖ ﮐﻪ در ﻣﺘﻦ رﻣﺰﺷﺪه ﻫﺮ ﯾ از ﺣﺮوف‬
‫زﺑﺎن اﻧ ﻠﯿﺴ ﺑﻪ ﺳﻪ ﺣﺮف ﺑﻌﺪ از ﺧﻮد ﺷﯿﻔﺖ ‪ ١٣‬داده ﺷﺪهاﻧﺪ‪ .‬ﺑﺎ ﺟﺎﯾ ﺰﯾﻨ ﻫﺮ ﺣﺮف رﻣﺰﺷﺪه ﺑﺎ ﺣﺮف اﺻﻠ اش‪ ،‬ﻣﺘﻦ‬

‫”‪“I am a cryptographer and I make secret codes‬‬

‫ﺣﺎﺻﻞ ﺧﻮاﻫﺪ ﺷﺪ‪.‬‬


‫ﺣﺮف ”‪ “d‬ﯾﺎ ﺟﺎﯾ ﺰﯾﻦ‬ ‫ﺑﻪ ﻃﻮر ﻣﺜﺎل ﺗ ﺣﺮف ”‪ “L‬ﮐﻪ دو ﻣﺮﺗﺒﻪ در ﻣﺘﻦ رﻣﺰﺷﺪه ﻣﺸﺎﻫﺪه ﻣ ﺷﻮد و ﻫﻤﭽﻨﯿﻦ ﺗ‬
‫ﮐﻠﻤﻪ ﺗ ﺣﺮﻓ ”‪ “a‬و ﯾﺎ ”‪ “I‬ﻣ ﺑﺎﺷﻨﺪ ‪. ...‬‬
‫اﯾﻦ ﺳﯿﺴﺘﻢ رﻣﺰ‪ ،‬ﺳﯿﺴﺘﻤ اﺳﺖ ﮐﻪ ژوﻟﯿﻮس ﺳﺰار ‪ ١۴‬در ﺣﻮاﻟ ﺳﺎل ‪ ۵٠BC‬از آن اﺳﺘﻔﺎده ﻣ ﮐﺮده اﺳﺖ و ﺑﻪ رﻣﺰ‬
‫ﺳﺰار ‪ ١۵‬ﻣﻌﺮوف اﺳﺖ‪.‬‬

‫ﺷ ﻞ ‪ :٢‬ﺳﯿﺴﺘﻢ رﻣﺰ ﺳﺰار‬

‫ﺑﺮای ﺗﻌﻤﯿﻢ اﯾﻦ ﺳﯿﺴﺘﻢ رﻣﺰ ﻣ ﺗﻮان ﺑﻪ ﺟﺎی ﺷﯿﻔﺖ ﺳﻪ ﺗﺎﯾ از ﺷﯿﻔﺖ ‪k‬ﺗﺎﯾ ﺣﺮوف اﺳﺘﻔﺎده ﮐﺮد‪ .‬ﺑﺪﯾﻦ ﻣﻌﻨﺎ ﮐﻪ ﺑﺮای‬
‫رﻣﺰ ﮐﺮدن ﻣﺘﻦ اﺻﻠ ‪ ،‬ﻫﺮ ﺣﺮف را ﺑﻪ ‪ k‬ﺣﺮف ﺑﻌﺪ از آن ﺷﯿﻔﺖ دﻫﯿﻢ ﮐﻪ در اﯾﻦﺻﻮرت اﻧﺪازه ﻓﻀﺎی ﮐﻠﯿﺪ ‪) ١۶‬ﮐﻪ ﺑﺎ‬
‫‪ K‬ﻧﺸﺎن داده ﻣ ﺷﻮد( ﺑﺮاﺑﺮ ﺑﺎ ﺗﻌﺪاد ﺣﺮوف اﻧ ﻠﯿﺴ ﯾﻌﻨ ‪ ٢۶‬ﺧﻮاﻫﺪ ﺑﻮد‪ ،‬ﯾﻌﻨ ‪.|K| = ۲۶‬‬
‫در اﺻﻠ ﺑﻪ ﻧﺎم اﺻﻞ ﮐﯿﺮﺷﻬﻒ ‪ ، ١٧‬ﻓﺮض را ﺑﺮ ﻋﻤﻮﻣ ﺑﻮدن اﻟ ﻮرﯾﺘﻢﻫﺎی رﻣﺰﻧ ﺎری ﻗﺮار ﺧﻮاﻫﯿﻢ داد و در اﯾﻦﺻﻮرت‬
‫ﺗﻤﺎم اﻣﻨﯿﺖ ﺑﻪ ﻋﻬﺪه »ﮐﻠﯿﺪ« ﻗﺮار ﺧﻮاﻫﺪ ﮔﺮﻓﺖ‪ .‬ﺑﻨﺎﺑﺮاﯾﻦ ﻫﺮ ﯾ از ﻣﺎﺷﯿﻦﻫﺎی ‪ Enc‬و ‪ Dec‬در اﺧﺘﯿﺎر ﻫﺮ ﯾ از‬
‫‪ Bob ،Alice‬و ‪ Eve‬ﻗﺮار دارد؛ اﻣﺎ ﮐﻠﯿﺪ ‪ k‬ﻣﯿﺎن ‪ Alice‬و ‪ Bob‬ﻣﺤﺮﻣﺎﻧﻪ اﺳﺖ و ‪ Eve‬ﺑﻪ آن دﺳﺘﺮﺳ ﻧﺪارد‪.‬‬
‫ﺑﺮای ﺳﯿﺴﺘﻢ رﻣﺰ ﺳﺰار دارﯾﻢ‪:‬‬
‫‪Enck (m۱ m۲ . . . mn ) = c۱ c۲ . . . cn‬‬
‫ﮐﻪ ﺑﺮای ﻣﺤﺎﺳﺒﻪ ﻫﺮ ‪ ci‬راﺑﻄﻪ زﯾﺮ ﺑﺮﻗﺮار اﺳﺖ‪:‬‬

‫‪c i = mi + k‬‬ ‫‪mod ۲۶‬‬

‫و اﯾﻦ ﺑﺪان ﻣﻌﻨﺎﺳﺖ ﮐﻪ ﺑﺮای ﺷ ﺴﺘﻦ رﻣﺰ ﺳﺰار ﮐﺎﻓ ﺳﺖ ‪ ٢۶‬ﮐﻠﯿﺪ )ﺗﻌﺪاد ﺣﺮوف زﺑﺎن اﻧ ﻠﯿﺴ ( را ﺑﺮرﺳ ﮐﻨﯿﻢ و‬
‫‪ k‬را ﺑﯿﺎﺑﯿﻢ؛ در ﻧﺘﯿﺠﻪ ﻓﻀﺎی ﮐﻠﯿﺪ ‪ ٢۶‬ﻋﻀﻮی‪ ،‬ﮐﻮﭼ و ﻗﺎﺑﻞ ﺟﺴﺘﺠﻮﺳﺖ‪.‬‬
‫اﻟ ﻮرﯾﺘﻢﻫﺎی رﻣﺰﻧ ﺎری و رﻣﺰﮔﺸﺎﯾ ﮐﻪ در ﻋﻤﻞ ﻣﻮرد اﺳﺘﻔﺎده ﻗﺮار ﻣ ﮔﯿﺮﻧﺪ‪ ،‬اﻟ ﻮرﯾﺘﻢﻫﺎﯾ ﺑﺴﯿﺎر ﺳﺮﯾﻊ ﻫﺴﺘﻨﺪ‪.‬‬
‫در ﺣﺎل ﺣﺎﺿﺮ‪ ،‬ﯾ ﮐﺎﻣﭙﯿﻮﺗﺮ ﻣﻌﻤﻮﻟ ﺑﺮای ﭼﻨﯿﻦ اﻟ ﻮرﯾﺘﻢﻫﺎﯾ ﺑﻪ راﺣﺘ ﻓﻀﺎﻫﺎی ﮐﻠﯿﺪ ﺑﺎ اﻧﺪازهﻫﺎی ﺣﺪاﮐﺜﺮ ﺣﺪود‬
‫‪١٣‬‬
‫‪shift‬‬
‫‪١۴‬‬
‫‪Julius Caesar‬‬
‫‪١۵‬‬
‫‪Caesar cipher‬‬
‫‪١۶‬‬
‫‪key space‬‬
‫‪١٧‬‬
‫???‪Kerckhoffs‬‬

‫‪١-۴‬‬
‫‪ ۲۵۰‬را در زﻣﺎن ﻗﺎﺑﻞ ﺗﺤﻤﻠ ﺟﺴﺘﺠﻮ ﻣ ﮐﻨﻨﺪ‪ .‬ﺑﺪﯾﻦ ﺻﻮرت ﮐﻪ ﺑﺎ ﻓﺮض ﻋﻤﻮﻣ ﺑﻮدن اﻟ ﻮرﯾﺘﻢﻫﺎی ‪ Enc‬و ‪Dec‬‬
‫ﻫﻤﻪ ﮐﻠﯿﺪﻫﺎی ﻣﻤ ﻦ را ﺑﺮرﺳ ﮐﺮده و ﮐﻠﯿﺪ ﻣﻮردﻧﻈﺮ را ﻣ ﯾﺎﺑﻨﺪ‪ .‬اﻟﺒﺘﻪ ﻫﺰﯾﻨﻪ ﺟﺴﺘﺠﻮی ﺗﻤﺎم ﻓﻀﺎی ﮐﻠﯿﺪی ﺑﺎ اﻧﺪازه‬
‫‪ ۲۸۰‬در ﺣﺎل ﺣﺎﺿﺮ زﯾﺎد اﺳﺖ و اﯾﻦ اﻧﺪازه‪ ،‬ﻓﻀﺎی ﮐﻠﯿﺪ ﻣﻨﺎﺳﺒ ﺑﺮای ﺳﯿﺴﺘﻢﻫﺎی رﻣﺰ در ﮐﺎرﺑﺮدﻫﺎﯾ ﮐﻪ ﺣﺴﺎﺳﯿﺖ‬
‫زﯾﺎدی ﻧﻤ ﻃﻠﺒﻨﺪ‪ ،‬ﺧﻮاﻫﺪ ﺑﻮد‪ .‬در واﻗﻊ ﺑﺮای ﺳﻄﻮح ﺑﺎﻻﺗﺮ اﻣﻨﯿﺖ ﻣ ﺗﻮان از ﮐﻠﯿﺪﻫﺎی ‪ ٢۵۶ - ١٢٨‬ﺑﯿﺘ اﺳﺘﻔﺎده ﻧﻤﻮد‪.‬‬
‫ﭼ ﻮﻧﻪ ﻓﻀﺎی ﮐﻠﯿﺪ را در رﻣﺰ ﺳﺰار ﺑﯿﺸﺘﺮ ﮐﻨﯿﻢ؟‬
‫ﯾ ﭘﺎﺳﺦ ﻣ ﺗﻮاﻧﺪ ﺑﺪﯾﻦﺻﻮرت ﺑﺎﺷﺪ ﮐﻪ ‪ m‬را ﺑﻪ ﺻﻮرت ذﯾﻞ ﺑﻪ ‪ c‬ﺑﻨ ﺎرﯾﻢ‪:‬‬

‫‪c = am + b mod ۲۶‬‬

‫ﮐﻪ ﮐﻠﯿﺪ ‪ k‬ﺑﻪ ﺻﻮرت )‪ k = (a, b‬ﺗﻌﺮﯾﻒ ﻣ ﺷﻮد ﮐﻪ‪:‬‬

‫‪gcd(a, ۲۶) = ۱‬‬

‫ﺑﺮای ﻣﺤﺎﺳﺒﻪ اﻧﺪازه ﻓﻀﺎی ﮐﻠﯿﺪ ﺧﻮاﻫﯿﻢ داﺷﺖ‪:‬‬

‫‪|K| = φ(۲۶) × ۲۶ = ۱۲ × ۲۶‬‬

‫آﯾﺎ ﺑﺎز ﻫﻢ ﻣ ﺗﻮان رﻣﺰ ﺳﺰار را ﺗﻌﻤﯿﻢ داد؟‬


‫ﺑﻠﻪ! ﻫﺮ ﺟﺪول دﻟﺨﻮاﻫ را ﻣ ﺗﻮان درﻧﻈﺮ ﮔﺮﻓﺖ ﮐﻪ ﺣﺮوف زﺑﺎن اﻧ ﻠﯿﺴ را ﺑﻪ ﯾ ﺟﺎﯾ ﺸﺖ دﻟﺨﻮاه از آن ﻣ ﺑﺮد و‬
‫اﯾﻦ ﺟﺪول ﻫﻤﺎن ﮐﻠﯿﺪ رﻣﺰ ﺧﻮاﻫﺪ ﺑﻮد‪ .‬در ﻧﺘﯿﺠﻪ اﻧﺪازه ﻓﻀﺎی ﮐﻠﯿﺪ ﺣﺪاﮐﺜﺮ ‪ |K| = ۲۶! ≈ ۲۸۸‬ﻣ ﺑﺎﺷﺪ‪ .‬ﺑﻪ ﻧﻈﺮ‬
‫ﻣ رﺳﺪ ﮐﻪ اﯾﻦ ﻣﻘﺪار ﺑﻪ اﻧﺪازه ﮐﺎﻓ ﺑﺰرگ ﺑﺎﺷﺪ ﮐﻪ ﺟﺴﺘﺠﻮی ﮐﻠﯿﺪ در آن ﺑﻪ راﺣﺘ اﻧﺠﺎمﭘﺬﯾﺮ ﻧﺒﺎﺷﺪ؛ وﻟﯿ ﻦ در اﯾﻦﺟﺎ‬
‫ﻣﺴﺌﻠﻪ دﯾ ﺮی ﺑﻪ ﻧﺎم اﻓﺰوﻧ ‪ ١٨‬ﻣﻄﺮح ﻣ ﺷﻮد‪ .‬در واﻗﻊ ﺣﺮوف زﺑﺎن اﻧ ﻠﯿﺴ دارای ﻓﺮﮐﺎﻧﺲ ﺣﻀﻮر ﺧﺎص ﺧﻮد در‬
‫ﯾ ﻣﺘﻦ ﻣ ﺑﺎﺷﻨﺪ‪ .‬ﻣﺜﻼ ﺑﯿﺸﺘﺮﯾﻦ ﻓﺮﮐﺎﻧﺲﻫﺎی ﺣﻀﻮر ﻣﺘﻌﻠﻖ ﺑﻪ ﺣﺮوف ‪ T ،E‬و ‪ A‬اﺳﺖ‪.‬‬
‫در واﻗﻊ ﺑﺎ اﺳﺘﺨﺮاج ﻓﺮﮐﺎﻧﺲ ﺣﺮوف در ﻣﺘﻦ رﻣﺰﺷﺪه و اﻧﻄﺒﺎق آن ﺑﺎ ﺟﺪاول ﻣﻮﺟﻮد در ﺻﻮرﺗ ﮐﻪ ﻃﻮل ﻣﺘﻦ ﺑﻪ اﻧﺪازه‬
‫ﮐﺎﻓ ﺑﺰرگ ﺑﺎﺷﺪ‪ ،‬ﻣ ﺗﻮان ﺟﺪول ﮐﻠﯿﺪ ﺑﻪ ﮐﺎر ﺑﺮده ﺷﺪه را ﯾﺎﻓﺖ؛ در ﻧﺘﯿﺠﻪ ﺑﻪ ﻃﻮر ﮐﻠ ﻣ ﺗﻮان ﺑﯿﺎن ﮐﺮد ﮐﻪ ﺑﻪ ﻋﻠﺖ‬
‫ﻓﺮﮐﺎﻧﺲ ﺣﺮوف زﺑﺎن اﻧ ﻠﯿﺴ ‪ ،‬رﻣﺰ ﺳﺰار‪ ،‬رﻣﺰ ﻣﻨﺎﺳﺒ ﻧﯿﺴﺖ‪ .‬در ذﯾﻞ ﺟﺪول ﮐﺎﻣﻠ از ﻓﺮﮐﺎﻧﺲ ﺣﺮوف زﺑﺎن اﻧ ﻠﯿﺴ‬
‫را ﻣﺸﺎﻫﺪه ﻣ ﮐﻨﯿﺪ‪:‬‬

‫‪١٨‬‬
‫‪redundancy‬‬

‫‪١-۵‬‬
‫‪E‬‬ ‫‪12.7%‬‬ ‫‪M‬‬ ‫‪2.4%‬‬
‫␣‬ ‫‪12.0%‬‬ ‫‪W‬‬ ‫‪2.4%‬‬
‫‪T‬‬ ‫‪9.8%‬‬ ‫‪F‬‬ ‫‪2.2%‬‬
‫‪A‬‬ ‫‪8.2%‬‬ ‫‪G‬‬ ‫‪2.0%‬‬
‫‪O‬‬ ‫‪7.5%‬‬ ‫‪X‬‬ ‫‪2.0%‬‬
‫‪I‬‬ ‫‪7.0%‬‬ ‫‪P‬‬ ‫‪1.9%‬‬
‫‪N‬‬ ‫‪6.7%‬‬ ‫‪B‬‬ ‫‪1.8%‬‬
‫‪S‬‬ ‫‪6.3%‬‬ ‫‪V‬‬ ‫‪1.0%‬‬
‫‪H‬‬ ‫‪6.1%‬‬ ‫‪K‬‬ ‫‪0.8%‬‬
‫‪R‬‬ ‫‪6.0%‬‬ ‫‪J‬‬ ‫‪0.1%‬‬
‫‪D‬‬ ‫‪4.2%‬‬ ‫‪Q‬‬ ‫‪0.1%‬‬
‫‪L‬‬ ‫‪4.0%‬‬ ‫‪Y‬‬ ‫‪0.1%‬‬
‫‪C‬‬ ‫‪2.8%‬‬ ‫‪Z‬‬ ‫‪0.1%‬‬
‫‪U‬‬ ‫‪2.8%‬‬

‫ﺟﺪول ‪ :١‬ﻓﺮﮐﺎﻧﺲ ﺣﻀﻮر ﺣﺮوف در زﺑﺎن اﻧ ﻠﯿﺴ ﺑﺎ در ﻧﻈﺮ ﮔﺮﻓﺘﻦ ﺣﺮف ﻓﺎﺻﻠﻪ‬

‫اﻫﺪاف رﻣﺰﻧ ﺎری‬ ‫‪٣‬‬


‫اﻫﺪاف رﻣﺰﻧ ﺎری را ﺗﺤﺖ ﺳﻪ ﻫﺪف ﮐﻠ زﯾﺮ ﻣ ﺗﻮان ﺗﻘﺴﯿﻢﺑﻨﺪی ﮐﺮد‪:‬‬
‫‪١٩‬‬
‫‪ .١‬ﻣﺤﺮﻣﺎﻧ‬
‫‪٢٠‬‬
‫‪ .٢‬ﺻﺤﺖ و ﺟﺎﻣﻌﯿﺖ‬
‫‪٢١‬‬
‫‪ .٣‬اﺣﺮاز ﻫﻮﯾﺖ‬

‫رﻣﺰﻧ ﺎری ﺑﺮای دﺳﺘﯿﺎﺑ ﺑﻪ ﻫﺪف ﻣﺤﺮﻣﺎﻧ ﻣﻮرد اﺳﺘﻔﺎده ﻗﺮار ﻣ ﮔﯿﺮد‪ .‬ﺑﺮای اﻃﻤﯿﻨﺎن از ﺻﺤﺖ و دﺳﺖﻧﺨﻮردﮔ‬
‫ﭘﯿﺎم رﻣﺰﺷﺪه ارﺳﺎﻟ از اﺑﺰارﻫﺎی دﯾ ﺮی ﻣﺎﻧﻨﺪ اﻣﻀﺎی دﯾﺠﯿﺘﺎل ‪ ٢٢‬و ‪ ٢٣ MAC‬اﺳﺘﻔﺎده ﻣ ﺷﻮد ﮐﻪ در اﯾﻦ درس ﺑﻪ ﻃﻮر‬
‫ﻣﻔﺼﻞ ﺑﺎ آنﻫﺎ آﺷﻨﺎ ﺧﻮاﻫﯿﻢ ﺷﺪ‪.‬‬
‫اﺑﺰارﻫﺎﯾ ﮐﻪ ﺳﻪ ﻫﺪف ﻓﻮق را ﺑﺮآورده ﻣ ﮐﻨﻨﺪ‪ ،‬اﺑﺰارﻫﺎی ﭘﺎﯾﻪ در رﻣﺰﻧ ﺎری ﻫﺴﺘﻨﺪ ﮐﻪ از آنﻫﺎ ﺑﺮای ﺳﺎﺧﺖ ﭘﺮوﺗ ﻞﻫﺎی‬
‫‪٢۶‬‬
‫ﭘﯿﭽﯿﺪهای ﻣﺎﻧﻨﺪ ﭘﻮل دﯾﺠﯿﺘﺎﻟ ‪ ٢۴‬و رأیﮔﯿﺮی اﻟ ﺘﺮوﻧﯿ ‪ ٢۵‬اﺳﺘﻔﺎده ﻣ ﺷﻮد ﮐﻪ اﻫﺪاف اﻣﻨﯿﺘ دﯾ ﺮی ﻣﺎﻧﻨﺪ ﮔﻤﻨﺎﻣ‬
‫را ﻓﺮاﻫﻢ ﻣ ﮐﻨﻨﺪ‪.‬‬

‫‪١٩‬‬
‫‪confidenciality‬‬
‫‪٢٠‬‬
‫‪integrity‬‬
‫‪٢١‬‬
‫‪authentication‬‬
‫‪٢٢‬‬
‫‪digital signature‬‬
‫‪٢٣‬‬
‫‪message authentication code‬‬
‫‪٢۴‬‬
‫‪digital cash‬‬
‫‪٢۵‬‬
‫‪electronic voting‬‬
‫‪٢۶‬‬
‫‪anonymity‬‬

‫‪١-۶‬‬
‫ﺑﻪ ﻧﺎم ﺧﺪا‬

‫داﻧﺸ ﺪهی ﻋﻠﻮم رﯾﺎﺿ‬

‫‪ ١٧‬ﺑﻬﻤﻦ ‪١٣٩١‬‬ ‫ﻣﻘﺪﻣﻪای ﺑﺮ رﻣﺰﻧ ﺎری‬

‫ﺟﻠﺴﻪی ‪ :٢‬ﺳﯿﺴﺘﻢ رﻣﺰ ﻣﺘﻘﺎرن و ﻣﺪلﻫﺎی ﺣﻤﻠﻪ‬


‫ﻧ ﺎرﻧﺪه‪ :‬اﻣﯿﺮﺑﻬﺸﺎد ﺷﻬﺮاﺳﺒ‬ ‫ﻣﺪرس‪ :‬دﮐﺘﺮ ﺷﻬﺮام ﺧﺰاﺋ‬

‫اﺻﻞ ﮐﺮﺷﻬﻒ‬ ‫‪١‬‬


‫اﺻﻞ ﮐﺮﺷﻬﻒ ‪ ١‬ﭘﺬﯾﺮﻓﺘﻦ ﻓﺮضﻫﺎی زﯾﺮ را در ﺳﯿﺴﺘﻢﻫﺎی رﻣﺰﻧ ﺎری ﻣﻄﺮح ﻣ ﮐﻨﺪ‪:‬‬

‫‪ .١‬اﻟ ﻮرﯾﺘﻢ رﻣﺰﻧ ﺎری آﺷ ﺎر اﺳﺖ‪.‬‬

‫‪ .٢‬اﻣﻨﯿﺖ ﺗﻨﻬﺎ ﺑﻪ ﻣﺨﻔ ﺑﻮدن ﮐﻠﯿﺪ واﺑﺴﺘﻪ اﺳﺖ‪.‬‬

‫ﺳﯿﺴﺘﻢ رﻣﺰ ﻣﺘﻘﺎرن‬ ‫‪٢‬‬


‫ﺳﻪﺗﺎﯾ )‪ Π = (Gen, Enc, Dec‬از اﻟ ﻮرﯾﺘﻢﻫﺎی ﮐﺎراﺳﺖ ﮐﻪ‪:‬‬ ‫ﺳﯿﺴﺘﻢ رﻣﺰ ﻣﺘﻘﺎرن ‪ ،٢‬ﯾ‬ ‫ﺗﻌﺮﯾﻒ ‪ ١‬ﯾ‬

‫ﮐﻠﯿﺪ ‪ k‬از ﻓﻀﺎی ﮐﻠﯿﺪ ‪ K‬ﺗﻮﻟﯿﺪ و ﻓﻀﺎی ﭘﯿﺎم ‪ M‬را ﻣﺸﺨﺺ ﻣ ﮐﻨﺪ‪:‬‬ ‫• ‪ Gen‬اﻟ ﻮرﯾﺘﻢ ﺗﻮﻟﯿﺪ ﮐﻠﯿﺪ اﺳﺖ ﮐﻪ ﯾ‬

‫)(‪k ← Gen‬‬

‫• ‪ Enc‬اﻟ ﻮرﯾﺘﻢ رﻣﺰﻧ ﺎری اﺳﺖ ﮐﻪ ﻣﺘﻦ اﺻﻠ ‪ m ∈ M‬و ﮐﻠﯿﺪ ‪ k ∈ K‬را ﺑﻪ ﻣﺘﻦ رﻣﺰی ‪ c‬ﺗﺒﺪﯾﻞ ﻣ ﮐﻨﺪ‪.‬‬

‫)‪c ← Enck (m‬‬

‫∈ ⊥ = ‪ m‬ﺗﺒﺪﯾﻞ‬
‫• ‪ Dec‬اﻟ ﻮرﯾﺘﻢ رﻣﺰﮔﺸﺎﯾ اﺳﺖ ﮐﻪ ﻫﺮ ﻣﻘﺪار ‪ c‬و ﮐﻠﯿﺪ ‪ k ∈ K‬را ﺑﻪ ﻣﺘﻦ اﺻﻠ ‪ m‬ﯾﺎ ‪/ M‬‬
‫ﻣ ﮐﻨﺪ‪.‬‬

‫)‪m ← Deck (c‬‬

‫• )ﺷﺮط ﺻﺤﺖ( ﺑﻪ ازای ﻫﺮ ‪ k ∈ K ،m ∈ M‬و ‪ c ∈ C‬ﮐﻪ )‪ c = Enck (m‬دارﯾﻢ ‪Deck (c) = m‬؛ ﺑﻪ‬
‫ﻋﺒﺎرت دﯾ ﺮ‪:‬‬
‫‪١‬‬
‫‪Kerckhoffs’s principle‬‬
‫‪٢‬‬
‫‪symmetric cipher‬‬

‫‪٢-١‬‬
‫‪∀m ∈ M‬‬ ‫‪Pr{k ← Gen() : Deck (Enck (m)) = m} = ۱‬‬

‫ﮐﻪ اﺣﺘﻤﺎل روی ﺳ ﻪﻫﺎی ﺗﺼﺎدﻓ اﻟ ﻮرﯾﺘﻢﻫﺎ ﻣﺤﺎﺳﺒﻪ ﻣ ﺷﻮﻧﺪ‪.‬‬

‫در اﯾﻨﺠﺎ ذﮐﺮ ﭼﻨﺪ ﻧ ﺘﻪ ﺿﺮوری اﺳﺖ‪:‬‬


‫ﺳﯿﺴﺘﻢ رﻣﺰﻧ ﺎری در ﻋﻤﻞ ﻗﺎﺑﻞ اﺳﺘﻔﺎده ﺑﺎﺷﺪ‪،‬ﺑﺎﯾﺪ اﻟ ﻮرﯾﺘﻢﻫﺎی ‪ Enc ،Gen‬و ‪” Dec‬ﮐﺎرا“‬ ‫• ﺑﺮای اﯾﻨ ﻪ ﯾ‬
‫ﺑﺎﺷﻨﺪ‪.‬‬
‫‪٣‬‬
‫• ﺗﻌﺮﯾﻒ ﻓﻮق ﻫﯿﭻ ﻣﻔﻬﻮﻣ از اﻣﻨﯿﺖ در ﺧﻮد ﻧﺪارد‪ .‬ﺑﺎ اﯾﻦ وﺟﻮد ﺑﻪ وﺿﻮح اﮔﺮ اﻟ ﻮرﯾﺘﻢ ﺗﻮﻟﯿﺪ ﮐﻠﯿﺪ ﺗﺼﺎدﻓ‬
‫ﻧﺒﺎﺷﺪ‪ ،‬ﺳﯿﺴﺘﻢ دارای اﻣﻨﯿﺖ )ﺑﻪ ﻫﺮ ﺻﻮرت ﻣﻘﺒﻮﻟ ﮐﻪ ﺗﻌﺮﯾﻒ ﺷﻮد( ﻧﺨﻮاﻫﺪ ﺑﻮد‪.‬‬

‫دارای‬ ‫• اﻟ ﻮرﯾﺘﻢ رﻣﺰﻧ ﺎری ﻣﻌﻤﻮﻻ ﺗﺼﺎدﻓ اﺳﺖ‪ .‬اﻣﺎ ﺳﯿﺴﺘﻢﻫﺎﯾ ﮐﻪ در اﺑﺘﺪا ﻣﻌﺮﻓ و ﺑﺮرﺳ ﻣ ﺷﻮﻧﺪ ﻫﻤ‬
‫اﻟ ﻮرﯾﺘﻢ رﻣﺰﻧ ﺎری ﻗﻄﻌ ‪ ۴‬ﻫﺴﺘﻨﺪ‪.‬‬

‫• اﻟ ﻮرﯾﺘﻢ رﻣﺰﮔﺸﺎﯾ ﻗﻄﻌ اﺳﺖ‪ .‬ﻫﻤﭽﻨﯿﻦ در ﺻﻮرﺗ ﮐﻪ اﻟ ﻮرﯾﺘﻢ رﻣﺰﮔﺸﺎﯾ ﻧﻤﺎد ⊥ ﺑﻪ ﻋﻨﻮان ﺧﺮوﺟ ﺑﺮای‬
‫رﻣﺰ ﮔﺸﺎﯾ ﻣﻘﺪار ‪ c‬ﺗﺤﺖ ﮐﻠﯿﺪ ‪ k‬ﺗﻮﻟﯿﺪ ﮐﻨﺪ‪ ،‬ﺑﺪﯾﻦ ﻣﻌﻨﺎﺳﺖ ﮐﻪ ﻣﺘﻦ رﻣﺰی ﻣﻌﺘﺒﺮ ﻧﯿﺴﺖ؛ ﺑﻪ ﻋﺒﺎرت دﯾ ﺮ‪،‬‬
‫ﻣﻘﺪار ‪ c‬ﻧﻤ ﺗﻮاﻧﺪ رﻣﺰﺷﺪهی ﻫﯿﭻ ﻣﺘﻦ اﺻﻠ ﺗﺤﺖ ﮐﻠﯿﺪ ‪ k‬ﺑﺎﺷﺪ‪.‬‬

‫ﺗﻌﺮﯾﻒ ‪ ٢‬ﺳﯿﺴﺘﻢ رﻣﺰ ﺳﺰار ‪ ۵‬را ﺑﻪ ﺷ ﻞ زﯾﺮ ﺗﻌﺮﯾﻒ ﻣ ﮐﻨﯿﻢ‪:‬‬


‫∗}‪M = {a, b, · · · , z‬‬

‫ﻋﺪد ﺗﺼﺎدﻓ از ﻣﺠﻤﻮﻋﻪی }‪ K = {۰, ۱, · · · , ۲۵‬ﺗﻮﻟﯿﺪ ﻣ ﮐﻨﺪ‪.‬‬ ‫• ﺗﻌﺮﯾﻒ ‪ :Gen‬ﯾ‬


‫• ﺗﻌﺮﯾﻒ ‪:Enc‬‬

‫‪Enck (m۱ m۲ · · · mt ) = c۱ c۲ · · · ct‬‬


‫‪ci = mi + k i = ۱, ۲, · · · , t‬‬

‫• ﺗﻌﺮﯾﻒ ‪:Dec‬‬

‫‪Deck (c۱ c۲ · · · ct ) = m۱ m۲ · · · mt‬‬


‫‪mi = ci − k i = ۱, ۲, · · · , t‬‬

‫در واﻗﻊ ﺳﯿﺴﺘﻢ رﻣﺰ ﺳﺰار ﯾ ﮐﻠﯿﺪ ﺗﺼﺎدﻓ در ‪ K‬اﻧﺘﺨﺎب ﻣ ﮐﻨﺪ و ﺣﺮوف ﻣﺘﻦ را ﺑﻪ آن اﻧﺪازه ﺷﯿﻔﺖ ﻣ دﻫﺪ‪.‬‬
‫ﺗﻮﺟﻪ ﮐﻨﯿﺪ اﻟ ﻮرﯾﺘﻢ ‪ Enc‬در اﯾﻦ ﺳﯿﺴﺘﻢ ﻗﻄﻌ ‪ ۶‬اﺳﺖ‪ .‬ﺣﺎل آﻧ ﻪ در ﺣﺎﻟﺖ ﮐﻠ اﯾﻦ اﻟ ﻮرﯾﺘﻢ ﻣ ﺗﻮاﻧﺪ اﺣﺘﻤﺎﻻﺗ‬
‫ﺑﺎﺷﺪ‪) .‬ﺑﺪﯾﻦ ﻣﻌﻨﺎ ﮐﻪ ﺑﺮای ﯾ ورودی ﻣﺸﺨّﺺ‪ ،‬ﺧﺮوﺟ ﯾ ﻣﺘﻐﯿﺮ ﺗﺼﺎدﻓ ‪ ٧‬اﺳﺖ و ﻣﻘﺎدﯾﺮ ﻣﺨﺘﻠﻔ را ﺑﺎ ﯾ‬
‫ﺗﻮزﯾﻊ اﺣﺘﻤﺎﻻﺗ ﻣﻌﯿﻦ اﺧﺘﯿﺎر ﻣ ﮐﻨﺪ‪(.‬‬
‫‪٣‬‬
‫‪probabilistic‬‬
‫‪۴‬‬
‫‪determinisitc‬‬
‫‪۵‬‬
‫‪Caesar cipher‬‬
‫‪۶‬‬
‫‪deterministic‬‬
‫‪٧‬‬
‫‪random variable‬‬

‫‪٢-٢‬‬
‫ﻣﺪلﻫﺎی ﺣﻤﻠﻪ‬ ‫‪٣‬‬
‫ﻣﺪلﻫﺎ ﯾﺎ ﺳﻨﺎرﯾﻮﻫﺎی ﺣﻤﻠﻪ‪ ،‬ﻗﺎﺑﻠﯿﺖﻫﺎی ﻣﻬﺎﺟﻢ را ﺑﺮای ﺣﻤﻠﻪ ﺑﻪ ﯾ ﺳﯿﺴﺘﻢ رﻣﺰ در ﻧﻈﺮ ﻣ ﮔﯿﺮد‪.‬‬
‫ﻣﺪلﻫﺎ )ﯾﺎ ﺳﻨﺎرﯾﻮﻫﺎی( ﺣﻤﻠﻪ ﻗﺪرت و ﺗﻮان ﻣﻬﺎﺟﻢ را در دﺳﺘﯿﺎﺑ ﺑﻪ اﻃﻼﻋﺎت ﺑﯿﺸﺘﺮ )ﻣﺎﻧﻨﺪ اﺳﺘﻔﺎده از دﺳﺘ ﺎه رﻣﺰﮐﻨﻨﺪه‬
‫و دﺳﺘ ﺎه رﻣﺰﮔﺸﺎ( و ﻣﯿﺰان آن ﻣﺪل ﻣ ﮐﻨﺪ‪.‬‬

‫• ﺣﻤﻠﻪی ﻣﺘﻦ رﻣﺰﺷﺪه ‪ :٨‬در اﯾﻦ ﻣﺪل‪ ،‬ﺣﻤﻠﻪ ﮐﻨﻨﺪه ﺗﻨﻬﺎ ﯾ ﻣﺘﻦ رﻣﺰ ﺷﺪه را دارد و ﻣ ﺧﻮاﻫﺪ ﻣﺘﻦ اﺻﻠ را‬
‫رﻣﺰﮔﺸﺎﯾ ﮐﻨﺪ‪ .‬اﯾﻦ رﻣﺰﮔﺸﺎﯾ ﺗﻨﻬﺎ زﻣﺎﻧ ﻣﯿﺴﺮ اﺳﺖ ﮐﻪ ﻣﺘﻦ اﺻﻠ دارای اﻓﺰوﻧ ‪ ٩‬ﺑﺎﺷﺪ‪.‬‬

‫• ﺣﻤﻠﻪی ﻣﺘﻦ اﺻﻠ ﻣﻌﻠﻮم ‪ :١٠‬در اﯾﻦ ﻣﺪل‪ ،‬ﺣﻤﻠﻪ ﮐﻨﻨﺪه ﯾ ﯾﺎ ﭼﻨﺪ زوج )ﻣﺘﻦ اﺻﻠ ‪ ،‬ﻣﺘﻦ رﻣﺰ ﺷﺪه( ﮐﻪ ﺗﺤﺖ‬
‫ﯾ ﮐﻠﯿﺪ ﺣﺎﺻﻞ ﺷﺪهاﻧﺪ را دارد و ﻣ ﺧﻮاﻫﺪ ﻣﺘﻦ اﺻﻠ ﻣﺘﻨﺎﻇﺮ ﺑﺎ ﯾ ﻣﺘﻦ رﻣﺰﺷﺪهی دﯾ ﺮ را ﺑﺪاﻧﺪ‪.‬‬

‫• ﺣﻤﻠﻪی ﻣﺘﻦ اﺻﻠ اﻧﺘﺨﺎﺑ ‪ :١١‬در اﯾﻦ ﻣﺪل‪ ،‬ﺣﻤﻠﻪ ﮐﻨﻨﺪه ﻗﺎدر ﺑﻪ ﺑﺪﺳﺖ آوردن ﻣﺘﻦ رﻣﺰﺷﺪهی ﻣﺘﻨﺎﻇﺮ ﺑﺎ ﻫﺮ‬
‫ﻣﺘﻦ اﺻﻠ ای ﮐﻪ ﺑﺨﻮاﻫﺪ ﻫﺴﺖ و ﻣ ﺧﻮاﻫﺪ ﻣﺘﻦ اﺻﻠ ﻣﺘﻨﺎﻇﺮ ﺑﺎ ﯾ ﻣﺘﻦ رﻣﺰﺷﺪه را ﺑﺪاﻧﺪ‪.‬‬

‫• ﺣﻤﻠﻪی ﻣﺘﻦ رﻣﺰی اﻧﺘﺨﺎﺑ ‪ :١٢‬در اﯾﻦ ﻣﺪل‪ ،‬ﺣﻤﻠﻪ ﮐﻨﻨﺪه ﻣ ﺧﻮاﻫﺪ ﻣﺘﻦ اﺻﻠ ﻣﺘﻨﺎﻇﺮ ﺑﺎ ﯾ ﻣﺘﻦ رﻣﺰﺷﺪه را‬
‫ﺑﺪاﻧﺪ و ﻣﻀﺎف ﺑﺮ اﯾﻨ ﻪ ﻗﺎدر اﺳﺖ ﯾ ﻣﺘﻦ رﻣﺰ ﺷﺪه ﻣﺘﻨﺎﻇﺮ ﺑﺎ ﻫﺮ ﻣﺘﻦ اﺻﻠ دﻟﺨﻮاه را ﺑﺪﺳﺖ آورد‪ ،‬ﻗﺎدر ﺑﻪ‬
‫ﺑﺪﺳﺖ آوردن ﻣﺘﻦ اﺻﻠ ﻣﺘﻨﺎﻇﺮ ﺑﺎ ﻫﺮ ﻣﺘﻦ رﻣﺰﺷﺪهای ﮐﻪ ﺑﺨﻮاﻫﺪ ﻧﯿﺰ ﻫﺴﺖ )ﺟﺰ ﻣﺘﻨ ﮐﻪ ﻣ ﺧﻮاﻫﺪ رﻣﺰﮔﺸﺎﯾ‬
‫ﮐﻨﺪ(‪.‬‬

‫‪ ۴‬ﻫﺪف ﺣﻤﻠﻪﮐﻨﻨﺪه‬
‫ﻣﺘﻦ رﻣﺰ ﺷﺪه در ﻧﻈﺮ ﮔﺮﻓﺘﯿﻢ‪.‬‬ ‫در ﻣﺪلﻫﺎی ﺣﻤﻠﻪی ﺑﺎﻻ‪ ،‬ﻫﺪف ﺣﻤﻠﻪ ﮐﻨﻨﺪه را ﺑﺪﺳﺖ آوردن ﻣﺘﻦ اﺻﻠ ﻣﺘﻨﺎﻇﺮ ﺑﺎ ﯾ‬
‫در ﺣﺎﻟﺖ ﮐﻠ ﺣﻤﻠﻪ ﻣ ﺗﻮاﻧﺪ ﺑﺎ اﻫﺪاف ﻣﺨﺘﻠﻔ ﺻﻮرت ﭘﺬﯾﺮد‪:‬‬

‫‪ -‬ﺑﺪﺳﺖ آوردن ﮐﻠﯿﺪ‬


‫‪ -‬ﻣﺤﺎﺳﺒﻪی ﻣﺘﻦ اﺻﻠ ﻣﻌﺎدل ﯾ ﻣﺘﻦ رﻣﺰ ﺷﺪه‬
‫‪ -‬ﺑﺪﺳﺖ آوردن ﻣﻘﺪاری اﻃّﻼﻋﺎت درﺑﺎزهی ﻣﺘﻦ اﺻﻠ‬
‫‪ -‬اﻋﻤﺎل ﺣﻤﻠﻪی ﺗﻤﺎﯾﺰ ‪) ١٣‬ﺗﺸﺨﯿﺺ اﯾﻨ ﻪ ﮐﺪاﻣﯿ از دو ﻣﺘﻦ اﺻﻠ دﻟﺨﻮاه رﻣﺰ ﺷﺪهاﺳﺖ(‬
‫‪٨‬‬
‫‪ciphertext-only attack‬‬
‫‪٩‬‬
‫‪redundancy‬‬
‫‪١٠‬‬
‫‪known-plaintext attack‬‬
‫‪١١‬‬
‫‪chosen-plaintext attack‬‬
‫‪١٢‬‬
‫‪chosen-ciphertext attack‬‬
‫‪١٣‬‬
‫‪distinguishing‬‬

‫‪٢-٣‬‬
‫‪ ۵‬ﭼﻨﺪ ﺳﯿﺴﺘﻢ ﺳﺎده و ﺣﻤﻠﻪ ﻣﺘﻦ رﻣﺰ ﺷﺪه ﺑﻪ آﻧﻬﺎ‬
‫ﺣﻤﻠﻪ ﺧﻮدﮐﺎر ﺑﻪ رﻣﺰ ﺳﺰار‬ ‫‪١.۵‬‬
‫اﯾﺪهی ﺣﻤﻠﻪ ﺑﻪ رﻣﺰ ﺳﺰار اﺳﺘﻔﺎده از ﺗﻮزﯾﻊ ﻏﯿﺮ ﯾ ﻨﻮاﺧﺖ ﺣﺮوف زﺑﺎن اﻧ ﻠﯿﺴ اﺳﺖ ﮐﻪ اﻧﺪازهﮔﯿﺮیﻫﺎی آﻣﺎری ﻧﺸﺎن‬
‫ﻣ دﻫﺪ ﺑﻪ ﺷ ﻞ زﯾﺮ اﺳﺖ‪:‬‬

‫ﺟﺪول ‪ :١‬ﺗﻮزﯾﻊ ﺣﺮوف زﺑﺎن اﻧ ﻠﯿﺴ ﺑﺪون اﺣﺘﺴﺎب ﻓﺎﺻﻠﻪ‬


‫‪a 8.17% n 6.75%‬‬
‫‪b 1.49%‬‬ ‫‪o 7.51%‬‬
‫‪c 2.78% p 1.92%‬‬
‫‪d 4.25%‬‬ ‫‪q 0.09%‬‬
‫‪e 12.70% r 5.99%‬‬
‫‪f‬‬ ‫‪2.23%‬‬ ‫‪s 6.33%‬‬
‫‪g 2.01%‬‬ ‫‪t 9.06%‬‬
‫‪h 6.09% u 2.76%‬‬
‫‪i‬‬ ‫‪6.97%‬‬ ‫‪v 0.98%‬‬
‫‪j‬‬ ‫‪0.15% w 2.36%‬‬
‫‪k 0.77%‬‬ ‫‪x 0.15%‬‬
‫‪l‬‬ ‫‪4.02%‬‬ ‫‪y 1.97%‬‬
‫‪m 2.41%‬‬ ‫‪z 0.07%‬‬

‫اﮔﺮ در ﺟﺪول ﻓﻮق ﻓﺮاواﻧ ﺳﻤﺒﻞ ‪i‬ام را ‪ fi‬ﺑﻨﺎﻣﯿﻢ‪ ،‬ﺧﻮاﻫﯿﻢ داﺷﺖ‪:‬‬


‫‪∑۲۶‬‬
‫‪i=۰‬‬ ‫‪fi۲ = ۰٫ ۰۶۵‬‬

‫ﺑﺎ ﻋﻠﻢ ﺑﻪ اﯾﻦ ﻣﻮﺿﻮع‪ ،‬ﺣﻤﻠﻪی ﺧﻮدﮐﺎر ﺑﻪ رﻣﺰ ﺳﺰار را ﻣ ﺗﻮان ﺑﻪ ﺷ ﻞ زﯾﺮ اﻧﺠﺎم داد‪:‬‬
‫‪ .۱‬ﻣﺤﺎﺳﺒﻪی ﻓﺮاواﻧ ﺣﺮفﻫﺎی ﻣﺘﻦ رﻣﺰ ﺷﺪه‬
‫‪ .۲‬ﻣﺤﺎﺳﺒﻪی ﺿﺮاﯾﺐ اﻧﻄﺒﺎق ‪ :١۴‬ﺿﺮاﯾﺐ اﻧﻄﺒﺎق را ﺑﻪ ﺷ ﻞ زﯾﺮ ﺗﻌﺮﯾﻒ ﻣ ﮐﻨﯿﻢ‪:‬‬
‫‪∑۲۶‬‬
‫= ‪Ij‬‬ ‫‪i=۰‬‬ ‫‪fi × pi+j‬‬

‫اﮔﺮ ‪ j‬ﺑﺮاﺑﺮ ﺑﺎ ‪ k‬ﺑﺎﺷﺪ و ﻣﺘﻦ ﺑﻪ اﻧﺪازهی ﮐﺎﻓ ﺑﺰرگ ﺑﺎﺷﺪ‪ ،‬اﻧﺘﻈﺎر دارﯾﻢ ‪.Ij ≈ ۰٫ ۰۶۵‬‬
‫‪ .۳‬ﺣﺪس ﻣﺎ ﺑﺮای ‪ k‬اﻧﺪﯾﺲ ‪j‬ای اﺳﺖ ﮐﻪ ﻋﺒﺎرت |‪ |Ij − ۰٫ ۰۶۵‬را ﮐﻤﯿﻨﻪ ﮐﻨﺪ‪.‬‬

‫}|‪k = arg min{|Ij − ۰٫ ۰۶۵‬‬


‫‪j‬‬

‫‪١۴‬‬
‫‪coincidence index‬‬

‫‪٢-۴‬‬
‫ﺗﻮﺟﻪ ﮐﻨﯿﺪ اﯾﻦ روش‪ ،‬ﻟﺰوﻣﺎ ﺑﻬﺘﺮﯾﻦ روش ﻧﯿﺴﺖ‪ ،‬اﻣﺎ روﺷ ﺑﺮای ﺣﻤﻠﻪ ﺑﻪ ﺳﯿﺴﺘﻢ رﻣﺰ ﺳﺰار اﺳﺖ‪ .‬ﺑﻪ ﻋﻨﻮان ﻣﺜﺎل‬
‫اﺳﺘﻔﺎده از ﺗﻮزﯾﻊ دوﺣﺮﻓ ﻫﺎ ‪ ١۵‬ﯾﺎ ﺳﻪﺣﺮﻓ ﻫﺎ ‪ ١۶‬ﺑﻪ ﺟﺎی ﺗ ﺣﺮﻓ ﻫﺎ ‪١٧‬ﻣ ﺗﻮاﻧﺪ ﻣﻨﺠﺮ ﺑﻪ ﺣﻤﻠﻪی ﺑﻬﺘﺮی ﺷﻮد‪.‬‬

‫ﺳﯿﺴﺘﻢ رﻣﺰ ﺟﺎﯾ ﺰﯾﻨ‬ ‫‪٢.۵‬‬


‫ﺗﻌﺮﯾﻒ ‪ ٣‬ﺳﯿﺴﺘﻢ رﻣﺰ ﺟﺎﯾ ﺰﯾﻨ ‪ ١٨‬ﺑﺎ اﻟ ﻮرﯾﺘﻢﻫﺎی زﯾﺮ روی ﻓﻀﺎی ﭘﯿﺎم ∗}‪ M = {a, b, · · · , z‬ﺗﻌﺮﯾﻒ ﻣ ﺷﻮد‪:‬‬

‫ﺟﺎﯾ ﺸﺖ ﺗﺼﺎدﻓ از )‪ (۰, ۱, · · · , ۲۵‬ﻣﺜﻞ ‪ k‬را ﺗﻮﻟﯿﺪ ﻣ ﮐﻨﺪ‪.‬‬ ‫• ﺗﻌﺮﯾﻒ ‪ :Gen‬ﯾ‬

‫• ﺗﻌﺮﯾﻒ ‪:Enc‬‬

‫‪Enck (m۱ m۲ · · · mt ) = c۱ c۲ · · · ct‬‬


‫‪ci = k(mi ) i = ۱, ۲, · · · , t‬‬

‫• ﺗﻌﺮﯾﻒ ‪:Dec‬‬

‫‪Deck (c۱ c۲ · · · ct ) = m۱ m۲ · · · mt‬‬


‫‪mi = k −۱ (ci ) i = ۱, ۲, · · · , t‬‬

‫ﺟﻬﺖ ﺣﻤﻠﻪ ﺑﻪ اﯾﻦ ﺳﯿﺴﺘﻢ ﻣ ﺗﻮان ﻓﺮاواﻧ ﺣﺮوف ﻣﺘﻦ رﻣﺰی را ﺑﺪﺳﺖ آورد و ﺣﺮوف را ﺑﺮ ﺣﺴﺐ ﻓﺮاواﻧ ﻣﺮﺗﺐ ﻧﻤﻮد‬
‫و ﺣﺮف ‪i‬ام اﯾﻦ ﻟﯿﺴﺖ را رﻣﺰ ﺷﺪهی ‪i‬اﻣﯿﻦ ﺣﺮف ﭘﺮ ﺗ ﺮار اﻟﻔﺒﺎ در ﻧﻈﺮ ﮔﺮﻓﺖ‪ .‬اﮔﺮ ﻣﺘﻦ ﺑﻪ اﻧﺪازهی ﮐﺎﻓ ﺑﺰرگ ﺑﺎﺷﺪ‬
‫اﯾﻦ روش‪ ،‬روش ﻣﻨﺎﺳﺒ ﺟﻬﺖ ﺣﻤﻠﻪ اﺳﺖ‪.‬‬

‫ﺳﯿﺴﺘﻢ رﻣﺰ وﯾﮋﻧﺮ‬ ‫‪٣.۵‬‬


‫ﺗﻌﺮﯾﻒ ‪ ۴‬ﺳﯿﺴﺘﻢ رﻣﺰ وﯾﮋﻧﺮ ‪ ١٩‬ﺑﺎ اﻟ ﻮرﯾﺘﻢﻫﺎی زﯾﺮ روی ﻓﻀﺎی ﭘﯿﺎم ∗}‪ M = {a, b, · · · , z, −‬ﺗﻌﺮﯾﻒ ﻣ ﺷﻮد‪:‬‬

‫ﻋﻀﻮ ﻣﺎﻧﻨﺪ ) ‪ k = (k۰ , k۱ , · · · , kd−۱‬ﺑﻪﺗﺼﺎدف از ﻓﻀﺎی ﮐﻠﯿﺪ‬ ‫• ﺗﻌﺮﯾﻒ ‪ :Gen‬در اﯾﻦ ﺳﯿﺴﺘﻢ )(‪ Gen‬ﯾ‬
‫‪ K = {۰, ۱, · · · , ۲۶}d‬ﺗﻮﻟﯿﺪ ﻣ ﮐﻨﺪ‪.‬‬

‫• ﺗﻌﺮﯾﻒ ‪:Enc‬‬

‫‪Enck (m۰ m۱ · · · mℓ−۱ ) = c۰ c۱ · · · cℓ−۱‬‬


‫‪ci = mi + ki‬‬ ‫‪mod d‬‬

‫• ﺗﻌﺮﯾﻒ ‪:Dec‬‬
‫‪١۵‬‬
‫‪digrams‬‬
‫‪١۶‬‬
‫‪trigrams‬‬
‫‪١٧‬‬
‫‪monograms‬‬
‫‪١٨‬‬
‫‪substitution cipher‬‬
‫‪١٩‬‬
‫‪Vigenère cipher‬‬

‫‪٢-۵‬‬
‫‪Deck (c۰ c۱ · · · cℓ−۱ ) = m۰ m۱ · · · mℓ−۱‬‬
‫‪mi = ci − ki‬‬ ‫‪mod d‬‬

‫در واﻗﻊ در اﯾﻦ ﺳﯿﺴﺘﻢ‪ ،‬ﻣﺘﻦ اﺻﻠ ﺑﻪ ﭘﻨﺠﺮهﻫﺎی ‪d‬ﺗﺎﯾ ﺗﻘﺴﯿﻢ ﺷﺪه و ‪i‬اﻣﯿﻦ ﺣﺮف ﻫﺮ ﭘﻨﺠﺮه )‪ki ،(۰ ≤ i ≤ d − ۱‬‬
‫واﺣﺪ ﺟﺎﺑﺠﺎ ﻣ ﺷﻮد‪ .‬دﻗﺖ ﮐﻨﯿﺪ ﺑﺮای ﺣﻤﻠﻪ ﺑﻪ اﯾﻦ ﺳﯿﺴﺘﻢ‪ ،‬اﮔﺮ ﻣﻘﺪار ﺣﺪس زده ﺷﺪه ﺑﺮای ‪ d‬را ˆ‪ d‬ﺑﻨﺎﻣﯿﻢ و ‪،dˆ = d‬‬
‫آﻧ ﺎه ﺑﺮای ﻣﺘﻦ ﺑﻪ اﻧﺪازهی ﮐﺎﻓ ﻃﻮﻻﻧ ‪ ،‬ﺗﻮزﯾﻊ ﺣﺮوف ﺑﺮای ﺣﺮفﻫﺎی ‪i‬ام ﭘﻨﺠﺮهﻫﺎ )‪ (۰ ≤ i ≤ dˆ− ۱‬ﺑﺮاﺑﺮ ﺷﯿﻔﺖ‬
‫ﯾﺎﻓﺘﻪی ﺗﻮزﯾﻊ ﺣﺮوف زﺑﺎن اﻧ ﻠﯿﺴ ﻣ ﺷﻮد‪ .‬اﻣﺎ اﮔﺮ ‪ dˆ ̸= d‬ﺗﻮزﯾﻊﻫﺎی ﻓﻮق ﺑﻪ ﺳﻤﺖ ﺗﻮزﯾﻊ ﯾ ﻨﻮاﺧﺖ ﻣ رود‪ .‬ﭘﺲ‬
‫ﺑﺮای ﺣﻤﻠﻪ ﺑﻪ اﯾﻦ ﺳﯿﺴﺘﻢ ﻣ ﺗﻮان ﻣﻌﯿﺎرﻫﺎی ‪ Σfi۲‬را ﺑﺮای ﻋﻨﺎﺻﺮ ﻫﻢﻣ ﺎن در ﭘﻨﺠﺮهﻫﺎ ﺗﻌﺮﯾﻒ ﻧﻤﻮد‪ .‬ﺳﭙﺲ ﺑﺮای‬
‫ﻣﻘﺎدﯾﺮ ﻣﺨﺘﻠﻒ ˆ‪ ،d‬ﻣﻌﯿﺎرﻫﺎ را ﺑﺮرﺳ ﮐﺮد‪ .‬ﺑﺮای ‪ dˆ = d‬ﻣﻘﺪار ﺗﻤﺎم ﻣﻌﯿﺎرﻫﺎ ﻧﺰدﯾ ‪ ٠.٠۶۵‬ﺧﻮاﻫﺪ ﺷﺪ‪ .‬ﺑﺪﯾﻦ ﺗﺮﺗﯿﺐ‬
‫‪ d‬ﺑﺪﺳﺖ ﻣ آﯾﺪ‪ .‬ﭘﺲ از آن رﻣﺰﮔﺸﺎﯾ ﺑﺮای ﺟﺎﯾ ﺎهﻫﺎی ‪i‬ام )‪ (۰ ≤ i ≤ d − ۱‬از ﭘﻨﺠﺮهﻫﺎ ﻣﺎﻧﻨﺪ ﺳﯿﺴﺘﻢ ﺳﺰار اﻧﺠﺎم‬
‫ﻣ ﺷﻮد‪ .‬از ﻣﺰاﯾﺎی اﯾﻦ ﺳﯿﺴﺘﻢ اﯾﻦ اﺳﺖ ﮐﻪ ﺗﻮزﯾﻊ ﺗ ﺣﺮﻓ ﻫﺎ‪ ،‬دوﺣﺮﻓ ﻫﺎ و ﺳﻪﺣﺮﻓ ﻫﺎ ﺑﺮای ‪d‬ﻫﺎی ﺑﺰرگ‪ ،‬ﺗﻘﺮﯾﺒﺎ‬
‫ﯾ ﻨﻮاﺧﺖ ﺧﻮاﻫﺪ ﺑﻮد‪.‬‬

‫‪٢-۶‬‬
‫ﺑﻪ ﻧﺎم ﺧﺪا‬

‫داﻧﺸ ﺪهی ﻋﻠﻮم رﯾﺎﺿ‬

‫‪ ٢۴‬ﺑﻬﻤﻦ ‪١٣٩١‬‬ ‫ﻣﻘﺪﻣﻪای ﺑﺮ رﻣﺰﻧ ﺎری‬

‫ﺟﻠﺴﻪی ‪ :٣‬رﻣﺰﻧ ﺎری ﺳﻨﺘ و ﻣﺪرن‬


‫ﻧ ﺎرﻧﺪه‪ :‬ﺳﻬﺮاب اﺑﻮذرﺧﺎﻧ ﻓﺮد‬ ‫ﻣﺪرس‪ :‬دﮐﺘﺮ ﺷﻬﺮام ﺧﺰاﺋ‬

‫رﻣﺰ ﺟﺎﯾ ﺸﺘ‬ ‫‪١‬‬


‫ﺑﻪ ﻧﺎم رﻣﺰﻫﺎی ﺟﺎﺑﻪﺟﺎﯾ ‪ ٢‬اﺳﺖ ﮐﻪ ﻓﻘﻂ ﻣ ﺎن ﺣﺮفﻫﺎی ﻣﺘﻦ اﺻﻠ‬ ‫رﻣﺰ ﺟﺎﯾ ﺸﺘ ‪ ١‬ﺟﺰء دﺳﺘﻪای از رﻣﺰﻫﺎی ﮐﻼﺳﯿ‬
‫را در ﻣﺘﻦ رﻣﺰ ﺷﺪه ﺟﺎﺑﻪﺟﺎ ﻣ ﮐﻨﻨﺪ‪.‬‬

‫ﺳﻪﺗﺎﯾ )‪ Π = (Gen, Enc, Dec‬ﺑﻪ ﻫﻤﺮاه ﻓﻀﺎی ﭘﯿﺎم‬ ‫ﺗﻌﺮﯾﻒ ‪ ١‬ﺳﯿﺴﺘﻢ رﻣﺰ ﺟﺎﯾ ﺸﺘ ‪ ،‬ﯾ‬

‫∗) ‪M = ({a, · · · , z})d‬‬

‫اﺳﺖ ﮐﻪ‪:‬‬

‫ﺟﺎﯾ ﺸﺖ ﺗﺼﺎدﻓ ‪ k‬از }‪ {۰, ۱, · · · , d − ۱‬ﺗﻮﻟﯿﺪ ﻣ ﮐﻨﺪ‪.‬‬ ‫• )(‪ :Gen‬ﯾ‬

‫• اﻟ ﻮرﯾﺘﻢ رﻣﺰﮔﺬاری ﺑﻪ ﺻﻮرت زﯾﺮ ﻋﻤﻞ ﻣ ﮐﻨﺪ‪:‬‬

‫‪Enck (m۰ m۱ · · · ml d−۱ ) = c۰ c۱ · · · cl d−۱‬‬

‫ﮐﻪ ‪ ci+jd = mk(i)+jd‬ﺑﺮای ‪ i = ۰, · · · , d − ۱‬و ‪.j = ۰, · · · , l − ۱‬‬

‫• اﻟ ﻮرﯾﺘﻢ رﻣﺰﮔﺸﺎﯾ ﺑﻪ ﺻﻮرت زﯾﺮ ﻋﻤﻞ ﻣ ﮐﻨﺪ‪:‬‬

‫‪Deck (c۰ c۱ · · · cl d−۱ ) = m۰ m۱ · · · ml d−۱‬‬

‫ﮐﻪ ‪ mi+jd = ck−۱ (i)+jd‬ﺑﺮای ‪ i = ۰, · · · , d − ۱‬و ‪.j = ۰, · · · , l − ۱‬‬

‫در ﺣﻘﯿﻘﺖ اﻟ ﻮرﯾﺘﻢ رﻣﺰﮔﺬاری ﻣﺘﻦ اﺻﻠ ‪ m‬را ﺑﻪ ﺑﻠﻮﮐﻬﺎی ‪ d‬ﺗﺎﯾ ﺗﻘﺴﯿﻢ ﻣ ﮐﻨﺪ و ﺟﺎﯾ ﺸﺖ ‪ k‬را روی ﻫﺮ ﺑﻠﻮک‬
‫اﻋﻤﺎل ﻣ ﮐﻨﺪ‪.‬‬
‫‪١‬‬
‫‪permutation cipher‬‬
‫‪٢‬‬
‫‪transposition cipher‬‬

‫‪٣-١‬‬
‫ﯾﺎدآوری ‪ ١‬روشﻫﺎی ﻣﺨﺘﻠﻔ ﺑﺮای ﻧﻤﺎﯾﺶ ﯾ ﺟﺎﯾ ﺸﺖ روی }‪ {۰, · · · , n − ۱‬وﺟﻮد دارد؛ در اﯾﻨﺠﺎ ﯾ‬
‫ﺟﺎﯾ ﺸﺖ ‪ k‬را ﺑﺎ ))‪ k = (k(۰) k(۱) · · · k(n − ۱‬ﻧﺸﺎن ﻣ دﻫﯿﻢ‪ .‬ﺑﻪ ﻃﻮر ﻣﺜﺎل )‪k = (۱ ۴ ۳ ۲ ۰‬‬
‫ﺑﯿﺎﻧ ﺮ ﺟﺎﯾ ﺸﺖ ‪k(۰) = ۱ , k(۱) = ۴ , k(۲) = ۳ , k(۳) = ۲ , k(۴) = ۰‬اﺳﺖ‪.‬‬

‫ﻣﺜﺎل ‪ ٢‬ﻓﺮض ﮐﻨﯿﺪ ‪ d = ۳‬و )‪ k = (۱ ۰ ۲‬در اﯾﻦ ﺻﻮرت ﻣﺘﻦ ‪ m = m۰ m۱ m۲ m۳ m۴ m۵ m۶ m۷ m۸‬ﺑﻪ‬


‫ﻣﺘﻦ رﻣﺰﺷﺪه ‪ c = m۱ m۰ m۲ m۴ m۳ m۵ m۷ m۶ m۸‬ﻧ ﺎﺷﺘﻪ ﻣ ﺷﻮد‪.‬‬
‫(‬ ‫)‬
‫ﻣﺜﺎل ‪ ٣‬ﻓﺮض ﮐﻨﯿﺪ ‪ k = ۳ ۲ ۰ ۵ ۱ ۴ ، d = ۶‬و ﻣﺘﻦ اﺻﻠ ﺑﻪ ﺻﻮرت زﯾﺮ ﺑﺎﺷﺪ‪:‬‬

‫‪he walked up and down the passage two or three times‬‬


‫در اﯾﻦ ﺻﻮرت ﺟﻬﺖ رﻣﺰﮔﺬاری ﻣ ﺗﻮان ﻣﺘﻦ را در ﺷﺶ ﺳﺘﻮن ﺑﻪ ﺻﻮرت زﯾﺮ ﻧﻮﺷﺖ‬

‫‪hewalk‬‬
‫‪edupan‬‬
‫‪ddownt‬‬
‫‪hepass‬‬
‫‪agetwo‬‬
‫‪orthre‬‬
‫‪etimes‬‬

‫و ﺳﭙﺲ ﺳﺘﻮنﻫﺎ را ﺑﺎ ﺗﺮﺗﯿﺒ ﮐﻪ ﺟﺎﯾ ﺸﺖ ‪ k‬ﺗﻌﯿﯿﻦ ﻣ ﮐﻨﺪ ﺑﺎ ﯾ ﺪﯾ ﺮ ﺗﻌﻮﯾﺾ ﻣ ﮐﻨﯿﻢ‪ ،‬در اﯾﻦ ﻣﺜﺎل ﺳﺘﻮنﻫﺎ ﺑﻪ ﺻﻮرت‬
‫زﯾﺮ ﭼﯿﺪه ﺧﻮاﻫﻨﺪ ﺷﺪ‬

‫‪wlehka‬‬
‫‪uadenp‬‬
‫‪onddtw‬‬
‫‪psehsa‬‬
‫‪ewgaot‬‬
‫‪trroeh‬‬
‫‪ietesm‬‬

‫و در ﻧﻬﺎﯾﺖ ﻣﺘﻦ را ﺑﻪ ﺻﻮرت ﺳﻄﺮی ﺑﻪ ﺻﻮرت زﯾﺮ ﮐﻨﺎر ﻫﻢ ﻣ ﻧﻮﯾﺴﯿﻢ و ﻣﺘﻦ رﻣﺰی ﺑﺪﺳﺖ ﺧﻮاﻫﺪ آﻣﺪ‪.‬‬

‫‪wlehkauadenponddtwpsehsaewgaottrroehietesm‬‬

‫ﺣﻤﻠﻪی ﻣﺘﻦ رﻣﺰی ﺑﻪ ﺳﯿﺴﺘﻢ رﻣﺰ ﺟﺎﯾ ﺸﺘ‬ ‫‪١.١‬‬


‫در رﻣﺰ ﺟﺎﯾ ﺸﺘ ﻓﺮﮐﺎﻧﺲ ﺗ ﺣﺮﻓ ﻫﺎ ﺛﺎﺑﺖ ﺑﺎﻗ ﻣ ﻣﺎﻧﺪ‪ ،‬اﻣﺎ ﻓﺮﮐﺎﻧﺲ دو ﺣﺮﻓ ﻫﺎ و ﺳﻪ ﺣﺮﻓ ﻫﺎ و ‪ ...‬در ﻣﺘﻦ رﻣﺰی‬
‫دﯾ ﺮ ﺑﺎ ﻓﺮﮐﺎﻧﺲ دو ﺣﺮﻓ ﻫﺎ و ﺳﻪ ﺣﺮﻓ ﻫﺎ و ‪ ...‬در زﺑﺎن اﻧ ﻠﯿﺴ ﯾ ﺴﺎن ﻧﯿﺴﺖ‪ .‬ﭘﺲ از ﻃﺮﯾﻖ ﻓﺮﮐﺎﻧﺲ دو ﺣﺮﻓ ﻫﺎ‬
‫ﻣ ﺗﻮان ﺑﻪ اﯾﻦ ﺳﯿﺴﺘﻢ ﺣﻤﻠﻪ ﮐﺮد‪ ،‬اﺑﺘﺪا ﻣﺘﻦ رﻣﺰی را ﺑﻪ ﺻﻮرت زﯾﺮ ﺑﺎزﻧﻮﯾﺴ ﮐﻨﯿﺪ‪:‬‬

‫‪٣-٢‬‬
‫‪‬‬ ‫‪ ‬‬ ‫‪‬‬ ‫‪‬‬ ‫‪‬‬
‫‪c۰‬‬ ‫‪c۱‬‬ ‫‪cd−۱‬‬
‫‪‬‬ ‫‪cd‬‬ ‫‪ ‬‬ ‫‪cd+۱‬‬ ‫‪‬‬ ‫‪‬‬ ‫‪c۲d−۱‬‬ ‫‪‬‬
‫‪‬‬ ‫‪ ‬‬ ‫‪‬‬ ‫‪‬‬ ‫‪‬‬
‫‪‬‬ ‫‪..‬‬ ‫‪,‬‬ ‫‪..‬‬ ‫‪,...,‬‬ ‫‪..‬‬ ‫‪.‬‬
‫‪‬‬ ‫‪.‬‬ ‫‪ ‬‬ ‫‪.‬‬ ‫‪‬‬ ‫‪‬‬ ‫‪.‬‬ ‫‪‬‬
‫‪c(ℓ−۱)d‬‬ ‫‪c(ℓ−۱)d+۱‬‬ ‫)‪cℓd+(ℓ−۱‬‬
‫ﺣﺎل ﺑﻪ دﻧﺒﺎل اﯾﻦ ﻫﺴﺘﯿﻢ ﮐﻪ ﺳﺘﻮنﻫﺎﯾ ﮐﻪ ﻣﺤﺘﻤﻞﺗﺮ ﻫﺴﺘﻨﺪ ﮐﻪ ﻣﺠﺎور ﺑﺎﺷﻨﺪ ﺗﺸﺨﯿﺺ دﻫﯿﻢ‪ .‬ﺑﻪﻋﺒﺎرتدﯾ ﺮ ﺑﺮای ﻫﺮ‬
‫ﺳﺘﻮن ‪ i‬از ﺑﯿﻦ ﺳﺘﻮنﻫﺎی ﺑﺎﻗ ﻣﺎﻧﺪه ﺳﺘﻮﻧ را ﺑﺮ ﻣ ﮔﺰﯾﻨﯿﻢ ﮐﻪ وﻗﺘ در ﮐﻨﺎر آن ﻗﺮار ﮔﯿﺮد ﻓﺮﮐﺎﻧﺲ دو ﺣﺮﻓ ﻫﺎ ﺑﯿﺶﺗﺮﯾﻦ‬
‫ﺗﻄﺎﺑﻖ را ﺑﺎ ﻓﺮﮐﺎﻧﺲ دو ﺣﺮﻓ ﻫﺎی زﺑﺎن اﻧ ﻠﯿﺴ داﺷﺘﻪ ﺑﺎﺷﺪ‪ ،‬اﮔﺮ ﻫﻤﻪی ﺣﺪسﻫﺎ درﺳﺖ ﺑﺎﺷﻨﺪ‪ ،‬ﺑﺪﯾﻦ ﺗﺮﺗﯿﺐ ﯾ‬
‫ﺟﺎﯾ ﺸﺖ دوری از ﮐﻠﯿﺪ ﺑﻪدﺳﺖ ﻣ آﯾﺪ ﮐﻪ ﺑﺎ اﻣﺘﺤﺎن ﮐﺮدن ‪ d‬ﺣﺎﻟﺖ ﻣﻤ ﻦ ﻣ ﺗﻮان ﺟﺎﯾ ﺸﺖ ﺻﺤﯿﺢ را ﭘﯿﺪا ﮐﺮد‪.‬‬

‫رﻣﺰ ﻫﯿﻞ‬ ‫‪٢‬‬


‫ﺳﻪ ﺗﺎﯾ )‪ Π = (Gen, Enc, Dec‬ﺑﻪ ﻫﻤﺮاه ﻓﻀﺎی ﭘﯿﺎم‬ ‫ﺗﻌﺮﯾﻒ ‪ ۴‬ﺳﯿﺴﺘﻢ رﻣﺰ ﻫﯿﻞ ‪ ،٣‬ﯾ‬
‫∗) ‪M = ({۰, · · · , ۲۵})d‬‬
‫اﺳﺖ ﮐﻪ‪:‬‬
‫ﻣﺎﺗﺮﯾﺲ ﺗﺼﺎدﻓ و ﻣﻌ ﻮسﭘﺬﯾﺮ ‪ Kd×d‬ﺑﻪ ﭘﯿﻤﺎﻧﻪ ی ‪ ۲۶‬ﺗﻮﻟﯿﺪ ﻣ ﮐﻨﺪ‪ ،‬ﮐﻪ ‪ d‬ﻃﻮل ﺑﻠﻮک اﺳﺖ‪.‬‬ ‫• )(‪ : Gen‬ﯾ‬

‫• اﻟ ﻮرﯾﺘﻢﻫﺎی رﻣﺰﮔﺬاری و رﻣﺰﮔﺸﺎﯾ ﺑﻪ ﺗﺮﺗﯿﺐ ﺑﻪ ﺻﻮرت زﯾﺮ ﻋﻤﻞ ﻣ ﮐﻨﻨﺪ‪:‬‬


‫‪EncK (m۱ , · · · , mld ) = c۱ , · · · , cld‬‬
‫‪‬‬ ‫‪‬‬ ‫‪‬‬ ‫‪‬‬
‫‪cid+۱‬‬ ‫‪mid+۱‬‬
‫‪ .. ‬‬ ‫‪‬‬ ‫‪..‬‬ ‫‪‬‬
‫‪ . =K ‬‬ ‫‪.‬‬ ‫‪‬‬ ‫‪mod ۲۶‬‬
‫‪cid+d‬‬ ‫‪mid+d‬‬
‫‪DecK (c۱ , · · · , cld ) = m۱ , · · · , mld‬‬
‫‪‬‬ ‫‪‬‬ ‫‪‬‬ ‫‪‬‬
‫‪mid+۱‬‬ ‫‪cid+۱‬‬
‫‪‬‬ ‫‪..‬‬ ‫‪‬‬ ‫‪−۱ ‬‬ ‫‪. ‬‬
‫‪‬‬ ‫‪.‬‬ ‫‪ = K  .. ‬‬ ‫‪mod ۲۶.‬‬
‫‪mid+d‬‬ ‫‪cid+d‬‬

‫ﻧ ﺘﻪ ‪ ١‬رﻣﺰ ﺟﺎﯾ ﺸﺘ ﺣﺎﻟﺖ ﺧﺎص رﻣﺰ ﻫﯿﻞ اﺳﺖ ﮐﻪ در آن ﻣﺎﺗﺮﯾﺲ ‪ ،K‬ﯾ ﻣﺎﺗﺮﯾﺲ ﺟﺎﯾ ﺸﺖ )ﻣﺎﺗﺮﯾﺴ ﮐﻪ ﻫﺮ‬
‫ﺳﻄﺮ و ﻫﺮ ﺳﺘﻮن آن دﻗﯿﻘﺎً ﯾ ﻋﺪد ‪ ١‬داﺷﺘﻪ ﺑﺎﺷﺪ و ﺑﻘﯿﻪ ﻋﻨﺎﺻﺮ آن ﺻﻔﺮ ﺑﺎﺷﺪ( اﺳﺖ‪.‬‬
‫ﻧ ﺘﻪ ‪ ٢‬ﺑﯿﺎد ﺑﯿﺎورﯾﺪ ﮐﻪ ﻋﺪد ﺻﺤﯿﺢ ‪ a‬در ﻫﻨ ‪ m‬دارای ﻣﻌ ﻮس اﺳﺖ )ﯾﻌﻨ ﻣﻌﺎدﻟﻪی ‪ ax = b mod m‬دارای‬
‫ﺟﻮاب ﯾ ﺘﺎ اﺳﺖ(‪ ،‬اﮔﺮ و ﺗﻨﻬﺎ اﮔﺮ ‪ .gcd(a, m) = ۱‬اﯾﻦ ﻧﺘﯿﺠﻪ ﻗﺎﺑﻞ ﺗﻌﻤﯿﻢ ﺑﻪ ﺣﺎﻟﺖ ﻣﺎﺗﺮﯾﺴ ﻧﯿﺰ ﻫﺴﺖ‪ :‬ﻣﺎﺗﺮﯾﺲ‬
‫‪ A‬روی ‪ Zm‬ﻣﻌ ﻮسﭘﺬﯾﺮ اﺳﺖ ﯾﻌﻨ )ﻣﻌﺎدﻟﻪی ‪ AX = B mod m‬دارای ﺟﻮاب ﯾ ﺘﺎ اﺳﺖ(‪ ،‬اﮔﺮ و ﺗﻨﻬﺎ اﮔﺮ‬
‫‪ .gcd(det A, m) = ۱‬ﺑﻨﺎﺑﺮ اﯾﻦ ﻣﺎﺗﺮﯾﺲ ‪ K‬ﮐﻪ ﺑﻪ ﻋﻨﻮان ﮐﻠﯿﺪ ﺑﺮای رﻣﺰ ﻫﯿﻞ ﺗﻮﻟﯿﺪ ﻣ ﺷﻮد‪ ،‬ﻣﻌ ﻮسﭘﺬﯾﺮ اﺳﺖ اﮔﺮ‬
‫و ﻓﻘﻂ اﮔﺮ ‪ gcd(det K, ۲۶) = ۱‬ﺑﺎﺷﺪ‪.‬‬
‫‪٣‬‬
‫‪Hill Cipher, 1929.‬‬

‫‪٣-٣‬‬
‫ﻧ ﺘﻪ ‪ ٣‬ﺗﻌﺪاد ﻣﺎﺗﺮﯾﺲﻫﺎی ﻣﻌ ﻮسﭘﺬﯾﺮ روی ‪ Z۲۶‬ﺑﺮاﺑﺮ اﺳﺖ ﺑﺎ‬

‫∏‬
‫‪d‬‬
‫∏ ‪۱‬‬
‫‪d‬‬
‫‪۱‬‬
‫‪d۲‬‬ ‫‪۲‬‬ ‫‪۲‬‬
‫‪۲۶‬‬ ‫‪(۱ − i ) (۱ −‬‬ ‫‪) ≥ ۲۴٫۷d −۱٫۸ ≥ ۰٫ ۲۹ × ۲۴٫۷d .‬‬
‫‪۲‬‬ ‫‪۱۳‬‬ ‫‪i‬‬
‫‪i=۱‬‬ ‫‪i=۱‬‬

‫ﻣﺎﺗﺮﯾﺲ ﺗﺼﺎدﻓ روی ‪ Z۲۶‬ﻣﻌ ﻮسﭘﺬﯾﺮ ﺑﺎﺷﺪ ﺣﺪاﻗﻞ ‪ ۰٫ ۲۹‬اﺳﺖ‪.‬‬ ‫ﺑﻪ ﻋﺒﺎرت دﯾ ﺮ اﺣﺘﻤﺎل اﯾﻨ ﻪ ﯾ‬

‫ﺑﺮای اﺛﺒﺎت راﺑﻄﻪ ﻓﻮق ﺿﻤﯿﻤﻪ آ را ﺑﺒﯿﻨﯿﺪ‪ .‬ﺑﻪ ﻃﻮر ﻣﺜﺎل ﺑﻪ ازای ‪ d = ۸‬اﻧﺪازه ﻓﻀﺎی ﮐﻠﯿﺪ ﺑﺮاﺑﺮ ‪ ۲۲۹۹‬اﺳﺖ ﮐﻪ ﻋﺪد‬
‫ﺑﺴﯿﺎر ﺑﺰرﮔ اﺳﺖ‪ .‬ﻃﻮل ﮐﻠﯿﺪ رﻣﺰﻫﺎی ﻣﺪرن ﻣﻌﻤﻮﻻ ﮐﻤﺘﺮ از ‪ ٢۵۶‬ﺑﯿﺖ اﺳﺖ‪.‬‬
‫(‬ ‫)‬
‫‪۱۱ ۸‬‬
‫= ‪ .K‬ﺑﺮای رﻣﺰﮔﺬاری ﭘﯿﺎم‬ ‫ﻣﺜﺎل ‪ ۵‬ﻓﺮض ﮐﻨﯿﺪ در ﺳﯿﺴﺘﻢ رﻣﺰ ﻫﯿﻞ داﺷﺘﻪ ﺑﺎﺷﯿﻢ ‪ d = ۲‬و‬
‫‪۳ ۷‬‬
‫‪ ،letusfly‬اﺑﺘﺪا ﻣﺘﻦ اﺻﻠ را ﺑﻪ ﺑﻠﻮکﻫﺎی ﺑﻪ ﻃﻮل ‪ d = ۲‬ﺗﻘﺴﯿﻢ و ﺑﻪ ﺻﻮرت ﺑﺮدارﻫﺎﯾ روی ‪ (Z۲۶ )۲‬ﺑﻪ ﺻﻮرت‬
‫زﯾﺮ ﻧﻤﺎﯾﺶ ﻣ دﻫﯿﻢ‪:‬‬
‫(‬ ‫( )‬ ‫( )‬ ‫( )‬ ‫)‬
‫‪۱۱‬‬ ‫‪۱۹‬‬ ‫‪۱۸‬‬ ‫‪۱۱‬‬
‫‪,‬‬ ‫‪,‬‬ ‫‪,‬‬ ‫‪.‬‬
‫‪۴‬‬ ‫‪۲۰‬‬ ‫‪۵‬‬ ‫‪۲۴‬‬
‫(‬ ‫)‬
‫‪۱۱ ۱۹ ۱۸ ۱۱‬‬
‫= ‪ M‬را ﺗﺸ ﯿﻞ داده و ﻣﻘﺪار‬ ‫ﺳﭙﺲ ﻣﺎﺗﺮﯾﺲ ﻣﺘﻦ اﺻﻠ‬
‫‪۴ ۲۰ ۵ ۲۴‬‬
‫(‬ ‫)‬
‫‪۲۳ ۵‬‬ ‫‪۴‬‬ ‫‪۱‬‬
‫= ‪C = K · M mod ۲۶‬‬
‫‪۹ ۱۵ ۱۱ ۱۹‬‬

‫را ﻣﺤﺎﺳﺒﻪ ﻣ ﮐﻨﯿﻢ ﮐﻪ ﻧﻤﺎﯾﺶ ﻣﺘﻦ رﻣﺰی ‪ xjfpelbt‬اﺳﺖ‪.‬‬


‫(‬ ‫)‬ ‫ﻣ ﺗﻮان ﺑﺮرﺳ ﻧﻤﻮد ﮐﻪ‬
‫‪۷‬‬ ‫‪۱۸‬‬
‫= ‪K −۱‬‬
‫‪۲۳ ۱۱‬‬
‫و‬
‫(‬ ‫)‬
‫‪−۱‬‬ ‫‪۱۱ ۱۹ ۱۸ ۱۱‬‬
‫= ‪K ·C‬‬
‫‪۴ ۲۰ ۵ ۲۴‬‬
‫ﮐﻪ ﻧﻤﺎﯾﺶ ﻣﺘﻦ اﺻﻠ اوﻟﯿﻪ اﺳﺖ‪.‬‬

‫ﺣﻤﻠﻪی ﻣﺘﻦ اﺻﻠ ﻣﻌﻠﻮم ﺑﻪ ﺳﯿﺴﺘﻢ رﻣﺰ ﻫﯿﻞ‬ ‫‪١.٢‬‬


‫ﺳﯿﺴﺘﻢ رﻣﺰ ﻫﯿﻞ در ﻣﻘﺎﺑﻞ ﺣﻤﻠﻪی ﻣﺘﻦ رﻣﺰی ﻣﻘﺎوم اﺳﺖ وﻟ در ﻣﻘﺎﺑﻞ ﺣﻤﻠﻪی ﻣﺘﻦ اﺻﻠ ﻣﻌﻠﻮم ﺑﻪ ﺷﺪت ﺿﻌﯿﻒ‬
‫اﺳﺖ‪ .‬ﺑﺮای ﺣﻤﻠﻪی ﻣﺘﻦ اﺻﻠ ﻣﻌﻠﻮم ﺑﻪ ﺻﻮرت زﯾﺮ ﻋﻤﻞ ﻣ ﮐﻨﯿﻢ‪ :‬ﻓﺮض ﮐﻨﯿﺪ ﻣﺎ ﻣﺘﻦ اﺻﻠ ‪ m‬و رﻣﺰ ﺷﺪهی آن ‪ c‬را‬
‫در اﺧﺘﯿﺎر داﺷﺘﻪ ﺑﺎﺷﯿﻢ‪ ،‬در اﯾﻦ ﺻﻮرت ‪ m‬را ﺑﻪ ﺑﻠﻮکﻫﺎی ‪-d‬ﺗﺎﯾ ﺗﻘﺴﯿﻢ ﮐﺮده و ﻣﺎﺗﺮﯾﺲ ‪ d × ۱‬ﻣﺘﻨﺎﻇﺮ ﺑﺎﻫﺮ ﺑﻠﻮک را‬
‫ﮐﻨﺎر ﯾ دﯾ ﺮ ﻗﺮار داده در اﯾﻦ ﺻﻮرت ﺑﻪ ﻣﺎﺗﺮﯾﺲ ﻣﺘﻦ اﺻﻠ ‪ d × t‬ﻣ رﺳﯿﻢ ﮐﻪ ‪ t‬ﺗﻌﺪاد ﺑﻠﻮکﻫﺎی ﻣﺘﻦ اﺻﻠ اﺳﺖ‪،‬‬
‫اﯾﻦ ﻣﺎﺗﺮﯾﺲ را ‪ M‬ﺑﻨﺎﻣﯿﺪ‪ ،‬ﻫﻤﯿﻦ ﮐﺎر را ﺑﺎ ‪ c‬ﺗ ﺮار ﮐﺮده و ﻣﺎﺗﺮﯾﺲ ﺣﺎﺻﻞ را ‪ C‬ﺑﻨﺎﻣﯿﺪ‪ ،‬ﻣ داﻧﯿﻢ‪:‬‬

‫‪C =K ·M‬‬

‫‪٣-۴‬‬
‫ﺑﻨﺎﺑﺮاﯾﻦ ﮐﺎﻓ اﺳﺖ ﻣﻌ ﻮس ﻣﺎﺗﺮﯾﺲ ‪ M‬ﺑﻪ ﭘﯿﻤﺎﻧﻪ ی ‪ ۲۶‬را ﺣﺴﺎب ﮐﻨﯿﻢ‪ ،‬ﯾﻌﻨ ‪:‬‬

‫; ‪K = C · M −۱‬‬

‫ﻧ ﺘﻪ ‪ ۴‬روش ﻓﻮق ﺑﻪ ﺷﺮﻃ ﻗﺎﺑﻞ اﺟﺮا اﺳﺖ ﮐﻪ ﻣﺎﺗﺮﯾﺲ ‪ M‬ﻣﻌ ﻮس ﭘﺬﯾﺮ ﺑﺎﺷﺪ ) روی ‪ ،(Z۲۶‬ﯾﻌﻨ‬

‫‪gcd(det M, ۲۶) = ۱‬‬

‫ﺑﻪ ﻃﻮر ﻣﺜﺎل ﺑﻪ ازای ‪ d = ۵‬اﮔﺮ ﭘﯿﺎمﻫﺎ ﺗﺼﺎدﻓ اﻧﺘﺨﺎب ﺷﻮﻧﺪ‪ ،‬اﺣﺘﻤﺎل ﻣﻮﻓﻘﯿﺖ ﺑﺎ ﺗﻮﺟﻪ ﺑﻪ ﻧ ﺘﻪ ‪ ،٣‬ﺑﺮاﺑﺮ ‪۰٫ ۲۹‬‬
‫ﺧﻮاﻫﺪ ﺑﻮد‪.‬‬

‫رﻣﺰﻧ ﺎری ﺳﻨﺘ و ﻣﺪرن‬ ‫‪٣‬‬


‫رﻣﺰﻧ ﺎری ﺳﻨﺘ‬
‫روﻧﺪ رﻣﺰﻧ ﺎری ﺳﻨﺘ ﺑﻪﺻﻮرت زﯾﺮ ﺑﻮده اﺳﺖ‪:‬‬

‫رﻣﺰ ﻃﺮاﺣ ﻣ ﮐﻨﺪ‪،‬‬ ‫‪ .١‬ﺷﺨﺼ ﯾ‬

‫‪ .٢‬ادﻋﺎ ﻣ ﮐﻨﺪ در ﺑﺮاﺑﺮ ﺣﻤﻼت ﺷﻨﺎﺧﺘﻪ ﺷﺪه اﻣﻦ اﺳﺖ‪،‬‬

‫‪ .٣‬رﻣﺰ ﻣﻮرد اﺳﺘﻔﺎده ﻗﺮار ﻣ ﮔﯿﺮد‪،‬‬

‫‪ .۴‬رﻣﺰ ﺷ ﺴﺘﻪ ﻣ ﺷﻮد‪،‬‬

‫‪ .۵‬رﻣﺰ اﺻﻼح ﻣ ﺷﻮد و ‪...‬‬

‫در رﻣﺰﻧ ﺎری ﺳﻨﺘ روﻧﺪ ﺑﺎﻻ ﭘ درﭘ در ﺣﺎل اﺟﺮا اﺳﺖ‪.‬‬

‫رﻣﺰﻧ ﺎری ﻣﺪرن‬


‫ﻋﻠﻢ اﺳﺖ ﮐﻪ ﻣﺒﺘﻨ ﺑﺮ اﺻﻮل زﯾﺮ اﺳﺖ‪:‬‬ ‫رﻣﺰﻧ ﺎری ﻣﺪرن ﯾ‬

‫ﺗﻌﺮﯾﻒ دﻗﯿﻖ از ﻋﻨﺼﺮ رﻣﺰﻧ ﺎری‬ ‫‪ .١‬اراﺋﻪ ﯾ‬

‫ﺗﻌﺮﯾﻒ دﻗﯿﻖ از اﻣﻨﯿﺖ‬ ‫‪ .٢‬اراﺋﻪ ﯾ‬

‫ﺳﺎﺧﺘﺎر‬ ‫‪ .٣‬اراﺋﻪی ﯾ‬

‫‪ .۴‬اﺛﺒﺎت اﻣﻨﯿﺖ ﺗﺤﺖ ﻓﺮﺿﯿﺎت ﻣﻘﺒﻮل )ﻣﺎﻧﻨﺪ ﺗﺠﺰﯾﻪ اﻋﺪاد‪ ،‬ﻟ ﺎرﯾﺘﻢ ﮔﺴﺴﺘﻪ و ‪(...‬‬

‫در اﯾﻦ روش وﻗﺘ ﯾ ﺳﯿﺴﺘﻢ ﺷ ﺴﺘﻪ ﻣ ﺷﻮد ﮐﺎﻓ اﺳﺖ ﻣﺪل ﯾﺎ ﻓﺮﺿﯿﺎت را اﺻﻼح ﮐﺮد‪ .‬ﺗﺠﺮﺑﻪ ﻧﺸﺎن داده اﺳﺖ‬
‫ﮐﻪ ﺑﺎ ﺗﻤﺮﮐﺰ روی ﻣﺪلﻫﺎ و ﻓﺮﺿﯿﺎت ﻣ ﺗﻮان ﻣﺪلﻫﺎ را ﺑﻪ ﻣﺪل واﻗﻌ ﺑﺴﯿﺎر ﻧﺰدﯾ ﮐﺮد و ﻓﺮﺿﯿﺎت ﻣﻌﻘﻮﻟ را ﻧﯿﺰ‬
‫ﭘﺬﯾﺮﻓﺖ‪.‬‬

‫‪٣-۵‬‬
‫‪ ۴‬اﻣﻨﯿﺖ‬
‫ﺗﻌﺮﯾﻒ رﺳﻤ از اﻣﻨﯿﺖ‬ ‫ﺳﯿﺴﺘﻢ رﻣﺰ ”اﻣﻦ“ دارﯾﻢ و ﭼ ﻮﻧﻪ ﻣ ﺗﻮان ﯾ‬ ‫ﺑﺒﯿﻨﯿﻢ ﺑﻪ ﺻﻮرت ﺷﻬﻮدی ﭼﻪ اﻧﺘﻈﺎراﺗ از ﯾ‬
‫ﻣﺒﺘﻨ ﺑﺮ اﯾﻦ اﻧﺘﻈﺎرات ﺣﺪاﻗﻠ اراﺋﻪ ﮐﺮد‪.‬‬

‫‪ .١‬ﺣﻤﻠﻪﮐﻨﻨﺪه ﻧﺘﻮاﻧﺪ ﮐﻠﯿﺪ را ﺑﻪدﺳﺖ آورد‪.‬‬

‫‪ -‬اﯾﻦ ﺗﻌﺮﯾﻒ ﻧﻤ ﺗﻮاﻧﺪ ﺗﻌﺮﯾﻒ ﺧﻮﺑ ﺑﺎﺷﺪ‪ ،‬زﯾﺮا ﻣﻤ ﻦ اﺳﺖ ﯾ ﺳﯿﺴﺘﻢ ﺑﻪ اﯾﻦ ﺻﻮرت ﺗﻌﺮﯾﻒ ﮐﻨﯿﻢ ﮐﻪ رﻣﺰ‬
‫ﺷﺪهی ﻣﺘﻦ ‪ m‬ﺑﺮاﺑﺮ ‪ m‬اﺳﺖ و ﮐﻠﯿﺪ ‪ k‬ﯾ رﺷﺘﻪ ﺗﺼﺎدﻓ ﺑﺎ ﺗﻮزﯾﻊ ﯾ ﻨﻮاﺧﺖ روی رﺷﺘﻪﻫﺎی ‪ n‬ﺑﯿﺘ ﺑﻪ‬
‫‪۱‬‬
‫‪۲n‬‬
‫ازای ‪n‬ﻫﺎی ﺑﺰرگ اﺳﺖ‪ ،‬در اﯾﻦ ﺻﻮرت ﯾﺎﻓﺘﻦ ﮐﻠﯿﺪ در ﻋﻤﻞ ﻏﯿﺮﻣﻤ ﻦ اﺳﺖ زﯾﺮا اﺣﺘﻤﺎل ﻣﻮﻓﻘﯿﺖ‬
‫اﺳﺖ درﺣﺎﻟ ﮐﻪ ﻣﺘﻦ رﻣﺰی ﮐﻞ اﻃﻼﻋﺎت راﺟﻊ ﺑﻪ ﻣﺘﻦ اﺻﻠ را ﺑﻪ ﻣﺎ ﻣ دﻫﺪ‪.‬‬

‫ﻣﺘﻦ رﻣﺰی را ﺑﺪﺳﺖ آورد‪.‬‬ ‫‪ .٢‬ﺣﻤﻠﻪﮐﻨﻨﺪه ﻧﺘﻮاﻧﺪ ﻣﺘﻦ اﺻﻠ ﻣﺘﻨﺎﻇﺮ ﺑﺎ ﯾ‬

‫‪ -‬اﯾﻦ ﺗﻌﺮﯾﻒ ﺧﻮب ﻧﯿﺴﺖ‪ ،‬ﭼﺮاﮐﻪ اﻣ ﺎن دارد ﻗﺴﻤﺘ از ﻣﺘﻦ اﺻﻠ را ﺑﺪﺳﺖ آورد‪.‬‬

‫‪ .٣‬ﺣﻤﻠﻪﮐﻨﻨﺪه ﻧﺘﻮاﻧﺪ ﻫﯿﭻ ﺑﯿﺘ از ﻣﺘﻦ اﺻﻠ را ﺑﺪﺳﺖ آورده ﯾﺎ ﺣﺪس ﺑﺰﻧﺪ‪.‬‬

‫‪ -‬اﯾﻦ ﺗﻌﺮﯾﻒ ﺧﻮب ﻧﯿﺴﺖ‪ ،‬ﭼﺮاﮐﻪ اﻣ ﺎن دارد راﺑﻄﻪ ای ﺑﯿﻦ ﺑﯿﺖﻫﺎی ﻣﺨﺘﻠﻒ ﺑﺪﺳﺖ آورد‬

‫‪ .۴‬ﺣﻤﻠﻪﮐﻨﻨﺪه ﻧﺘﻮاﻧﺪ ﻫﯿﭻ اﻃﻼﻋﺎﺗ )ﺣﺘ ﺟﺰﺋ ( از ﻣﺘﻦ اﺻﻠ را ﺑﺪﺳﺖ آورد‪.‬‬

‫ﺗﻌﺮﯾﻒ ”ﻗﺎﺑﻞ ﻗﺒﻮل“ از اﻣﻨﯿﺖ ﺑﺎﯾﺪ ﺣﺘ اﻻﻣ ﺎن اﯾﻦ ﺧﻮاﺳﺘﻪ را ﺑﺮآورده ﺳﺎزد‪.‬‬ ‫‪ -‬ﯾ‬

‫ﺗﻌﺮﯾﻒ ‪) ۶‬اﻣﻨﯿﺖ ﮐﺎﻣﻞ( ﻓﺮض ﮐﻨﯿﺪ ‪ M‬و ‪ C‬ﺑﻪ ﺗﺮﺗﯿﺐ ﻓﻀﺎی ﻣﺘﻦ اﺻﻠ و ﻓﻀﺎی ﻣﺘﻦ رﻣﺰی ﺑﺎﺷﻨﺪ‪ ،‬در اﯾﻦ ﺻﻮرت‬
‫ﮔﻮﯾﯿﻢ ﺳﯿﺴﺘﻢ رﻣﺰ )‪ Π = (Gen, Enc, Dec‬روی ﻓﻀﺎی ‪ M‬دارای اﻣﻨﯿﺖ ﮐﺎﻣﻞ اﺳﺖ اﮔﺮ ﺑﺮای ﻫﺮ ﺗﻮزﯾﻊ اﺣﺘﻤﺎل‬
‫دﻟﺨﻮاه روی ‪ M‬و ﻫﺮ ‪ m ∈ M‬و ﻫﺮ ‪ c ∈ C‬داﺷﺘﻪ ﺑﺎﺷﯿﻢ‪:‬‬

‫‪Pr{M = m|C = c} = Pr{M = m}.‬‬


‫ﮐﻪ ‪ M‬و ‪ C‬ﺑﻪ ﺗﺮﺗﯿﺐ ﺑﯿﺎﻧ ﺮ ﻣﺘﻐﺮﻫﺎی ﺗﺼﺎدﻓ ﻣﺘﻦ اﺻﻠ و ﻣﺘﻦ رﻣﺰی ﻫﺴﺘﻨﺪ‪.‬‬

‫دﻗﺖ ﮐﻨﯿﺪ ﮐﻪ آﻧ ﻮﻧﻪ ﮐﻪ ﻣﺎ ﻓﻀﺎی رﻣﺰ‪ ،C ،‬را ﺗﻌﺮﯾﻒ ﮐﺮدﯾﻢ‪ ،‬ﺑﻪ ازای ﻫﺮ ‪ c ∈ C‬دارﯾﻢ ‪ Pr{C = c} > ۰‬و‬
‫ﻟﺬا اﺣﺘﻤﺎل ﺷﺮﻃ ﺗﻌﺮﯾﻒ ﺷﺪه اﺳﺖ‪ .‬اﯾﻦ ﺗﻌﺮﯾﻒ را اوﻟﯿﻦ ﺑﺎر ﺷﺎﻧﻮن ‪ ۴‬در ﺳﺎل ‪ ١٩۴٨‬ﺑﺮای اﻣﻨﯿﺖ اراﺋﻪ ﮐﺮد و ﺗﻨﻬﺎ‬
‫ﺣﻤﻠﻪای را ﻣﺪل ﻣ ﮐﻨﺪ ﮐﻪ ﻣﻬﺎﺟﻢ دارای ﺗﻮان ﻣﺤﺎﺳﺒﻪی ﻧﺎﻣﺤﺪود و ﻫﻤﭽﻨﯿﻦ ﺗﻨﻬﺎ ﻗﺎﺑﻠﯿﺖ ﺷﻨﻮد داﺷﺘﻪ و ﻓﻘﻂ ﯾ ﻣﺘﻦ‬
‫رﻣﺰی را درﯾﺎﻓﺖ ﮐﺮده اﺳﺖ‪.‬‬

‫‪۴‬‬
‫‪C. E. Shannon: A mathematical theory of communication. Bell System Technical Journal, vol. 27,‬‬
‫‪pp. 379–423 and 623–656, July and October, 1948‬‬

‫‪٣-۶‬‬
‫آ ﻓﻀﺎی ﮐﻠﯿﺪ ﺳﯿﺴﺘﻢ رﻣﺰ ﻫﯿﻞ‬
‫ﻫﺪف از اﯾﻦ ﻗﺴﻤﺖ ﻣﺤﺎﺳﺒﻪ ﺗﻌﺪاد ﻣﺎﺗﺮﯾﺲﻫﺎی ﻣﻌ ﻮس ﭘﺬﯾﺮ روی ‪ m ∈ N ،Zm‬ﺑﺮای ﺣﺎﻟﺖ ﺧﺎﺻ ﮐﻪ ‪m‬‬
‫ﺣﺎﺻﻞﺿﺮب اﻋﺪاد اول ﻣﺘﻤﺎﯾﺰ ﺑﺎﺷﺪ‪ ،‬اﺳﺖ‪ .‬ﻧﺘﺎﯾﺞ اﯾﻦ ﺑﺨﺶ را ﻣ ﺗﻮان ﺑﺮای ﺣﺎﻟﺖ ﮐﻠ ﺗﺮ ﻧﯿﺰ اراﺋﻪ ﮐﺮد‪ ،‬اﻣﺎ ﭘﯿﭽﯿﺪهﺗﺮ‬
‫اﺳﺖ‪.‬‬

‫ﻗﻀﯿﻪ ‪ ١‬اﮔﺮ ‪ p‬ﻋﺪدی اول و ‪ d ∈ N‬در اﯾﻦ ﺻﻮرت ﺗﻌﺪاد ﻣﺎﺗﺮﯾﺲﻫﺎی ﻣﻌ ﻮس ﭘﺬﯾﺮ ‪ d × d‬روی ‪ Zp‬ﺑﺮاﺑﺮ اﺳﺖ ﺑﺎ‬

‫∏‬
‫‪d−۱‬‬
‫‪(pd − pi ).‬‬
‫‪i=۰‬‬

‫ﺑﺮﻫﺎن‪ .‬از ﺟﺒﺮﺧﻄ ﻣ داﻧﯿﻢ ﮐﻪ ﯾ ﻣﺎﺗﺮﯾﺲ ﻣﻌ ﻮسﭘﺬﯾﺮ اﺳﺖ اﮔﺮ و ﺗﻨﻬﺎ اﮔﺮ ﺳﺘﻮنﻫﺎی آن ﻣﺴﺘﻘﻞ ﺧﻄ ﺑﺎﺷﻨﺪ‪.‬‬
‫ﺑﻨﺎﺑﺮاﯾﻦ ﻫﺪف ﻣﺎ ﺣﺴﺎب ﮐﺮدن ﺗﻌﺪاد ﻣﺎﺗﺮﯾﺲﻫﺎی ‪ d × d‬اﺳﺖ ﮐﻪ ‪ d‬ﺳﺘﻮن آن ﺑﻪ ﭘﯿﻤﺎﻧﻪی ‪ p‬ﻣﺴﺘﻘﻞ ﺧﻄ ﺑﺎﺷﻨﺪ‪.‬‬
‫ﺑﺮای ﺳﺎﺧﺖ اوﻟﯿﻦ ﺳﺘﻮن ﺗﻨﻬﺎ ﻣﺤﺪودﯾﺖ ﻣﺎ اﯾﻦ اﺳﺖ ﮐﻪ ﺗﻤﺎم ﺻﻔﺮ ﻧﺒﺎﺷﺪ )و ﭼﻮن ﻫﺮ ﺳﺘﻮن ‪ d‬دراﯾﻪ دارد و ﺑﺮای‬
‫ﻫﺮ دراﯾﻪ ‪ p‬ﺗﺎ اﻧﺘﺨﺎب دارﯾﻢ(‪ ،‬ﺑﻨﺎﺑﺮاﯾﻦ ‪ pd − ۱‬ﺗﺎ اﻧﺘﺨﺎب ﺑﺮای ﺳﺘﻮن اول دارﯾﻢ‪ .‬ﺣﺎل ﻓﺮض ﮐﻨﯿﺪ ﮐﻪ ‪ i‬ﺳﺘﻮن اول‬
‫ﻣﺴﺘﻘﻞ ﺧﻄ ‪ c۱ c۲ · · · ci‬ﺳﺎﺧﺘﻪاﯾﻢ‪ ،‬ﺑﺮای ﺳﺎﺧﺖ ﺳﺘﻮن ‪ i + ۱‬ام‪ ،‬اﯾﻦ ﺳﺘﻮن ﺑﺎﯾﺪ از ‪ i‬ﺳﺘﻮن ﻗﺒﻠ ﻣﺴﺘﻘﻞ ﺧﻄ‬
‫ﺑﺎﺷﺪ ﯾﺎ ﺑﻪﻋﺒﺎرتدﯾ ﺮ ﺗﺮﮐﯿﺐ ﺧﻄ از ‪ i‬ﺳﺘﻮن ﻗﺒﻠ ﻧﺒﺎﺷﺪ )ﯾﺎ ﺑﻪﻋﺒﺎرتدﯾ ﺮ وﺟﻮد ﻧﺪاﺷﺘﻪ ﺑﺎﺷﺪ ‪ α۱ , · · · , αi‬ﮐﻪ‬
‫‪ ،( ci+۱ = α۱ .c۱ + · · · + αi .ci‬ﭘﺲ ) ‪ (pd − pi‬ﺣﺎﻟﺖ ﺑﺮای اﻧﺘﺨﺎب ﺳﺘﻮن ‪ i + ۱‬دارﯾﻢ زﯾﺮا ﻫﺮ ‪ p ،αi‬ﺣﺎﻟﺖ‬
‫∏‬
‫دارد؛ ﺑﻨﺎﺑﺮاﯾﻦ ﺗﻌﺪاد ﮐﻞ ﻣﺎﺗﺮﯾﺲﻫﺎی ﻣﻌ ﻮسﭘﺬﯾﺮ ‪ d × d‬روی ‪ Zp‬ﺑﺮاﺑﺮ اﺳﺖ ﺑﺎ ) ‪i=۰ (p − p‬‬
‫‪. d−۱‬‬ ‫‪d‬‬ ‫‪i‬‬

‫ﻗﻀﯿﻪ ‪ ٢‬اﮔﺮ ‪ p۱ , . . . , pℓ‬اﻋﺪاد اول ﻣﺘﻤﺎﯾﺰ و ‪ d ∈ N‬در اﯾﻦ ﺻﻮرت ﺗﻌﺪاد ﻣﺎﺗﺮﯾﺲﻫﺎی ﻣﻌ ﻮسﭘﺬﯾﺮ ‪ d × d‬روی‬
‫‪ Zm‬ﮐﻪ ‪ m = Πℓk=۱ pk‬ﺑﺮاﺑﺮ اﺳﺖ ﺑﺎ‬
‫∏‬ ‫∏‬
‫‪ℓ d−۱‬‬
‫‪(pdk − pik ).‬‬
‫‪k=۱ i=۰‬‬

‫ﺑﺮﻫﺎن‪ .‬ﻣ ﺗﻮان ﻧﺸﺎن داد ﮐﻪ ﯾ ﯾ ﺮﯾﺨﺘ از ﻣﺠﻤﻮﻋﻪی ﻣﺎﺗﺮﯾﺲﻫﺎی ﻣﻌ ﻮسﭘﺬﯾﺮ روی ‪ Zp۱ p۲ ···pℓ‬ﺑﻪ ‪-ℓ‬ﺗﺎﯾ ﻫﺎی‬
‫ﻣﺮﺗﺐ ﮐﻪ ﻣﺆﻟﻔﻪی ‪k‬ام آن ﻣﺎﺗﺮﯾﺲﻫﺎی ﻣﻌ ﻮسﭘﺬﯾﺮ روی ‪ Zpk‬ﻣ ﺑﺎﺷﺪ‪ ،‬وﺟﻮد دارد‪ .‬اﯾﻦ ﮔﺰاره را ﻣ ﺗﻮان ﺑﺎ اﺳﺘﻔﺎده‬
‫از ﻣﻔﻬﻮم ﯾ ﺮﯾﺨﺘ در ﻧﻈﺮﯾﻪ ﮔﺮوهﻫﺎ اﺛﺒﺎت ﮐﺮد ﮐﻪ ﻣﺎ در اﯾﻨﺠﺎ ﺑﺪان ﻧﺨﻮاﻫﯿﻢ ﭘﺮداﺧﺖ‪ .‬ﺑﻨﺎﺑﺮاﯾﻦ ﺑﻨﺎ ﺑﺮ اﺻﻞ ﺿﺮب‬
‫∏‬ ‫‪∏d−۱ d‬‬
‫‪ d−۱‬اﺳﺖ‬ ‫× · · · × ) ‪i=۰ (p۱ − p۱‬‬
‫‪d‬‬ ‫‪i‬‬
‫وﻟﻢ ‪ ١‬ﺗﻌﺪاد ﻣﺎﺗﺮﯾﺲﻫﺎی ﻣﻌ ﻮسﭘﺬﯾﺮ روی ‪ Zp۱ p۲ ···pℓ‬ﺑﺮاﺑﺮ ) ‪i=۰ (p۲ − pℓ‬‬
‫‪i‬‬

‫و ﺣ ﻢ ﺛﺎﺑﺖ اﺳﺖ‪.‬‬

‫ﻧﺘﯿﺠﻪ ‪ ٧‬ﺗﻌﺪاد ﻣﺎﺗﺮﯾﺲﻫﺎی ﻣﻌ ﻮسﭘﺬﯾﺮ روی ‪ Z۲۶‬ﺑﺮاﺑﺮ اﺳﺖ ﺑﺎ‬

‫∏‬
‫‪d‬‬
‫∏ ‪۱‬‬
‫‪d‬‬
‫‪۱‬‬
‫‪d۲‬‬
‫‪۲۶‬‬ ‫‪(۱ − i ) (۱ −‬‬ ‫)‬
‫‪۲‬‬ ‫‪۱۳i‬‬
‫‪i=۱‬‬ ‫‪i=۱‬‬
‫‪.‬‬

‫ﺑﺮﻫﺎن‪ .‬در ﻗﻀﯿﻪ ‪ ٢‬ﮐﺎﻓ اﺳﺖ ﻗﺮار دﻫﯿﻢ ‪.p۱ = ۲, p۲ = ۱۳‬‬

‫‪٣-٧‬‬
‫ﺑﻪ ﻧﺎم ﺧﺪا‬

‫داﻧﺸ ﺪهی ﻋﻠﻮم رﯾﺎﺿ‬

‫‪ ٢٩‬ﺑﻬﻤﻦ ‪١٣٩١‬‬ ‫ﻣﻘﺪﻣﻪای ﺑﺮ رﻣﺰﻧ ﺎری‬

‫ﺟﻠﺴﻪی ‪ :۴‬ﺗﻌﺮﯾﻒ اﻣﻨﯿﺖ ﮐﺎﻣﻞ‬


‫ﻧ ﺎرﻧﺪه‪ :‬ﻓﺎﻃﻤﻪ ﺳﺎدات ذﺑﯿﺤ‬ ‫ﻣﺪرس‪ :‬دﮐﺘﺮ ﺷﻬﺮام ﺧﺰاﺋ‬

‫ﻫﺪف ﻣﺎ در اﯾﻦ ﺟﻠﺴﻪ اراﺋﻪ ﺗﻌﺮﯾﻔ ﺑﺮای ﻣﻔﻬﻮم اﻣﻨﯿﺖ ﮐﺎﻣﻞ ﺑﺮای ﺳﯿﺴﺘﻢ رﻣﺰ ﻣﺘﻘﺎرن ﻣ ﺑﺎﺷﺪ‪ ،‬ﯾﻌﻨ وﻗﺘ ﺣﻤﻠﻪﮐﻨﻨﺪه‬
‫ﻣﺘﻦ رﻣﺰ ﺷﺪه را ﺑﺒﯿﻨﺪ ﻧﺘﻮاﻧﺪ ﻫﯿﭻ اﻃﻼﻋﺎﺗ راﺟﻊ ﺑﻪ ﻣﺘﻦ اﺻﻠ ﮐﺴﺐ ﮐﻨﺪ‪.‬‬

‫‪ ١‬اﻣﻨﯿﺖ ﮐﺎﻣﻞ‬
‫ﺑﻪ ﻃﻮر اﯾﺪهال‪ ،‬ﻣﺘﻦ رﻣﺰ ﺷﺪه ‪ ١‬ﻧﺒﺎﯾﺪ اﻃﻼﻋﺎت اﺿﺎﻓﻪای درﺑﺎره ﻣﺘﻦ اﺻﻠ ‪ ٢‬ﺑﻪ ﻣﻬﺎﺟﻢ ﺑﺪﻫﺪ‪ .‬ﺑﻪ ﻋﺒﺎرت دﯾ ﺮ‪ ،‬وﻗﺘ‬
‫ﺷﻨﻮدﮔﺮ ﯾ ﻣﺘﻦ رﻣﺰﺷﺪه را ﺷﻨﻮد ﻣ ﮐﻨﺪ‪ ،‬ﻧﺒﺎﯾﺪ اﺑﻬﺎم او ﻧﺴﺒﺖ ﺑﻪ ﻣﺘﻦ اﺻﻠ ﮐﺎﻫﺶ ﯾﺎﺑﺪ‪ .‬ﺗﻌﺮﯾﻒ اﻣﻨﯿﺖ ﮐﺎﻣﻞ ‪ ٣‬ﮐﻪ‬
‫در اداﻣﻪ ﻣ آﯾﺪ از اﯾﻦ ﺷﻬﻮد ﺣﺎﺻﻞ ﺷﺪه اﺳﺖ‪ .‬اﯾﻦ ﺗﻌﺮﯾﻒ ﺑﻪ اﻣﻨﯿﺖ ﺷﺎﻧﻮن ‪ ۴‬ﯾﺎ اﻣﻨﯿﺖ ﺗﺌﻮری اﻃﻼﻋﺎﺗ ‪ ۵‬ﻧﯿﺰ ﻣﻌﺮوف‬
‫اﺳﺖ ﮐﻪ اوﻟﯿﻦ ﺑﺎر ﺗﻮﺳﻂ ﺷﺎﻧﻮن‪ ،‬ﻣﺒﺪع ﺗﺌﻮری اﻃﻼﻋﺎت‪ ،‬در ﺳﺎل ‪ ١٩۴٨‬اراﺋﻪ ﺷﺪ‪.‬‬

‫ﺗﻌﺮﯾﻒ ‪) ١‬اﻣﻨﯿﺖ ﮐﺎﻣﻞ( ﺳﯿﺴﺘﻢ رﻣﺰ ﻣﺘﻘﺎرن )‪ Π = (Gen, Enc, Dec‬روی ﻓﻀﺎی ﭘﯿﺎم ‪ M‬دارای اﻣﻨﯿﺖ ﮐﺎﻣﻞ‬
‫اﺳﺖ اﮔﺮ ﺑﺮای ﻫﺮ ﺗﻮزﯾﻊ دﻟﺨﻮاه روی ‪ ،M‬ﻫﺮ ﻣﺘﻦ اﺻﻠ ‪ m ∈ M‬و ﻫﺮ ﻣﺘﻦ رﻣﺰﺷﺪه ‪ c ∈ C‬داﺷﺘﻪ ﺑﺎﺷﯿﻢ‪:‬‬

‫}‪Pr{M = m|C = c} = Pr{M = m‬‬


‫ﮐﻪ ‪ M‬و ‪ C‬ﺑﻪﺗﺮﺗﯿﺐ ﺑﯿﺎﻧ ﺮ ﻣﺘﻐﯿﺮﻫﺎی ﺗﺼﺎدﻓ ﻣﺘﻦ اﺻﻠ و ﻣﺘﻦ رﻣﺰی ﻫﺴﺘﻨﺪ‪ .‬دﻗﺖ ﮐﻨﯿﺪ ﻣﺘﻐﯿﺮ ﺗﺼﺎدﻓ ‪ C‬ﺑﻪ ﻣﺘﻐﯿﺮ‬
‫ﺗﺼﺎدﻓ ‪ M‬و ﺑﯿﺖﻫﺎی ﺗﺼﺎدﻓ ﮐﻪ اﻟ ﻮرﯾﺘﻢ ﺗﻮﻟﯿﺪ ﮐﻠﯿﺪ و )اﺣﯿﺎﻧﺎً( اﻟ ﻮرﯾﺘﻢ رﻣﺰﻧ ﺎری اﺳﺘﻔﺎده ﻣ ﮐﻨﺪ‪ ،‬واﺑﺴﺘﻪ اﺳﺖ‪.‬‬

‫ﺗﻮﺟﻪ داﺷﺘﻪ ﺑﺎﺷﯿﺪ ﮐﻪ در ﻫﺮ ﺳﯿﺴﺘﻢ رﻣﺰ دﻟﺨﻮاه اﻟ ﻮرﯾﺘﻢﻫﺎی ﺗﻮﻟﯿﺪ ﻛﻠﯿﺪ و رﻣﺰﻧ ﺎری ﺑﻪﻫﻤﺮاه ﻓﻀﺎی ﻣﺘﻦ اﺻﻠ ‪،M‬‬
‫ﻓﻀﺎﻫﺎی ﻛﻠﯿﺪ و ﻣﺘﻦ رﻣﺰﺷﺪه را ﻣﺸﺨﺺ ﻣ ﻛﻨﻨﺪ‪ .‬ﺗﻌﺮﯾﻒ ﻓﻮق ﺣﻤﻠﻪای را ﻣﺪل ﻣ ﮐﻨﺪ ﮐﻪ ﻣﻬﺎﺟﻢ ﻓﻘﻂ ﻗﺎﺑﻠﯿﺖ ﺷﻨﻮد‬
‫دارد و ﻓﻘﻂ ﯾ ﻣﺘﻦ رﻣﺰ ﺷﺪه ﻣ ﺑﯿﻨﺪ ﮐﻪ ﻃﺒﻖ اﯾﻦ ﺗﻌﺮﯾﻒ ﻣﻬﺎﺟﻢ ﭼﻪ ﻣﺘﻦ رﻣﺰ ﺷﺪه را ﺑﺒﯿﻨﺪ و ﭼﻪ ﻧﺒﯿﻨﺪ ﺑﺎ ﯾ اﺣﺘﻤﺎل‬
‫ﻣﺘﻦ اﺻﻠ را ﻣ ﺗﻮاﻧﺪ ﺣﺪس ﺑﺰﻧﺪ‪.‬‬
‫ﯾ ﺗﻌﺮﯾﻒ ﻣﻌﺎدل از اﻣﻨﯿﺖ ﮐﺎﻣﻞ در ﻟﻢ زﯾﺮ آﻣﺪه اﺳﺖ‪ .‬ﺑﻪ ﻃﻮر ﺷﻬﻮدی‪ ،‬اﯾﻦ ﺗﻌﺮﯾﻒ ﺑﯿﺎن ﻣ ﮐﻨﺪ ﻛﻪ اﮔﺮ در ﯾ‬
‫ﺳﯿﺴﺘﻢ اﻣﻦ ﮐﺎﻣﻞ‪ ،‬ﺣﻤﻠﻪﮐﻨﻨﺪه ﺑﺘﻮاﻧﺪ ﺑﺎ دﯾﺪن ﻣﺘﻦ رﻣﺰ ﺷﺪه )ﻣﺘﻨﺎﻇﺮ ﺑﺎ ﭘﯿﺎﻣ ﮐﻪ ﻗﺮار اﺳﺖ ارﺳﺎل ﺷﻮد( اﻃﻼﻋﺎﺗ‬
‫ﮐﺴﺐ ﮐﻨﺪ‪ ،‬ﺑﺪون دﯾﺪن ﻣﺘﻦ رﻣﺰ ﺷﺪه ﻫﻢ ﻣ ﺗﻮاﻧﺪ ﻫﻤﺎن ﻣﯿﺰان اﻃﻼﻋﺎت ﮐﺴﺐ ﮐﻨﺪ‪.‬‬
‫‪١‬‬
‫‪ciphertext‬‬
‫‪٢‬‬
‫‪plaintext‬‬
‫‪٣‬‬
‫‪perfect secrecy‬‬
‫‪۴‬‬
‫‪Shannon‬‬
‫‪۵‬‬
‫‪information-theoretic security‬‬

‫‪۴-١‬‬
‫ﻟﻢ ‪ ١‬ﺳﯿﺴﺘﻢ رﻣﺰ ﻣﺘﻘﺎرن )‪ Π = (Gen, Enc, Dec‬روی ﻓﻀﺎی ﻣﺘﻦ اﺻﻠ ‪ M‬دارای اﻣﻨﯿﺖ ﮐﺎﻣﻞ اﺳﺖ‪ ،‬اﮔﺮ و ﺗﻨﻬﺎ‬
‫اﮔﺮ ﺑﺮای ﻫﺮ ﺗﻮزﯾﻊ دﻟﺨﻮاه روی ﻓﻀﺎی ﭘﯿﺎم ‪ ،M‬ﻫﺮ ﻣﺘﻦ اﺻﻠ ‪ m ∈ M‬و ﻫﺮ ﻣﺘﻦ رﻣﺰﺷﺪه ‪ c ∈ C‬راﺑﻄﻪ زﯾﺮ ﺑﺮﻗﺮار‬
‫ﺑﺎﺷﺪ‪:‬‬

‫}‪Pr{C = c|M = m} = Pr{C = c‬‬

‫}‪ . Pr{M=m‬ﺑﺪﯾﻦ ﺻﻮرت ‪:‬‬


‫}‪Pr{C=c‬‬
‫ﺑﺮﻫﺎن‪ .‬دو ﻃﺮف ﺗﺴﺎوی را ﺿﺮب ﻣ ﮐﻨﯿﻢ در‬

‫}‪Pr{M = m‬‬ ‫}‪Pr{M = m‬‬


‫× }‪Pr{C = c|M = m‬‬ ‫× }‪= Pr{C = c‬‬
‫}‪Pr{C = c‬‬ ‫}‪Pr{C = c‬‬

‫ﮐﻪ ﺑﺎ اﺳﺘﻔﺎده از ﻗﺎﻋﺪه اﺣﺘﻤﺎل ﺑﯿﺰ ﺑﻪ ﺻﻮرت زﯾﺮ ﺳﺎده ﻣ ﺷﻮد‬

‫}‪Pr{M = m|C = c} = Pr{M = m‬‬

‫ﺑﺎﺗﻮﺟﻪ ﺑﻪ اﯾﻨ ﻪ در اﻧﺘﻬﺎ ﺑﻪ ﺗﻌﺮﯾﻒ ‪ ١‬رﺳﯿﺪﯾﻢ‪ ،‬اﻣﻨﯿﺖ ﻛﺎﻣﻞ در اﯾﻦ ﺷﺮاﯾﻂ ﺑﺮﻗﺮار ﻣ ﺑﺎﺷﺪ‪.‬‬
‫ﺗﻌﺮﯾﻒ ﻣﻌﺎدل دﯾ ﺮی از اﻣﻨﯿﺖ ﮐﺎﻣﻞ در زﯾﺮ آﻣﺪه اﺳﺖ‪ .‬اﯾﻦ ﺗﻌﺮﯾﻒ از اﯾﻦ ﻣﻨﻈﺮ ﮐﻪ دﯾ ﺮ ﺑﻪ ﺗﻮزﯾﻊ اﺣﺘﻤﺎل روی ﻓﻀﺎی‬
‫ﭘﯿﺎم ‪ M‬اﺷﺎره ﻧﻤ ﮐﻨﺪ‪ ،‬ﺳﺎدهﺗﺮ اﺳﺖ‪.‬‬

‫ﻟﻢ ‪ ٢‬ﺳﯿﺴﺘﻢ رﻣﺰ ﻣﺘﻘﺎرن )‪ Π = (Gen, Enc, Dec‬روی ﻓﻀﺎی ﻣﺘﻦ اﺻﻠ ‪ M‬دارای اﻣﻨﯿﺖ ﮐﺎﻣﻞ اﺳﺖ‪ ،‬اﮔﺮ و ﺗﻨﻬﺎ‬
‫اﮔﺮ ﺑﺮای ﻫﺮ زوج ﻣﺘﻦ اﺻﻠ ‪ m۰ , m۱ ∈ M‬و ﻫﺮ ﻣﺘﻦ رﻣﺰﺷﺪه ‪ c ∈ C‬راﺑﻄﻪ زﯾﺮ ﺑﺮﻗﺮار ﺑﺎﺷﺪ‪:‬‬

‫} ‪Pr{C = c|M = m۰ } = Pr{C = c|M = m۱‬‬

‫ﺑﺮﻫﺎن‪ .‬اﺑﺘﺪا ﻃﺮف اول را ﺛﺎﺑﺖ ﻣ ﮐﻨﯿﻢ‪ .‬ﻃﺒﻖ ﻟﻢ ‪ ١‬اﮔﺮ ﺳﯿﺴﺘﻢ اﻣﻦ ﻛﺎﻣﻞ ﺑﺎﺷﺪ‪ ،‬ﺑﻪ ازای ﻫﺮ زوج ﭘﯿﺎم دﻟﺨﻮاه‬
‫‪ m۰ , m۱ ∈ M‬دارﯾﻢ‪:‬‬

‫}‪Pr{C = c|M = m۰ } = Pr{C = c‬‬


‫و‬

‫}‪Pr{C = c|M = m۱ } = Pr{C = c‬‬


‫از ﺑﺮاﺑﺮی ﻃﺮف راﺳﺖ آﻧﻬﺎ ﻧﺘﯿﺠﻪ ﻣ ﮔﯿﺮﯾﻢ‬

‫} ‪Pr{C = c|M = m۰ } = Pr{C = c|M = m۱‬‬


‫ﺗﻮزﯾﻊ دﻟﺨﻮاه روی ﻓﻀﺎی ﭘﯿﺎم ‪ M‬در ﻧﻈﺮ ﺑ ﯿﺮﯾﺪ‪ .‬ﺑﺮای ﻫﺮ ‪ m۰ ∈ M‬و ﻫﺮ‬ ‫ﺣﺎل ﻃﺮف دوم را ﺛﺎﺑﺖ ﻣ ﮐﻨﯿﻢ‪ .‬ﯾ‬
‫‪ c ∈ C‬دارﯾﻢ‪:‬‬
‫∑‬
‫= }‪Pr{C = c‬‬ ‫∑ ‪m∈M Pr{C = c|M‬‬‫}‪= m} Pr{M = m‬‬
‫}‪= Pr{C = c|M = m۰ } m∈M Pr{M = m‬‬
‫} ‪= Pr{C = c|M = m۰‬‬
‫ﭘﺲ ﺑﻪ ازای ﻫﺮ ﭘﯿﺎم اﺻﻠ دﻟﺨﻮاه راﺑﻄﻪ ﻣﻮﺟﻮد در ﻟﻢ ‪ ١‬ﺑﺮﻗﺮار اﺳﺖ در ﻧﺘﯿﺠﻪ ﻃﺒﻖ ﻟﻢ ‪ ١‬ﺳﯿﺴﺘﻢ اﻣﻦ ﻛﺎﻣﻞ اﺳﺖ‪.‬‬

‫‪۴-٢‬‬
‫‪ ٢‬رﻣﺰ ﯾ ﺒﺎر ﻣﺼﺮف‬
‫ﺗﻌﺮﯾﻒ ‪ ) ٢‬رﻣﺰ ﯾ ﺒﺎر ﻣﺼﺮف )‪ (۶ OTP‬ﯾﺎ ورﻧﺎم ‪ (٧‬ﺳﯿﺴﺘﻢ رﻣﺰ رﻣﺰ ﯾ ﺒﺎر ﻣﺼﺮف ﯾ ﺳﯿﺴﺘﻢ رﻣﺰ ﻣﺘﻘﺎران اﺳﺖ‬
‫ﻛﻪ در آن ﻓﻀﺎی ﮐﻠﯿﺪ و ﻓﻀﺎی ﻣﺘﻦ اﺻﻠ ﻣﺠﻤﻮﻋﻪی ﻫﻤﻪ رﺷﺘﻪﻫﺎی ‪-n‬ﺑﯿﺘ ﻫﺴﺘﻨﺪ‪ ،‬ﯾﻌﻨ ‪،M = K = {۰, ۱}n‬‬
‫و اﻟ ﻮرﯾﺘﻢﻫﺎی ﺗﻮﻟﯿﺪ ﮐﻠﯿﺪ‪ ،‬رﻣﺰﮔﺬاری و رﻣﺰﮔﺸﺎﯾ ﺑﻪ ﺻﻮرت زﯾﺮ ﺗﻌﺮﯾﻒ ﻣ ﺷﻮﻧﺪ‪.‬‬

‫• ‪ Gen‬ﯾﻚ رﺷﺘﻪ ﺗﺼﺎدﻓ ‪ k‬از ‪ K‬ﺗﻮﻟﯿﺪ ﻣ ﻛﻨﺪ‪.‬‬

‫• ‪ Enc‬ﭘﯿﺎم اﺻﻠ ‪ m ∈ M‬و ﻛﻠﯿﺪ ‪ k ∈ K‬را ﻣ ﮔﯿﺮد و ﻣﺘﻦ رﻣﺰی ‪ c = m ⊕ k‬را ﺗﻮﻟﯿﺪ ﻣ ﮐﻨﺪ‪.‬‬

‫• ‪ Dec‬ورودی ‪ c‬و ﻛﻠﯿﺪ ‪ k‬را ﻣ ﮔﯿﺮد و اﮔﺮ ‪ c ∈ C = {۰, ۱}n‬ﻣﺘﻦ اﺻﻠ ‪ m = c ⊕ k‬را ﺗﻮﻟﯿﺪ ﻣ ﮐﻨﺪ‪.‬‬

‫ﻗﻀﯿﻪ ‪ ٣‬رﻣﺰ ﯾ ﺒﺎرﻣﺼﺮف دارای اﻣﻨﯿﺖ ﮐﺎﻣﻞ اﺳﺖ‪.‬‬

‫ﺑﺮﻫﺎن‪ .‬ﻓﺮض ﮐﻨﯿﺪ ‪ M‬ﺑﯿﺎﻧ ﺮ ﻣﺘﻐﯿﺮ ﺗﺼﺎدﻓ ﺧﺮوﺟ اﻟ ﻮرﯾﺘﻢ ﺗﻮﻟﯿﺪ ﮐﻠﯿﺪ ﺑﺎﺷﺪ‪ .‬ﺑﻪ ازای ﻫﺮ ‪ m ∈ M‬و ﻫﺮ ‪c ∈ C‬‬
‫دارﯾﻢ‪:‬‬

‫}‪Pr{C = c|M = m} = Pr{M ⊕ K = c|M = m‬‬


‫}‪= Pr{K = m ⊕ c‬‬
‫‪= ۲۱n‬‬
‫ﻣﺸﺎﻫﺪه ﻣ ﺷﻮد ﮐﻪ ﻣﺘﻦ رﻣﺰی ﻣﺴﺘﻘﻞ از ﻣﺘﻦ اﺻﻠ دارای ﺗﻮزﯾﻊ ﯾ ﻨﻮاﺧﺖ اﺳﺖ‪.‬‬

‫ﺑﺮای ارﺳﺎل اﻣﻦ ﯾ ﭘﯿﺎم ﺑﺎ اﺳﺘﻔﺎده از ﺳﯿﺴﺘﻢ رﻣﺰ ورﻧﺎم‪ ،‬ﺑﺎﯾﺪ دو ﻃﺮف ﯾ ﮐﻠﯿﺪ ﮐﺎﻣﻼ ﺗﺼﺎدﻓ ﺑﻪ ﻫﻤﺎن ﻃﻮل از ﻗﺒﻞ‬
‫ﺑﺎ ﯾ ﺪﯾ ﺮ ﺑﻪ اﺷﺘﺮاک ﺑ ﺬارﻧﺪ‪ .‬اﯾﻦ اﻣﺮ ﯾ ﻣﺸ ﻞ اﺳﺎﺳ ﺑﺮای اﺳﺘﻔﺎده ﻋﻤﻠ از اﯾﻦ ﺳﯿﺴﺘﻢ‪ ،‬ﺑﻪ ﺟﺰ در ﻣﻮاﻗﻊ ﺧﺎﺻ‬
‫ﮐﻪ اﻣ ﺎن اﺷﺘﺮاک ﮔﺬاری ﮐﻠﯿﺪ وﺟﻮد داﺷﺘﻪ ﺑﺎﺷﺪ‪ ،‬ﺑﻪ ﺣﺴﺎب ﻣ آﯾﺪ‪ .‬ﻻزم ﺑﻪ ﺗﺄﮐﯿﺪ اﺳﺖ ﮐﻪ ﻓﻘﻂ ﯾ ﺒﺎر از ﻫﺮ ﮐﻠﯿﺪی‬
‫ﻣ ﺗﻮان ﺑﺮای ارﺳﺎل ﻓﻘﻂ ﯾ ﭘﯿﺎم اﺳﺘﻔﺎده ﮐﺮد‪ .‬ﺑﺮای درک اﯾﻦ ﻣﻮﺿﻮع‪ ،‬ﻓﺮض ﻛﻨﯿﺪ ﺷﻨﻮدﮔﺮ ﻣﺘﻦﻫﺎی رﻣﺰی ‪ c۲‬و ‪c۱‬‬
‫را ﻛﻪ رﻣﺰ ﺷﺪه ﭘﯿﺎمﻫﺎی ‪ m۲‬و ‪ m۱‬ﺗﺤﺖ ﮐﻠﯿﺪ ﯾ ﺴﺎن ‪ k‬ﻫﺴﺘﻨﺪ‪ ،‬درﯾﺎﻓﺖ ﻛﺮده ﺑﺎﺷﺪ‪ .‬رواﺑﻂ‬

‫‪c۱ = Enck (m۱ ) = m۱ ⊕ k‬‬


‫‪c۲ = Enck (m) = m۲ ⊕ k‬‬

‫ﻧﺸﺎن ﻣ دﻫﺪ از روی ‪ xor‬ﻣﺘﻦﻫﺎی رﻣﺰی ﻣ ﺗﻮان ‪ xor‬ﻣﺘﻦﻫﺎی اﺻﻠ را ﺣﺪس ﺑﻪدﺳﺖ آورد‪:‬‬

‫‪c۱ ⊕ c۲ = m۱ ⊕ k ⊕ m۲ ⊕ k = m۱ ⊕ m۲‬‬

‫ﻗﻀﯿﻪ ‪) ۴‬ﺷﺎﻧﻮن( اﮔﺮ ﺳﯿﺴﺘﻢ رﻣﺰ )‪ Π = (Gen, Enc, Dec‬روی ﻓﻀﺎی ‪ M‬دارای اﻣﻨﯿﺖ ﮐﺎﻣﻞ ﺑﺎﺷﺪ‪ ،‬آنﮔﺎه‬
‫|‪ |K| ≥ |M‬ﮐﻪ ‪ K‬ﻓﻀﺎی ﮐﻠﯿﺪﻫﺎی ﺗﻮﻟﯿﺪﺷﺪه ﺗﻮﺳﻂ ‪ Gen‬اﺳﺖ‪.‬‬

‫‪۴-٣‬‬
‫آزﻣﺎﯾﺶ ﺗﻤﺎﯾﺰﻧﺎﭘﺬﯾﺮی در ﺑﺮاﺑﺮ ﻣﻬﺎﺟﻢ ﺷﻨﻮدﮔﺮ‬ ‫‪٣‬‬
‫ﺑﯿﺎن دﯾ ﺮی از ﻟﻢ ‪ ٢‬را ﺑﺪﯾﻦ ﺻﻮرت ﻣ ﺗﻮان اراﺋﻪ ﮐﺮد‪ .‬ﻓﺮض ﮐﻨﯿﺪ ‪ K‬ﻣﺘﻐﯿﺮ ﺗﺼﺎدﻓ ﺑﯿﺎنﮔﺮ ﺧﺮوﺟ اﻟ ﻮرﯾﺘﻢ ﺗﻮﻟﯿﺪ‬
‫ﮐﻠﯿﺪ ﺑﺎﺷﺪ‪ .‬در اﯾﻨﺼﻮرت ) ‪ C۰ = EncK (m۰‬و ) ‪ C۱ = EncK (m۱‬ﺑﻪﺗﺮﺗﯿﺐ ﺑﯿﺎنﮔﺮ ﻣﺘﻐﯿﺮﻫﺎی ﺗﺼﺎدﻓ ﻣﺘﻨﺎﻇﺮ‬
‫ﺑﺎ ﻣﺘﻦ رﻣﺰﺷﺪه ﭘﯿﺎمﻫﺎی ‪ m۰‬و ‪ m۱‬ﻫﺴﺘﻨﺪ‪ .‬دﻗﺖ ﮐﻨﯿﺪ ﮐﻪ اﯾﻦ ﻣﺘﻐﯿﺮﻫﺎی ﺗﺼﺎدﻓ ﺻﺮﻓﺎً ﺑﻪ ﺗﻮزﯾﻊ ‪) K‬ﮐﻪ ﺧﻮد ﺑﻪ‬
‫ﻣﻘﺎدﯾﺮ ﺗﺼﺎدﻓ ﮐﻪ اﻟ ﻮرﯾﺘﻢ ﺗﻮﻟﯿﺪ ﮐﻠﯿﺪ اﺳﺘﻔﺎده ﻣ ﮐﻨﺪ واﺑﺴﺘﻪ اﺳﺖ( و ﻣﻘﺪار ﺗﺼﺎدﻓ ﮐﻪ )اﺣﯿﺎﻧﺎً( اﻟ ﻮرﯾﺘﻢ رﻣﺰﻧ ﺎری‬
‫اﺳﺘﻔﺎده ﻣ ﮐﻨﺪ ﺑﺴﺘ دارد‪ .‬ﺗﻌﺒﯿﺮ دﯾ ﺮ ﻟﻢ ‪ ٢‬اﯾﻦ اﺳﺖ ﮐﻪ ﺗﻮزﯾﻊ ﻣﺘﻐﯿﺮﻫﺎی ﺗﺼﺎدﻓ ‪ C۰‬و ‪ C۱‬ﯾ ﺴﺎن اﺳﺖ‪ .‬ﻣﻌﺎدﻻ‪،‬‬
‫ﺑﯿﻦ ﯾ ﻧﻤﻮﻧﻪ از ‪ C۰‬و ﯾ ﻧﻤﻮﻧﻪ از ‪ C۱‬ﻧﻤ ﺗﻮان ﺗﻤﺎﯾﺰی ﻗﺎﺋﻞ ﺷﺪ‪ .‬ﯾﻌﻨ اﮔﺮ ﻣﻬﺎﺟﻢ ﻣﺘﻦ رﻣﺰی ‪ c‬را داﺷﺘﻪ ﺑﺎﺷﺪ و‬
‫ﺑﺪاﻧﺪ ﻛﻪ ﺣﺎﺻﻞ رﻣﺰﻛﺮدن ﯾ از دو ﻣﺘﻦ ‪ m۰‬و ‪ m۱‬اﺳﺖ ﮐﻪ ﺑﻪ ﺗﺼﺎدف اﻧﺘﺨﺎب ﺷﺪه اﺳﺖ‪ ،‬ﻧﻤ ﺗﻮاﻧﺪ ﺑﺎ اﺣﺘﻤﺎل‬
‫ﺑﻬﺘﺮ از ‪ ۱۲‬ﺣﺪس ﺑﺰﻧﺪ ﮐﻪ ﻣﺘﻦ اﺻﻠ ﻣﺘﻨﺎﻇﺮ ﮐﺪامﯾ اﺳﺖ‪ .‬ﻻزم ﺑﻪ ﺗﺄﮐﯿﺪ اﺳﺖ ﮐﻪ اﯾﻦ ﻣﺤﺪودﯾﺖ ﺑﺮای ﻫﺮ ﻣﻬﺎﺟﻤ ‪،‬‬
‫ﺣﺘ ﺑﺎ ﻗﺪرت ﻣﺤﺎﺳﺒﺎﺗ ﻧﺎﻣﺤﺪود‪ ،‬ﺑﺮ ﻗﺮار اﺳﺖ‪ .‬ﺑﺮای اراﺋﻪ ﺗﻌﺮﯾﻒ دﯾ ﺮی از اﻣﻨﯿﺖ ﮐﺎﻣﻞ ﺑﺮای ﯾ ﺳﯿﺴﺘﻢ رﻣﺰ ‪،Π‬‬
‫ﻛﻪ ﻣﻬﺎﺟﻢ را ﺑﻪ ﺻﻮرت ﻣﺸﻬﻮدﺗﺮی در ﺗﻌﺮﯾﻒ ﻟﺤﺎظ ﻣ ﻛﻨﺪ‪ ،‬از ﯾ ﺑﺎزی ‪) ٨‬ﯾﺎ آزﻣﺎﯾﺶ ‪ (٩‬اﺳﺘﻔﺎده ﻣ ﮐﻨﯿﻢ ﮐﻪ ﺑﯿﻦ ﯾ‬
‫ﻣﻬﺎﺟﻢ ‪ ،١٠‬ﮐﻪ ﺑﺎ ‪ A‬ﻧﺸﺎن داده ﻣ ﺷﻮد‪ ،‬و ﯾ ﭼﺎﻟﺸ ﺮ ‪ ١١‬ﻓﺮﺿ اﺟﺮا ﻣ ﺷﻮد‪ .‬اﯾﻦ آزﻣﺎﯾﺶ ﮐﻪ آزﻣﺎﯾﺶ ﺗﻤﺎﯾﺰﻧﺎﭘﺬﯾﺮی‬
‫‪١٢‬‬
‫‪ PrivKeav‬ﻧﺸﺎن داده ﻣ ﺷﻮد‪ ،‬ﺑﻪ ﺻﻮرت زﯾﺮ اﺟﺮا ﻣ ﺷﻮد و‬ ‫ﻧﺎﻣﯿﺪه ﻣ ﺷﻮد و ﺑﺎ ‪A,Π‬‬ ‫ﺗ ﭘﯿﺎﻣ در ﺑﺮاﺑﺮ ﻣﻬﺎﺟﻢ ﺷﻨﻮدﮔﺮ‬
‫‪١٣‬‬
‫ﻣﻬﺎﺟﻤ را ﮐﻪ ﻓﻘﻂ ﻗﺎﺑﻠﯿﺖ ﺷﻨﻮد ﯾ ﻣﺘﻦ رﻣﺰ ﺷﺪه )ﺟﻬﺖ اﻋﻤﺎل ﺣﻤﻠﻪ ﻓﻘﻂ ﻣﺘﻦ رﻣﺰی ( را دارد‪ ،‬ﻣﺪل ﻣ ﮐﻨﺪ‪.‬‬

‫ﮐﻠﯿﺪ ‪ k‬ﺗﻮﻟﯿﺪ ﻣ ﮐﻨﺪ‪.‬‬ ‫‪ .١‬ﭼﺎﻟﺸ ﺮ ﺑﺎ اﺟﺮای اﻟ ﻮرﯾﺘﻢ ﺗﻮﻟﯿﺪ ﮐﻠﯿﺪ‪ ،‬ﯾ‬

‫‪ .٢‬ﻣﻬﺎﺟﻢ ﭘﯿﺎمﻫﺎی ‪ m۰ , m۲ ∈ M‬را اﻧﺘﺨﺎب ﮐﺮده و ﺑﻪ ﭼﺎﻟﺸ ﺮ ﻣ دﻫﺪ‪.‬‬

‫‪ .٣‬ﭼﺎﻟﺸ ﺮ ﺑﯿﺖ ﺗﺼﺎدﻓ ‪ b‬را ﺗﻮﻟﯿﺪ ﻣ ﮐﻨﺪ‪.‬‬

‫‪ .۴‬ﭼﺎﻟﺸ ﺮ ﺑﺎ اﺳﺘﻔﺎده از اﻟ ﻮرﯾﺘﻢ رﻣﺰﮔﺬاری ﭘﯿﺎم ‪ mb‬را ﺗﺤﺖ ﮐﻠﯿﺪ ‪ k‬رﻣﺰ و ﻣﺘﻦ رﻣﺰی ‪ c‬را ﺗﻮﻟﯿﺪ ﻣ ﮐﻨﺪ‪.‬‬

‫‪ .۵‬ﭼﺎﻟﺸ ﺮ ﻣﺘﻦ رﻣﺰی ‪ c‬را ﺑﻪ ﻣﻬﺎﺟﻢ ‪ A‬ﻣ دﻫﺪ و ﻣﻬﺎﺟﻢ ﺑﯿﺖ ̂‪ b‬را ﺑﯿﺮون ﻣ دﻫﺪ‪.‬‬

‫ﻣﺮاﺣﻞ آزﻣﺎﯾﺶ ﻓﻮق ﺑﻪ ﻃﻮر ﺧﻼﺻﻪ در آزﻣﺎﯾﺶ زﯾﺮ ﺗﻌﺮﯾﻒ ﺷﺪه اﺳﺖ‪.‬‬

‫‪ [PrivKeav‬آزﻣﺎﯾﺶ اﻣﻨﯿﺖ ﮐﺎﻣﻞ ﺳﯿﺴﺘﻢ رﻣﺰﻣﺘﻘﺎرن ‪ Π‬در ﺑﺮاﺑﺮ ﻣﻬﺎﺟﻢ ﺷﻨﻮدﮔﺮ ‪ A‬ﺑﻪ ﺻﻮرت زﯾﺮ اﺳﺖ‪:‬‬
‫آزﻣﺎﯾﺶ‪A,Π ].‬‬

‫‪k ← Gen() .١‬‬

‫‪m۰ , m۱ ← A() .٢‬‬

‫‪b ← {۰, ۱} .٣‬‬

‫‪c ← Enck (mb ) .۴‬‬


‫‪٨‬‬
‫‪game‬‬
‫‪٩‬‬
‫‪experiment‬‬
‫‪١٠‬‬
‫‪Adversary‬‬
‫‪١١‬‬
‫‪challenger‬‬
‫‪١٢‬‬
‫‪eavesdropper‬‬
‫‪١٣‬‬
‫‪ciphertext-only attack‬‬

‫‪۴-۴‬‬
‫‪b̂ ← A(c) .۵‬‬

‫‪ PrivKeav‬ﻧﺸﺎن داده ﻣ ﺷﻮد ﺑﺮاﺑﺮ ﯾ در ﻧﻈﺮ ﮔﺮﻓﺘﻪ ﻣ ﺷﻮد اﮔﺮ ‪ b̂ = b‬و ﺻﻔﺮ اﺳﺖ اﮔﺮ‬
‫ﺧﺮوﺟ آزﻣﺎﯾﺶ ﮐﻪ ﺑﺎ ‪A,Π‬‬
‫‪ .b̂ ̸= b‬دﻗﺖ ﮐﻨﯿﺪ ﮐﻪ ﺧﺮوﺟ آزﻣﺎﯾﺶ ﯾ ﻣﺘﻐﯿﺮ ﺗﺼﺎدﻓ اﺳﺖ ﮐﻪ ﺑﻪ ﮐﻠﯿﻪ ﺑﯿﺖﻫﺎی ﺗﺼﺎدﻓ ﮐﻪ در آزﻣﺎﯾﺶ و‬
‫اﻟ ﻮرﯾﺘﻢﻫﺎ ﻣﻮرد اﺳﺘﻔﺎده ﻗﺮار ﻣ ﮔﯿﺮد ﺑﺴﺘ دارد‪ ،‬ﮐﻪ ﻋﺒﺎرﺗﻨﺪ از‪:‬‬

‫• ﻣﻘﺪار ﺗﺼﺎدﻓ ﮐﻪ در اﻟ ﻮرﯾﺘﻢ ﺗﻮﻟﯿﺪ ﮐﻠﯿﺪ در ﻣﺮﺣﻠﻪ ‪ ١‬ﺑﻪﮐﺎر ﻣ رود‪.‬‬

‫• ﻣﻘﺎدﯾﺮ ﺗﺼﺎدﻓ ﮐﻪ ﻣﻬﺎﺟﻢ )اﺣﯿﺎﻧﺎً( در ﻣﺮاﺣﻞ ‪ ٢‬و ‪ ۵‬اﺳﺘﻔﺎده ﻣ ﮐﻨﺪ‪.‬‬

‫• ﺑﯿﺖ ﺗﺼﺎدﻓ ﮐﻪ ﭼﺎﻟﺸ ﺮ در ﻣﺮﺣﻠﻪ ‪ ٣‬اﻧﺘﺨﺎب ﻣ ﮐﻨﺪ‪.‬‬

‫• ﻣﻘﺪار ﺗﺼﺎدﻓ ﮐﻪ )اﺣﯿﺎﻧﺎً( در اﻟ ﻮرﯾﺘﻢ رﻣﺰﮔﺬاری در ﻣﺮﺣﻠﻪ ‪ ۴‬ﺑﻪﮐﺎر ﻣ رود‪.‬‬

‫ﺗﻌﺮﯾﻒ ﻣﻌﺎدل از اﻣﻨﯿﺖ ﮐﺎﻣﻞ اراﺋﻪ ﮐﺮد‪.‬‬ ‫ﺑﺎ اﺳﺘﻔﺎده از آزﻣﺎﯾﺶ ﻓﻮق ﻣ ﺗﻮان ﯾ‬

‫ﻟﻢ ‪ ۵‬ﯾﻚ ﺳﯿﺴﺘﻢ دارای اﻣﻨﯿﺖ ﻛﺎﻣﻞ اﺳﺖ اﮔﺮ ﺑﻪ ازای ﻫﺮ ﻣﻬﺎﺟﻢ ‪ A‬ﻛﻪ در آزﻣﺎﯾﺶ ﺑﺎﻻ ﺷﺮﻛﺖ ﻛﻨﺪ‪ ،‬اﺣﺘﻤﺎل‬
‫‪۱‬‬
‫ﻣﻮﻓﻘﯿﺖاش دﻗﯿﻘﺎً ﺑﺎﺷﺪ‪ .‬ﯾﻌﻨ ‪:‬‬
‫‪۲‬‬

‫‪۱‬‬
‫‪Pr{PrivKeav‬‬
‫= }‪A,Π = ۱‬‬ ‫‪.‬‬ ‫)‪(١‬‬
‫‪۲‬‬

‫ﺑﻪ ﻃﻮر ﺷﻬﻮدی‪ ،‬ﺗﻔﺴﯿﺮ ﻣﻔﻬﻮم اﻣﻨﯿﺖ ﮐﺎﻣﻞ ﺑﺎ اﺳﺘﻔﺎده از آزﻣﺎﯾﺶ ﻓﻮق ﺑﺪﯾﻦ ﺻﻮرت اﺳﺖ‪ :‬در ﯾ ﺳﯿﺴﺘﻢ ﺑﺎ اﻣﻨﯿﺖ‬
‫ﮐﺎﻣﻞ وﻗﺘ ﻣﻬﺎﺟﻢ ﯾ ﻣﺘﻦ رﻣﺰی را ﻣ ﺑﯿﻨﺪ‪ ،‬ﺣﺘ اﮔﺮ ﺑﺪاﻧﺪ ﮐﻪ رﻣﺰﺷﺪه ﯾ از دو ﭘﯿﺎﻣ اﺳﺖ ﮐﻪ ﺧﻮد او اﻧﺘﺨﺎب‬
‫ﮐﺮده اﺳﺖ‪ ،‬ﻧﻤ ﺗﻮاﻧﺪ ﺗﺸﺨﯿﺺ دﻫﺪ ﮐﻪ ﻣﺘﻦ رﻣﺰی‪ ،‬رﻣﺰﺷﺪه ﮐﺪاﻣﯿ از آن دو ﭘﯿﺎم اﺳﺖ‪ .‬در واﻗﻊ ﺑﻬﺘﺮﯾﻦ ﮐﺎری ﮐﻪ‬
‫ﻣﻬﺎﺟﻢ ﺑﺮای ﮐﺴﺐ اﻃﻼﻋﺎت در ﻣﻮرد ﻣﺘﻦ اﺻﻠ ﻣ ﺗﻮاﻧﺪ ﺑ ﻨﺪ‪ ،‬ﺣﺪس ﯾ از دو ﭘﯿﺎم اﻧﺘﺨﺎب ﺷﺪه ﺑﻪ ﺗﺼﺎدف اﺳﺖ‪.‬‬

‫ﻧ ﺘﻪ ‪ ١‬اﮔﺮ در ﻟﻢ ‪ ۵‬راﺑﻄﻪ ‪ ١‬را ﺑﺎ ﻧﺎﻣﺴﺎوی زﯾﺮ ﺟﺎﯾ ﺰﯾﻦ ﺷﻮد ﺑﺎز ﻫﻢ ﻟﻢ ﻣﻌﺘﺒﺮ اﺳﺖ‪:‬‬

‫‪۱‬‬
‫≤ }‪A,Π = ۱‬‬
‫‪Pr{PrivKeav‬‬ ‫‪.‬‬
‫‪۲‬‬

‫‪۴-۵‬‬
‫ﺑﻪ ﻧﺎم ﺧﺪا‬

‫داﻧﺸ ﺪهی ﻋﻠﻮم رﯾﺎﺿ‬

‫‪ ١‬اﺳﻔﻨﺪ ‪١٣٩١‬‬ ‫ﻣﻘﺪﻣﻪای ﺑﺮ رﻣﺰﻧ ﺎری‬

‫ﺟﻠﺴﻪی ‪ :۵‬ﻗﻀﯿﻪی ﺷﺎﻧﻮن و اﻣﻨﯿﺖ ﻣﺤﺎﺳﺒﺎﺗ‬


‫ﻧ ﺎرﻧﺪه‪ :‬ﺳﯿﺪ ﻣﺮﺗﻀ ﻣﻮﺳﻮی‬ ‫ﻣﺪرس‪ :‬دﮐﺘﺮ ﺷﻬﺮام ﺧﺰاﺋ‬

‫‪ ١‬اﻣﻨﯿﺖ ﮐﺎﻣﻞ‬
‫رﻣﺰ دارای اﻣﻨﯿﺖ ﮐﺎﻣﻞ اﺳﺖ اﮔﺮ ﺑﺮای ﻫﺮ زوج ﭘﯿﺎم ‪ m۰ , m۱ ∈ M‬و ﻫﺮ ‪ c ∈ C‬داﺷﺘﻪ ﺑﺎﺷﯿﻢ‪:‬‬ ‫ﺗﻌﺮﯾﻒ ‪ ١‬ﯾ‬

‫} ‪Pr{C = c|M = m۰ } = Pr{C = c|M = m۱‬‬

‫ﺑﻪ ﻋﺒﺎرت دﯾ ﺮ اﮔﺮ ‪ K‬ﻣﺘﻐﯿﯿﺮ ﺗﺼﺎدﻓ ﺧﺮوﺟ اﻟ ﻮرﯾﺘﻢ )(‪ Gen‬ﺑﺎﺷﺪ و ‪ C۰‬و ‪ C۱‬ﺑﯿﺎﻧ ﺮ ﻣﺘﻐﯿﯿﺮﻫﺎی ﺗﺼﺎدﻓ‬
‫) ‪ EncK (m۰‬و ) ‪ EncK (m۱‬ﺑﺎﺷﻨﺪ‪ ،‬در اﯾﻦ ﺻﻮرت ‪) C۰ ≡ C۱‬ﯾﻌﻨ ‪ C۰ ،‬و ‪ C۱‬دارای ﺗﻮزﯾﻊ ﯾ ﺴﺎن ﻫﺴﺘﻨﺪ(‪.‬‬
‫‪ PrivKeav‬ﻧﻤﺎﯾﺶ داده ﻣ ﺷﻮد ﺗﻌﺮﯾﻒ ﮐﺮد‪ .‬آزﻣﺎﯾﺶ‪ ،‬ﻣﯿﺰان ﻣﻮﻓﻘﯿﺖ‬ ‫ﻣ ﺗﻮان اﻣﻨﯿﺖ ﮐﺎﻣﻞ را ﺑﺎ آزﻣﺎﯾﺶ زﯾﺮ ﮐﻪ ﺑﺎ ‪A,Π‬‬
‫ﯾ ﻣﻬﺎﺟﻢ ‪ A‬در ﺣﻤﻠﻪ ﺑﻪ ﯾ ﺳﯿﺴﺘﻢ رﻣﺰ ‪ Π‬را ﻣﺪل ﻣ ﮐﻨﺪ و و ﻣﺮاﺣﻞ اﻧﺠﺎم آن ﺑﻪ ﺗﺮﺗﯿﺐ زﯾﺮ اﺳﺖ‪:‬‬

‫‪k ← Gen() .١‬‬

‫‪ m۰ , m۱ ← A() .٢‬ﮐﻪ ‪m۱ , m۰ ∈ M‬‬

‫‪b ← {۰, ۱} .٣‬‬

‫‪c ← Enck (mb ) .۴‬‬

‫‪b̂ ← A(c) .۵‬‬

‫‪ PrivKeav‬ﻧﺸﺎن داده ﻣ ﺷﻮد ﺑﺮاﺑﺮ‬‫در ﺻﻮرﺗ ﮐﻪ ﺣﺪس ﻣﻬﺎﺟﻢ ﺻﺤﯿﺢ ﺑﺎﺷﺪ‪ ،‬ﯾﻌﻨ ‪ ،b̂ = b‬ﺧﺮوﺟ آزﻣﺎﯾﺶ ﮐﻪ ﺑﺎ ‪A,Π‬‬
‫ﯾ ﺧﻮاﻫﺪ ﺷﺪ و در ﻏﯿﺮ اﯾﻦ ﺻﻮرت ﺻﻔﺮ‪ .‬دﻗﺖ ﮐﻨﯿﺪ ﮐﻪ ﺧﺮوﺟ آزﻣﺎﯾﺶ ﯾ ﻣﺘﻐﯿﺮ ﺗﺼﺎدﻓ اﺳﺖ ﮐﻪ ﺑﻪ ﺳ ﻪﻫﺎی‬
‫ﺗﺼﺎدﻓ ﮐﻪ اﺣﯿﺎﻧﺎً در اﻟ ﻮرﯾﺘﻢ ﺗﻮﻟﯿﺪ ﮐﻠﯿﺪ‪ ،‬اﻟ ﻮرﯾﺘﻢ رﻣﺰﮔﺬاری و اﻟ ﻮرﯾﺘﻢ ﻣﻬﺎﺟﻢ ﻣﻮرد اﺳﺘﻔﺎده ﻗﺮار ﻣ ﮔﯿﺮﻧﺪ‪ ،‬ﺑﺴﺘ‬
‫دارد‪ .‬ﺑﺎ اﺳﺘﻔﺎده از اﯾﻦ آزﻣﺎﯾﺶ ﻣ ﺗﻮان ﺗﻌﺮﯾﻒ ﻣﻌﺎدل زﯾﺮ را ﺑﺮای اﻣﻨﯿﺖ ﮐﺎﻣﻞ اراﺋﻪ ﮐﺮد‪.‬‬

‫ﻟﻢ ‪ ١‬ﯾ ﺳﯿﺴﺘﻢ رﻣﺰ ‪ Π‬دارای اﻣﻨﯿﺖ ﮐﺎﻣﻞ اﺳﺖ اﮔﺮ وﻓﻘﻂ اﮔﺮ ﺑﺮای ﻫﺮ ﻣﻬﺎﺟﻢ ‪ A‬ﮐﻪ در آزﻣﺎﯾﺶ ﻓﻮق ﺷﺮﮐﺖ‬
‫ﻣ ﮐﻨﺪ‪ ،‬داﺷﺘﻪ ﺑﺎﺷﯿﻢ‪:‬‬
‫‪۱‬‬
‫‪Pr{PrivKeav‬‬‫≤ }‪A,Π = ۱‬‬
‫‪۲‬‬

‫‪۵-١‬‬
‫اﺛﺒﺎت ﻗﻀﯿﻪی ﺷﺎﻧﻮن‬ ‫‪٢‬‬
‫ﻗﻀﯿﻪ ‪ ٢‬ﻓﺮض ﮐﻨﯿﺪ |‪ |K‬ﺗﻌﺪاد اﻋﻀﺎی ﻓﻀﺎی ﮐﻠﯿﺪ و |‪ |M‬ﺗﻌﺪاد اﻋﻀﺎی ﻓﻀﺎی ﻣﺘﻦ ﺑﺎﺷﺪ‪ .‬ﺑﺮای اﻣﻨﯿﺖ ﮐﺎﻣﻞ ﻻزم‬
‫اﺳﺖ |‪.|K| ≥ |M‬‬

‫‪ m۱ ∈ M‬و ‪ k ∈ K‬دﻟﺨﻮاه‪ ،‬ﻣﺘﻦ رﻣﺰی ‪ c‬را‬ ‫ﺑﺮﻫﺎن‪ .‬ﺑﺮﻫﺎن ﺧﻠﻒ ‪ :‬ﻓﺮض ﻣ ﮐﻨﯿﻢ |‪ |K| < |M‬ﺑﺎﺷﺪ‪ .‬ﺑﺮای ﯾ‬
‫ﻃﻮری در ﻧﻈﺮ ﺑ ﯿﺮﯾﺪ ﮐﻪ ) ‪ .c = Enck (m۱‬ﺑﻪ وﺿﻮح دارﯾﻢ‪:‬‬

‫‪Pr{C = c|M = m۱ } > ۰‬‬

‫ﻣﺠﻤﻮﻋﻪی ‪ S‬را ﺑﻪ ﺻﻮرت زﯾﺮ ﺗﻌﺮﯾﻒ ﻣ ﮐﻨﯿﻢ‪:‬‬

‫})‪S = {m|∃k ∈ K : m = Deck (c‬‬

‫ﺑﻪ وﺿﻮح دارﯾﻢ‪:‬‬


‫|‪|S| ≤ |K‬‬
‫ﺑﺎ اﺳﺘﻔﺎده از ﻓﺮض ﺧﻠﻒ ﻣ داﻧﯿﻢ |‪ |K| < |M‬ﭘﺲ ﺧﻮاﻫﯿﻢ داﺷﺖ |‪ |S| < |M‬و در ﻧﺘﯿﺠﻪ‪:‬‬

‫∈ ‪∃m۰‬‬
‫‪/ S, m۰ ∈ M‬‬
‫‪Pr{C = c|M = m۰ } = ۰‬‬

‫ﭘﺲ اﮔﺮ ﺗﻌﺪاد اﻋﻀﺎی ﻓﻀﺎی ﮐﻠﯿﺪ ﮐﻤﺘﺮ از ﺗﻌﺪاد اﻋﻀﺎی ﻓﻀﺎی ﻣﺘﻦ ﺑﺎﺷﻨﺪ‪ ،‬اﻣﻨﯿﺖ ﮐﺎﻣﻞ ﻧﺪارﯾﻢ‪.‬‬

‫‪ ٣‬ﺳﯿﺴﺘﻢﻫﺎی ﻋﻤﻠ و اﻣﻨﯿﺖ ﻣﺤﺎﺳﺒﺎﺗ‬


‫در ﻋﻤﻞ ﺑﺮای ﺳﯿﺴﺘﻢﻫﺎی رﻣﺰﻧ ﺎری‪ ،‬ﻣﺨﻔ ﻧ ﻪ داﺷﺘﻦ ﻃﻮل ﭘﯿﺎم از ﺣﻤﻠﻪﮐﻨﻨﺪه ﻣﻘﺮون ﺑﻪ ﺻﺮﻓﻪ ﻧﯿﺴﺖ‪ .‬ﺑﺪﯾﻦ ﻣﻨﻈﻮر‬
‫ﻓﺮض ﻣ ﮐﻨﯿﻢ ﮐﻪ در ﺳﯿﺴﺘﻢﻫﺎی رﻣﺰ ﻋﻤﻠ ﭘﯿﺎمﻫﺎی ﺑﺎ ﻃﻮل ﯾ ﺴﺎن ﺑﻪ ﻣﺘﻦﻫﺎی رﻣﺰی ﺑﺎ ﻃﻮل ﯾ ﺴﺎن رﻣﺰ ﻣ ﺷﻮﻧﺪ و‬
‫ﻣﺮﺣﻠﻪ دوم آزﻣﺎﯾﺶ ﺷﻨﻮد ﺗ ﭘﯿﺎﻣ را ﺑﻪ ﺻﻮرت زﯾﺮ ﺗﻐﯿﯿﺮ ﻣ دﻫﯿﻢ‪:‬‬

‫‪ m۰ , m۱ ← A() ٢‬ﮐﻪ ‪ m۱ , m۰ ∈ M‬و | ‪|m۰ | = |m۱‬‬

‫ﻫﻤﭽﻨﯿﻦ در ﺳﯿﺴﺘﻢﻫﺎی ﻋﻤﻠ ﻫﺪف ﻏﯿﺮﻋﻤﻠ اﻣﻨﯿﺖ ﮐﺎﻣﻞ را ﮐﻨﺎر ﮔﺬاﺷﺘﻪ و ﺧﻮد را ﻣﺤﺪود ﺑﻪ اﻣﻨﯿﺖ ﻣﺤﺎﺳﺒﺎﺗ‬
‫ﻣ ﮐﻨﯿﻢ ﮐﻪ ﺑﺎ ﺗﻮﺟﻪ ﺑﻪ ﻓﺮضﻫﺎی زﯾﺮ ﻣﺪل ﻣ ﺷﻮد‪:‬‬

‫‪ .١‬ﻣﻬﺎﺟﻢ دارای ﺗﻮان ﻣﺤﺎﺳﺒﺎﺗ ﻣﺤﺪود ﻣ ﺑﺎﺷﺪ‪.‬‬

‫‪ .٢‬ﻣﻬﺎﺟﻢ ﻣ ﺗﻮاﻧﺪ ﺑﺎ اﺣﺘﻤﺎل ﻧﺎﭼﯿﺰ ﻣﻮﻓﻖ ﺷﻮد‪.‬‬

‫ﺗﻌﺮﯾﻒ ‪ ٢‬ﻣ ﮔﻮﯾﯿﻢ )‪-(t, ε) ،Π = (Gen, Enc, Dec‬اﻣﻦ اﺳﺖ اﮔﺮ ﺑﺮای ﻫﺮ ﻣﻬﺎﺟﻢ ‪ A‬ﮐﻪ در زﻣﺎن ‪ t‬اﺟﺮا ﻣ ﺷﻮد‬
‫داﺷﺘﻪ ﺑﺎﺷﯿﻢ‪:‬‬
‫‪۱‬‬
‫‪Pr{PrivKeav‬‬‫≤ }‪A,Π = ۱‬‬ ‫)‪(۱ + ε‬‬
‫‪۲‬‬

‫‪۵-٢‬‬
‫ﻣﻘﺪار ‪ ε‬ﻧﺸﺎن دﻫﻨﺪه ﻣﺰﯾﺖ ﻣﻬﺎﺟﻢ ﻧﺴﺒﺖ ﺑﻪ ﻣﻬﺎﺟﻤ اﺳﺖ ﮐﻪ ﮐﺎﻣﻼ ﺗﺼﺎدﻓ ﻣﻘﺪار ̂‪ b‬را ﺗﻮﻟﯿﺪ ﻣ ﮐﻨﺪ‪ .‬در ﻋﻤﻞ اﮔﺮ‬
‫ﺑﺮای ﻫﻤﻪ ﻣﻘﺎدﯾﺮ ‪ t‬و ‪ ε‬ﮐﻪ ‪ ،t/ε ≥ ۲۸۰‬ﺳﯿﺴﺘﻢ رﻣﺰ )‪-(t, ε‬اﻣﻦ ﺑﺎﺷﺪ‪ ،‬ﺳﻄﺢ ﻣﻨﺎﺳﺒ از اﻣﻨﯿﺖ دارﯾﻢ‪ .‬در اﯾﻦ ﺻﻮرت‬
‫ﺣﻤﻠﻪﮐﻨﻨﺪهﻫﺎﯾ ﮐﻪ ﺑﻪ ﺗﺮﺗﯿﺐ در زﻣﺎنﻫﺎی ‪ t = ۲۴۰ ،t = ۱‬و ‪ t = ۲۸۰‬اﺟﺮا ﻣ ﺷﻮﻧﺪ دارای ﺣﺪاﮐﺜﺮ ﻣﺰﯾﺖ‬
‫‪ ε = ۲−۴۰ ،ε = ۲−۸۰‬و ‪ ε = ۱‬ﻣ ﺑﺎﺷﻨﺪ‪ .‬ﯾ ﺳﯿﺴﺘﻢ رﻣﺰ ﮐﻪ ﻃﻮل ﮐﻠﯿﺪ آن ‪ ٨٠‬ﺑﯿﺖ اﺳﺖ ﺑﺎﻟﻘﻮه ﻣ ﺗﻮاﻧﺪ ﭼﻨﯿﻦ‬
‫ﺳﻄﺤ از اﻣﻨﯿﺖ ﺑﺮآورده ﮐﻨﺪ‪ .‬ﻣﻬﺎﺟﻤ را در ﻧﻈﺮ ﺑ ﯿﺮﯾﺪ ﮐﻪ دو ﭘﯿﺎم دﻟﺨﻮاه ﻣﺘﻔﺎوت ‪ m۰‬و ‪ m۱‬ﺧﺮوﺟ ﻣ دﻫﺪ‪.‬‬
‫ﺳﭙﺲ ﻣﻬﺎﺟﻢ ﺑﺎ درﯾﺎﻓﺖ ﻣﺘﻦ رﻣﺰی ﭼﺎﻟﺶ ‪ c‬ﮐﻪ رﻣﺰﺷﺪه ‪ m۰‬ﯾﺎ ‪ m۱‬اﺳﺖ‪ ،‬ﺑﻪ ﺻﻮرت زﯾﺮ ﺗﺼﻤﯿﻢ ﻣ ﮔﯿﺮد‪:‬‬

‫• ﻣﻬﺎﺟﻢ ‪ t‬ﮐﻠﯿﺪ ‪ ٨٠‬ﺑﯿﺘ ‪ k۱ , · · · , kt‬را ﺑﻪ ﺗﺼﺎدف اﻧﺘﺨﺎب ﻣ ﮐﻨﺪ‪.‬‬

‫• ﺑﻪازای ﻫﺮ ﮐﻠﯿﺪ ‪ ،ki‬ﻣﻬﺎﺟﻢ ﻣﺘﻦ رﻣﺰی ﭼﺎﻟﺶ ‪ c‬را رﻣﺰ ﮔﺸﺎﯾ ﻣ ﮐﻨﺪ‪.‬‬

‫از ﮐﻠﯿﺪﻫﺎ ‪ Decki (c) = mb‬ﺑﺎﺷﺪ‪ ،‬ﻣﻬﺎﺟﻢ ﻣﻘﺪار ‪ b̂ = b‬را ﺑﺮﻣ ﮔﺮداﻧﺪ‪.‬‬ ‫• اﮔﺮ ﺑﺮای ﯾ‬

‫• در ﻏﯿﺮ اﯾﻨﺼﻮرت ﻣﻬﺎﺟﻢ ﺑﯿﺖ ﺗﺼﺎدﻓ }‪ b̂ ← {۰, ۱‬را ﺑﺮﻣ ﮔﺮداﻧﺪ‪.‬‬

‫ﻓﺮض ﮐﻨﯿﻢ ﺳﯿﺴﺘﻢ رﻣﺰ و ﭘﯿﺎمﻫﺎی ‪ m۰‬و ‪ m۱‬و ﻣﺘﻦ رﻣﺰی ‪ c‬ﺑﻪﮔﻮﻧﻪای ﻫﺴﺘﻨﺪ ﮐﻪ ﻫﯿﭻ ﮐﻠﯿﺪ اﺷﺘﺒﺎﻫ )ﻫﺮ ﮐﻠﯿﺪی‬
‫ﻏﯿﺮ از ﮐﻠﯿﺪ اﻧﺘﺨﺎﺑ ﭼﺎﻟﺸ ﺮ( ﻣﺘﻦ رﻣﺰی ‪ c‬را ﺑﻪ ‪ m۰‬ﯾﺎ ‪ m۱‬رﻣﺰﮔﺸﺎﯾ ﻧ ﻨﺪ‪ .‬اﮔﺮ ﻃﻮل ﭘﯿﺎمﻫﺎی ‪ m۰‬و ‪ m۱‬ﺑﻪ اﻧﺪازه‬
‫ﮐﺎﻓ ﻃﻮﻻﻧ اﻧﺘﺨﺎب ﺷﻮﻧﺪ )ﻣﺜﻼ ‪ ١٠٠‬ﺑﯿﺖ(‪ ،‬ﭼﻨﯿﻦ ﻓﺮﺿ ﺑﺎ اﺣﺘﻤﺎل ﺧﯿﻠ زﯾﺎد ﺻﺤﯿﺢ اﺳﺖ‪ .‬ﭘﯿﺸﺎﻣﺪ اﯾﻨ ﻪ ﮐﻠﯿﺪ‬
‫اﻧﺘﺨﺎب ﺷﺪه ﺗﻮﺳﻂ ﭼﺎﻟﺸ ﺮ در ﺑﯿﻦ ‪ t‬ﮐﻠﯿﺪ اﻧﺘﺨﺎب ﺷﺪه ﺗﻮﺳﻂ ﻣﻬﺎﺟﻢ ﺑﺎﺷﺪ را ﺑﺎ ‪ E‬ﻧﺸﺎن دﻫﯿﺪ‪ .‬در اﯾﻨﺼﻮرت ﻣﺰﯾﺖ‬
‫‪ ،ε = ۲۸۰‬زﯾﺮا‪:‬‬
‫‪t‬‬
‫ﻣﻬﺎﺟﻢ ﮐﻪ در زﻣﺎن ‪ t‬اﺟﺮا ﻣ ﺷﻮد ﺑﺮاﺑﺮ اﺳﺖ ﺑﺎ‬

‫‪Pr{PrivKeav‬‬
‫}‪A,Π = ۱} = Pr{b̂ = b‬‬
‫}‪= Pr{b̂ = b | E} × Pr{E} + Pr{b̂ = b | E} × Pr{E‬‬
‫‪= ۱ × ۲۸۰‬‬
‫‪t‬‬
‫‪+ ۱۲ × (۱ − ۲۸۰‬‬
‫‪t‬‬
‫)‬
‫‪۱‬‬ ‫‪t‬‬
‫) ‪= ۲ (۱ + ۲۸۰‬‬

‫ﺑﻨﺎﺑﺮاﯾﻦ ‪.t/ε = ۲۸۰‬‬

‫‪ ۴‬ﮔﺴﺘﺮش ﮐﻠﯿﺪ‬
‫در رﻣﺰﻧ ﺎری ﺑﻪ روش رﻣﺰ ﯾ ﺒﺎر ﻣﺼﺮف ﻧﯿﺎز دارﯾﻢ ﻃﻮل ﮐﻠﯿﺪ ﺑﻪ اﻧﺪازهی ﻃﻮل ﻣﺘﻦ اﺻﻠ ﺑﺎﺷﺪ‪ .‬اﮔﺮ ﻃﻮل ﮐﻠﯿﺪ ﮐﻮﺗﺎه‬
‫ﺑﺎﺷﺪ ﻻزم دارﯾﻢ ﻃﻮل ﮐﻠﯿﺪ ﺑﻪ اﻧﺪازهی ﻣﺘﻦ اﺻﻠ ﮔﺴﺘﺮش ﯾﺎﺑﺪ‪.‬‬
‫ﺑﻪ ﻋﻨﻮان ﻣﺜﺎل‪ ،‬ﺳﯿﺴﺘﻢ رﻣﺰ )‪ Π = (Gen, Enc, Dec‬روی ﻓﻀﺎی }‪ M = {۰, ۱‬را در ﻧﻈﺮ ﺑ ﯿﺮﯾﺪ ﮐﻪ در آن‪:‬‬
‫‪۲n‬‬

‫رﺷﺘﻪی ﺗﺼﺎدﻓ ‪ k‬ﺑﻪ ﻃﻮل ‪ n‬ﺗﻮﻟﯿﺪ ﻣ ﮐﻨﺪ‪.‬‬ ‫• )(‪ Gen‬ﯾ‬

‫• )(‪ :Enc‬اﻟ ﻮرﯾﺘﻢ رﻣﺰﮔﺬاری‪ ،‬ﭘﯿﺎم ‪ m = m۰ ||m۱ ∈ {۰, ۱}۲n‬و ﮐﻠﯿﺪ ‪ k ∈ {۰, ۱}n‬را ﺑﻪ ﻣﺘﻦ رﻣﺰی‬
‫)‪ c = (m۰ ⊕ k)||(m۱ ⊕ k‬ﺗﺒﺪﯾﻞ ﻣ ﮐﻨﺪ ﮐﻪ در آن | ‪ |m۰ | = |m۱‬اﺳﺖ‪.‬‬

‫• )(‪ :Dec‬اﻟ ﻮرﯾﺘﻢ رﻣﺰﮔﺸﺎﯾ ‪ ،‬ﻣﺘﻦ رﻣﺰی ‪ c = c۰ ||c۱ ∈ {۰, ۱}۲n‬و ﮐﻠﯿﺪ ‪ k ∈ {۰, ۱}n‬را ﺑﻪ ﭘﯿﺎم‬
‫)‪ m = (c۰ ⊕ k)||(c۱ ⊕ k‬ﺗﺒﺪﯾﻞ ﻣ ﮐﻨﺪ ﮐﻪ در آن | ‪ |c۰ | = |c۱‬اﺳﺖ‪.‬‬

‫‪۵-٣‬‬
‫اﻣﺎ اﯾﻦ روش ﺑﺴﯿﺎر ﺳﺎده ﺷ ﺴﺘﻪ ﻣ ﺷﻮد‪ .‬ﺑﻪ ﻃﻮر ﻣﺜﺎل ﻣﻬﺎﺟﻢ ‪ A‬دو ﻣﺘﻦ ‪ m۰ = ۰۲n‬و ‪ m۱ = ۱n ۰n‬را ﺑﻪ ﻋﻨﻮان‬
‫ﻣﺘﻦﻫﺎی آزﻣﻮن ﻣ دﻫﺪ‪ .‬ﺳﭙﺲ دو ﻧﯿﻤﻪی ﻣﺘﻦ رﻣﺰ ﺷﺪه را ﺑﺎ ﯾ دﯾ ﺮ ‪ xor‬ﻣ ﮐﻨﺪ‪ .‬در ﺻﻮرﺗ ﮐﻪ ﺣﺎﺻﻞ ‪ ۰n‬ﺷﺪ‪،‬‬
‫ﻧﺘﯿﺠﻪﮔﯿﺮی ﻣ ﮐﻨﺪ ﮐﻪ ﻣﺘﻦ اول رﻣﺰ ﺷﺪه اﺳﺖ )ﯾﻌﻨ در ﻣﺮﺣﻠﻪ ‪ ۵‬آزﻣﺎﯾﺶ ‪ b̂ = ۱‬را ﺑﻪ ﺧﺮوﺟ ﻣ دﻫﺪ( و در ﺻﻮرﺗ‬
‫ﮐﻪ ﺣﺎﺻﻞ ‪ ۱n‬ﺑﺎﺷﺪ‪ ،‬ﻧﺘﯿﺠﻪﮔﯿﺮی ﻣ ﮐﻨﺪ ﮐﻪ ﻣﺘﻦ دوم رﻣﺰ ﺷﺪه اﺳﺖ )ﯾﻌﻨ در ﻣﺮﺣﻠﻪ ‪ ۵‬آزﻣﺎﯾﺶ ‪ b̂ = ۰‬را ﺑﻪ ﺧﺮوﺟ‬
‫ﻣ دﻫﺪ(‪ .‬اﯾﻦ ﻣﻬﺎﺟﻢ دارای ﻣﺰﯾﺖ ‪ ε = ۲۱‬اﺳﺖ زﯾﺮا دارﯾﻢ‪:‬‬

‫‪Pr{PrivKeav‬‬
‫‪A,Π = ۱} = ۱‬‬

‫در ﺟﻠﺴﺎت ﺑﻌﺪ روشﻫﺎی ﻣﻨﺎﺳﺐﺗﺮی ﺑﺮای ﮔﺴﺘﺮش ﮐﻠﯿﺪ ﻣﻌﺮﻓ ﺧﻮاﻫﺪ ﺷﺪ‪.‬‬

‫‪۵-۴‬‬
‫ﺑﻪ ﻧﺎم ﺧﺪا‬

‫داﻧﺸ ﺪهی ﻋﻠﻮم رﯾﺎﺿ‬

‫‪ ۶‬اﺳﻔﻨﺪ ‪١٣٩١‬‬ ‫ﻣﻘﺪﻣﻪای ﺑﺮ رﻣﺰﻧ ﺎری‬

‫ﺟﻠﺴﻪی ‪ :۶‬ﻣﻮﻟﺪ ﺷﺒﻪﺗﺼﺎدﻓ و ﺳﯿﺴﺘﻢ رﻣﺰ دﻧﺒﺎﻟﻪای‬


‫ﻧ ﺎرﻧﺪه‪ :‬ﻣﺮﯾﻢ ﺑﺎروﺗ‬ ‫ﻣﺪرس‪ :‬دﮐﺘﺮ ﺷﻬﺮام ﺧﺰاﺋ‬

‫در ﺟﻠﺴﺎت ﻗﺒﻞ ﺳﯿﺴﺘﻢ رﻣﺰ ‪ OTP‬را ﻣﻌﺮﻓ ﮐﺮدﯾﻢ ﮐﻪ ﺑﺮای رﻣﺰ ﮐﺮدن ﭘﯿﺎم ‪ ،m‬ﮐﻠﯿﺪ ﺗﺼﺎدﻓ ‪ k‬را ﮐﻪ ﻃﻮل آن ﺑﺎ‬
‫ﻃﻮل ﭘﯿﺎم ﺑﺮاﺑﺮ اﺳﺖ ﺑﺎ ﭘﯿﺎم ‪ XOR‬ﻣ ﮐﻨﺪ و ﻣﺘﻦ رﻣﺰی ‪ c = m ⊕ k‬را ﺗﻮﻟﯿﺪ ﻣ ﮐﻨﺪ‪ .‬ﺣﺎل ﮐﻠﯿﺪ ﺗﺼﺎدﻓ را ﺑﺎ ﮐﻠﯿﺪ‬
‫”ﺷﺒﻪﺗﺼﺎدﻓ “ ﺟﺎﯾ ﺰﯾﻦ ﻣ ﮐﻨﯿﻢ؛ ﯾﻌﻨ از ﯾ ﻣﻮﻟﺪ ﺷﺒﻪﺗﺼﺎدﻓ )·(‪ G‬اﺳﺘﻔﺎده ﻣ ﮐﻨﯿﻢ ﮐﻪ ﮐﻠﯿﺪ ‪ k‬ﺑﺎ ﻃﻮل ﮐﻢ )ﻣﺜﻼ‬
‫‪ ٨٠‬ﺑﯿﺖ( را ﺑﻪ دﻧﺒﺎﻟﻪ ﺷﺒﻪﺗﺼﺎدﻓ )‪ z = G(k‬ﺑﺎ ﻃﻮل زﯾﺎد )ﻣﺜﻼ ﭼﻨﺪ ﻣ ﺎﺑﯿﺖ( ﻣ ﺑﺮد و ﺳﭙﺲ از آن ﺑﺮای رﻣﺰ ﮐﺮدن‬
‫ﭘﯿﺎم ‪ m‬ﺑﻪ ﺻﻮرت ‪ c = m ⊕ z‬اﺳﺘﻔﺎده ﻣ ﮐﻨﯿﻢ‪.‬‬

‫در اﯾﻦ ﺟﻠﺴﻪ ﻣﻔﺎﻫﯿﻢ ﺷﺒﻪﺗﺼﺎدﻓ و ﻣﻮﻟﺪ ﺷﺒﻪﺗﺼﺎدﻓ را ﺗﻌﺮﯾﻒ ﻣ ﮐﻨﯿﻢ‪ .‬در اﺑﺘﺪا ﻻزم اﺳﺖ ﮐﻪ ﻣﻔﻬﻮم ﻣﻬﻢ‬
‫ﺗﻤﺎﯾﺰﻧﺎﭘﺬﯾﺮی را ﺑﯿﺎن ﮐﻨﯿﻢ‪.‬‬

‫ﺗﻤﺎﯾﺰﻧﺎﭘﺬﯾﺮی‬ ‫‪١‬‬
‫ﺗﻌﺮﯾﻒ ‪ ١‬ﻣ ﮔﻮﯾﯿﻢ ﻣﺘﻐﯿﺮﻫﺎی ﺗﺼﺎدﻓ ‪ X۰‬و ‪-(t, ε) ،X۱‬ﺗﻤﺎﯾﺰﻧﺎﭘﺬﯾﺮاﻧﺪ‪ ،‬اﮔﺮ ﺑﺮای ﻫﺮ ﻣﻬﺎﺟﻢ )ﺗﻤﺎﯾﺰﮔﺮ ‪ (١‬ﻣﺎﻧﻨﺪ ‪A‬‬
‫ﮐﻪ در زﻣﺎن ‪ t‬اﺟﺮا ﻣ ﺷﻮد داﺷﺘﻪ ﺑﺎﺷﯿﻢ‪:‬‬

‫‪۱‬‬
‫≤ }‪Pr{b ← {۰, ۱}; x ← Xb : A(x) = b‬‬ ‫)‪(۱ + ε‬‬ ‫)‪(١‬‬
‫‪۲‬‬
‫ﻗﻀﯿﻪ زﯾﺮ ﺗﻌﺮﯾﻔ ﻣﻌﺎدل ﺑﺮای ﻣﻔﻬﻮم ﺗﻤﺎﯾﺰﻧﺎﭘﺬﯾﺮی ﺑﯿﺎن ﻣ ﮐﻨﺪ‪:‬‬

‫ﻗﻀﯿﻪ ‪ ١‬ﻣﺘﻐﯿﺮﻫﺎی ﺗﺼﺎدﻓ ‪ X۰‬و ‪-(t, ε) ،X۱‬ﺗﻤﺎﯾﺰﻧﺎﭘﺬﯾﺮﻧﺪ‪ ،‬اﮔﺮ و ﻓﻘﻂ اﮔﺮ ﺑﺮای ﻫﺮ ﺗﻤﺎﯾﺰﮔﺮ ‪ D‬ﮐﻪ در زﻣﺎن ‪ t‬اﺟﺮا‬
‫ﻣ ﺷﻮد داﺷﺘﻪ ﺑﺎﺷﯿﻢ‪:‬‬

‫‪| Pr{x ← X۰ : D(x) = ۱} − Pr{x ← X۱ : D(x) = ۱}| ≤ ε‬‬ ‫)‪(٢‬‬

‫ﺑﺮﻫﺎن‪ .‬ﺑﻪ ﻃﻮر ﺷﻬﻮدی ﺗﻌﺮﯾﻒ ‪ ١‬ﻣ ﮔﻮﯾﺪ ﮐﻪ ﻫﯿﭻ ﺗﻤﺎﯾﺰﮔﺮی ﻧﻤ ﺗﻮاﻧﺪ در زﻣﺎن ‪ t‬ﺑﺎ اﺣﺘﻤﺎﻟ ﺧﯿﻠ ﺑﻬﺘﺮ از ﯾ ﺣﺪس‬
‫ﺗﺼﺎدﻓ ﺗﻌﯿﯿﻦ ﮐﻨﺪ ﮐﻪ ‪ x‬داده ﺷﺪه از ﮐﺪام ﺗﻮزﯾﻊ آﻣﺪه اﺳﺖ‪ .‬اﯾﻦ ﺗﻌﺮﯾﻒ در واﻗﻊ ﺑﯿﺎن ﻣ ﮐﻨﺪ ﮐﻪ ﻫﺮ ﺗﻤﺎﯾﺰﮔﺮی ﮐﻪ‬
‫در زﻣﺎن ‪ t‬اﺟﺮا ﻣ ﺷﻮد‪ ،‬ﺑﺎ دﯾﺪن ﯾ ﺧﺮوﺟ از ﺗﻮزﯾﻊ ‪ X۰‬و ﯾ ﺧﺮوﺟ از ﺗﻮزﯾﻊ ‪ X۱‬ﺗﻘﺮﯾﺒﺎً ﺑﻪ ﻃﻮر ﯾ ﺴﺎن ﻋﻤﻞ‬
‫‪١‬‬
‫‪distinguisher‬‬

‫‪۶-١‬‬
‫ﻣ ﮐﻨﺪ‪ .‬ﺣﺎل ﭼﻮن اﯾﻦ ﺗﻤﺎﯾﺰﮔﺮ ﯾ ﺑﯿﺖ ﺧﺮوﺟ ﻣ دﻫﺪ‪” ،‬ﺗﻘﺮﯾﺒﺎً ﯾ ﺴﺎن ﻋﻤﻞ ﮐﺮدن“ ﺑﻪ ﻣﻌﻨﺎی اﯾﻦ اﺳﺖ ﮐﻪ ‪ ١‬را در‬
‫ﻫﺮ ﻣﻮرد ﺑﺎ اﺣﺘﻤﺎل ﺗﻘﺮﯾﺒﺎً ﺑﺮاﺑﺮی ﺧﺮوﺟ ﻣ دﻫﺪ و اﯾﻦ ﻫﻤﺎن ﺗﻌﺮﯾﻒ ‪ ٢‬اﺳﺖ‪.‬‬
‫ﺑﺮای اﺛﺒﺎت دﻗﯿﻖ اﺑﺘﺪا ﻧﺸﺎن ﻣ دﻫﯿﻢ ﮐﻪ ﺗﻌﺮﯾﻒ ‪ ،١‬ﺗﻌﺮﯾﻒ ‪ ٢‬را ﻧﺘﯿﺠﻪ ﻣ دﻫﺪ‪ .‬ﻓﺮض ﺧﻠﻒ ﮐﻨﯿﺪ ﮐﻪ ﭼﻨﯿﻦ ﻧﺒﺎﺷﺪ و‬
‫ﺗﻤﺎﯾﺰﮔﺮ ‪ D‬وﺟﻮد داﺷﺘﻪ ﺑﺎﺷﺪ ﮐﻪ ﺑﺮای آن داﺷﺘﻪ ﺑﺎﺷﯿﻢ‪:‬‬
‫‪| Pr{x ← X۰ : D(x) = ۱} − Pr{x ← X۱ : D(x) = ۱}| > ε‬‬
‫ﻣ ﺗﻮان ﻓﺮض ﮐﺮد )ﭼﺮا؟(‪:‬‬
‫‪Pr{x ← X۱ : D(x) = ۱} − Pr{x ← X۰ : D(x) = ۱} > ε‬‬
‫ﺣﺎل ﺗﻤﺎﯾﺰﮔﺮ ‪ A‬را ﺑﺪﯾﻦ ﺻﻮرت در ﻧﻈﺮ ﺑ ﯿﺮﯾﺪ‪ A :‬ﺑﺎ درﯾﺎﻓﺖ ورودی ‪ x‬آن را ﺑﻪ ‪ D‬ﻣ دﻫﺪ‪ .‬ﺳﭙﺲ ﺧﺮوﺟ ﺧﻮد را‬
‫{‬ ‫ﺑﺪﯾﻦ ﺻﻮرت ﺑﯿﺮون ﻣ دﻫﺪ‪:‬‬
‫‪۱ if D(x) = ۱‬‬
‫= )‪A(x‬‬
‫‪۰ if D(x) ̸= ۱‬‬
‫دارﯾﻢ‪:‬‬
‫‪۱‬‬
‫= }‪Pr{b ← {۰, ۱}; x ← Xb : A(x) = b‬‬ ‫}‪Pr{x ← X۰ : A(x) = ۰‬‬
‫‪۲‬‬
‫‪۱‬‬
‫}‪+ Pr{x ← X۱ : A(x) = ۱‬‬
‫‪۲‬‬
‫‪۱‬‬
‫=‬ ‫}‪Pr{x ← X۰ : D(x) ̸= ۱‬‬
‫‪۲‬‬
‫‪۱‬‬
‫}‪+ Pr{x ← X۱ : D(x) = ۱‬‬
‫‪۲‬‬
‫‪۱‬‬
‫=‬ ‫)}‪(۱ − Pr{x ← X۰ : D(x) = ۱‬‬
‫‪۲‬‬
‫‪۱‬‬
‫}‪+ Pr{x ← X۱ : D(x) = ۱‬‬
‫‪۲‬‬
‫‪۱ ۱‬‬
‫=‬ ‫}‪+ (Pr{x ← X۱ : D(x) = ۱‬‬
‫‪۲ ۲‬‬
‫)}‪− Pr{x ← X۰ : D(x) = ۱‬‬
‫≥‬ ‫‪۱‬‬
‫‪۲‬‬
‫)‪(۱ + ε‬‬
‫ﺑﺮای اﺛﺒﺎت اﯾﻨ ﻪ ﺗﻌﺮﯾﻒ ‪ ،٢‬ﺗﻌﺮﯾﻒ ‪ ١‬را ﻧﺘﯿﺠﻪ ﻣ دﻫﺪ‪ ،‬ﻓﺮض ﺧﻠﻒ ﮐﻨﯿﺪ ﮐﻪ ﭼﻨﯿﻦ ﻧﺒﺎﺷﺪ و ﺗﻤﺎﯾﺰﮔﺮ ‪ A‬وﺟﻮد داﺷﺘﻪ‬
‫ﺑﺎﺷﺪ ﮐﻪ ﺑﺮای آن داﺷﺘﻪ ﺑﺎﺷﯿﻢ‪:‬‬
‫‪۱‬‬
‫≥ }‪Pr{b ← {۰, ۱}; x ← Xb : A(x) = b‬‬ ‫)‪(۱ + ε‬‬
‫‪۲‬‬
‫ﺗﻤﺎﯾﺰﮔﺮ ‪ D‬ﻫﻤﺎن ‪ A‬در ﻧﻈﺮ ﺑ ﯿﺮﯾﺪ‪ .‬دارﯾﻢ‪:‬‬

‫|}‪| Pr{x ← X۰ : D(x) = ۱} − Pr{x ← X۱ : D(x) = ۱‬‬


‫=‬ ‫|}‪| Pr{x ← X۰ : A(x) = ۱} − Pr{x ← X۱ : A(x) = ۱‬‬
‫=‬ ‫|}‪|۱ − Pr{x ← X۰ : A(x) = ۰} − Pr{x ← X۱ : A(x) = ۱‬‬
‫=‬ ‫|}‪|۱ − ۲ Pr{b ← {۰, ۱}; x ← Xb : A(x) = b‬‬
‫≥‬ ‫‪ε‬‬

‫‪۶-٢‬‬
‫ﺗﻌﺮﯾﻒ ‪ ٢‬ﻣ ﮔﻮﯾﯿﻢ ﺗﻤﺎﯾﺰﮔﺮ ‪ D‬ﺗﻮزﯾﻊﻫﺎی ‪ X۰‬و ‪ X۱‬را ﺑﺎ اﺣﺘﻤﺎل )ﻣﺰﯾﺖ ‪ µ (٢‬ﺗﻤﺎﯾﺰ ﻣ دﻫﺪ اﮔﺮ‪:‬‬

‫‪| Pr{a ←− X۰ : D(a) = ۱} − Pr{a ←− X۱ : D(a) = ۱}| ⩾ µ‬‬

‫ﻣﺜﺎل ‪ ٣‬ﻓﺮض ﮐﻨﯿﺪ ﻣﺘﻐﯿﺮ ﺗﺼﺎدﻓ ‪ X۱‬دارای ﺗﻮزﯾﻊ ‪ Pr{X۱ = ۱} = ۳/۴‬و ‪ Pr{X۱ = ۰} = ۱/۴‬روی‬
‫ﻣﺠﻤﻮﻋﻪ }‪ {۰, ۱‬ﺑﺎﺷﺪ و ﻣﺘﻐﯿﺮ ﺗﺼﺎدﻓ ‪ X۰‬دارای ﺗﻮزﯾﻊ ﯾ ﻨﻮاﺧﺖ روی ﻫﻤﺎن ﻣﺠﻤﻮﻋﻪ ﺑﺎﺷﺪ‪ .‬ﻣﺰﯾﺖ ﺗﻤﺎﯾﺰﮔﺮ ‪D۱‬‬
‫‪۱‬‬
‫ﮐﻪ ﻫﻤﻮاره ﺧﺮوﺟ ‪ ١‬را ﺑﺮﻣ ﮔﺮداﻧﺪ‪ ،‬ﺻﻔﺮ اﺳﺖ‪ .‬ﻫﻤﭽﻨﯿﻦ ﺗﻤﺎﯾﺰﮔﺮ ﺗﺼﺎدﻓ ‪ D۲‬ﮐﻪ ﻣﻘﺎدﯾﺮ ‪ ۱‬و ‪ ۰‬را ﺑﺎ اﺣﺘﻤﺎل‬
‫‪۲‬‬
‫‪۱‬‬
‫ﺑﺮ ﻣ ﮔﺮداﻧﺪ‪ ،‬ﻧﯿﺰ دارای ﻣﺰﯾﺖ ﺻﻔﺮ اﺳﺖ‪ .‬اﻣﺎ ﺗﻤﺎﯾﺰﮔﺮ ‪ D۳‬ﮐﻪ ﺑﻪ ﺻﻮرت زﯾﺮ ﺗﺼﻤﯿﻢ ﻣ ﮔﯿﺮد‪ ،‬دارای ﻣﺰﯾﺖ اﺳﺖ‪.‬‬
‫‪۴‬‬
‫{‬
‫‪۱ a=۱‬‬
‫= )‪D۳ (a‬‬
‫‪۰ a=۰‬‬

‫ﺗﻤﺎﯾﺰﮔﺮ ﺑﺮای ﺗﻤﺎﯾﺰ دو ﺗﻮزﯾﻊ داده ﺷﺪه ‪ X۰‬و ‪ X۱‬ﻣ ﺗﻮاﻧﺪ داﺷﺘﻪ ﺑﺎﺷﺪ ﺑﺮاﺑﺮ‬ ‫ﻗﻀﯿﻪ ‪ ٢‬ﺑﯿﺸﺘﺮﯾﻦ ﻣﻘﺪار ﻣﺰﯾﺘ ﮐﻪ ﯾ‬
‫اﺳﺖ ﺑﺎ‪:‬‬

‫∑‪۱‬‬
‫=‪ε‬‬ ‫‪| Pr[X۱ = x] − Pr[X۰ = x]| .‬‬
‫‪۲ x‬‬

‫ﮐﻪ ﻫﻤﺎن ﻓﺎﺻﻠﻪی آﻣﺎری ‪ ٣‬ﺑﯿﻦ دو ﺗﻮزﯾﻊ ﻣ ﺑﺎﺷﺪ‪ .‬ﺗﻤﺎﯾﺰﮔﺮ ‪ D‬اﺳﺖ ﮐﻪ ﺑﻪ ﺻﻮرت زﯾﺮ ﻋﻤﻞ ﻣ ﮐﻨﺪ‪ ،‬دارای ﻣﺰﯾﺖ‬
‫ﺑﯿﺸﯿﻨﻪ اﺳﺖ‪:‬‬
‫{‬
‫}‪۱ Pr{X۱ = a} ≥ Pr{X۰ = a‬‬
‫= )‪D(a‬‬
‫‪۰ oth.‬‬

‫ﻣﻮﻟﺪ ﺷﺒﻪﺗﺼﺎدﻓ )‪-(t, ε‬اﻣﻦ ‪ ۴‬اﺳﺖ اﮔﺮ‪:‬‬ ‫ﺗﻌﺮﯾﻒ ‪ ۴‬ﺗﺎﺑﻊ ‪ G : {۰, ۱}n −→ {۰, ۱}l‬ﯾ‬

‫• ﺑﻪ ﺻﻮرت ﮐﺎراﯾ ﻗﺎﺑﻞ ﻣﺤﺎﺳﺒﻪ ﺑﺎﺷﺪ‪.‬‬

‫• ﻃﻮل ﺧﺮوﺟ ﺑﯿﺸﺘﺮ از ورودی ﺑﺎﺷﺪ )ورودی را ﺗﻮﺳﻌﻪ دﻫﺪ(‪.‬‬

‫• ﺗﻮزﯾﻊﻫﺎی ‪ Ul‬و ) ‪-(t, ε) ،G(Un‬ﺗﻤﺎﯾﺰﻧﺎﭘﺬﯾﺮ ﺑﺎﺷﻨﺪ‪.‬‬

‫رﻣﺰ دﻧﺒﺎﻟﻪای‬ ‫‪٢‬‬


‫ﺗﻌﺮﯾﻒ ‪ ۵‬ﻓﺮض ﮐﻨﯿﺪ ﮐﻪ ‪ G : {۰, ۱}n → {۰, ۱}l‬ﯾ ﻣﻮﻟﺪ ﺷﺒﻪﺗﺼﺎدﻓ ﺑﺎﺷﺪ‪ .‬در اﯾﻨﺼﻮرت رﻣﺰ دﻧﺒﺎﻟﻪای‬
‫)‪ ΠG = (Gen, Enc, Dec‬روی ﻓﻀﺎی ﭘﯿﺎم ‪ {۰, ۱}l‬ﺑﺎ اﻟ ﻮرﯾﺘﻢﻫﺎی زﯾﺮ ﺗﻌﺮﯾﻒ ﻣ ﺷﻮد‪:‬‬

‫• ‪ :Gen‬اﻟ ﻮرﯾﺘﻢ ﺗﻮﻟﯿﺪ ﮐﻠﯿﺪ‪ ،‬ﮐﻠﯿﺪ ‪ k‬را ﺑﻪ ﺗﺼﺎدف از ‪ {۰, ۱}n‬اﻧﺘﺨﺎب ﻣ ﮐﻨﺪ‪.‬‬
‫‪٢‬‬
‫‪advantage‬‬
‫‪٣‬‬
‫‪statistical distance‬‬
‫‪۴‬‬
‫‪Pseudo Random Generator‬‬

‫‪۶-٣‬‬
‫• ‪ :Enc‬اﻟ ﻮرﯾﺘﻢ رﻣﺰﻧ ﺎری‪ ،‬ﭘﯿﺎم ‪ m ∈ {۰, ۱}l‬و ﮐﻠﯿﺪ ‪ k ∈ {۰, ۱}n‬را ﺑﻪ ﻣﺘﻦ رﻣﺰ ﺷﺪه )‪c = m ⊕ G(k‬‬
‫ﺗﺒﺪﯾﻞ ﻣ ﮐﻨﺪ‪.‬‬

‫• ‪ :Dec‬اﻟ ﻮرﯾﺘﻢ رﻣﺰﮔﺸﺎﯾ ‪ ،‬ﻣﺘﻦ رﻣﺰ ﺷﺪه ‪ c ∈ {۰, ۱}l‬و ﮐﻠﯿﺪ ‪ k ∈ {۰, ۱}n‬را ﺑﻪ ﭘﯿﺎم )‪m = c ⊕ G(k‬‬
‫ﺗﺒﺪﯾﻞ ﻣ ﮐﻨﺪ‪.‬‬

‫ﺳﯿﺴﺘﻢ رﻣﺰ‬ ‫ﻣﻮﻟﺪ ﺷﺒﻪﺗﺼﺎدﻓ )‪-(t, ε/۲‬اﻣﻦ ﺑﺎﺷﺪ رﻣﺰ دﻧﺒﺎﻟﻪای ‪ ΠG‬ﯾ‬ ‫ﻗﻀﯿﻪ ‪ ٣‬اﮔﺮ ﻣﻮﻟﺪ ﺷﺒﻪﺗﺼﺎدﻓ ‪ G‬ﯾ‬
‫ﻣﺘﻘﺎرن )‪-(t − O(l), ε‬اﻣﻦ اﺳﺖ‪.‬‬

‫ﺑﺮﻫﺎن‪ .‬ﻗﺮار ﻣ دﻫﯿﻢ )‪ t′ = t − O(l‬ﺑﺎ اﺳﺘﻔﺎده از ﺑﺮﻫﺎن ﺧﻠﻒ‪ ،‬درﺳﺘ ﺣ ﻢ را ﻧﺸﺎن ﻣ دﻫﯿﻢ‪ :‬ﭘﺲ ﺑﺎﯾﺪ ﻧﺸﺎن دﻫﯿﻢ‬
‫اﮔﺮ رﻣﺰ دﻧﺒﺎﻟﻪای )‪-(t′ , ε‬اﻣﻦ ﻧﺒﺎﺷﺪ آﻧ ﺎه ‪-(t′ + O(l), ε) ،G‬اﻣﻦ ﻧﯿﺴﺖ‪ .‬اﮔﺮ رﻣﺰ دﻧﺒﺎﻟﻪای )‪-(t′ , ε‬اﻣﻦ ﻧﺒﺎﺷﺪ ﭘﺲ‬
‫‪ PrivKeav‬ﻣﻮﻓﻖ‬
‫ﻣﻬﺎﺟﻤ ﻣﺎﻧﻨﺪ ‪ A‬وﺟﻮد دارد ﮐﻪ در زﻣﺎن ﺣﺪاﮐﺜﺮ ‪ t‬ﮐﺎر ﻣ ﮐﻨﺪ و ﺑﺎ ﻣﺰﯾﺖ ﺣﺪاﻗﻞ ‪ ε‬در آزﻣﺎﯾﺶ ‪A,ΠG‬‬
‫‪′‬‬

‫ﻣ ﺷﻮد؛ ﯾﻌﻨ ‪،‬‬

‫‪۱‬‬
‫≥ }‪A,ΠG = ۱‬‬
‫‪Pr{PrivKeav‬‬ ‫‪(۱ + ε) .‬‬
‫‪۲‬‬
‫ﺣﺎل ﺑﺎ اﺳﺘﻔﺎده از اﯾﻦ ﺣﻤﻠﻪﮐﻨﻨﺪه ﺑﻪ ﺻﻮرت زﯾﺮ ﺗﻤﺎﯾﺰﮔﺮی ﺑﻪ ﻧﺎم ‪ D‬ﻣ ﺳﺎزﯾﻢ‪.‬‬

‫}‪b ← {۰, ۱‬‬


‫‪a ∈ {۰, ۱}l‬‬ ‫‪m۰ , m ۱‬‬

‫‪mb ⊕ a‬‬ ‫‪A‬‬


‫‪b′‬‬

‫{‬
‫‪۱‬‬ ‫‪b = b′‬‬
‫= )‪D(a‬‬
‫‪۰‬‬ ‫‪b ̸= b′‬‬

‫)‪D(a‬‬ ‫‪.‬‬

‫ﺗﻤﺎﯾﺰﮔﺮ ‪ D‬ﻧﻘﺶ ﭼﺎﻟﺸ ﺮ را ﺑﺮای ﻣﻬﺎﺟﻢ ‪ A‬ﺷﺒﯿﻪﺳﺎزی ﻣ ﮐﻨﺪ‪ .‬ﺑﻪ اﯾﻦ ﺻﻮرت ﮐﻪ ﺗﻤﺎﯾﺰﮔﺮ ‪ D‬ﭘﺲ از درﯾﺎﻓﺖ رﺷﺘﻪ‬
‫‪ l‬ﺑﯿﺘ ‪ a‬ﺑﻪ ﻋﻨﻮان ورودی‪ ،‬ﺣﻤﻠﻪﮐﻨﻨﺪه ‪ A‬را اﺟﺮا ﻣ ﮐﻨﺪ و دو ﻣﺘﻦ ﭼﺎﻟﺶ ‪ m۰‬و ‪ m۱‬را از آن ﻣ ﮔﯿﺮد‪ .‬ﺗﻤﺎﯾﺰﮔﺮ‬
‫‪ D‬ﺳﭙﺲ ﺑﯿﺖ ‪ b‬را ﺑﻪ ﺗﺼﺎدف اﻧﺘﺨﺎب ﻣ ﮐﻨﺪ و ﺣﺎﺻﻞ ‪ mb ⊕ a‬را ﺑﻪ ﻋﻨﻮان ﻣﺘﻦ رﻣﺰی ﺑﻪ ﺣﻤﻠﻪﮐﻨﻨﺪه ﻣ دﻫﺪ‪ .‬در‬
‫ﻣﺮﺣﻠﻪ ﺑﻌﺪ ﺣﻤﻠﻪﮐﻨﻨﺪه ﺑﺎﯾﺪ ‪ b′‬را ﺑﻪ ﻋﻨﻮان ﺧﺮوﺟ ﺑﻪ ﺗﻤﺎﯾﺰﮔﺮ ﺑﺪﻫﺪ‪ ،‬اﮔﺮ ‪ b = b′‬ﺗﻤﺎﯾﺰﮔﺮ ﻋﺪد ‪ ١‬را ﺑﺮ ﻣ ﮔﺮداﻧﺪ درﻏﯿﺮ‬
‫اﯾﻦ ﺻﻮرت ‪ .٠‬از ﻃﺮﻓ ورودی ‪ a‬ﯾﺎ ﺧﺮوﺟ ﻣﻮﻟﺪ ﺷﺒﻪﺗﺼﺎدﻓ اﺳﺖ ﯾﺎ ﮐﺎﻣﻼ ﺗﺼﺎدﻓ اﺳﺖ‪ .‬اﮔﺮ ورودی ‪ a‬ﮐﺎﻣﻼ‬
‫ﺗﺼﺎدﻓ ﺑﺎﺷﺪ‪ ،‬دارﯾﻢ‪:‬‬
‫‪۱‬‬
‫= }‪Pr{a ← Ul : D(a) = ۱‬‬
‫‪۲‬‬

‫‪۶-۴‬‬
‫اﮔﺮ ورودی ‪ ،a‬ﺧﺮوﺟ ﻣﻮﻟﺪ ﺷﺒﻪﺗﺼﺎدﻓ ﺑﺎﺷﺪ‪ ،‬در اﯾﻦ ﺻﻮرت ﺧﺮوﺟ ﺗﻤﺎﯾﺰﮔﺮ ‪ D‬در واﻗﻊ ﻫﻤﺎن ﺧﺮوﺟ آزﻣﺎﯾﺶ‬
‫‪ .PrivKeav‬ﺑﻨﺎﯾﺮاﯾﻦ ﺧﻮاﻫﯿﻢ داﺷﺖ‪:‬‬
‫‪A,ΠG‬‬

‫‪۱‬‬
‫‪Pr{k ← {۰, ۱}n ; a ← G(k) : D(a) = ۱} = Pr{PrivKeav‬‬
‫≥ }‪A,ΠG = ۱‬‬ ‫)‪(۱ + ε‬‬
‫‪۲‬‬
‫ﭘﺲ دارﯾﻢ ‪:‬‬

‫‪| Pr{a ← Ul : D(a) = ۱} − Pr{k ← {۰, ۱}n ; a ← G(k) : D(a) = ۱} |≥ ε/۲‬‬

‫ﭼﻮن ‪ A‬ﺣﺪاﮐﺜﺮ در زﻣﺎن ‪ t′‬اﺟﺮا ﻣ ﺷﻮد ﭘﺲ ‪ D‬ﺣﺪاﮐﺜﺮ در زﻣﺎن )‪ t′ + O(l‬اﻧﺠﺎم ﻣ ﺷﻮد‪ ،‬زﯾﺮا ﺗﻨﻬﺎ ﮐﺎر اﺿﺎﻓﻪﺗﺮی‬
‫ﮐﻪ اﻧﺠﺎم ﻣ دﻫﺪ ﻋﻤﻞ ‪ xor‬رﺷﺘﻪ ‪-l‬ﺑﯿﺘ اﺳﺖ‪ .‬ﺑﻨﺎﺑﺮاﯾﻦ ﻓﺮض ﺧﻠﻒ ﺑﺎﻃﻞ اﺳﺖ و در ﻧﺘﯿﺠﻪ ﺳﯿﺴﺘﻢ رﻣﺰ دﻧﺒﺎﻟﻪای‬
‫)‪-(t − O(l), ε‬اﻣﻦ اﺳﺖ‪.‬‬

‫ﭼ ﻮﻧﻪ ﻣﻮﻟﺪ ﺷﺒﻪﺗﺼﺎدﻓ ﺑﺴﺎزﯾﻢ؟‬ ‫‪٣‬‬


‫اﯾﺪهﻫﺎی ﺳﺎدهای ﻣﺜﻞ ﺗ ﺮار ﮐﺮدن ورودی ﺑﻪ ﻣﻨﻈﻮر ﮔﺴﺘﺮش آن‪ ،‬ﻣﻮﻟﺪ ﺷﺒﻪﺗﺼﺎدﻓ ﻧﯿﺴﺘﻨﺪ‪.‬‬

‫ﻣﺜﺎل ‪ ۶‬ﻣﻮﻟﺪ ‪ G : {۰, ۱}n → {۰, ۱}۲n‬را در ﻧﻈﺮ ﺑ ﯿﺮﯾﺪ ﮐﻪ رﺷﺘﻪ ‪-n‬ﺑﯿﺘ ‪ k‬را ﺑﻪ رﺷﺘﻪ ‪-۲n‬ﺑﯿﺘ ‪ k∥k‬ﻣ ﺑﺮد‪،‬‬
‫اﯾﻦ ﻣﻮﻟﺪ ﺷﺒﻪﺗﺼﺎدﻓ ﻧﯿﺴﺖ‪ .‬ﺗﻤﺎﯾﺰﮔﺮ‪ D‬را ﮐﻪ ﺑﻪ ﺻﻮرت زﯾﺮ ﻋﻤﻞ ﻣ ﮐﻨﺪ در ﻧﻈﺮ ﺑ ﯿﺮﯾﺪ ﮐﻪ ‪:z۱ , z۲ ∈ {۰, ۱}n‬‬
‫{‬
‫‪۱ z۱ = z۲‬‬
‫= ) ‪D(z۱ ∥z۲‬‬
‫‪۰ z۱ ̸= z۲‬‬
‫دارﯾﻢ‪:‬‬
‫‪Pr{k ←− Un ; z = G(k) : D(z) = ۱} = ۱‬‬
‫‪Pr{z ←− U۲n : D(z) = ۱} = ۲−n‬‬
‫ﭘﺲ دارﯾﻢ‪:‬‬
‫‪| Pr{k ←− Un ; z ← G(k) : D(z) = ۱} − Pr{z ←− U۲n : D(z) = ۱}| = ۱ − ۲−n‬‬
‫ﺗﻤﺎﯾﺰﮔﺮ ﻣ ﺗﻮاﻧﺪ ﻣﻮﻟﺪ را ﺑﺎ ﻣﺰﯾﺖ ﻗﺎﺑﻞ ﺗﻮﺟﻪ ﺗﻤﺎﯾﺰ دﻫﺪ و در ﻧﺘﯿﺠﻪ اﯾﻦ ﻣﻮﻟﺪ‪ ،‬ﺷﺒﻪﺗﺼﺎدﻓ ﻧﯿﺴﺖ‪.‬‬

‫ﺑﺮای ﺳﺎﺧﺖ ﻣﻮﻟﺪﻫﺎی ﺷﺒﻪﺗﺼﺎدﻓ ﺑﺎﯾﺪ از اﯾﺪهﻫﺎﯾ اﺳﺘﻔﺎده ﮐﻨﯿﻢ ﮐﻪ ﺑﯿﺖﻫﺎی ورودی را ﺑﻪ ﻃﻮر ”ﭘﯿﭽﯿﺪه“ای ﺑﺎ ﻫﻢ‬
‫ﻣﺨﻠﻮط ﻣ ﮐﻨﻨﺪ‪ .‬در ﺟﻠﺴﻪ ﺑﻌﺪ‪LFSR ،‬ﻫﺎ را ﮐﻪ دﻧﺒﺎﻟﻪ ﺧﺮوﺟ ﺷﺎن دارای ﺧﻮاص ﺧﻮﺑ اﺳﺖ‪ ،‬ﺑﺮرﺳ ﺧﻮاﻫﯿﻢ ﮐﺮد‪.‬‬
‫ﺳﭙﺲ ﺑﻪ ﻣﻄﺎﻟﻌﻪ روشﻫﺎی ﻃﺮاﺣ ﻣﻮﻟﺪﻫﺎی ﺷﺒﻪ ﺗﺼﺎدﻓ ﺑﺎ اﺳﺘﻔﺎده از ‪LFSR‬ﻫﺎ ﺧﻮاﻫﯿﻢ ﭘﺮداﺧﺖ‪.‬‬

‫‪۶-۵‬‬
‫ﺑﻪ ﻧﺎﻡ ﺧﺪﺍ‬

‫ﺩﺍﻧﺸﮑﺪﻩﯼ ﻋﻠﻮﻡ ﺭ ﯾﺎﺿﯽ‬

‫‪ ۸‬ﺍﺳﻔﻨﺪ ‪۹۲‬‬ ‫ﻣﻘﺪﻣﻪﺍﯼ ﺑﺮ ﺭﻣﺰﻧﮕﺎﺭﯼ‬

‫ﺟﻠﺴﻪﯼ ‪ :۷‬ﺛﺒﺎﺕ ﺧﻄﯽ ﻭ ﺭﻣﺰﻫﺎﯼ ﺩﻧﺒﺎﻟﻪﺍﯼ‬


‫ﻧﮕﺎﺭﻧﺪﻩ‪ :‬ﺍﻓﺸﯿﻦ ﺯﺍﺭﻋﯽ‪ ،‬ﻣﻬﺪﯼ ﺟﻌﻔﺮﻧﯿﺎﯼ ﺟﻬﺮﻣﯽ‬ ‫ﻣﺪﺭﺱ‪ :‬ﺩﮐﺘﺮ ﺷﻬﺮﺍﻡ ﺧﺰﺍﺋﯽ‬

‫ﺩﺭ ﺟﻠﺴﻪ ﻗﺒﻞ‪ ،‬ﻣﻮﻟﺪ ﺷﺒﻪﺗﺼﺎﺩﻓﯽ ﮐﻪ ﯾﮏ ﮐﻠﯿﺪ ﺍﻭﻟﯿﻪ ﺑﺎ ﻃﻮﻝ ﮐﻮﭼﮏ ﺗﺼﺎﺩﻓﯽ ﺭﺍ ﺑﻪ ﯾﮏ ﺩﻧﺒﺎﻟﻪ ﻃﻮﻻﻧﯽﺗﺮ ﺗﺒﺪﯾﻞ ﻣﯽﮐﻨﺪ‪،‬‬
‫ﻣﻌﺮﻓﯽ ﺷﺪ‪ .‬ﺩﺭ ﺍﯾﻦ ﺟﻠﺴﻪ‪ LFSR ،‬ﺑﻪ ﻋﻨﻮﺍﻥ ﯾﮏ ﭘﯿﺸﻨﻬﺎﺩ ﺍﻭﻟﯿﻪ ﺑﺮﺍﯼ ﻣﻮﻟﺪ ﺷﺒﻪﺗﺼﺎﺩﻓﯽ ﻣﻌﺮﻓﯽ ﻣﯽﺷﻮﺩ‪ .‬ﺍﻣﺎ ﺑﻪ ﺩﻻﯾﻠﯽ ﮐﻪ‬
‫ﺧﻮﺍﻫﯿﻢ ﺩﯾﺪ‪ ،‬ﻣﻮﻟﺪ ﺣﺎﺻﻞ ﺭﺍ ﻧﻤﯽﺗﻮﺍﻥ ﯾﮏ ﻣﻮﻟﺪ ﺷﺒﻪﺗﺼﺎﺩﻓﯽ ﺍﻣﻦ ﺩﺭ ﻧﻈﺮ ﮔﺮﻓﺖ‪ .‬ﺩﺭ ﺍﯾﻦ ﺟﻠﺴﻪ ﺍﺑﺘﺪﺍ ﺭ ﻭﺵ ﮐﻠﯽ ﻃﺮﺍﺣﯽ‬
‫ﻣﻮﻟﺪ ﺷﺒﻪﺗﺼﺎﺩﻓﯽ ﻭ ﺳﭙﺲ ﻭﯾﮋﮔﯽﻫﺎﯼ ‪ LFSR‬ﻣﻌﺮﻓﯽ ﻣﯽﺷﻮﺩ‪ .‬ﺩﺭ ﺟﻠﺴﻪﯼ ﺁﯾﻨﺪﻩ ﻧﺤﻮﻩﯼ ﺍﺳﺘﻔﺎﺩﻩ ﺍﺯ ‪ LFSR‬ﺑﺮﺍﯼ ﺳﺎﺧﺘﻦ‬
‫ﻣﻮﻟﺪﻫﺎﯼ ﺷﺒﻪﺗﺼﺎﺩﻓﯽ ﺍﻣﻦ ﺭﺍ ﺧﻮﺍﻫﯿﻢ ﺩﯾﺪ‪.‬‬

‫ﺭ ﻭﺵ ﮐﻠﯽ ﻃﺮﺍﺣﯽ ﻣﻮﻟﺪ ﺷﺒﻪﺗﺼﺎﺩﻓﯽ‬ ‫‪۱‬‬

‫‪۲‬‬
‫ﻣﻮﻟﺪﻫﺎﯼ ﺷﺒﻪﺗﺼﺎﺩﻓﯽ ﺍﺻﻄﻼﺣﺎً ﺭﻣﺰ ﺩﻧﺒﺎﻟﻪﺍﯼ ﻧﯿﺰ ﻧﺎﻣﯿﺪﻩ ﻣﯽﺷﻮﻧﺪ ﻭ ﺑﻪ ﺩﻧﺒﺎﻟﻪ ﺧﺮ ﻭﺟﯽ ﺁﻧﻬﺎ ﺟﺮ ﯾﺎﻥﮐﻠﯿﺪ ‪ ۱‬ﯾﺎ ﮐﻠﯿﺪ ﺍﺟﺮﺍﯾﯽ‬
‫ﮔﻔﺘﻪ ﻣﯽﺷﻮﺩ‪ .‬ﺑﻪ ﻃﻮﺭ ﮐﻠﯽ ﯾﮏ ﺭﻣﺰ ﺩﻧﺒﺎﻟﻪﺍﯼ ﺭﺍ ﻣﯽﺗﻮﺍﻥ ﺑﻪ ﺷﻮﺭﺕ ﯾﮏ ﻣﺎﺷﯿﻦ ﺣﺎﻟﺖ ﻣﺤﺪﻭﺩ ‪ ۳‬ﻃﺮﺍﺣﯽ ﮐﺮﺩ ﮐﻪ ﺣﺎﻟﺖ‬
‫ﺍﻭﻟﯿﻪﯼ ﺁﻥ ﺑﻪ ﮐﻠﯿﺪ ﻭﺍﺑﺴﺘﻪ ﺍﺳﺖ‪ .‬ﯾﮏ ﻣﺎﺷﯿﻦ ﺣﺎﻟﺖ ﻣﺤﺪﻭﺩ ﺑﻪ ﺻﻮﺭﺕ ﺯﯾﺮ ﻗﺎﺑﻞ ﺗﻌﺮ ﯾﻒ ﺍﺳﺖ‪:‬‬

‫‪St = F (St−۱ ),‬‬ ‫‪t≥۱‬‬


‫‪zt = f (St ),‬‬ ‫‪t≥۱‬‬
‫‪ F : FL‬ﺗﺎﺑﻌﯽ ﺍﺳﺖ ﮐﻪ ﯾﮏ ﺣﺎﻟﺖ ﺭﺍ )ﮐﻪ ﺑﺎ ‪ L‬ﺑﯿﺖ ﻣﺸﺨﺺ ﻣﯽﺷﻮﺩ( ﺑﻪ ﺣﺎﻟﺖ ﺑﻌﺪﯼ ﺗﺒﺪﯾﻞ ﻣﯽﮐﻨﺪ ﻭ‬ ‫ﮐﻪ ﺩﺭ ﺁﻥ ‪۲ → F۲‬‬
‫‪L‬‬

‫‪ f : FL‬ﺗﺎﺑﻌﯽ ﺍﺳﺖ ﮐﻪ ﺑﺎ ﺩﺭ ﯾﺎﻓﺖ ﯾﮏ ﺣﺎﻟﺖ ﺑﻪ ﻋﻨﻮﺍﻥ ﻭﺭ ﻭﺩﯼ ﯾﮏ ﺑﯿﺖ ﺭﺍ ﺑﻪ ﻋﻨﻮﺍﻥ ﺧﺮ ﻭﺟﯽ ﭘﺲ ﻣﯽﺩﻫﺪ‪ .‬ﺗﻮﺟﻪ‬ ‫‪۲ → F۲‬‬
‫‪T‬‬ ‫‪T‬‬
‫ﮐﻨﯿﺪ ﮐﻪ ) ‪ St = (st,۰ , st,۱ , ..., st,L−۱‬ﺑﺮﺩﺍﺭ ﺣﺎﻟﺖ ﺩﺭ ﺯﻣﺎﻥ ‪ t‬ﺍﺳﺖ ﻭ ) ‪ S۰ = (s۰,۰ , s۰,۱ , ..., s۰,L−۱‬ﺑﺮﺩﺍﺭ ﺣﺎﻟﺖ ﺍﻭﻟﯿﻪ‬
‫ﺍﺳﺖ ﻭ ‪ zt‬ﺑﯿﺖ ﮐﻠﯿﺪ ﺍﺟﺮﺍﯾﯽ ﺩﺭ ﺯﻣﺎﻥ ‪ t‬ﺍﺳﺖ‪ .‬ﺑﺪﯾﻦ ﺗﺮﺗﯿﺐ ﻣﯽﺗﻮﺍﻥ ﺭ ﻭﺵ ﮐﻠﯽ ﻃﺮﺍﺣﯽ ﻣﻮﻟﺪ ﺷﺒﻪﺗﺼﺎﺩﻓﯽ ﺭﺍ ﺩﺭ ﺷﮑﻞ ﺯﯾﺮ‬
‫ﻧﺸﺎﻥ ﺩﺍﺩ‪.‬‬

‫‪St‬‬ ‫‪F‬‬

‫‪f‬‬
‫‪.‬‬

‫‪zt‬‬
‫‪۱ keystream‬‬
‫‪۲ running-key‬‬
‫‪۳ finite-state‬‬ ‫‪machine‬‬

‫‪۷-۱‬‬
‫�‬

‫ﺛﺒﺎﺕ ﺑﺎ ﺑﺎﺯﺧﻮﺭﺩ ﺧﻄﯽ‬ ‫‪۲‬‬

‫∑‬
‫‪L‬‬
‫‪ C(X) = ۱ −‬ﺗﻌﺮ ﯾﻒ‬ ‫ﯾﮏ ﺛﺒﺎﺕ ﺑﺎ ﺑﺎﺯﺧﻮﺭﺩ ﺧﻄﯽ ‪ (LFSR) ۴‬ﺑﺎ ﺍﺳﺘﻔﺎﺩﻩ ﺍﺯ ﭼﻨﺪﺟﻤﻠﻪﺍﯼ ﺑﺎﺯﺧﻮﺭﺩ ‪ci X i ∈ Fq [X] ۵‬‬
‫‪i=۰‬‬
‫‪ (s۰ , s۱ , · · · , sL−۱ ) ∈ FL‬ﺭﺍ )ﮐﻪ ﺣﺎﻟﺖ ﺍﻭﻟﯿﻪ ﻧﺎﻣﯿﺪﻩ ﻣﯽﺷﻮﺩ(‬
‫ﻣﯽﺷﻮﺩ ﮐﻪ ‪ L‬ﻃﻮﻝ ﺛﺒﺎﺕ ﻧﺎﻣﯿﺪﻩ ﻣﯽﺷﻮﺩ‪ .‬ﺍﯾﻦ ﺛﺒﺎﺕ ﺭﺷﺘﻪﯼ ‪q‬‬
‫ﺑﺎ ﺍﺳﺘﻔﺎﺩﻩ ﺍﺯ ﺭﺍﺑﻄﻪﯼ ﺑﺎﺯﮔﺸﺘﯽ ﺯﯾﺮ ﺑﻪ ﯾﮏ ﺩﻧﺒﺎﻟﻪ ﺑﺎ ﻃﻮﻝ ﻧﺎﻣﺘﻨﺎﻫﯽ ﺗﺒﺪﯾﻞ ﻣﯽﮐﻨﺪ‪.‬‬

‫∑‬
‫‪L‬‬
‫= ‪∀t ≥ ۰ ، st+L‬‬ ‫‪ci st+L−i‬‬
‫‪i=۱‬‬

‫ﺩﺭ ﺍﯾﻦ ﺻﻮﺭﺕ ﺩﻧﺒﺎﻟﻪﯼ ﺧﺮ ﻭﺟﯽ ﯾﮏ ‪ LFSR‬ﺑﺼﻮﺭﺕ ‪ (st )t≥۰‬ﺍﺳﺖ‪.‬‬


‫ﺩﺭ ﺷﮑﻞ ﺯﯾﺮ ﺭ ﻭﻧﺪ ﮐﺎﺭ ﯾﮏ ‪ LFSR‬ﺑﻪ ﻃﻮﻝ ‪ L‬ﺭﺍ ﻣﯽﺑﯿﻨﯿﺪ‪.‬‬

‫‪st+L‬‬
‫‪st+L−۱‬‬ ‫‪st+L−۲‬‬ ‫‪...‬‬ ‫‪st+۱‬‬ ‫‪st‬‬ ‫‪output‬‬

‫‪c۱‬‬ ‫‪c۲‬‬ ‫‪cL−۱‬‬ ‫‪cL‬‬

‫‪.‬‬ ‫‪+‬‬ ‫‪+‬‬ ‫‪+‬‬

‫ﭼﻨﺪﺟﻤﻠﻪﺍﯼ ﺑﺎﺯﺧﻮﺭﺩ ﻭ ﭼﻨﺪﺟﻤﻠﻪﺍﯼ ﻣﺸﺨﺼﻪ‬ ‫‪۱.۲‬‬

‫ﺩﻧﺒﺎﻟﻪﯼ ﺧﺮ ﻭﺟﯽ ﯾﮏ ‪ LFSR‬ﺑﺼﻮﺭﺕ ﯾﮑﺘﺎﯾﯽ ﺑﻮﺳﯿﻠﻪ ﺿﺮﺍﯾﺐ ﭼﻨﺪﺟﻤﻠﻪﺍﯼ ﺑﺎﺯﺧﻮﺭﺩ ﻭ ﺣﺎﻟﺖ ﺍﻭﻟﯿﻪ ﺗﻌﯿﯿﻦ ﻣﯽﺷﻮﺩ‪ .‬ﺿﺮﺍﯾﺐ‬
‫ﺑﺎﺯﺧﻮﺭﺩ ‪ c۱ , c۲ , · · · , cL‬ﯾﮏ ‪ LFSR‬ﺑﺎ ﻃﻮﻝ ‪ L‬ﺑﻮﺳﯿﻠﻪﯼ ﭼﻨﺪﺟﻤﻠﻪﺍﯼ ﺑﺎﺯﺧﻮﺭﺩ ﮐﻪ ﺑﺼﻮﺭﺕ ﺯﯾﺮ ﺗﻌﺮ ﯾﻒ ﻣﯽﺷﻮﺩ‪ ،‬ﻣﺸﺨﺺ‬
‫ﻣﯽﺷﻮﻧﺪ‪.‬‬

‫∑‬
‫‪L‬‬
‫‪C(X) = ۱ −‬‬ ‫‪ci X i .‬‬
‫‪i=۱‬‬

‫ﻫﻤﭽﻨﯿﻦ ﺍﯾﻦ ﺿﺮﺍﯾﺐ ﺭﺍ ﺑﺎ ﺍﺳﺘﻔﺎﺩﻩ ﺍﺯ ﭼﻨﺪﺟﻤﻠﻪﺍﯼ ﻣﺸﺨﺼﻪ ‪ ۶‬ﻣﯽﺗﻮﺍﻥ ﺑﺪﺳﺖ ﺁﻭﺭﺩ‪:‬‬

‫‪۱‬‬ ‫∑‬ ‫‪L‬‬


‫(‪C ∗ (X) = X L C‬‬ ‫‪) = XL −‬‬ ‫‪ci X L−i .‬‬
‫‪X‬‬
‫‪i=۱‬‬
‫‪۴ Linear‬‬ ‫‪Feedback Shift Register‬‬
‫‪۵ feedback polynomial‬‬
‫‪۶ characteristic polynomial‬‬

‫‪۷-۲‬‬
‫ﻣﺜﺎﻝ ‪ ۱‬ﺑﺮﺍﯼ ﯾﮏ ‪ LFSR‬ﺑﺎ ﻃﻮﻝ ‪ ۴‬ﺩﺭ ﻣﯿﺪﺍﻥ ‪ F۲‬ﻭ ﺿﺮﺍﯾﺐ ﺑﺎﺯﺧﻮﺭﺩ ‪ ،c۱ = c۲ = ۰, c۳ = c۴ = ۱‬ﭼﻨﺪﺟﻤﻠﻪﺍﯼ ﺑﺎﺯﺧﻮﺭﺩ‬
‫ﻭ ﭼﻨﺪﺟﻤﻠﻪﺍﯼ ﻣﺸﺨﺼﻪ ﺑﻪ ﺗﺮﺗﯿﺐ ﺑﺼﻮﺭﺕ‬
‫]‪C(X) = ۱ + X ۳ + X ۴ ∈ F۲ [X‬‬
‫ﻭ‬
‫]‪C ∗ (X) = ۱ + X + X ۴ ∈ F۲ [X‬‬
‫ﺍﺳﺖ‪.‬‬
‫ﺩﻧﺒﺎﻟﻪﯼ ﺧﺮ ﻭﺟﯽ ﺍﯾﻦ ‪ LFSR‬ﺑﺎ ﺗﻮﺟﻪ ﺑﻪ ﺭﺍﺑﻄﻪ ﺑﺎﺯﮔﺸﺘﯽ ﺯﯾﺮ ﺗﻌﯿﯿﻦ ﻣﯽﺷﻮﺩ‪.‬‬
‫‪st+۴ = st + st+۱ mod ۲‬‬
‫ﺩﺭ ﺷﮑﻞ ﺯﯾﺮ ﺭ ﻭﻧﺪ ﺗﻮﻟﯿﺪ ﺍﯾﻦ ﺩﻧﺒﺎﻟﻪ ﺭﺍ ﻣﯽﺑﯿﻨﯿﺪ‪.‬‬
‫‪st+۴‬‬
‫‪st+۳‬‬ ‫‪st+۲‬‬ ‫‪st+۱‬‬ ‫‪st‬‬

‫‪+‬‬
‫‪.‬‬
‫ﺑﺮﺍﯼ ﻣﺜﺎﻝ ﺍﮔﺮ ﺣﺎﻟﺖ ﺍﻭﻟﯿﻪ ﺭﺍ ﺑﺮﺍﺑﺮ )‪ (s۰ , s۱ , s۲ , s۳ ) = (۱, ۰, ۱, ۱‬ﻗﺮﺍﺭ ﺩﻫﯿﻢ‪ ،‬ﻃﺒﻖ ﺟﺪﻭﻝ ﺯﯾﺮ ﺩﻧﺒﺎﻟﻪﯼ ﺧﺮ ﻭﺟﯽ ﺗﻮﻟﯿﺪ‬
‫ﻣﯽﺷﻮﺩ‪.‬‬
‫‪t‬‬ ‫‪۰‬‬ ‫‪۱‬‬ ‫‪۲‬‬ ‫‪۳‬‬ ‫‪۴‬‬ ‫‪۵‬‬ ‫‪۶‬‬ ‫‪۷‬‬ ‫‪۸‬‬ ‫‪۹‬‬ ‫‪۱۰‬‬ ‫‪۱۱‬‬ ‫‪۱۲‬‬ ‫‪۱۳‬‬ ‫‪۱۴‬‬ ‫‪۱۵‬‬
‫‪st‬‬ ‫‪۱‬‬ ‫‪۰‬‬ ‫‪۱‬‬ ‫‪۱‬‬ ‫‪۱‬‬ ‫‪۱‬‬ ‫‪۰‬‬ ‫‪۰‬‬ ‫‪۰‬‬ ‫‪۱‬‬ ‫‪۰‬‬ ‫‪۰‬‬ ‫‪۱‬‬ ‫‪۱‬‬ ‫‪۰‬‬ ‫‪۱‬‬
‫‪st+۱‬‬ ‫‪۰‬‬ ‫‪۱‬‬ ‫‪۱‬‬ ‫‪۱‬‬ ‫‪۱‬‬ ‫‪۰‬‬ ‫‪۰‬‬ ‫‪۰‬‬ ‫‪۱‬‬ ‫‪۰‬‬ ‫‪۰‬‬ ‫‪۱‬‬ ‫‪۱‬‬ ‫‪۰‬‬ ‫‪۱‬‬ ‫‪۰‬‬
‫‪st+۲‬‬ ‫‪۱‬‬ ‫‪۱‬‬ ‫‪۱‬‬ ‫‪۱‬‬ ‫‪۰‬‬ ‫‪۰‬‬ ‫‪۰‬‬ ‫‪۱‬‬ ‫‪۰‬‬ ‫‪۰‬‬ ‫‪۱‬‬ ‫‪۱‬‬ ‫‪۰‬‬ ‫‪۱‬‬ ‫‪۰‬‬ ‫‪۱‬‬
‫‪st+۳‬‬ ‫‪۱‬‬ ‫‪۱‬‬ ‫‪۱‬‬ ‫‪۰‬‬ ‫‪۰‬‬ ‫‪۰‬‬ ‫‪۱‬‬ ‫‪۰‬‬ ‫‪۰‬‬ ‫‪۱‬‬ ‫‪۱‬‬ ‫‪۰‬‬ ‫‪۱‬‬ ‫‪۰‬‬ ‫‪۱‬‬ ‫‪۱‬‬

‫ﺩﻧﺒﺎﻟﻪﯼ ‪ (st )t≥۰‬ﻣﺘﻨﺎﻭﺏ ﻧﺎﻣﯿﺪﻩ ﻣﯽﺷﻮﺩ ﺍﮔﺮ ﻋﺪﺩ ﺻﺤﯿﺤﯽ ﭼﻮﻥ ‪ T‬ﺑﺎﺷﺪ ﻭﺟﻮﺩ ﺩﺍﺷﺘﻪ ﺑﺎﺷﺪ ﺑﻄﻮﺭﯼﮐﻪ ﺑﺮﺍﯼ ﻫﺮ ‪t ≥ ۰‬‬
‫ﺩﺍﺷﺘﻪ ﺑﺎﺷﯿﻢ ‪ .st = st+T‬ﮐﻮﭼﮑﺘﺮ ﯾﻦ ﻋﺪﺩ ﺻﺤﯿﺤﯽ ﮐﻪ ﺑﺮﺍﯼ ﺁﻥ ﺭﺍﺑﻄﻪ ﻓﻮﻕ ﺑﺮﻗﺮﺍﺭ ﺑﺎﺷﺪ ﺩﻭﺭﻩﯼ ﺗﻨﺎﻭﺏ ﺩﻧﺒﺎﻟﻪ ﻧﺎﻣﯿﺪﻩ‬
‫ﻣﯽﺷﻮﺩ‪.‬‬
‫ﺗﻌﺮ ﯾﻒ ‪ ۲‬ﯾﮏ ‪ LFSR‬ﺭﺍ ﻏﯿﺮﺗﮑﯿﻦ ﮔﻮﯾﯿﻢ‪ ،‬ﻫﺮﮔﺎﻩ ﺩﺭ ﭼﻨﺪﺟﻤﻠﻪﺍﯼ ﻣﺸﺨﺼﻪ ‪ cL‬ﻏﯿﺮ ﺻﻔﺮ ﺑﺎﺷﺪ‪.‬‬

‫ﯾﮏ ‪ LFSR‬ﺑﺎ ﻃﻮﻝ ‪ L‬ﺭ ﻭﯼ ‪ Fq‬ﺩﺍﺭﺍﯼ ‪ q L‬ﺣﺎﻟﺖ ﻣﺨﺘﻠﻒ ﺍﺳﺖ ﮐﻪ ﺣﺎﻟﺖ ﺗﻤﺎﻡ ﺻﻔﺮ ﻫﻤﻮﺍﺭﻩ ﺑﻪ ﺧﻮﺩﺵ ﺍﻧﺘﻘﺎﻝ ﻣﯽﯾﺎﺑﺪ‪.‬‬
‫ﺩﻧﺒﺎﻟﻪ ﺧﺮ ﻭﺟﯽ ﻫﺮ ‪ LFSR‬ﻏﯿﺮﺗﮑﯿﻦ ﺑﺎ ﻃﻮﻝ ‪ L‬ﺭ ﻭﯼ ‪ Fq‬ﻣﺘﻨﺎﻭﺏ ﺍﺳﺖ ﻭ ﺩﻭﺭﻩﯼ ﺗﻨﺎﻭﺏ ﺁﻥ ﺣﺪﺍﮐﺜﺮ ‪ q L − ۱‬ﺍﺳﺖ‪ ،‬ﯾﻌﻨﯽ‬
‫ﺑﻌﺪ ﺍﺯ ﺣﺪﺍﮐﺜﺮ ‪ q L − ۱‬ﺑﺎﺭ ﺍﺟﺮﺍﯼ ‪ LFSR‬ﺑﻪ ﺣﺎﻟﺖ ﺍﻭﻟﯿﻪ ﻣﯽﺭﺳﯿﻢ‪.‬‬

‫ﺗﻌﺮ ﯾﻒ ‪ ۳‬ﻣﺮﺗﺒﻪﯼ ﭼﻨﺪﺟﻤﻠﻪﺍﯼ )‪ C(X‬ﺑﺮﺍﺑﺮ ﮐﻮﭼﮑﺘﺮ ﯾﻦ ﻋﺪﺩ ﺻﺤﯿﺢ ﻭ ﻣﺜﺒﺖ ‪ T‬ﺍﺳﺖ ﮐﻪ ) ‪.C(X) | (۱ − X T‬‬
‫‪L‬‬
‫‪−۱‬‬
‫‪C(X) | (۱ − X q‬؛ ﻟﺬﺍ ‪.T ≤ q L − ۱‬‬ ‫ﺑﺮﺍﯼ ﻫﺮ ﭼﻨﺪﺟﻤﻠﻪﺍﯼ ﻏﯿﺮﺗﮑﯿﻦ ]‪ C(X) ∈ Fq [X‬ﺑﺎ ﺩﺭﺟﻪ ‪ L‬ﻫﻤﻮﺍﺭﻩ ﺩﺍﺭ ﯾﻢ )‬
‫ﯾﮏ ﺭ ﻭﺵ ﺑﺮﺍﯼ ﺑﺪﺳﺖ ﺁﻭﺭﺩﻥ ﻣﺮﺗﺒﻪﯼ ﭼﻨﺪﺟﻤﻠﻪﺍﯼ )‪ C(X‬ﺍﺳﺘﻔﺎﺩﻩ ﺍﺯ ﺭ ﻭﺵ ﺗﻘﺴﯿﻢ ﻃﻮﻻﻧﯽ ﺍﺳﺖ‪ .‬ﺑﻪ ﺍﯾﻦ ﺻﻮﺭﺕ ﮐﻪ‬
‫ﭼﻨﺪﺟﻤﻠﻪﺍﯼ ‪ ۱‬ﺭﺍ ﺑﻪ ﭼﻨﺪﺟﻤﻠﻪﺍﯼ )‪ C(X‬ﺗﺎ ﺯﻣﺎﻧﯽ ﮐﻪ ﺑﺎﻗﯿﻤﺎﻧﺪﻩ ﺑﺮﺍﺑﺮ ‪ X T‬ﺷﻮﺩ‪ ،‬ﺗﻘﺴﯿﻢ ﻣﯽﮐﻨﯿﻢ )ﺩﺭ ﻣﯿﺪﺍﻥ ‪(Fq‬؛ ﯾﻌﻨﯽ‬
‫‪۱‬‬ ‫‪XT‬‬
‫‪ ،‬ﺩﺭ ﺍﯾﻦ ﺻﻮﺭﺕ ﻣﺮﺗﺒﻪﯼ ﭼﻨﺪﺟﻤﻠﻪﺍﯼ )‪ C(X‬ﺑﺮﺍﺑﺮ ‪ T‬ﺍﺳﺖ‪ .‬ﺍﻟﺒﺘﻪ ﺍﻟﮕﻮﺭ ﯾﺘﻢﻫﺎﯼ ﮐﺎﺭﺍﺗﺮﯼ ﻧﯿﺰ‬ ‫‪= Q(X) +‬‬
‫)‪C(X‬‬ ‫)‪C(X‬‬
‫ﺑﺮﺍﯼ ﻣﺤﺎﺳﺒﻪ ﻣﺮﺗﺒﻪﯼ ﭼﻨﺪﺟﻤﻠﻪﺍﯼﻫﺎ ﻭﺟﻮﺩ ﺩﺍﺭﺩ‪.‬‬

‫ﺗﻌﺮ ﯾﻒ ‪ ۴‬ﭼﻨﺪﺟﻤﻠﻪﺍﯼ ]‪ P (X) ∈ Fq [X‬ﺗﺤﻮﯾﻞﻧﺎﭘﺬﯾﺮ ﻧﺎﻣﯿﺪﻩ ﻣﯽﺷﻮﺩ ﺍﮔﺮ ﻧﺘﻮﺍﻥ ﺁﻧﺮﺍ ﺭ ﻭﯼ ]‪ Fq [X‬ﺑﻪ ﺻﻮﺭﺕ ﺣﺎﺻﻞﺿﺮﺏ‬
‫ﺩﻭ ﭼﻨﺪﺟﻤﻠﻪﺍﯼ ﺑﺎ ﺩﺭﺟﻪ ﮐﻤﺘﺮ ﻧﻮﺷﺖ‪ .‬ﯾﮏ ﭼﻨﺪﺟﻤﻠﻪﺍﯼ ﺗﺤﻮﯾﻞﻧﺎﭘﺬﯾﺮ ﺩﺭﺟﻪﯼ ‪ L‬ﺭ ﻭﯼ ]‪ Fq [X‬ﺭﺍ ﺍﻭﻟﯿﻪ ‪ ۷‬ﮔﻮﯾﯿﻢ‪ ،‬ﻫﺮﮔﺎﻩ‬
‫ﻣﺮﺗﺒﻪﯼ ﺁﻥ ‪ q L − ۱‬ﺑﺎﺷﺪ‪.‬‬
‫‪۷ primitive‬‬

‫‪۷-۳‬‬
‫ﻗﻀﯿﻪ ‪ ۱‬ﺍﮔﺮ ‪ (st )t≥۰‬ﺩﻧﺒﺎﻟﻪﯼ ﺗﻮﻟﯿﺪ ﺷﺪﻩ ﺑﻮﺳﯿﻠﻪﯼ ﯾﮏ ‪ LFSR‬ﺑﻪ ﻃﻮﻝ ‪ L‬ﺑﺎ ﭼﻨﺪﺟﻤﻠﻪﺍﯼ ﺑﺎﺯﺧﻮﺭﺩ ﺗﺤﻮﯾﻞﻧﺎﭘﺬﯾﺮ ∈ )‪C(X‬‬
‫]‪ Fq [X‬ﺍﺯ ﯾﮏ ﺣﺎﻟﺖ ﺍﻭﻟﯿﻪ ﺗﻤﺎﻡ ﻧﺎﺻﻔﺮ ﺑﺎﺷﺪ‪ ،‬ﺁﻧﮕﺎﻩ ﺩﻭﺭﻩ ﺗﻨﺎﻭﺏ ﺩﻧﺒﺎﻟﻪ ‪ (st )t≥۰‬ﺑﺎ ﻣﺮﺗﺒﻪﯼ ﭼﻨﺪﺟﻤﻠﻪﺍﯼ )‪ C(X‬ﺑﺮﺍﺑﺮ ﺍﺳﺖ‪.‬‬

‫ﻧﺘﯿﺠﻪ ‪ ۵‬ﺩﻧﺒﺎﻟﻪ ﺧﺮ ﻭﺟﯽ ﻫﺮ ‪ LFSR‬ﺑﺎ ﻃﻮﻝ ‪ L‬ﻭ ﭼﻨﺪﺟﻤﻠﻪﺍﯼ ﺑﺎﺯﺧﻮﺭﺩ ﺍﻭﻟﯿﻪ ﺭ ﻭﯼ ‪ Fq‬ﺍﺯ ﻫﺮ ﺣﺎﻟﺖ ﺍﻭﻟﯿﻪ ﺗﻤﺎﻡ ﻧﺎﺻﻔﺮ ﺩﺍﺭﺍﯼ‬
‫ﺩﻭﺭﻩﯼ ﺗﻨﺎﻭﺏ ‪ q L − ۱‬ﺍﺳﺖ‪ .‬ﺑﻪﻋﻼﻭﻩ‪ ،‬ﺗﻤﺎﻡ ﺣﺎﻟﺖﻫﺎﯼ ﺗﻤﺎﻡ ﻧﺎﺻﻔﺮ ﺩﺭ ﻫﺮ ﺩﻭﺭﻩ ﺩﻗﯿﻘﺎً ﯾﮏﺑﺎﺭ ﻇﺎﻫﺮ ﻣﯽﺷﻮﻧﺪ‪.‬‬

‫ﻟﻢ ‪ ۲‬ﺍﮔﺮ ‪ (st )t≥۰‬ﺩﻧﺒﺎﻟﻪﯼ ﺗﻮﻟﯿﺪ ﺷﺪﻩ ﺑﻮﺳﯿﻠﻪﯼ ﯾﮏ ‪ LFSR‬ﺑﻪ ﻃﻮﻝ ‪ L‬ﺑﺎ ﭼﻨﺪﺟﻤﻠﻪﺍﯼ ﺑﺎﺯﺧﻮﺭﺩ ﺗﺤﻮﯾﻞﻧﺎﭘﺬﯾﺮ ∈ )‪C(X‬‬
‫]‪ Fq [X‬ﺍﺯ ﯾﮏ ﺣﺎﻟﺖ ﺍﻭﻟﯿﻪ ﺗﻤﺎﻡ ﻧﺎﺻﻔﺮ ﺑﺎﺷﺪ‪ ،‬ﺁﻧﮕﺎﻩ ﺍﯾﻦ ﺩﻧﺒﺎﻟﻪ ﺗﻮﺳﻂ ﻫﯿﭻ ‪ LFSR‬ﺑﺎ ﻃﻮﻝ ﮐﻤﺘﺮ ﺍﺯ ‪ L‬ﺗﻮﻟﯿﺪ ﻧﻤﯽﺷﻮﺩ‪.‬‬

‫ﺩﺭ ﺟﻠﺴﻪﯼ ﺁﯾﻨﺪﻩ ﺧﻮﺍﻫﯿﻢ ﺩﯾﺪ ﮐﻪ ﻭﯾﮋﮔﯽ ﺧﻄﯽ ‪ LFSR‬ﺑﺎﻋﺚ ﻣﯽﺷﻮﺩ ﮐﻪ ﻧﺘﻮﺍﻥ ﺍﺯ ﺁﻥ ﺑﻪ ﻋﻨﻮﺍﻥ ﯾﮏ ﻣﻮﻟﺪ ﺷﺒﻪﺗﺼﺎﺩﻓﯽ‬
‫ﺍﻣﻦ ﺍﺳﺘﻔﺎﺩﻩ ﮐﺮﺩ‪ .‬ﺑﻪ ﻋﻼﻭﻩ ﺑﺮ ﺭﺳﯽ ﺧﻮﺍﻫﯿﻢ ﮐﺮﺩ ﮐﻪ ﭼﻪ ﺗﻐﯿﯿﺮﺍﺗﯽ ﺭﺍ ﺑﺎﯾﺪ ﺍﻋﻤﺎﻝ ﮐﻨﯿﻢ ﮐﻪ ﺑﺘﻮﺍﻧﯿﻢ ﺑﺎ ﺍﺳﺘﻔﺎﺩﻩ ﺍﺯ ﺁﻥ ﻣﻮﻟﺪ‬
‫ﺷﺒﻪﺗﺼﺎﺩﻓﯽ ﺍﻣﻦ ﺑﺴﺎﺯﯾﻢ‪.‬‬

‫ﺭﻣﺰﻫﺎﯼ ﺩﻧﺒﺎﻟﻪﺍﯼ ﻣﺪﺭﻥ‬ ‫‪۳‬‬

‫ﻫﻤﺎﻧﮕﻮﻧﻪ ﮐﻪ ﻗﺒﻼً ﻣﻄﺮﺡ ﺷﺪ‪ ،‬ﺍﺯ ﺧﺮ ﻭﺟﯽ ﻣﻮﻟﺪ ﺷﺒﻪﺗﺼﺎﺩﻓﯽ ﺑﻪ ﺟﺎﯼ ﮐﻠﯿﺪ ﮐﺎﻣﻼً ﺗﺼﺎﺩﻓﯽ ﺩﺭ ﺳﯿﺴﺘﻢ ﺭﻣﺰ ﯾﮏﺑﺎﺭ ﻣﺼﺮﻑ‬
‫)‪ (OTP‬ﺍﺳﺘﻔﺎﺩﻩ ﻣﯽﺷﻮﺩ‪ .‬ﺍﺳﺘﻔﺎﺩﻩ ﺍﺯ ﻣﻮﻟﺪ ﺷﺒﻪﺗﺼﺎﺩﻓﯽ ﺑﻪ ﺍﯾﻦ ﺻﻮﺭﺕ ﻣﺤﺪﻭﺩﯾﺖ ﺍﺻﻠﯽ ‪ OTP‬ﺭﺍ ﺩﺍﺭﺍﺳﺖ؛ ﯾﻌﻨﯽ‪ ،‬ﺍﺯ ﻫﺮ‬
‫ﮐﻠﯿﺪ ﻓﻘﻂ ﯾﮑﺒﺎﺭ ﺑﺮﺍﯼ ﺭﻣﺰ ﮐﺮﺩﻥ ﯾﮏ ﭘﯿﺎﻡ ﮐﻪ ﻃﻮﻟﺶ ﺣﺪﺍﮐﺜﺮ ﺑﺮﺍﺑﺮ ﻃﻮﻝ ﺩﻧﺒﺎﻟﻪ ﺧﺮ ﻭﺟﯽ ﻣﻮﻟﺪ ﺍﺳﺖ ﻣﯽﺗﻮﺍﻥ ﺍﺳﺘﻔﺎﺩﻩ ﮐﺮﺩ‪.‬‬
‫ﺑﺮﺍﯼ ﺭﻓﻊ ﺍﯾﻦ ﻣﺸﮑﻞ‪ ،‬ﺭﻣﺰﻫﺎﯼ ﺩﻧﺒﺎﻟﻪﺍﯼ ﻣﺪﺭﻥ ﻋﻼﻭﻩ ﺑﺮ ﮐﻠﯿﺪ ‪ K‬ﺍﺯ ﯾﮏ ﻣﻘﺪﺍﺭ ﺍﻭﻟﯿﻪ ‪ IV ۸‬ﻫﻢ ﺍﺳﺘﻔﺎﺩﻩ ﻣﯽﮐﻨﻨﺪ‪ .‬ﺑﺎ ﺍﺳﺘﻔﺎﺩﻩ‬
‫ﺍﺯ ﺍﻟﮕﻮﺭ ﯾﺘﻢ ﺑﺎﺭﮔﺬﺍﺭﯼ ﮐﻠﯿﺪ ‪) ۹‬ﯾﺎ ﺁﻏﺎﺯﺳﺎﺯﯼ ‪ ،(۱۰‬ﺍﺑﺘﺪﺍ ﮐﻠﯿﺪ ﻭ ﻣﻘﺪﺍﺭ ﺍﻭﻟﯿﻪ ﺑﻪ ﯾﮏ ﺣﺎﻟﺖ ﺍﻭﻟﯿﻪ ﻧﮕﺎﺷﺘﻪ ﻣﯽﺷﻮﺩ ﻭ ﺳﭙﺲ ﺑﺎ‬
‫ﺍﺳﺘﻔﺎﺩﻩ ﺍﺯ ﻣﻮﻟﺪ ﺷﺒﻪﺗﺼﺎﺩﻓﯽ ﺑﻪ ﯾﮏ ﺩﻧﺒﺎﻟﻪ ﻃﻮﻻﻧﯽ ﺷﺒﻪﺗﺼﺎﺩﻓﯽ ﺗﺒﺪﯾﻞ ﻣﯽﺷﻮﺩ‪ .‬ﺷﻤﺎﯼ ﮐﻠﯽ ﻃﺮﺍﺣﯽ ﯾﮏ ﺭﻣﺰ ﺩﻧﺒﺎﻟﻪﺍﯼ‬
‫ﻣﺪﺭﻥ ﺩﺭ ﺷﮑﻞ ﺯﯾﺮ ﻧﺸﺎﻥ ﺩﺍﺩﻩ ﺷﺪﻩﺍﺳﺖ‪.‬‬

‫‪K‬‬ ‫‪IV‬‬

‫‪Key/IV set up‬‬

‫‪S۰‬‬

‫‪St‬‬ ‫‪F‬‬

‫‪f‬‬
‫‪.‬‬

‫‪zt‬‬
‫‪۸ Initial‬‬ ‫‪Value‬‬
‫‪۹ Key/IV‬‬ ‫‪setup‬‬
‫‪۱۰ initialization‬‬

‫‪۷-۴‬‬
‫�‬
‫ﻣﻘﺪﺍﺭ ﺍﻭﻟﯿﻪ ﻣﻌﻤﻮﻻً ﻋﻤﻮﻣﯽ ﺍﺳﺖ ﻭ ﺑﻪ ﻫﻤﺮﺍﻩ ﻣﺘﻦ ﺭﻣﺰﯼ ﺍﺭﺳﺎﻝ ﻣﯽﺷﻮﺩ‪ .‬ﺑﺪﯾﻦ ﺗﺮﺗﯿﺐ ﻫﺮﭼﻨﺪ ﮐﻪ ﮐﻠﯿﺪ ﺩﺭ ﻃﻮﻝ ﺍﻟﮕﻮﺭ ﯾﺘﻢ‬
‫ﺭﻣﺰﻧﮕﺎﺭﯼ ﺛﺎﺑﺖ ﺍﺳﺖ‪ ،‬ﺍﻣﺎ ﺗﻐﯿﯿﺮ ﻣﻘﺪﺍﺭ ﺍﻭﻟﯿﻪ ﺑﺎﻋﺚ ﻣﯽﺷﻮﺩ ﮐﻪ ﺩﻧﺒﺎﻟﻪﮐﻠﯿﺪ ﺧﺮ ﻭﺟﯽ ﻧﯿﺰ ﺗﻐﯿﯿﺮ ﮐﻨﺪ ﻭ ﺑﺘﻮﺍﻥ ﺍﺯ ﯾﮏ ﮐﻠﯿﺪ ﺑﺮﺍﯼ‬
‫ﺭﻣﺰ ﮐﺮﺩﻥ ﭼﻨﺪﯾﻦ ﭘﯿﺎﻡ ﺍﺳﺘﻔﺎﺩﻩ ﮐﺮﺩ‪ .‬ﺩﺭ ﻭﺍﻗﻊ ﺑﺎ ﺍﯾﻦ ﺭ ﻭﺵ ﺑﻪ ﮐﻤﮏ ﻣﻮﻟﺪ ﺷﺒﻪﺗﺼﺎﺩﻓﯽ ﯾﮏ ﺗﺎﺑﻊ ﺷﺒﻪﺗﺼﺎﺩﻓﯽ ‪ ۱۱‬ﺳﺎﺧﺘﻪﺍﯾﻢ‬
‫ﮐﻪ ﻣﻘﺪﺍﺭ ﺍﻭﻟﯿﻪ ﺭﺍ ﺑﻪ ﻋﻨﻮﺍﻥ ﻭﺭ ﻭﺩﯼ ﻣﯽﮔﯿﺮﺩ ﻭ ﯾﮏ ﺭﺷﺘﻪ ﺭﺍ ﺑﻪ ﻋﻨﻮﺍﻥ ﺧﺮ ﻭﺟﯽ ﭘﺲ ﻣﯽﺩﻫﺪ‪ .‬ﺩﺭ ﺍﺩﺍﻣﻪ ﺩﺭﺱ ﺩﺭ ﻣﻮﺭﺩ ﺗﻮﺍﺑﻊ‬
‫ﺷﺒﻪﺗﺼﺎﺩﻓﯽ ﻭ ﮐﺎﺭﺑﺮﺩﻫﺎﯼ ﺁﻥﻫﺎ ﺻﺤﺒﺖ ﺧﻮﺍﻫﯿﻢ ﮐﺮﺩ‪.‬‬

‫‪۱۱ pseudorandom‬‬ ‫‪function‬‬

‫‪۷-۵‬‬
‫ﺑﻪ ﻧﺎم ﺧﺪا‬

‫داﻧﺸ ﺪهی ﻋﻠﻮم رﯾﺎﺿ‬

‫‪ ٨‬اﺳﻔﻨﺪ ‪٩١‬‬ ‫ﻣﻘﺪﻣﻪای ﺑﺮ رﻣﺰﻧ ﺎری‬

‫ﺟﻠﺴﻪی ﻫﻔﺘﻢ‪ :‬ﺟﺒﺮ ﻣﻘﺪﻣﺎﺗ ‪ ،‬رﯾﺎﺿﯿﺎت ﺛﺒﺎت ﺧﻄ‬


‫ﻧ ﺎرﻧﺪه‪ :‬اﻓﺸﯿﻦ زارﻋ‬ ‫ﻣﺪرس‪ :‬دﮐﺘﺮ ﺷﻬﺮام ﺧﺰاﺋ‬

‫آﺷﻨﺎﯾ ﻣﻘﺪﻣﺎﺗ ﺑﺎ ﮔﺮوه‪ ،‬ﺣﻠﻘﻪ و ﻣﯿﺪان‬ ‫‪١‬‬


‫‪ ١.١‬ﮔﺮوه‬
‫∗ را ﮐﻪ دارای ﺷﺮاﯾﻂ زﯾﺮ اﺳﺖ‪ ،‬ﮔﺮوه ﻣ ﻧﺎﻣﯿﻢ و ﺑﺎ دوﺗﺎﯾ )∗ ‪ (G,‬ﻧﻤﺎﯾﺶ ﻧﺸﺎن ﻣ دﻫﯿﻢ‪:‬‬ ‫ﺗﻌﺮﯾﻒ ‪ ١‬ﻣﺠﻤﻮﻋﻪی ‪ G‬ﺑﻪ ﻫﻤﺮاه ﻋﻤﻞ دوﺗﺎﯾ‬
‫‪ .١‬ﺑﺴﺘﻪ ﺑﻮدن‬

‫‪∀a, b ∈ G : a ∗ b ∈ G‬‬

‫‪ .٢‬ﺷﺮﮐﺖﭘﺬﯾﺮی‬

‫)‪∀a, b, c ∈ G : (a ∗ b) ∗ c = a ∗ (b ∗ c‬‬

‫‪ .٣‬ﻋﻀﻮ ﻫﻤﺎﻧ‬

‫‪∃e ∈ G ∀a ∈ G : a ∗ e = e ∗ a = a‬‬

‫‪ .۴‬ﻋﻀﻮ ﻣﻌ ﻮس‬

‫‪∀a ∈ G ∃a−۱ ∈ G : a ∗ a−۱ = a−۱ ∗ a = e‬‬

‫ﺗﻌﺮﯾﻒ ‪ ٢‬ﮔﺮوه )∗ ‪ (G,‬را ﺟﺎﺑﺠﺎﯾ )آﺑﻠ ( ﮔﻮﯾﯿﻢ ﻫﺮﮔﺎه‪.∀a, b ∈ G : a ∗ b = b ∗ a :‬‬

‫ﮔﺮوه اﺳﺖ‪.‬‬ ‫ﻣﺜﺎل ‪ ٣‬دوﺗﺎﯾ )‪ (Z۲ , +‬ﮐﻪ }‪ Z۲ = {۰, ۱‬و ﻋﻤﻞ ‪ +‬ﻫﻤﺎن ﻋﻤﻞ ﺟﻤﻊ در ﻣﺒﻨﺎی ‪ ٢‬اﺳﺖ‪ ،‬ﯾ‬

‫ﮔﺮوه اﺳﺖ ) ﻋﻤﻞ ﮔﺮوه ﺟﻤﻊ در ﻣﺒﻨﺎی ‪ n‬اﺳﺖ(‪.‬‬ ‫ﺑﺎﺷﺪ‪ (Zn , +) ،‬ﯾ‬ ‫ﻣﺜﺎل ‪ ۴‬ﺑﻄﻮر ﮐﻠ اﮔﺮ ‪ n‬ﻋﺪد ﻃﺒﯿﻌ ﺑﺰرﮔﺘﺮ از ﯾ‬

‫ﺣﻠﻘﻪ‬ ‫‪٢.١‬‬
‫ﺗﻌﺮﯾﻒ ‪ ۵‬ﻣﺠﻤﻮﻋﻪی ‪ R‬ﻫﻤﺮاه ﺑﺎ دو ﻋﻤﻞ دوﺗﺎﯾ ‪ +‬و ∗ را ﺣﻠﻘﻪ ﻣ ﻧﺎﻣﯿﻢ و ﺑﺎ ﺳﻪﺗﺎﯾ )∗ ‪ (R, +,‬ﻧﻤﺎﯾﺶ ﻣ دﻫﯿﻢ‪ ،‬ﻫﺮ ﮔﺎه دارای ﺧﻮاص‬
‫زﯾﺮ ﺑﺎﺷﺪ‪:‬‬
‫ﮔﺮوه آﺑﻠ ﺑﺎﺷﺪ‪.‬‬ ‫‪ (R, +) .١‬ﯾ‬
‫‪ .٢‬ﻧﺴﺒﺖ ﺑﻪ ﻋﻤﻞ دوم ﺑﺴﺘﻪ ﺑﺎﺷﺪ‪.‬‬

‫‪∀a, b ∈ R : a ∗ b ∈ R‬‬

‫ﻫﻔﺘﻢ‪١-‬‬
‫‪ .٣‬ﻧﺴﺒﺖ ﺑﻪ ﻋﻤﻞ دوم ﺷﺮﮐﺖﭘﺬﯾﺮ ﺑﺎﺷﺪ‪.‬‬

‫)‪∀a, b, c ∈ R : (a ∗ b) ∗ c = a ∗ (b ∗ c‬‬

‫‪ .۴‬ﺗﻮزﯾﻊﭘﺬﯾﺮی ﻋﻤﻞ دوم ﻧﺴﺒﺖ ﺑﻪ ﻋﻤﻞ اول از ﭼﭗ و راﺳﺖ‪:‬‬

‫)‪∀a, b, c ∈ R : (a + b) ∗ c = (a ∗ c) + (b ∗ c) , a ∗ (b + c) = (a ∗ b) + (a ∗ c‬‬

‫ﺣﻠﻘﻪ اﺳﺖ ﮐﻪ ﺑﺎ )× ‪ (Z, +,‬ﻧﺸﺎن ﻣ دﻫﻨﺪ‪.‬‬ ‫ﻣﺜﺎل ‪ ۶‬ﻣﺠﻤﻮﻋﻪی اﻋﺪاد ﺻﺤﯿﺢ ﻫﻤﺮاه ﺑﺎ ﺟﻤﻊ وﺿﺮب ﻣﻌﻤﻮﻟ ﯾ‬

‫ﺣﻠﻘﻪ اﺳﺖ ﮐﻪ ﺑﺎ )× ‪ (R, +,‬ﻧﺸﺎن ﻣ دﻫﻨﺪ‪.‬‬ ‫ﻣﺜﺎل ‪ ٧‬ﻣﺠﻤﻮﻋﻪی اﻋﺪاد ﺣﻘﯿﻘ ﻫﻤﺮاه ﺑﺎ ﺟﻤﻊ و ﺿﺮب ﻣﻌﻤﻮﻟ ﯾ‬

‫‪ ٣.١‬ﻣﯿﺪان‬
‫ﮔﺮوه آﺑﻠ ﺑﺎﺷﺪ )ﻣﻨﻈﻮر از ∗ ‪ F‬ﻣﺠﻤﻮﻋﻪی }‪ F − {۰‬اﺳﺖ‪ ،‬ﮐﻪ‬ ‫ﺗﻌﺮﯾﻒ ‪ ٨‬ﺣﻠﻘﻪی )∗ ‪ (F, +,‬را ﻣﯿﺪان ﻣ ﻧﺎﻣﯿﻢ‪ ،‬ﻫﺮﮔﺎه )∗ ‪ (F ∗ ,‬ﻧﯿﺰ ﯾ‬
‫‪ ۰‬ﻋﻀﻮ ﺧﻨﺜ ﻋﻤﻞ ‪ +‬اﺳﺖ(‪.‬‬

‫ﻣﯿﺪان اﺳﺖ وﻟ )× ‪ (Z, +,‬ﻣﯿﺪان ﻧﯿﺴﺖ‪.‬‬ ‫ﻣﺜﺎل ‪ (R, +, ×) ٩‬ﯾ‬

‫ﻧ ﺘﻪ ‪ ١‬ﻣﯿﺪان ﻣﺘﻨﺎﻫ ‪ q‬ﻋﻀﻮی را ﺑﺎ ‪ Fq‬ﻧﺸﺎن ﻣ دﻫﯿﻢ‪ .‬ﺗﻌﺪاد اﻋﻀﺎی ﻫﺮ ﻣﯿﺪان ﻣﺘﻨﺎﻫ ﺗﻮاﻧ از ﻋﺪدی اول اﺳﺖ؛ ﯾﻌﻨ ‪ q = pn ،‬ﺑﻪازای‬
‫ﯾ ﻋﺪد ﻃﺒﯿﻌ ‪ n‬و ﯾ ﻋﺪد اول ‪.p‬‬

‫ﻧ ﺘﻪ ‪ ٢‬ﮐﻮﭼ ﺘﺮﯾﻦ ﻣﯿﺪان‪ (F۲ , +, ·) :‬ﮐﻪ }‪ ۰ ) F۲ = {۰, ۱‬ﻋﻀﻮ ﺧﻨﺜ ﻋﻤﻞ ‪ +‬و ‪ ۱‬ﻋﻀﻮ ﺧﻨﺜ ﻋﻤﻞ · اﺳﺖ(‪.‬‬

‫ﭼﻨﺪ ﺣﻠﻘﻪی ﻣﻔﯿﺪ‬ ‫‪۴.١‬‬


‫ﺣﻠﻘﻪی ﭼﻨﺪﺟﻤﻠﻪایﻫﺎ‪ :‬اﮔﺮ ‪ F‬ﻣﯿﺪان ﺑﺎﺷﺪ‪ (F [X], +, ·) ،‬را ﺣﻠﻘﻪی ﭼﻨﺪﺟﻤﻠﻪایﻫﺎ ﻣ ﻧﺎﻣﯿﻢ و ﺑﻪ ﺻﻮرت زﯾﺮ ﺗﻌﺮﯾﻒ ﻣ ﺷﻮد‪:‬‬
‫} ‪F [X] = {a۰ + a۱ X + . . . + an X n |ai ∈ F‬‬
‫در ﺣﻠﻘﻪی ﭼﻨﺪﺟﻤﻠﻪایﻫﺎ ﺗﻨﻬﺎ ﻋﻨﺎﺻﺮ وارونﭘﺬﯾﺮ ﺛﺎﺑﺖﻫﺎ ) ‪ (ai‬ﻫﺴﺘﻨﺪ‪.‬‬

‫دﻧﺒﺎﻟﻪ ﻧﺎﻣﯿﺪه ﻣ ﺷﻮد‪ ،‬ﮐﻪ ﻣﻌﻤﻮﻻ ﺑﻪ ﺻﻮرت‬ ‫ﺣﻠﻘﻪی ﺳﺮیﻫﺎی ﺗﻮاﻧ ‪ :‬ﺑﯿﺎد ﺑﯿﺎورﯾﺪ ﮐﻪ ﺗﺎﺑﻊ ‪) a : N۰ −→ F‬ﮐﻪ }‪ (N۰ = N ∪ {۰‬ﯾ‬
‫· · · ‪ a۰ , a۱ , a۲ ,‬ﻧﻤﺎﯾﺶ دادهﻣ ﺷﻮد‪.‬‬
‫ﻓﺮض ﮐﻨﯿﺪ ‪ F‬ﯾ ﻣﯿﺪان ﺑﺎﺷﺪ و ]]‪ F [[X‬ﻣﺠﻤﻮﻋﻪی ﺗﻤﺎم دﻧﺒﺎﻟﻪﻫﺎ از ﻋﻨﺎﺻﺮ ﻣﺎﻧﻨﺪ ) · · · ‪ (a۰ , a۱ ,‬از ﻋﻨﺎﺻﺮ ‪ F‬ﺑﺎﺷﻨﺪ‪ F [[X]] .‬ﺑﺎ ﺟﻤﻊ و‬
‫ﺿﺮﺑ ﮐﻪ ﺑﻪ ﺻﻮرت زﯾﺮ ﺗﻌﺮﯾﻒ ﺷﺪهاﻧﺪ ﯾ ﺣﻠﻘﻪ اﺳﺖ ﮐﻪ ﺑﻪ آن ﺣﻠﻘﻪی ﺳﺮی ﺗﻮاﻧ روی ﻣﯿﺪان ‪ F‬ﻣ ﮔﻮﯾﻨﺪ‪.‬‬

‫) · · · ‪(a۰ , a۱ , a۲ , · · · ) + (b۰ , b۱ , b۲ , · · · ) = (a۰ + b۰ , a۱ + b۱ , , a۲ + b۲ ,‬‬

‫و‬

‫) · · · ‪(a۰ , a۱ , a۲ , · · · ) · (b۰ , b۱ , b۲ , · · · ) = (c۰ , c۱ , c۲ ,‬‬

‫ﮐﻪ‬

‫∑‬
‫‪n‬‬
‫= ‪cn‬‬ ‫‪ai bn−i‬‬
‫‪i=۰‬‬

‫ﭼﻨﺪﺟﻤﻠﻪای ﻣﻮﻟﺪ ‪ ١‬دﻧﺒﺎﻟﻪ ) · · · ‪ (a۰ , a۱ , a۲ ,‬ﮐﻪ ﺑﻪ ﺑﺼﻮرت زﯾﺮ ﺗﻌﺮﯾﻒ ﻣ ﺷﻮد روش دﯾ ﺮی ﺑﺮای ﻧﻤﺎﯾﺶ دﻧﺒﺎﻟﻪﻫﺎ اﺳﺖ‪:‬‬
‫∞‬
‫∑‬
‫= · · · ‪A(X) = a۰ + a۱ X + a۲ X ۲ +‬‬ ‫‪ak X k .‬‬
‫‪k=۰‬‬
‫‪١ generating‬‬ ‫‪function‬‬

‫ﻫﻔﺘﻢ‪٢-‬‬
‫ﭼﻨﺪﺟﻤﻠﻪای ﻣﻮﻟﺪ ﺣﺎﺻﻞﺟﻤﻊ )ﺣﺎﺻﻞﺿﺮب( دو دﻧﺒﺎﻟﻪ ﻫﻤﺎن ﺣﺎﺻﻞﺟﻤﻊ )ﺣﺎﺻﻞﺿﺮب( ﭼﻨﺪﺟﻤﻠﻪایﻫﺎی ﻣﻮﻟﺪ دﻧﺒﺎﻟﻪ اﺳﺖ‪ .‬ﻟﺬا ﺣﻠﻘﻪی‬
‫∞‬
‫∑‬
‫{ = ]]‪ F [[X‬ﻧﯿﺰ ﻧﻤﺎﯾﺶ ﻣ دﻫﻨﺪ‪.‬‬ ‫ﺳﺮی ﺗﻮاﻧ روی ﻣﯿﺪان ‪ F‬را ﺑﺼﻮرت } ‪ai X i | ai ∈ F‬‬
‫‪i=۰‬‬

‫ﻧ ﺘﻪ ‪ ٣‬در ﺣﻠﻘﻪ ﺳﺮیﻫﺎی ﺗﻮاﻧ ﺗﻨﻬﺎ ﭼﻨﺪﺟﻤﻠﻪایﻫﺎی ﻏﯿﺮﺗ ﯿﻦ )‪) A(X‬ﯾﻌﻨ ‪ A(۰) ̸= ۰‬ﯾﺎ ﻣﻌﺎدﻻ ‪ (a۰ ̸= ۰‬ﻣﻌ ﻮسﭘﺰﯾﺮﻧﺪ‪ .‬زﯾﺮا اﮔﺮ‬
‫))‪ A(X) = a۰ (۱ − B(X‬ﮐﻪ )‪ B(X‬ﯾ ﭼﻨﺪﺟﻤﻠﻪای ﺗ ﯿﻦ اﺳﺖ )ﯾﻌﻨ ‪ (B(۰) = ۰‬در اﯾﻨﺼﻮرت دارﯾﻢ‪:‬‬

‫∑‬ ‫∞‬
‫‪۱‬‬ ‫‪۱‬‬
‫= ‪A(X)−۱‬‬ ‫=‬ ‫‪= a−۱‬‬ ‫‪۲‬‬ ‫‪−۱‬‬
‫‪۰ (۱ + B(X) + B(X) + . . .) = a۰‬‬ ‫‪B(X)k‬‬
‫)‪A(X‬‬ ‫))‪a۰ (۱ − B(X‬‬
‫‪k=۰‬‬

‫ﺛﺒﺎت ﺑﺎ ﺑﺎزﺧﻮرد ﺧﻄ‬ ‫‪٢‬‬


‫∑‬
‫‪L‬‬
‫‪ C(X) = ۱ −‬ﺗﻌﺮﯾﻒ ﻣ ﺷﻮد ﮐﻪ‬ ‫ﺛﺒﺎت ﺑﺎ ﺑﺎزﺧﻮرد ﺧﻄ ‪ (LF SR) ٢‬ﺑﺎ اﺳﺘﻔﺎده از ﭼﻨﺪﺟﻤﻠﻪای ﺑﺎزﺧﻮرد ‪ci X i ∈ Fq [X] ٣‬‬ ‫ﯾ‬
‫‪i=۰‬‬
‫‪ (s۰ , s۱ , · · · , sL−۱ ) ∈ FL‬را )ﮐﻪ ﺣﺎﻟﺖ اوﻟﯿﻪ ﻧﺎﻣﯿﺪه ﻣ ﺷﻮد( ﺑﺎ اﺳﺘﻔﺎده از راﺑﻄﻪی‬
‫‪ L‬ﻃﻮل ﺛﺒﺎت ﻧﺎﻣﯿﺪه ﻣ ﺷﻮد‪ .‬اﯾﻦ ﺛﺒﺎت رﺷﺘﻪی ‪q‬‬
‫ﺑﺎزﮔﺸﺘ زﯾﺮ ﺑﻪ ﯾ دﻧﺒﺎﻟﻪ ﺑﺎ ﻃﻮل ﻧﺎﻣﺘﻨﺎﻫ )ﮐﻪ دﻧﺒﺎﻟﻪی ﺧﺮوﺟ ﻧﺎﻣﯿﺪه ﻣ ﺷﻮد( ﺗﺒﺪﯾﻞ ﻣ ﮐﻨﺪ‪.‬‬

‫∑‬
‫‪L‬‬
‫= ‪∀t ≥ ۰ ، st+L‬‬ ‫‪ci st+L−i‬‬
‫‪i=۱‬‬

‫در اﯾﻦ ﺻﻮرت دﻧﺒﺎﻟﻪی ﺧﺮوﺟ ﯾ ‪ LF SR‬ﺑﺼﻮرت ‪ (st )t≥۰‬اﺳﺖ‪.‬‬


‫در ﺷ ﻞ زﯾﺮ روﻧﺪ ﮐﺎر ﯾ ‪ LF SR‬ﺑﻪ ﻃﻮل ‪ L‬را ﻣ ﺑﯿﻨﯿﺪ‪.‬‬

‫ﭼﻨﺪﺟﻤﻠﻪای ﺑﺎزﺧﻮرد و ﭼﻨﺪﺟﻤﻠﻪای ﻣﺸﺨﺼﻪ‬ ‫‪١.٢‬‬


‫‪ LF SR‬ﺑﺼﻮرت ﯾ ﺘﺎﯾ ﺑﻮﺳﯿﻠﻪ ﺿﺮاﯾﺐ ﭼﻨﺪﺟﻤﻠﻪای ﺑﺎزﺧﻮرد و ﺣﺎﻟﺖ اوﻟﯿﻪ ﺗﻌﯿﯿﻦ ﻣ ﺷﻮد‪ .‬ﺿﺮاﯾﺐ ﺑﺎزﺧﻮرد‬ ‫دﻧﺒﺎﻟﻪی ﺧﺮوﺟ ﯾ‬
‫‪ LF SR‬ﺑﺎ ﻃﻮل ‪ L‬ﺑﻮﺳﯿﻠﻪی ﭼﻨﺪﺟﻤﻠﻪای ﺑﺎزﺧﻮرد ﮐﻪ ﺑﺼﻮرت زﯾﺮ ﺗﻌﺮﯾﻒ ﻣ ﺷﻮد‪ ،‬ﻣﺸﺨﺺ ﻣ ﺷﻮﻧﺪ‪.‬‬ ‫‪ c۱ , c۲ , · · · , cL‬ﯾ‬

‫∑‬
‫‪L‬‬
‫‪C(X) = ۱ −‬‬ ‫‪ci X i .‬‬
‫‪i=۱‬‬

‫ﻫﻤﭽﻨﯿﻦ اﯾﻦ ﺿﺮاﯾﺐ را ﺑﺎ اﺳﺘﻔﺎده از ﭼﻨﺪﺟﻤﻠﻪای ﻣﺸﺨﺼﻪ ‪ ۴‬ﻣ ﺗﻮان ﺑﺪﺳﺖ آورد‪:‬‬
‫‪٢ Linear‬‬‫‪Feedback Shift Register‬‬
‫‪٣ Feedback‬‬ ‫‪polynomial‬‬
‫‪۴ Characteristic polynomial‬‬

‫ﻫﻔﺘﻢ‪٣-‬‬
‫‪۱‬‬ ‫∑‬ ‫‪L‬‬
‫(‪C ∗ (X) = X L C‬‬ ‫‪) = XL −‬‬ ‫‪ci X L−i .‬‬
‫‪X‬‬
‫‪i=۱‬‬

‫ﻣﺜﺎل ‪ ١٠‬ﺑﺮای ﯾ ‪ LF SR‬ﺑﺎ ﻃﻮل ‪ ۴‬در ﻣﯿﺪان ‪ F۲‬و ﺿﺮاﯾﺐ ﺑﺎزﺧﻮرد ‪ ،c۱ = c۲ = ۰, c۳ = c۴ = ۱‬ﭼﻨﺪﺟﻤﻠﻪای ﺑﺎزﺧﻮرد و‬
‫ﭼﻨﺪﺟﻤﻠﻪای ﻣﺸﺨﺼﻪ ﺑﻪ ﺗﺮﺗﯿﺐ ﺑﺼﻮرت‬
‫]‪C(X) = ۱ + X ۳ + X ۴ ∈ F۲ [X‬‬
‫و‬
‫]‪C ∗ (X) = ۱ + X + X ۴ ∈ F۲ [X‬‬
‫اﺳﺖ‪.‬‬
‫دﻧﺒﺎﻟﻪی ﺧﺮوﺟ اﯾﻦ ‪ LF SR‬ﺑﺎ ﺗﻮﺟﻪ ﺑﻪ راﺑﻄﻪ ﺑﺎزﮔﺸﺘ زﯾﺮ ﺗﻌﯿﯿﻦ ﻣ ﺷﻮد‪.‬‬
‫‪st+۴ = st + st+۱ mod ۲‬‬
‫در ﺷ ﻞ زﯾﺮ روﻧﺪ ﺗﻮﻟﯿﺪ اﯾﻦ دﻧﺒﺎﻟﻪ را ﻣ ﺑﯿﻨﯿﺪ‪.‬‬

‫ﺑﺮای ﻣﺜﺎل اﮔﺮ ﺣﺎﻟﺖ اوﻟﯿﻪ را ﺑﺮاﺑﺮ )‪ (s۰ , s۱ , s۲ , s۳ , s۴ ) = (۱, ۰, ۱, ۱‬ﻗﺮار دﻫﯿﻢ‪ ،‬ﻃﺒﻖ ﺟﺪول زﯾﺮ دﻧﺒﺎﻟﻪی ﺧﺮوﺟ ﺗﻮﻟﯿﺪ ﻣ ﺷﻮد‪.‬‬
‫‪t‬‬ ‫‪٠‬‬ ‫‪١‬‬ ‫‪٢‬‬ ‫‪٣‬‬ ‫‪۴‬‬ ‫‪۵‬‬ ‫‪۶‬‬ ‫‪٧‬‬ ‫‪٨‬‬ ‫‪٩‬‬ ‫‪١٠‬‬ ‫‪١١‬‬ ‫‪١٢‬‬ ‫‪١٣‬‬ ‫‪١۴‬‬ ‫‪١۵‬‬
‫‪st‬‬ ‫‪١‬‬ ‫‪٠‬‬ ‫‪١‬‬ ‫‪١‬‬ ‫‪١‬‬ ‫‪١‬‬ ‫‪٠‬‬ ‫‪٠‬‬ ‫‪٠‬‬ ‫‪١‬‬ ‫‪٠‬‬ ‫‪٠‬‬ ‫‪١‬‬ ‫‪١‬‬ ‫‪٠‬‬ ‫‪١‬‬
‫‪st+۱‬‬ ‫‪٠‬‬ ‫‪١‬‬ ‫‪١‬‬ ‫‪١‬‬ ‫‪١‬‬ ‫‪٠‬‬ ‫‪٠‬‬ ‫‪٠‬‬ ‫‪١‬‬ ‫‪٠‬‬ ‫‪٠‬‬ ‫‪١‬‬ ‫‪١‬‬ ‫‪٠‬‬ ‫‪١‬‬ ‫‪٠‬‬
‫‪st+۲‬‬ ‫‪١‬‬ ‫‪١‬‬ ‫‪١‬‬ ‫‪١‬‬ ‫‪٠‬‬ ‫‪٠‬‬ ‫‪٠‬‬ ‫‪١‬‬ ‫‪٠‬‬ ‫‪٠‬‬ ‫‪١‬‬ ‫‪١‬‬ ‫‪٠‬‬ ‫‪١‬‬ ‫‪٠‬‬ ‫‪١‬‬
‫‪st+۳‬‬ ‫‪١‬‬ ‫‪١‬‬ ‫‪١‬‬ ‫‪٠‬‬ ‫‪٠‬‬ ‫‪٠‬‬ ‫‪١‬‬ ‫‪٠‬‬ ‫‪٠‬‬ ‫‪١‬‬ ‫‪١‬‬ ‫‪٠‬‬ ‫‪١‬‬ ‫‪٠‬‬ ‫‪١‬‬ ‫‪١‬‬

‫دﻧﺒﺎﻟﻪی ‪ (st )t≥۰‬ﻣﺘﻨﺎوب ﻧﺎﻣﯿﺪه ﻣ ﺷﻮد اﮔﺮ ﻋﺪ ﺻﺤﯿﺤ ﭼﻮن ‪ T‬ﺑﺎﺷﺪ وﺟﻮد داﺷﺘﻪ ﺑﺎﺷﺪ ﺑﻄﻮریﮐﻪ ﺑﺮای ﻫﺮ ‪ t ≥ ۰‬داﺷﺘﻪ ﺑﺎﺷﯿﻢ‬
‫‪ .st = st+T‬ﮐﻮﭼ ﺘﺮﯾﻦ ﻋﺪد ﺻﺤﯿﺤ ﮐﻪ ﺑﺮای آن راﺑﻄﻪ ﻓﻮق ﺑﺮﻗﺮار ﺑﺎﺷﺪ دورهی ﺗﻨﺎوب دﻧﺒﺎﻟﻪ ﻧﺎﻣﯿﺪه ﻣ ﺷﻮد‪ .‬ﯾ دﻧﺒﺎﻟﻪی ﻣﺘﻨﺎوب ﺑﺎ‬
‫دورهی ﺗﻨﺎوب ‪ T‬را ﺑﺼﻮرت‪:‬‬
‫∞] ‪s۰ , s۱ , · · · , sT −۱ , s۰ , s۱ , · · · = [s۰ , s۱ , · · · , sT −۱‬‬
‫ﻧﻤﺎﯾﺶ ﻣ دﻫﯿﻢ‪.‬‬

‫‪ LF SR‬را ﻏﯿﺮﺗ ﯿﻦ ﮔﻮﯾﯿﻢ‪ ،‬ﻫﺮﮔﺎه در ﭼﻨﺪﺟﻤﻠﻪای ﻣﺸﺨﺼﻪ ‪ cL‬ﻏﯿﺮ ﺻﻔﺮ ﺑﺎﺷﺪ‪.‬‬ ‫ﺗﻌﺮﯾﻒ ‪ ١١‬ﯾ‬

‫ﯾ ‪ LF SR‬ﺑﺎ ﻃﻮل ‪ L‬روی ‪ Fq‬دارای ‪ q L‬ﺣﺎﻟﺖ ﻣﺨﺘﻠﻒ اﺳﺖ ﮐﻪ ﺣﺎﻟﺖ ﺗﻤﺎم ﺻﻔﺮ ﻫﻤﻮاره ﺑﻪ ﺧﻮدش اﻧﺘﻘﺎل ﻣ ﯾﺎﺑﺪ‪ .‬دﻧﺒﺎﻟﻪ ﺧﺮوﺟ ﻫﺮ‬
‫‪ LF SR‬ﻏﯿﺮﺗ ﯿﻦ ﺑﺎ ﻃﻮل ‪ L‬روی ‪ Fq‬ﻣﺘﻨﺎوب اﺳﺖ و دورهی ﺗﻨﺎوب آن ﺣﺪاﮐﺜﺮ ‪ q L − ۱‬اﺳﺖ‪ ،‬ﯾﻌﻨ ﺑﻌﺪ از ﺣﺪاﮐﺜﺮ ‪ q L − ۱‬ﺑﺎر اﺟﺮای‬
‫‪ LF SR‬ﺑﻪ ﺣﺎﻟﺖ اوﻟﯿﻪ ﻣ رﺳﯿﻢ‪.‬‬

‫ﺗﻌﺮﯾﻒ ‪ ١٢‬دورهی ﺗﻨﺎوب ﭼﻨﺪﺟﻤﻠﻪای )‪ C(X‬ﺑﺮاﺑﺮ ﮐﻮﭼ ﺘﺮﯾﻦ ﻋﺪد ﺻﺤﯿﺢ و ﻣﺜﺒﺖ ‪ T‬اﺳﺖ ﮐﻪ ) ‪.C(X) | (۱ − X T‬‬

‫ﺑﺮای ﻫﺮ ﭼﻨﺪﺟﻤﻠﻪای ﻏﯿﺮﺗ ﯿﻦ ]‪ C(X) ∈ Fq [X‬ﺑﺎ درﺟﻪ ‪ L‬ﻫﻤﻮاره دارﯾﻢ دارﯾﻢ ) ‪C(X) | (۱ − X q −۱‬؛ ﻟﺬا ‪.T ≤ q L − ۱‬‬
‫‪L‬‬

‫ﯾ روش ﺑﺮای ﺑﺪﺳﺖ آوردن دورهی ﺗﻨﺎوب ﭼﻨﺪﺟﻤﻠﻪای )‪ C(X‬اﺳﺘﻔﺎده از روش ﺗﻘﺴﯿﻢ ﻃﻮﻻﻧ اﺳﺖ‪ .‬ﺑﻪ اﯾﻦ ﺻﻮرت ﮐﻪ ﭼﻨﺪﺟﻤﻠﻪای ‪ ۱‬را‬
‫‪۱‬‬ ‫‪XN‬‬
‫‪ ،‬در اﯾﻦ‬ ‫‪= Q(X) +‬‬ ‫ﺑﻪ ﭼﻨﺪﺟﻤﻠﻪای )‪ C(X‬ﺗﺎ زﻣﺎﻧ ﮐﻪ ﺑﺎﻗﯿﻤﺎﻧﺪه ﺑﺮاﺑﺮ ‪ X N‬ﺷﻮد‪ ،‬ﺗﻘﺴﯿﻢ ﻣ ﮐﻨﯿﻢ )در ﻣﯿﺪان ‪ (Fq‬؛ ﯾﻌﻨ‬
‫)‪C(X‬‬ ‫)‪C(X‬‬
‫ﺻﻮرت دورهی ﺗﻨﺎوب ﭼﻨﺪﺟﻤﻠﻪای )‪ C(X‬ﺑﺮاﺑﺮ ‪ T = N‬اﺳﺖ‪ .‬اﻟﺒﺘﻪ اﻟ ﻮرﯾﺘﻢﻫﺎی ﮐﺎراﺗﺮی ﻧﯿﺰ ﺑﺮای ﻣﺤﺎﺳﺒﻪ دوره ﺗﻨﺎوب ﭼﻨﺪﺟﻤﻠﻪایﻫﺎ‬
‫وﺟﻮد دارد‪.‬‬

‫ﻫﻔﺘﻢ‪۴-‬‬
‫ﺗﻌﺮﯾﻒ ‪ ١٣‬ﭼﻨﺪﺟﻤﻠﻪای ]‪ P (X) ∈ Fq [X‬ﺗﺤﻮﯾﻞﻧﺎﭘﺬﯾﺮ ﻧﺎﻣﯿﺪه ﻣ ﺷﻮد اﮔﺮ ﻧﺘﻮان آﻧﺮا روی ]‪ Fq [X‬ﺑﻪ ﺻﻮرت ﺣﺎﺻﻞﺿﺮب دو ﭼﻨﺪﺟﻤﻠﻪای‬
‫ﺑﺎ درﺟﻪ ﮐﻤﺘﺮ ﻧﻮﺷﺖ‪ .‬ﭼﻨﺪﺟﻤﻠﻪای ﺗﺤﻮﯾﻞﻧﺎﭘﺬﯾﺮ ]‪ P (X) ∈ Fq [X‬از درﺟﻪی ‪ L‬را اوﻟﯿﻪ ‪ ۵‬ﮔﻮﯾﯿﻢ‪ ،‬ﻫﺮﮔﺎه دورهی ﺗﻨﺎوب آن ﺑﺮاﺑﺮ ‪q L − ۱‬‬
‫ﺑﺎﺷﺪ‪.‬‬
‫ﻗﻀﯿﻪ ‪ ١‬اﮔﺮ ‪ (st )t≥۰‬دﻧﺒﺎﻟﻪی ﺗﻮﻟﯿﺪ ﺷﺪه ﺑﻮﺳﯿﻠﻪی ﯾ ‪ LF SR‬ﺑﻪ ﻃﻮل ‪ L‬ﺑﺎ ﭼﻨﺪﺟﻤﻠﻪای ﺑﺎزﺧﻮرد ﺗﺤﻮﯾﻞﻧﺎﭘﺬﯾﺮ ]‪ C(X) ∈ Fq [X‬از ﯾ‬
‫ﺣﺎﻟﺖ اوﻟﯿﻪ ﺗﻤﺎم ﻧﺎﺻﻔﺮ ﺑﺎﺷﺪ‪ ،‬آﻧ ﺎه دوره ﺗﻨﺎوب دﻧﺒﺎﻟﻪ ‪ (st )t≥۰‬ﺑﺎ دوره ﺗﻨﺎوب ﭼﻨﺪﺟﻤﻠﻪای )‪ C(X‬ﺑﺮاﺑﺮ اﺳﺖ‪.‬‬
‫ﺑﺮﻫﺎن‪ .‬ﺑﺮای اﺛﺒﺎت اﯾﻦ ﻗﻀﯿﻪ اﺑﺘﺪا دو ﻟﻢ زﯾﺮ را ﻣﻄﺮح و اﺛﺒﺎت ﻣ ﮐﻨﯿﻢ‪.‬‬

‫ﻟﻢ ‪ ٢‬دﻧﺒﺎﻟﻪی ‪ (st )t≥۰‬ﺗﻮﻟﯿﺪ ﺷﺪه ﺑﻮﺳﯿﻠﻪی ﯾ ‪ LF SR‬ﺑﻪ ﻃﻮل ‪ L‬روی ﻣﯿﺪان ‪ Fq‬ﺑﺎ ﭼﻨﺪﺟﻤﻠﻪای ﺑﺎزﺧﻮرد )‪ C(X‬اﺳﺖ اﮔﺮ و ﺗﻨﻬﺎ اﮔﺮ‬
‫وﺟﻮد داﺷﺘﻪ ﺑﺎﺷﺪ ﭼﻨﺪﺟﻤﻠﻪای ]‪ Q(X) ∈ Fq [X‬ﺑﺎ ‪ deg Q < L‬ﺑﻄﻮری ﮐﻪ‬
‫∑‬ ‫)‪Q(X‬‬
‫= ‪st X t‬‬ ‫‪.‬‬
‫)‪C(X‬‬
‫‪t≥۰‬‬

‫ﻋﻼوه ﺑﺮ اﯾﻦ ﭼﻨﺪﺟﻤﻠﻪای ‪ Q‬ﮐﺎﻣﻼ ﺑﻮﺳﯿﻠﻪی ﺿﺮاﯾﺐ ‪ C‬و ﺣﺎﻟﺖ اوﻟﯿﻪی ‪ LF SR‬ﺑﺼﻮرت زﯾﺮ ﻣﺸﺨﺺ ﻣ ﺷﻮد‪:‬‬
‫∑‬
‫‪L−۱‬‬ ‫∑(‬ ‫‪j‬‬ ‫)‬
‫‪Q(X) = −‬‬ ‫‪Xj‬‬ ‫‪ci sj−i ,‬‬
‫‪j=۰‬‬ ‫‪i=۰‬‬

‫∑‬
‫‪L‬‬
‫‪.C(X) = ۱ −‬‬ ‫ﺟﺎﺋﯿ ﻪ ‪ci X i‬‬
‫‪i=۱‬‬

‫ﺑﺮﻫﺎن‪ .‬ﻗﺮار دﻫﯿﺪ‬


‫∞‬
‫∑‬
‫= · · · ‪S(X) = s۰ + s۱ X +‬‬ ‫‪sk X k .‬‬
‫‪k=۰‬‬

‫∑‬
‫‪L‬‬
‫‪ C(X) = −‬ﮐﻪ ‪ c۰ = −۱‬دراﯾﻦ ﺻﻮرت دارﯾﻢ‪:‬‬ ‫و ‪ci X i‬‬
‫‪i=۰‬‬
‫∞‬
‫∑‬ ‫∑‬
‫‪L‬‬ ‫∑ ∞‬
‫∑‬ ‫‪L‬‬
‫‪S(X)C(X) = −‬‬ ‫‪sk X k‬‬ ‫‪ci X i = −‬‬ ‫‪sk ci X k+i‬‬
‫‪k=۰‬‬ ‫‪i=۰‬‬ ‫‪k=۰ i=۰‬‬

‫اﮔﺮ ﻗﺮار دﻫﯿﻢ ‪ j ← k + i‬دارﯾﻢ‪:‬‬


‫}‪∞ ( min{j,L‬‬
‫∑‬ ‫∑‬ ‫)‬
‫‪S(X)C(X) = −‬‬ ‫‪ci sj−i X j‬‬
‫‪j=۰‬‬ ‫‪i=۰‬‬

‫∑‬
‫‪L‬‬
‫‪ .‬ﺑﻨﺎﺑﺮاﯾﻦ‪:‬‬ ‫اﻣﺎ ﺑﺮای ‪ j ≥ L‬دارﯾﻢ ‪ci sj−i = ۰‬‬
‫‪i=۰‬‬

‫∑( ∑‬
‫‪L−۱‬‬ ‫‪j‬‬ ‫)‬
‫‪S(X)C(X) = −‬‬ ‫)‪ci sj−i X j = Q(X‬‬
‫‪j=۰‬‬ ‫‪i=۰‬‬

‫∑‬
‫‪j‬‬
‫‪.qj = −‬‬ ‫ﺟﺎﺋﯿ ﻪ ‪ Q(X) = q۰ + q۱ X + · · · + qL−۱ X L−۱‬و ‪ci sj−i‬‬
‫‪i=۰‬‬
‫)‪Q(X‬‬
‫= )‪ S(X‬ﮐﻪ )‪.deg(Q) < deg(C‬‬ ‫ﺑﻨﺎﺑﺮاﯾﻦ ﻫﺮ دﻧﺒﺎﻟﻪ ‪ LF SR‬ﺗﺒﺪﯾﻞ ﻣ ﺷﻮد ﺑﻪ‬
‫)‪C(X‬‬

‫‪۵ Primitive‬‬

‫ﻫﻔﺘﻢ‪۵-‬‬
‫ﻟﻢ ‪ ٣‬اﮔﺮ ‪ gcd(C, Q) = ۱‬و )‪ ،deg(Q) < deg(C‬آﻧ ﺎه دوره ﺗﻨﺎوب ﭼﻨﺪﺟﻤﻠﻪای )‪ C(X‬ﺑﺎ دوره ﺗﻨﺎوب دﻧﺒﺎﻟﻪی ‪ s‬ﺑﺎ ﺗﺎﺑﻊ ﻣﻮﻟﺪ‬
‫)‪Q(X‬‬
‫= )‪ S(X‬ﯾ ﺴﺎن اﺳﺖ‪.‬‬
‫)‪C(X‬‬
‫ﺑﺮﻫﺎن‪ .‬ﻓﺮض ﮐﻨﯿﺪ دورهی ﺗﻨﺎوب )‪ C(X‬ﺑﺮاﺑﺮ ‪ T ′‬و دورهی ﺗﻨﺎوب دﻧﺒﺎﻟﻪی ‪ s‬ﺑﺮاﺑﺮ ‪ T‬ﺑﺎﺷﺪ‪.‬‬
‫ﺑﺎ ﺗﻮﺟﻪ ﺗﻨﺎﻇﺮﻫﺎی زﯾﺮ ﺑﯿﻦ ﺗﻮاﺑﻊ ﻣﻮﻟﺪ و دﻧﺒﺎﻟﻪﻫﺎ‬

‫∞‬ ‫‪۱‬‬
‫]‪[۱, ۰, ۰, ۰, · · · , ۰‬‬ ‫= · · · ‪−→ ۱ + X T + X ۲T +‬‬ ‫‪,‬‬
‫|‬ ‫‪{z‬‬ ‫}‬ ‫‪۱ − XT‬‬
‫‪T positions‬‬

‫∞‬ ‫‪X‬‬
‫]‪[۰, ۱, ۰, ۰, · · · , ۰‬‬ ‫= · · · ‪−→ X + X T +۱ + X ۲T +۱ +‬‬ ‫‪,‬‬
‫|‬ ‫‪{z‬‬ ‫}‬ ‫‪۱ − XT‬‬
‫‪T positions‬‬

‫∞‬ ‫‪X۲‬‬
‫]‪[۰, ۰, ۱, ۰, · · · , ۰‬‬ ‫= · · · ‪−→ X ۲ + X T +۲ + X ۲T +۲ +‬‬ ‫‪,‬‬
‫|‬ ‫‪{z‬‬ ‫}‬ ‫‪۱ − XT‬‬
‫‪T positions‬‬

‫‪s۰ + s۱ X + · · · + sT −۱ X T −۱‬‬
‫= )‪S(X‬‬ ‫ﻣ ﺗﻮان ﻧﺘﯿﺠﻪ ﮔﺮﻓﺖ ﮐﻪ ﺗﺎﺑﻊ ﻣﻮﻟﺪ دﻧﺒﺎﻟﻪی ﻣﺘﻨﺎوب ∞] ‪ s = [s۰ , s۱ , · · · , sT −۱‬ﺗﺎﺑﻊ‬
‫‪۱ − XT‬‬
‫اﺳﺖ‪ .‬ﺑﻨﺎﺑﺮاﯾﻦ‬
‫)‪Q(X‬‬ ‫‪s۰ + s۱ X + · · · + sT −۱ X T −۱‬‬
‫= )‪S(X‬‬ ‫=‬
‫)‪C(X‬‬ ‫‪۱ − XT‬‬
‫ﮐﻪ ﺑﻪ اﯾﻦ ﺻﻮرت ﻣ ﺗﻮان ﻧﻮﺷﺖ‪:‬‬
‫)‪(s۰ + s۱ X + · · · + sT −۱ X T −۱ )C(X) = (۱ − X T )Q(X‬‬
‫اﻣﺎ ‪ gcd(C, Q) = ۱‬ﭘﺲ ‪ C(X) | ۱ − X T‬و از آﻧﺠﺎ ﮐﻪ ‪ T ′‬دوره ﺗﻨﺎوب ‪ C‬اﺳﺖ‪ ،‬ﭘﺲ ‪.T ′ ≤ T‬‬
‫‪′‬‬ ‫‪′‬‬
‫ﺣﺎل ﻧﺸﺎن ﻣ دﻫﯿﻢ ‪ .T ≤ T ′‬ﭼﻮن ‪ C(X) | ۱ − X T‬ﭘﺲ ﻣﻮﺟﻮد اﺳﺖ ]‪ P (X) ∈ Fq [X‬ﮐﻪ ‪ .C(X)P (X) = ۱ − X T‬دﻗﺖ‬
‫ﮐﻨﯿﺪ ﮐﻪ ﭼﻮن )‪ deg(Q) < deg(C‬ﻟﺬا ‪ .deg(QP ) < deg(CP ) = T ′‬ﭘﺲ وﺟﻮد دارد ﯾ ) ‪ (s′۰ , s′۱ , · · · , s′T ′ −۱‬ﮐﻪ‬
‫‪′‬‬
‫‪Q(X)P (X) = s′۰ + s′۱ X + · · · + s′T ′ −۱ X T‬‬ ‫‪−۱‬‬
‫‪.‬‬

‫ﺑﻨﺎﺑﺮاﯾﻦ‬
‫‪′‬‬
‫)‪Q(X‬‬ ‫)‪Q(X)P (X‬‬ ‫‪s′۰‬‬ ‫‪+‬‬ ‫‪s′۱ X‬‬ ‫‪+ · · · + s′T ′ −۱ X T −۱‬‬
‫= )‪S(X‬‬ ‫=‬ ‫=‬ ‫‪.‬‬
‫)‪C(X‬‬ ‫)‪C(X)P (X‬‬ ‫‪۱ − XT ′‬‬
‫ﺑﻨﺎﺑﺮاﯾﻦ‬
‫‪s = [s′۰ , s′۱ , · · · , s′T ′ −۱ ]∞ = [s۰ , s۱ , · · · , sT −۱ ]∞ .‬‬
‫ﮐﻪ ﻧﺘﯿﺠﻪ ﻣ دﻫﺪ ‪ .st = st+T ′‬ﭼﻮن دورهی ﺗﻨﺎوب دﻧﺒﺎﻟﻪ ‪ s‬ﮐﻮﭼ ﺘﺮﯾﻦ ﻋﺪد ﺻﺤﯿﺢ و ﻣﺜﺒﺖ ‪ N‬اﺳﺖ ﮐﻪ ‪ st = st+N‬ﺑﺮای ﻫﻤﻪ ﻣﻘﺎدﯾﺮ‬
‫‪ ،t ≥ ۰‬ﭘﺲ ‪.T ≤ T ′‬‬

‫ﻧﺘﯿﺠﻪ ‪ ١۴‬اﮔﺮ ‪ (st )t≥۰‬دﻧﺒﺎﻟﻪی ﺗﻮﻟﯿﺪ ﺷﺪه ﺑﻮﺳﯿﻠﻪی ﯾ ‪ LF SR‬ﺑﻪ ﻃﻮل ‪ L‬ﺑﺎ ﭼﻨﺪﺟﻤﻠﻪای ﺑﺎزﺧﻮرد ﺗﺤﻮﯾﻞﻧﺎﭘﺬﯾﺮ ]‪ C(X) ∈ Fq [X‬از‬
‫ﯾ ﺣﺎﻟﺖ اوﻟﯿﻪ ﺗﻤﺎم ﻧﺎﺻﻔﺮ ﺑﺎﺷﺪ‪ ،‬آﻧ ﺎه اﯾﻦ دﻧﺒﺎﻟﻪ ﺗﻮﺳﻂ ﻫﯿﭻ ‪LF SR‬ی ﺑﺎ ﻃﻮل ﮐﻤﺘﺮ از ‪ L‬ﺗﻮﻟﯿﺪ ﻧﻤ ﺷﻮد‪.‬‬

‫‪ LF SR‬ﺑﻪ ﻃﻮل ‪ L‬ﺑﺎ‬ ‫ﺑﺮﻫﺎن‪ .‬ﻧﺘﯿﺠﻪای ﮐﻪ از ﻟﻢ اول ﻣ ﺗﻮان ﮔﺮﻓﺖ اﯾﻦ اﺳﺖ ﮐﻪ ارﺗﺒﺎﻃ ﯾ ﺑﻪ ﯾ ﺑﯿﻦ دﻧﺒﺎﻟﻪﻫﺎی ﺗﻮﻟﯿﺪ ﺷﺪه ﺗﻮﺳﻂ ﯾ‬
‫ﭼﻨﺪﺟﻤﻠﻪای ﺑﺎزﺧﻮرد ‪ C‬و ﮐﺴﺮﻫﺎی )‪ Q(X)/C(X‬ﮐﻪ ‪ deg Q < L‬ﻣﻮﺟﻮد اﺳﺖ‪.‬‬
‫ﻫﻤﭽﻨﯿﻦ ﻣ ﺗﻮان ﻧﺘﯿﺠﻪ ﮔﺮﻓﺖ ﮐﻪ دﻧﺒﺎﻟﻪی ﺗﻮﻟﯿﺪ ﺷﺪه ﺑﻮﺳﯿﻠﻪی ﯾ ‪ LF SR‬ﺑﺎ ﭼﻨﺪﺟﻤﻠﻪای ﺑﺎزﺧﻮرد ‪) C‬و ﻃﻮل )‪ (deg(C‬ﺑﺎ ﺗﺎﺑﻊ ﻣﻮﻟﺪ‬
‫)‪ Q(X)/C(X‬اﮔﺮ ‪ gcd(C, Q) ̸= ۱‬ﺑﺎﺷﺪ‪ ،‬ﻧﯿﺰ ﺑﻮﺳﯿﻠﻪی ﯾ ‪ LF SR‬ﺑﺎ ﭼﻨﺪﺟﻤﻠﻪای ﺑﺎزﺧﻮرد ‪) C ′‬و ﻃﻮل )‪(deg(C ′ ) < deg(C‬‬
‫ﻣﺘﻨﺎﻇﺮ ﺑﺎ ﮐﺴﺮ )‪ Q′ (X)/C ′ (X) = Q(X)/C(X‬ﻧﯿﺰ ﺗﻮﻟﯿﺪ ﻣ ﺷﻮد‪ .‬ﺑﻨﺎﺑﺮاﯾﻦ ﻫﻤﻪی دﻧﺒﺎﻟﻪﻫﺎی ﺗﻮﻟﯿﺪﺷﺪه ﺗﻮﺳﻂ ﯾ ‪ LF SR‬ﺑﺎ‬
‫ﭼﻨﺪﺟﻤﻠﻪای ﺑﺎزﺧﻮرد ‪ C‬ﺑﻮﺳﯿﻠﻪی ‪ LF SR‬ﮐﻮﭼ ﺘﺮی ﺗﻮﻟﯿﺪ ﻣ ﺷﻮﻧﺪ اﮔﺮ و ﺗﻨﻬﺎ اﮔﺮ ‪ C‬در ﻣﯿﺪان ‪ Fq‬ﺗﺤﻮﯾﻞﻧﺎﭘﺬﯾﺮ ﻧﺒﺎﺷﺪ‪.‬‬

‫ﻫﻔﺘﻢ‪۶-‬‬
‫ﻧﺘﯿﺠﻪ ‪ ١۵‬دﻧﺒﺎﻟﻪ ﺧﺮوﺟ ﻫﺮ ‪ LF SR‬ﺑﺎ ﻃﻮل ‪ L‬و ﭼﻨﺪﺟﻤﻠﻪای ﺑﺎزﺧﻮرد اوﻟﯿﻪ روی ‪ Fq‬از ﻫﺮ ﺣﺎﻟﺖ اوﻟﯿﻪ ﺗﻤﺎم ﻧﺎﺻﻔﺮ دارای دورهی ﺗﻨﺎوب‬
‫‪ q L − ۱‬اﺳﺖ‪ .‬ﺑﻪﻋﻼوه‪ ،‬ﺗﻤﺎم ﺣﺎﻟﺖﻫﺎی ﺗﻤﺎم ﻧﺎﺻﻔﺮ در ﻫﺮ دوره دﻗﯿﻘﺎً ﯾ ﺑﺎر ﻇﺎﻫﺮ ﻣ ﺷﻮﻧﺪ‪.‬‬

‫)‪Q(X‬‬
‫‪ LF SR‬ﺑﺎ ﭼﻨﺪﺟﻤﻠﻪای ﺑﺎزﺧﻮرد ‪ ،C‬ﺑﻮﺳﯿﻠﻪی‬ ‫= )‪ S(X‬ﻧﺘﯿﺠﻪ ﻣ ﺷﻮد ﮐﻪ ﻫﺮ دﻧﺒﺎﻟﻪی ﺗﻮﻟﯿﺪ ﺷﺪه ﺗﻮﺳﻂ ﯾ‬ ‫ﻧﺘﯿﺠﻪ ‪ ١۶‬از راﺑﻄﻪ‬
‫)‪C(X‬‬
‫ﻫﺮ ‪LF SR‬ی ﮐﻪ ﭼﻨﺪﺟﻤﻠﻪای ﺑﺎزﺧﻮرد آن ﻣﻀﺮﺑ از ‪ C‬ﺑﺎﺷﺪ‪ ،‬ﻧﯿﺰ ﺗﻮﻟﯿﺪ ﻣ ﺷﻮد‪ .‬اﯾﻦ وﯾﮋﮔ در ﺑﻌﻀ از ﺣﻤﻠﻪﻫﺎﯾ ﮐﻪ ﺑﻪ رﻣﺰﻫﺎی دﻧﺒﺎﻟﻪای‬
‫ﻣﺒﺘﻨ ﺑﺮ ‪ LF SR‬اﻋﻤﺎل ﻣ ﺷﻮﻧﺪ‪ ،‬ﻣﺎﻧﻨﺪ ﺣﻤﻠﻪ ﻫﻤﺒﺴﺘ ‪ ۶‬و ﺣﻤﻠﻪ ﻫﻤﺒﺴﺘ ﺳﺮﯾﻊ ‪ ،٧‬ﻣﻮرد اﺳﺘﻔﺎده ﻗﺮار ﻣ ﮔﯿﺮد‪.‬‬

‫‪۶ correlation‬‬ ‫‪attack‬‬


‫‪٧ fast‬‬ ‫‪correlation attack‬‬

‫ﻫﻔﺘﻢ‪٧-‬‬
‫ﺑﻪ ﻧﺎم ﺧﺪا‬

‫داﻧﺸ ﺪهی ﻋﻠﻮم رﯾﺎﺿ‬

‫‪ ١٣‬اﺳﻔﻨﺪ ‪١٣٩١‬‬ ‫ﻣﻘﺪﻣﻪای ﺑﺮ رﻣﺰﻧ ﺎری‬

‫ﺟﻠﺴﻪی ﻫﺸﺘﻢ‪ :‬وﯾﮋﮔ ﺧﻄ ‪LFSR‬و رﻣﺰﻫﺎی دﻧﺒﺎﻟﻪای ﮐﻼﺳﯿ‬


‫ﻧ ﺎرﻧﺪه‪ :‬ﺳﻮزان اﺻﻐﺮی‬ ‫ﻣﺪرس‪ :‬دﮐﺘﺮ ﺷﻬﺮام ﺧﺰاﺋ‬

‫‪ ١‬ﯾﺎدآوری‬
‫ﺗﻌﺮﯾﻒ ‪) ١‬ﻣﺮﺗﺒﻪی ﭼﻨﺪﺟﻤﻠﻪای( ﺑﺮای ﭼﻨﺪﺟﻤﻠﻪای )‪ P (x‬ﮐﻪ‪ ،P (۰) ̸= ۰ ،‬ﮐﻮﭼ ﺘﺮﯾﻦ ﻋﺪد ﺻﺤﯿﺢ ‪ e‬ﮐﻪ ﭼﻨﺪﺟﻤﻠﻪای‬
‫)‪ xe + ۱ ،P (x‬را ﻋﺎد ﮐﻨﺪ‪ ،‬ﻣﺮﺗﺒﻪی )‪ P (x‬اﺳﺖ‪.‬‬

‫ﺗﻌﺮﯾﻒ ‪) ٢‬ﭼﻨﺪﺟﻤﻠﻪای اوﻟﯿﻪ( ﭼﻨﺪﺟﻤﻠﻪای ﺑﺎ درﺟﻪ ‪) n‬روی ﻣﯿﺪان ﻣﺘﻨﺎﻫ )‪ (GF (۲‬ﭼﻨﺪﺟﻤﻠﻪای اوﻟﯿﻪ اﺳﺖ‪ ،‬ﻫﺮﮔﺎه‬
‫ﻣﺮﺗﺒﻪی آن ‪ ۲n − ۱‬ﺑﺎﺷﺪ‪.‬‬

‫ﻣﺜﺎل ‪ ٣‬ﭼﻨﺪﺟﻤﻠﻪای ‪ ۱ + x + x۴‬اوﻟﯿﻪ اﺳﺖ‪ ،‬زﯾﺮا اﮔﺮ ﻣﺘﻮاﻟﯿﺎ ‪ ١‬را ﺑﺮ ‪ ۱ + x + x۴‬ﺗﻘﺴﯿﻢ ﮐﻨﯿﻢ‪ ،‬اوﻟﯿﻦ ﺑﺎری ﮐﻪ‬
‫ﺑﺎﻗﯿﻤﺎﻧﺪه ﺑﻪﺻﻮرت ‪ xe‬ﺑﺎﺷﺪ‪ ،‬ﺑﺮای ‪ e = ۱۵‬اﺗﻔﺎق ﻣ اﻓﺘﺪ‪.‬‬
‫‪۱.‬‬ ‫‪۱ + x + x۴‬‬
‫‪۱ + x + x۴‬‬
‫‪۱ + x + x۲ + x۳ + x۵ + x۷ + x۱۱ + x۸‬‬
‫‪x + x۴‬‬
‫‪− x + x۲ + x۵‬‬
‫‪x۲ + x۴ +. x۵‬‬
‫‪.‬‬
‫‪.‬‬
‫‪x۱۵‬‬
‫ﭼﻨﺪﺟﻤﻠﻪای وﺟﻮد دارد‪.‬‬ ‫اﻟﺒﺘﻪ اﻟ ﻮرﯾﺘﻢﻫﺎی ﺳﺮﯾﻊﺗﺮی ﺑﺮای آزﻣﻮدن اوﻟﯿﻪ ﺑﻮدن ﯾ‬

‫ﻫﻤﺎنﻃﻮر ﮐﻪ در ﺟﻠﺴﻪ ﭘﯿﺶ دﯾﺪﯾﻢ‪ ،‬دﻧﺒﺎﻟﻪ ﺧﺮوﺟ ‪LFSR‬ﻫﺎ‪ ،‬ﻣﺸﺮوط ﺑﺮ اﯾﻨ ﻪ ﭼﻨﺪﺟﻤﻠﻪای ﺑﺎزﺧﻮرد آﻧﻬﺎ اوﻟﯿﻪ اﻧﺘﺨﺎب‬
‫ﺷﻮد‪ ،‬دارای دوره ﺗﻨﺎوب ﺑﺎﻻ وﯾﮋﮔ ﻫﺎی آﻣﺎری ﺧﻮﺑ اﺳﺖ‪ .‬اﻣﺎ ﺑﻪ ﺧﺎﻃﺮ وﯾﮋﮔ ﺧﻄ ﺑﻮدن ‪LFSR‬ﻫﺎ‪ ،‬ﻧﺒﺎﯾﺪ آﻧﻬﺎ را‬
‫ﻣﺴﺘﻘﯿﻤﺎ ﺑﻪ ﻋﻨﻮان ﯾ ﻣﻮﻟﺪ ﺷﺒﻪﺗﺼﺎدﻓ ﻣﻮرد اﺳﺘﻔﺎده ﻗﺮار داد‪.‬‬

‫ﻟﻢ ‪ ١‬ﺑﺮای ﻫﺮ ‪LFSR‬ﺑﻪ ﻃﻮل ‪ L‬و ﺑﺎ ﺣﺎﻟﺖ اوﻟﯿﻪ ) ‪ ،(s۰ , s۱ , ..., sL−۱‬ﺑﻪ ازای ‪ ،t ≥ ۰‬ﺿﺮاﯾﺐ ‪at۰ , at۱ , ..., atL−۱‬‬
‫وﺟﻮد دارﻧﺪ‪ ،‬ﺑﻪ ﻃﻮری ﮐﻪ‪:‬‬

‫∑‬
‫‪L−۱‬‬
‫= ‪st‬‬ ‫‪ati si .‬‬
‫‪i=۰‬‬

‫ﻫﺸﺘﻢ‪١-‬‬
‫∑‬
‫ﺑﺮﻫﺎن‪ .‬ﻓﺮض ﮐﻨﯿﺪ ‪ C(x) = ۱ − Li=۱ ci X i‬ﭼﻨﺪﺟﻤﻠﻪای ﺑﺎزﺧﻮرد ‪LFSR‬و ) ‪ S۰ = (s۰ , s۱ , ..., sL−۱‬ﺑﺮدار‬
‫ﺣﺎﻟﺖ اوﻟﯿﻪ آن ﺑﺎﺷﺪ‪ .‬ﻣﺎﺗﺮﯾﺲ اﻧﺘﻘﺎل ﺣﺎﻟﺖ ‪LFSR‬را ﺑﻪﺻﻮرت زﯾﺮ ﺗﻌﺮﯾﻒ ﻣ ﮐﻨﯿﻢ‪:‬‬
‫‪‬‬ ‫‪‬‬
‫‪۰ ۰ ۰ ··· ۰‬‬ ‫‪cL‬‬
‫‪۱ ۰ ۰ · · · ۰ cL−۱ ‬‬
‫‪‬‬ ‫‪‬‬
‫‪۰ ۱ ۰ · · · ۰ cL−۲ ‬‬
‫‪C=‬‬ ‫‪ .‬‬
‫‪ .. .. ..‬‬ ‫‪‬‬
‫··· ··· ‪. . .‬‬ ‫‪‬‬
‫‪۰ ۰ ۰ ··· ۱‬‬ ‫‪c۱‬‬
‫اﮔﺮ ﺑﺮدار ﺣﺎﻟﺖ ‪LFSR‬را در زﻣﺎن ‪ t ≥ ۰‬ﺑﺎ ) ‪ St = (st , st+۱ , ..., st+L−۱‬ﻧﺸﺎن دﻫﯿﻢ‪ ،‬دارﯾﻢ ‪ St+۱ = St C‬و‬
‫ﻟﺬا ﺑﺮای ﺑﯿﺖ ‪t‬ام دﻧﺒﺎﻟﻪ ﺧﺮوﺟ ‪ ،st ،‬دارﯾﻢ‪:‬‬
‫‪ ‬‬
‫‪۱‬‬
‫‪۰‬‬
‫‪ ‬‬
‫‪st = S۰ C t  ..  .‬‬
‫‪.‬‬
‫‪۰‬‬
‫ﻟﺬا ﺿﺮاﯾﺐ ‪ at۰ , at۱ , ..., atL−۱‬از راﺑﻄﻪ زﯾﺮ ﻣﺤﺎﺳﺒﻪ ﻣ ﺷﻮﻧﺪ‪:‬‬
‫‪ t ‬‬ ‫‪ ‬‬
‫‪a۰‬‬ ‫‪۱‬‬
‫‪ at ‬‬ ‫‪۰‬‬
‫‪ ۱ ‬‬ ‫‪ ‬‬
‫‪ ..  = C t  ..  .‬‬
‫‪ . ‬‬ ‫‪.‬‬
‫‪t‬‬
‫‪aL−۱‬‬ ‫‪۰‬‬

‫ﻣﺜﺎل ‪ ۴‬ﺑﺮای ‪LFSR‬ﺑﻪ ﻃﻮل ‪ ۴‬و ﺑﺎ ﭼﻨﺪﺟﻤﻠﻪای ﺑﺎزﺧﻮرد ‪ ۱ + x + x۴‬دارﯾﻢ ‪،s۵ = s۲ + s۱ ،s۴ = s۱ + s۰‬‬
‫‪ s۶ = s۲ + s۳‬و ﺑﻪ ﻃﻮر ﮐﻠ‬
‫‪‬‬ ‫‪t  ‬‬
‫‪۰ ۰ ۰ ۰ ۱‬‬ ‫‪۱‬‬
‫‪۱ ۰ ۰ ۰ ۱ ۰‬‬
‫‪st = [s۰ , s۱ , s۲ , s۳ ] ‬‬ ‫‪  ‬‬
‫‪۰ ۱ ۰ ۰ ۰   .‬‬
‫‪۰ ۰ ۰ ۱ ۰‬‬ ‫‪۰‬‬

‫ﻧﺘﯿﺠﻪ ‪ ۵‬اﮔﺮ ‪ L‬ﺑﯿﺖ ‪ st۱ , st۲ , · · · , stL‬از دﻧﺒﺎﻟﻪ ﺧﺮوﺟ ﯾ ‪LFSR‬ﺑﻪ ﻃﻮل ‪ L‬را ﺑﺪاﻧﯿﻢ و ﻣﺎﺗﺮﯾﺲ ﺑﺮدار ﺿﺮاﯾﺐ‬
‫وارونﭘﺬﯾﺮ ﺑﺎﺷﺪ‪،‬ﺣﺎﻟﺖ اوﻟﯿﻪ ‪LFSR‬ﺑﻪ ﺻﻮرت زﯾﺮ ﻗﺎﺑﻞ ﻣﺤﺎﺳﺒﻪ اﺳﺖ‬
‫‪‬‬ ‫‪−۱‬‬
‫‪at۰۱‬‬ ‫‪at۰۲‬‬ ‫···‬ ‫‪at۰L‬‬
‫‪‬‬
‫‪at۱۱‬‬ ‫‪at۱۲‬‬ ‫···‬ ‫‪at۱L‬‬ ‫‪‬‬
‫‪‬‬ ‫‪‬‬
‫‪S۰ = (s۰ , s۱ , · · · , cL−۱ ) = (st۱ , st۲ , · · · , stL ) ‬‬
‫‪..‬‬ ‫‪..‬‬ ‫‪..‬‬ ‫‪‬‬ ‫‪.‬‬
‫‪‬‬
‫‪.‬‬ ‫‪.‬‬ ‫···‬ ‫‪.‬‬ ‫‪‬‬
‫‪atL−۱‬‬
‫‪۱‬‬
‫‪atL−۱‬‬
‫‪۲‬‬
‫···‬ ‫‪atL−۱‬‬
‫‪L‬‬

‫ﻣﺎﺗﺮﯾﺲ ﺗﺼﺎدﻓ روی ‪ F۲‬ﻣﻌ ﻮسﭘﺬﯾﺮ ﺑﺎﺷﺪ ﺣﺪاﻗﻞ ﺑﺮاﺑﺮ ‪i=۱ (۱ − ۲i ) ≈ ۰٫ ۲۸۸‬‬
‫∞‪Π‬‬ ‫ﻧ ﺘﻪ ‪ ١‬اﺣﺘﻤﺎل اﯾﻨ ﻪ ﯾ‬
‫‪۱‬‬

‫اﺳﺖ‪.‬‬

‫ﻫﺸﺘﻢ‪٢-‬‬
‫ﻣﻤ ﻦ اﺳﺖ ﺑﻪﻧﻈﺮ ﺑﺮﺳﺪ ﮐﻪ ﺑﺎ ﻣﺨﻔ ﻧ ﻪ داﺷﺘﻦ ﭼﻨﺪﺟﻤﻠﻪای ﺑﺎزﺧﻮرد ‪LFSR‬ﺑﺘﻮان ﻣﻮﻟﺪ ﻗﻮﯾﺘﺮی ﺳﺎﺧﺖ‪ .‬اﻣﺎ ﺑﺎ‬
‫اﺳﺘﻔﺎده از ﻣﻔﻬﻮم ﭘﯿﭽﯿﺪﮔ ﺧﻄ ‪ ١‬ﮐﻪ در اداﻣﻪ ﻣﻌﺮﻓ ﻣ ﺷﻮد ﻣ ﺗﻮان ﻧﺸﺎن داد ﮐﻪ ﻣﺨﻔ ﻧ ﻪ داﺷﺘﻦ ﭼﻨﺪﺟﻤﻠﻪای‬
‫ﺑﺎزﺧﻮرد ﺳﻄﺢ اﻣﻨﯿﺖ را ﺧﯿﻠ ﺑﺎﻻ ﻧﻤ ﺑﺮد‪.‬‬

‫ﭘﯿﭽﯿﺪﮔ ﺧﻄ‬ ‫‪٢‬‬


‫ﺗﻌﺮﯾﻒ ‪) ۶‬ﭘﯿﭽﯿﺪﮔ ﺧﻄ دﻧﺒﺎﻟﻪ( ﭘﯿﭽﯿﺪﮔ ﺧﻄ دﻧﺒﺎﻟﻪ ) ‪ (s۱ , s۲ , ..., sn‬ﮐﻪ ﺑﺎ ) ‪ Λ(s۱ , s۲ , ..., sn‬ﻧﺸﺎن داده‬
‫ﻣ ﺷﻮد‪ ،‬ﻃﻮل ﮐﻮﭼ ﺘﺮﯾﻦ ‪LFSR‬ی اﺳﺖ ﮐﻪ دﻧﺒﺎﻟﻪ را ﺗﻮﻟﯿﺪ ﻣ ﮐﻨﺪ‪.‬‬

‫ﭘﯿﭽﯿﺪﮔ ﺧﻄ ﯾ دﻧﺒﺎﻟﻪ ﻃﻮل ﮐﻮﭼ ﺘﺮﯾﻦ ‪LFSR‬ی اﺳﺖ ﮐﻪ آﻧﺮا ﺗﻮﻟﯿﺪ ﻣ ﮐﻨﺪ‪ .‬اﮔﺮ دﻧﺒﺎﻟﻪ داده ﺷﺪه‪ ،‬دﻧﺒﺎﻟﻪ ﺧﺮوﺟ‬
‫ﯾ ‪LFSR‬ﺑﻪ ﻃﻮل ‪ L‬ﺑﺎ ﭼﻨﺪﺟﻤﻠﻪای ﺑﺎزﺧﻮرد اوﻟﯿﻪ و از ﯾ ﺣﺎﻟﺖ اوﻟﯿﻪ ﻧﺎﺻﻔﺮ ﺑﺎﺷﺪ‪ ،‬آﻧ ﺎه ﭘﯿﭽﯿﺪﮔ ﺧﻄ آن دﻗﯿﻘﺎ‬
‫‪ L‬ﺧﻮاﻫﺪ ﺑﻮد‪.‬‬
‫ﺑﺎ اﺳﺘﻔﺎده از اﻟ ﻮرﯾﺘﻢ ‪ Berlekamp-Massey‬ﻣ ﺗﻮان ﺣﺎﻟﺖ اوﻟﯿﻪ و ﭼﻨﺪﺟﻤﻠﻪای ﺑﺎزﺧﻮرد ﮐﻮﭼ ﺘﺮﯾﻦ ‪LFSR‬ی‬
‫ﮐﻪ ﯾ رﺷﺘﻪ را ﺗﻮﻟﯿﺪ ﻣ ﮐﻨﺪ ﻣﺤﺎﺳﺒﻪ ﮐﺮد‪.‬‬

‫ﻗﻀﯿﻪ ‪ ٢‬اﮔﺮ ﭘﯿﭽﯿﺪﮔ ﺧﻄ دﻧﺒﺎﻟﻪای ‪ Λ‬ﺑﺎﺷﺪ‪ ،‬ﭼﻨﺪﺟﻤﻠﻪای ﺑﺎزﺧﻮرد و ﺣﺎﻟﺖ اوﻟﯿﻪ ﮐﻮﭼ ﺘﺮﯾﻦ ‪LFSR‬ی ﮐﻪ دﻧﺒﺎﻟﻪ‬
‫را ﺗﻮﻟﯿﺪ ﻣ ﮐﻨﺪ‪ ،‬از روی ﻫﺮ ‪ ۲Λ‬ﺑﯿﺖ ﻣﺘﻮاﻟ ﺑﻪ ﺻﻮرت ﯾ ﺘﺎ و ﺑﺎ ﭘﯿﭽﯿﺪﮔ ) ‪ O(Λ۲‬ﻣﺤﺎﺳﺒﻪ ﻣ ﺷﻮد‪.‬‬

‫رﻣﺰﻫﺎی دﻧﺒﺎﻟﻪای ﻣﺒﺘﻨ ﺑﺮ ‪LFSR‬‬ ‫‪٣‬‬


‫ﺑﺮای از ﺑﯿﻦ ﺑﺮدن وﯾﮋﮔ ﺧﻄ ‪LFSR‬ﻫﺎ ﺑﺎﯾﺪ از ﯾ ﻋﺎﻣﻞ ﻏﯿﺮ ﺧﻄ در ﺗﻮﻟﯿﺪ دﻧﺒﺎﻟﻪ ﺧﺮوﺟ ﻣﻮﻟﺪ )ﮐﻪ دﻧﺒﺎﻟﻪ ﮐﻠﯿﺪ‬
‫اﺟﺮاﯾ ‪ ٢‬ﻧﺎﻣﯿﺪه ﻣ ﺷﻮد( اﺳﺘﻔﺎده ﮐﺮد‪ .‬ﺑﺮای اﯾﻦ ﻣﻨﻈﻮر ﺳﻪ روش ﮐﻠ وﺟﻮد دارد ﮐﻪ در اداﻣﻪ ﻣﻌﺮﻓ ﻣ ﺷﻮﻧﺪ‪.‬‬

‫ﻣﻮﻟﺪﻫﺎی ﺗﺮﮐﯿﺒ‬ ‫‪١.٣‬‬


‫ﻣﻮﻟﺪ ﺗﺮﮐﯿﺒ ‪ ٣‬ﻣﻮﻟﺪی اﺳﺖ ﮐﻪ دﻧﺒﺎﻟﻪی ﮐﻠﯿﺪ اﺟﺮاﯾ آن از ﺗﺮﮐﯿﺐ دﻧﺒﺎﻟﻪﻫﺎی ﺧﺮوﺟ ﭼﻨﺪ ‪LFSR‬ﺑﺎ اﺳﺘﻔﺎده از ﯾ ﺗﺎﺑﻊ‬
‫ﺑﻮﻟ ﻏﯿﺮ ﺧﻄ ‪ f‬ﺑﺪﺳﺖ ﻣ آﯾﺪ‪ .‬اﮔﺮ دﻧﺒﺎﻟﻪﻫﺎی ﺧﺮوﺟ ‪ n‬ﻋﺪد ‪ ،LFSR‬ﮐﻪ ﺑﺎ ‪ uit‬ﻧﺸﺎن داده ﻣ ﺷﻮﻧﺪ‪ ،‬ﺑﺎ اﺳﺘﻔﺎده از‬
‫ﺗﺎﺑﻊ ﺑﻮﻟ ‪-n‬ﻣﺘﻐﯿﺮه ‪ f‬ﺑﺎ ﻫﻢ ﺗﺮﮐﯿﺐ ﺷﻮﻧﺪ‪t ،‬اﻣﯿﻦ ﺑﯿﺖ دﻧﺒﺎﻟﻪ ﮐﻠﯿﺪ اﺟﺮاﯾ ‪ ،zt ،‬از راﺑﻄﻪ زﯾﺮ ﻣﺤﺎﺳﺒﻪ ﻣ ﺷﻮد‪:‬‬

‫) ‪zt = f (u۱t , u۲t , ..., unt‬‬


‫‪١‬‬
‫‪linear complexity‬‬
‫‪٢‬‬
‫‪running-key or keystream‬‬
‫‪٣‬‬
‫‪combination generator‬‬

‫ﻫﺸﺘﻢ‪٣-‬‬
‫‪u۱t‬‬
‫‪LF SR۱‬‬
‫‪.‬‬

‫‪u۲t‬‬
‫‪LF SR۲‬‬ ‫‪f‬‬ ‫‪zt‬‬
‫‪.‬‬
‫‪.‬‬
‫‪.‬‬
‫‪unt‬‬
‫‪LF SRn‬‬

‫ﻣﻮﻟﺪ ﺗﺮﮐﯿﺒ ﮐﻪ دﻧﺒﺎﻟﻪ آن ﺷﺒﻪ ﺗﺼﺎدﻓ ﺑﺎﺷﺪ ﺑﺎﯾﺪ ﻃﻮل ‪LFSR‬ﻫﺎ و ﺗﺎﺑﻊ ﺗﺮﮐﯿﺐﮐﻨﻨﺪه ‪ f‬ﺑﻪ دﻗﺖ‬ ‫ﺑﺮای ﻃﺮاﺣ ﯾ‬
‫اﻧﺘﺨﺎب ﺷﻮﻧﺪ‪.‬‬

‫ﻗﻀﯿﻪ ‪ ٣‬اﮔﺮ ﻃﻮل ﻫﻤﻪی ‪LFSR‬ﻫﺎ ﮐﻪ ﺑﺎ ‪ L۱ , L۲ , .., Ln‬ﻧﻤﺎﯾﺶ ﻣ دﻫﯿﻢ‪ ،‬ﻣﺘﻤﺎﯾﺰ و ﺑﺰرﮔﺘﺮ از ‪ ۲‬ﺑﺎﺷﻨﺪ و ﻧﯿﺰ‬
‫ﺣﺎﻟﺖﻫﺎی اوﻟﯿﻪ ﻧﺎﺻﻔﺮ ﺑﺎﺷﻨﺪ‪ ،‬ﭘﯿﭽﯿﺪﮔ ﺧﻄ دﻧﺒﺎﻟﻪی ﺧﺮوﺟ ﻋﺒﺎرت اﺳﺖ از‪:‬‬

‫) ‪f (L۱ , L۲ , .., Ln‬‬

‫ﻣﻌﯿﺎرﻫﺎی ﻻزم ﺑﺮای اﻧﺘﺨﺎب ﺗﺎﺑﻊ ﺑﻮﻟ ‪:f‬‬

‫• ﻣﺘﻌﺎدل ‪ ۴‬ﺑﺎﺷﺪ‪.‬‬

‫• درﺟﻪی ﺟﺒﺮی ‪ ۵‬ﺑﺎﻻﯾ داﺷﺘﻪ ﺑﺎﺷﺪ‪.‬‬

‫‪ ۶‬ﺑﺎﻻﯾ داﺷﺘﻪ ﺑﺎﺷﺪ‪.‬‬ ‫• ﻣﺮﺗﺒﻪ اﻣﻨﯿﺖ ﻫﻤﺒﺴﺘ‬

‫• ﻣﻘﺪار ﻏﯿﺮ ﺧﻄ ‪ ٧‬ﺑﺎﻻﯾ داﺷﺘﻪ ﺑﺎﺷﺪ‪.‬‬

‫• ﻣﺮﺗﺒﻪ اﻣﻨﯿﺖ ﺟﺒﺮی ‪ ٨‬ﺑﺎﻻﯾ داﺷﺘﻪ ﺑﺎﺷﺪ‪.‬‬

‫ﺑﺎﯾﺪ ﺑﺰرگ ﺑﺎﺷﻨﺪ‪.‬‬ ‫‪ ،٩‬وزنﻫﺎی ﭼﻨﺪﺟﻤﻠﻪایﻫﺎی ﻓﯿﺪﺑ‬ ‫ﻫﻤﭽﻨﯿﻦ ﺟﻬﺖ دﺷﻮارﺗﺮ ﮐﺮدن اﻋﻤﺎل ﺣﻤﻠﻪ ﻫﻤﺒﺴﺘ‬
‫‪۴‬‬
‫‪balanced‬‬
‫‪۵‬‬
‫‪algebraic degree‬‬
‫‪۶‬‬
‫‪correlation-immunity order‬‬
‫‪٧‬‬
‫‪non-linear order‬‬
‫‪٨‬‬
‫‪algebraic-immunity order‬‬
‫‪٩‬‬
‫‪correlation attack‬‬

‫ﻫﺸﺘﻢ‪۴-‬‬
‫ﻣﻮﻟﺪ ﻓﯿﻠﺘﺮ ﻏﯿﺮﺧﻄ‬ ‫‪٢.٣‬‬
‫ﻣﻮﻟﺪ ﻓﯿﻠﺘﺮ ﻏﯿﺮﺧﻄ ‪ ١٠‬ﺑﺠﺎی ﺗﺮﮐﯿﺐ دﻧﺒﺎﻟﻪ ﺧﺮوﺟ ﭼﻨﺪ ‪LFSR‬ﻣﺨﺘﻠﻒ‪ ،‬اﻧﺘﻘﺎل ﯾﺎﻓﺘﻪﻫﺎی دﻧﺒﺎﻟﻪی ﺧﺮوﺟ ﯾ ﻋﺪد‬
‫‪LFSR‬را ﺑﺎ ﻫﻢ ﺗﺮﮐﯿﺐ ﻣ ﮐﻨﺪ‪ .‬ﺑﺮای ﺳﺎدﮔ ﭘﯿﺎدهﺳﺎزی‪ ،‬ﺧﺮوﺟ اﯾﻦ ﻣﻮﻟﺪ از اﻋﻤﺎل ﯾ ﻓﯿﻠﺘﺮ ﻏﯿﺮ ﺧﻄ ‪-n‬ﻣﺘﻐﯿﺮه‬
‫ﺑﺮ ‪ n‬ﺳﻠﻮل از ﺳﻠﻮلﻫﺎی ﯾ ‪LFSR‬ﺑﻪﻃﻮل ‪) L‬ﮐﻪ ‪ (n ≤ L‬ﮐﻪ از ﻣﻮﻗﻌﯿﺖﻫﺎی ‪۰ ≤ γ۱ < γ۲ < γn ≤ L − ۱‬‬
‫ﮔﺮﻓﺘﻪﻣ ﺷﻮﻧﺪ ﺑﻪ دﺳﺖ ﻣ آﯾﺪ‪ .‬دﻗﺖ ﮐﻨﯿﺪ ﮐﻪ دﻧﺒﺎﻟﻪای ﮐﻪ از ﺳﻠﻮل ‪γi‬ام ‪LFSR‬ﮔﺮﻓﺘﻪ ﻣ ﺷﻮد‪ ،‬اﻧﺘﻘﺎلﯾﺎﻓﺘﻪ دﻧﺒﺎﻟﻪ‬
‫ﺧﺮوﺟ ‪LFSR‬ﺑﻪ اﻧﺪازه ‪ γi‬واﺣﺪ زﻣﺎﻧ اﺳﺖ‪ .‬ﺑﻪ ﻋﺒﺎرت دﻗﯿﻖﺗﺮ اﮔﺮ ‪ ut‬دﻧﺒﺎﻟﻪ ﺧﺮوﺟ ‪LFSR‬ﺑﺎﺷﺪ )‪،(t ≥ ۰‬‬
‫‪t‬اﻣﯿﻦ ﺑﯿﺖ دﻧﺒﺎﻟﻪ ﮐﻠﯿﺪ اﺟﺮاﯾ ‪ ،zt ،‬از راﺑﻄﻪ زﯾﺮ ﻣﺤﺎﺳﺒﻪ ﻣ ﺷﻮد‪:‬‬

‫‪zt = f (ut+γ۱ , ut+γ۲ , ..., ut+γn ) .‬‬

‫‪zt‬‬

‫‪f‬‬

‫‪ut+γ۱‬‬ ‫‪ut+γ۲ ut+γ۳‬‬ ‫‪...‬‬ ‫‪ut+γn‬‬


‫‪.‬‬

‫ﺑﺮای اﯾﻨ ﻪ دﻧﺒﺎﻟﻪ ﮐﻠﯿﺪ اﺟﺮاﯾ ﺷﺒﻪ ﺗﺼﺎدﻓ ﺑﺎﺷﺪ‪ ،‬ﭼﻨﺪﺟﻤﻠﻪای ﻓﯿﺪﺑ ‪LFSR‬ﺑﺎﯾﺪ ﭼﻨﺪﺟﻤﻠﻪای اوﻟﯿﻪ ﺑﺎﺷﺪ و ﺗﺎﺑﻊ‬
‫ﻓﯿﻠﺘﺮ ‪ f‬وﯾﮋﮔ ﻫﺎﯾ را ﮐﻪ ﺑﺮای ﻣﻮﻟﺪ ﺗﺮﮐﯿﺒ ﮔﻔﺘﻪ ﺷﺪ داﺷﺘﻪ ﺑﺎﺷﺪ‪ .‬ﻫﻤﭽﻨﯿﻦ وزن ﭼﻨﺪﺟﻤﻠﻪای ﻓﯿﺪﺑ ﺑﺎﯾﺪ ﺑﺎﻻ ﺑﺎﺷﺪ و‬
‫ﻣﻮﻗﻌﯿﺖ ﺳﻠﻮلﻫﺎ ﺑﺎﯾﺪ ﺑﻪ درﺳﺘ اﻧﺘﺨﺎب ﺷﻮد ﺗﺎ از اﻣ ﺎن اﻋﻤﺎل ﺑﻌﻀ از ﺣﻤﻼت ﺟﻠﻮﮔﯿﺮی ﺷﻮد‪.‬‬
‫دﻧﺒﺎﻟﻪی ﺧﺮوﺟ ﻣﻮﻟﺪ ﻓﯿﻠﺘﺮ ﯾ دﻧﺒﺎﻟﻪی دورهای اﺳﺖ ﮐﻪ ﭘﯿﭽﯿﺪﮔ ﺧﻄ آن ﺑﻪ ﻃﻮل ‪LFSR‬و درﺟﻪ ﺟﺒﺮی ﺗﺎﺑﻊ‬
‫واﺑﺴﺘﻪاﺳﺖ‪.‬‬

‫آن ﭼﻨﺪﺟﻤﻠﻪای اوﻟﯿﻪ ﺑﺎﺷﺪ‪،‬‬ ‫ﻗﻀﯿﻪ ‪ ۴‬ﺑﺮای ﯾ ‪LFSR‬ﺑﺎﯾﻨﺮی ﺑﻪ ﻃﻮل ‪ L‬و درﺟﻪی ﺟﺒﺮی ‪ d‬ﮐﻪ ﭼﻨﺪﺟﻤﻠﻪای ﻓﯿﺪﺑ‬
‫ﻋﺒﺎرت زﯾﺮ ﺑﺮﻗﺮاراﺳﺖ‪:‬‬
‫) (‬
‫‪∑d‬‬ ‫‪L‬‬
‫‪Λ ≤ k=۰‬‬
‫‪k‬‬
‫) (‬
‫‪L‬‬
‫ﺻﺎدق اﺳﺖ‪.‬‬ ‫ﻫﻤﭽﻨﯿﻦ اﮔﺮ ‪ L‬ﻋﺪد ﺑﺰرﮔ ﺑﺎﺷﺪ‪ ،‬ﺑﺮای اﮐﺜﺮ ﺗﻮاﺑﻊ ﻓﯿﻠﺘﺮ ﺑﺎ درﺟﻪی ﺟﺒﺮی ‪ ،d‬ﮐﺮان ﭘﺎﯾﯿﻦ ‪≤ Λ‬‬
‫‪d‬‬

‫ﻣﻮﻟﺪﻫﺎی ﺑﺎ اﻧﺘﻘﺎلﻫﺎی ﻧﺎﻣﻨﻈﻢ‬ ‫‪٣.٣‬‬


‫ﯾ روش دﯾ ﺮ ﺑﺮای وارد ﮐﺮدن ﻋﺎﻣﻞ ﻏﯿﺮ ﺧﻄ ﺑﺪون اﺳﺘﻔﺎده از ﻓﯿﻠﺘﺮ ﻏﯿﺮﺧﻄ ‪ ،‬اﺳﺘﻔﺎده از ‪LFSR‬ﻫﺎی ﺑﺎ اﻧﺘﻘﺎل‬
‫ﻧﺎﻣﻨﻈﻢ ‪ ١١‬اﺳﺖ‪ .‬ﺳﻪ ﻣﻮﻟﺪ ﮐﻼﺳﯿ زﯾﺮ از اﯾﻦ اﯾﺪه اﺳﺘﻔﺎده ﻣ ﮐﻨﻨﺪ ﮐﻪ در ﻋﯿﻦ ﺳﺎدﮔ ﻫﻨﻮز ﺣﻤﻠﻪ ﮐﺎراﯾ ﻋﻠﯿﻪ آﻧﻬﺎ‬
‫ﭘﯿﺪا ﻧﺸﺪه اﺳﺖ‪.‬‬
‫‪١٠‬‬
‫‪nonlinear filter generator‬‬
‫‪١١‬‬
‫‪clock-controlled LFSR‬‬

‫ﻫﺸﺘﻢ‪۵-‬‬
‫‪١٢‬‬
‫• ﻣﻮﻟﺪ ﮔﺎم ﻣﺘﻨﺎوب‬
‫‪١٣‬‬
‫• ﻣﻮﻟﺪ ﮐﺎﻫﻨﺪه‬
‫‪١۴‬‬
‫• ﻣﻮﻟﺪ ﺧﻮدﮐﺎﻫﻨﺪه‬

‫ﻣﻮﻟﺪ ﮔﺎم ﻣﺘﻨﺎوب اﯾﻦ ﻣﻮﻟﺪ از ﺳﻪ ‪LFSR‬ﺗﺸ ﯿﻞ ﺷﺪهاﺳﺖ‪ LF SRB ،LF SRA :‬و ‪ LF SRC‬ﮐﻪ ‪LF SRC‬‬
‫ﮐﻨﺘﺮل ﮐﻨﻨﺪه اﺳﺖ دو ‪LFSR‬دﯾ ﺮ اﺳﺖ‪ LF SRC .‬ﺑﻪﻃﻮر ﻣﻨﻈﻢ اﻧﺘﻘﺎل ﻣ ﯾﺎﺑﺪ و ﺧﺮوﺟ آن ﺗﻌﯿﯿﻦ ﻣ ﮐﻨﺪ ﮐﻪ ﮐﺪام‬
‫ﯾ از دو ‪LFSR‬دﯾ ﺮ اﻧﺘﻘﺎل ﯾﺎﺑﺪ‪ :‬اﮔﺮ ﺧﺮوﺟ ‪ LF SRC‬ﯾ ﺑﺎﺷﺪ ‪ LF SRA‬اﻧﺘﻘﺎل ﻣ ﯾﺎﺑﺪ و اﮔﺮ ﺻﻔﺮ ﺑﺎﺷﺪ‬
‫‪ LF SRB‬ﮐﻼک ﻣ ﺧﻮرد‪ .‬ﭘﺲ از ﻫﺮ اﻧﺘﻘﺎل‪ ،‬ﯾ دﻧﺒﺎﻟﻪ ﮐﻠﯿﺪ اﺟﺮاﯾ ﺗﻮﻟﯿﺪ ﻣ ﺷﻮد ﮐﻪ از ‪) XOR‬ﺟﻤﻊ ﻣﺒﻨﺎی دو(‬
‫ﺑﯿﺖﻫﺎی ﺧﺮوﺟ ‪LFSR‬ﻫﺎی ﮐﻨﺘﺮلﺷﻮﻧﺪه ﺑﺪﺳﺖ ﻣ آﯾﺪ‪.‬‬

‫‪LF SRB‬‬
‫‪clock‬‬
‫‪.‬‬ ‫‪LF SRC‬‬ ‫⊕‬ ‫‪zt‬‬
‫▷‬
‫‪LF SRA‬‬

‫ﻧﺴﺨﻪ دﯾ ﺮی از ﻣﻮﻟﺪ ﮔﺎم ﻣﺘﻨﺎوب وﺟﻮد دارد ﮐﻪ در آن ﺧﺮوﺟ ﺑﻪﺟﺎی ‪ XOR‬ﮐﺮدن ﺑﯿﺖﻫﺎی ﺧﺮوﺟ ‪LFSR‬ﻫﺎی‬
‫ﮐﻨﺘﺮلﺷﻮﻧﺪه‪ ،‬از ﻫﻤﺎن ‪LFSR‬ی ﮐﻪ اﻧﺘﻘﺎل ﯾﺎﻓﺘﻪ اﺳﺖ ﺑﺪﺳﺖ ﻣ آﯾﺪ‪ .‬ﺑﻪ ﻋﺒﺎرت دﯾ ﺮ دﻧﺒﺎﻟﻪ ﮐﻠﯿﺪ اﺟﺮاﯾ ‪ ،‬از ﻻی ﻫﻢ‬
‫ﻗﺮار دادن ‪ ١۵‬ﺧﺮوﺟ ﻫﺎی ﻣﻨﻈﻢ ‪LFSR‬ﻫﺎی ﮐﻨﺘﺮلﺷﻮﻧﺪه ﺣﺎﺻﻞ ﻣ ﺷﻮد‪ .‬ﻣ ﺗﻮان ﻧﺸﺎن داد ﮐﻪ اﻣﻨﯿﺖ اﯾﻦ دو ﻧﺴﺨﻪ‬
‫از ﻣﻮﻟﺪ ﮔﺎم ﻣﺘﻨﺎوب ﯾ ﺴﺎن اﺳﺖ‪.‬‬
‫ﺑﺮای داﺷﺘﻦ وﻳﮋﮔ ﺑﻬﺘﺮ دﻧﺒﺎﻟﻪ ﺧﺮوﺟ ﺑﻬﺘﺮ اﺳﺖ ﻃﻮل ‪LFSR‬ﻫﺎ دوﺑﻪدو ﻧﺴﺒﺖ ﺑﻪ ﻫﻢ اول ﺑﺎﺷﻨﺪ ﮐﻪ در اﯾﻨﺼﻮرت‪،‬‬
‫دﻧﺒﺎﻟﻪ ﺧﺮوﺟ ﻣﻮﻟﺪ ﺑﻪ ﻃﺮز ﻗﺎﺑﻞ اﺛﺒﺎﺗ دارای دورهی ﺑﻠﻨﺪ و ﭘﯿﭽﯿﺪﮔ ﺧﻄ ﺑﺎﻻﺳﺖ‪ .‬اﮔﺮ ﻃﻮل ﻫﺮ ﺳﻪ ‪LFSR‬ﻣﻮرد‬
‫اﺳﺘﻔﺎده ﺗﻘﺮﯾﺒﺎ ﺑﺮاﺑﺮ ‪ L‬ﺑﺎﺷﺪ‪ ،‬ﭘﯿﭽﯿﺪﮔ ﺑﻬﺘﺮﯾﻦ ﺣﻤﻠﻪی ﺷﻨﺎﺧﺘﻪ ﺷﺪه ﻋﻠﯿﻪ اﯾﻦ ﻣﻮﻟﺪ از ﻣﺮﺗﺒﻪ ) ‪ O(۲۲L/۳‬اﺳﺖ‪.‬‬

‫ﻣﻮﻟﺪ ﮐﺎﻫﻨﺪه اﯾﻦ ﻣﻮﻟﺪ از دو ‪LFSR‬ﺗﺸ ﯿﻞ ﺷﺪهاﺳﺖ‪ .(LF SRS , LF SRA ) :‬دﻧﺒﺎﻟﻪ ﮐﻠﯿﺪ اﺟﺮاﯾ از ‪LF SRA‬‬
‫ﮔﺮﻓﺘﻪ ﻣ ﺷﻮد و ﺧﺮوﺟ ‪ LF SRS‬ﺗﻌﯿﯿﻦ ﻣ ﮐﻨﺪ ﮐﻪ ﮐﺪام ﺑﯿﺖﻫﺎی ‪ LF SRA‬ﺑﻪ ﻋﻨﻮان ﺧﺮوﺟ درﻧﻈﺮ ﮔﺮﻓﺘﻪ ﺷﻮﻧﺪ‪.‬‬
‫ﻣﻮﻟﺪ ﮐﺎﻫﻨﺪه ﺑﻪ اﯾﻦ ﺻﻮرت ﻋﻤﻞ ﻣ ﮐﻨﺪ‪ :‬اﮔﺮ ﺑﯿﺖ ﺧﺮوﺟ ‪ LF SRS‬ﯾ ﺑﺎﺷﺪ‪ ،‬ﺑﯿﺖ ﺧﺮوﺟ ‪ LF SRA‬ﺑﻪ ﻋﻨﻮان‬
‫ﯾ ﺑﯿﺖ از دﻧﺒﺎﻟﻪ ﮐﻠﯿﺪ اﺟﺮاﯾ ﻣﻮﻟﺪ ﺑﻪ ﺧﺮوﺟ ﻓﺮﺳﺘﺎده ﻣ ﺷﻮد و اﮔﺮ ﺻﻔﺮ ﺑﺎﺷﺪ‪ ،‬ﺑﯿﺖ ﺧﺮوﺟ ‪ LF SRA‬دور‬
‫اﻧﺪاﺧﺘﻪ ﻣ ﺷﻮد ﯾﻌﻨ ﻫﯿﭻ ﺑﯿﺘ ﺗﻮﻟﯿﺪ ﻧﻤ ﺷﻮد؛ ﺳﭙﺲ ﻫﺮ دو ‪LFSR‬اﻧﺘﻘﺎل ﻣ ﯾﺎﺑﻨﺪ‪.‬‬

‫‪LF SRS‬‬
‫‪.‬‬

‫‪st‬‬
‫‪at‬‬
‫‪LF SRA‬‬ ‫‪selection rule‬‬ ‫‪zt‬‬

‫‪١٢‬‬
‫)‪Alternating Step Generator(ASG‬‬
‫‪١٣‬‬
‫)‪Shrinking Generator(SG‬‬
‫‪١۴‬‬
‫)‪Self-Shrinking Generator(SSG‬‬
‫‪١۵‬‬
‫‪interleaving‬‬

‫ﻫﺸﺘﻢ‪۶-‬‬
‫ﺑﻪ ﻋﺒﺎرت دﯾ ﺮ اﮔﺮ دوﺑﯿﺖ ) ‪ (st , at‬ﺑﺮاﺑﺮ ‪ ١٠‬ﺑﺎﺷﺪ‪ ،‬ﺧﺮوﺟ ‪ ٠‬اﺳﺖ‪ ،‬اﮔﺮ ﺧﺮوﺟ ‪ ١١‬ﺑﺎﺷﺪ‪ ،‬ﺧﺮوﺟ ‪ ١‬اﺳﺖ‪ .‬در‬
‫ﻏﯿﺮ اﯾﻨﺼﻮرت ﺧﺮوﺟ ﻧﺪارﯾﻢ‪.‬‬
‫اﮔﺮ ﻃﻮل ﻫﺮ دو ‪LFSR‬ﻣﻮرد اﺳﺘﻔﺎده ﺗﻘﺮﯾﺒﺎ ﺑﺮاﺑﺮ ‪ L‬ﺑﺎﺷﺪ‪ ،‬ﭘﯿﭽﯿﺪﮔ ﺑﻬﺘﺮﯾﻦ ﺣﻤﻠﻪی ﺷﻨﺎﺧﺘﻪ ﺷﺪه ﻋﻠﯿﻪ اﯾﻦ ﻣﻮﻟﺪ از‬
‫ﻣﺮﺗﺒﻪ ) ‪ O(۲۲L/۳‬اﺳﺖ‪.‬‬

‫ﻣﻮﻟﺪ ﺧﻮدﮐﺎﻫﻨﺪه اﺳﺎس اﯾﻦ ﻣﻮﻟﺪ ﻫﻤﺎن ﻣﻮﻟﺪ ﻗﺒﻠ اﺳﺖ ﮐﻪ در آن از ﯾ ‪LFSR‬ﺑﺎ دﻧﺒﺎﻟﻪ ﺧﺮوﺟ } ‪ {at‬اﺳﺘﻔﺎده‬
‫ﻣ ﺷﻮد ﮐﻪ در آن زﯾﺮدﻧﺒﺎﻟﻪ } ‪ {a۲t‬ﻧﻘﺶ ﺧﺮوﺟ ‪ LF SRS‬و زﯾﺮدﻧﺒﺎﻟﻪ } ‪ {a۲t+۱‬ﻧﻘﺶ ﺧﺮوﺟ ‪ LF SRA‬را دارد‪.‬‬
‫ﺑﻪ ﻃﻮر دﻗﯿﻖﺗﺮ روﯾﻪ زﯾﺮ ﻧﺤﻮه ﮐﺎر ﻣﻮﻟﺪ ﺧﻮدﮐﺎﻫﻨﺪه را ﻧﺸﺎن ﻣ دﻫﺪ‪.‬‬

‫ﺗﺎ وﻗﺘ ﮐﻪ دﻧﺒﺎﻟﻪ ﮐﻠﯿﺪ اﺟﺮاﯾ ﺑﻪ ﻃﻮل ﮐﺎﻓ ﺗﻮﻟﯿﺪ ﻧﺸﺪه اﺳﺖ‪:‬‬

‫‪LFSR .١‬دوﺑﺎر ﮐﻼک ﻣ ﺧﻮرد و دو ﺑﯿﺖ ) ‪ (a۲t , a۲t+۱‬از آن ﮔﺮﻓﺘﻪ ﻣ ﺷﻮد‪.‬‬

‫ﺑﯿﺖ از دﻧﺒﺎﻟﻪ ﺧﺮوﺟ ﺗﻮﻟﯿﺪ ﻣ ﺷﻮد‪.‬‬ ‫‪ .٢‬اﮔﺮ ‪ a۲t = ۱‬ﺑﺎﺷﺪ‪ a۲t+۱ ،‬ﺑﻪ ﻋﻨﻮان ﯾ‬

‫‪. LF SR A‬‬
‫‪a۲t‬‬
‫‪a۲t+۱‬‬
‫‪zt‬‬
‫‪selection rule‬‬

‫ﺑﻪ ﻋﺒﺎرت دﯾ ﺮ اﮔﺮ دوﺑﯿﺖ ﺧﺮوﺟ ‪ ١٠‬ﺑﺎﺷﺪ‪ ،‬ﺧﺮوﺟ ‪ ٠‬اﺳﺖ‪ ،‬اﮔﺮ ﺧﺮوﺟ ‪ ١١‬ﺑﺎﺷﺪ‪ ،‬ﺧﺮوﺟ ‪ ١‬اﺳﺖ‪ .‬در ﻏﯿﺮ‬
‫اﯾﻨﺼﻮرت ﺧﺮوﺟ ﻧﺪارﯾﻢ‪.‬‬
‫ﺑﻬﺘﺮﯾﻦ ﺣﻤﻠﻪی ﺷﻨﺎﺧﺘﻪ ﺷﺪه ﻋﻠﯿﻪ اﯾﻦ ﻣﻮﻟﺪ ﺣﻤﻠﻪ ﺑﺪهﺑﺴﺘﺎن ﺣﺎﻓﻈﻪ‪-‬زﻣﺎن‪-‬داده اﺳﺖ ﮐﻪ ﺑﻪ ﺣﺎﻓﻈﻪ‪ ،‬داده )ﻃﻮل دﻧﺒﺎﻟﻪ‬
‫ﺧﺮوﺟ ﻣﻮرد ﻧﯿﺎز( و زﻣﺎن از ﻣﺮﺗﺒﻪ ) ‪ O(۲L/۲‬ﻧﯿﺎز دارد‪ .‬ﭘﯿﺪا ﮐﺮدن ﯾ ﺣﻤﻠﻪ ﺑﻬﺘﺮ ﯾ ﭘﺮﺳﺶ ﺑﺎز ﺟﺎﻟﺐ اﺳﺖ‪.‬‬

‫ﻫﺸﺘﻢ‪٧-‬‬
‫ﺑﻪ ﻧﺎم ﺧﺪا‬

‫داﻧﺸ ﺪهی ﻋﻠﻮم رﯾﺎﺿ‬

‫‪ ١۵‬اﺳﻔﻨﺪ ‪١٣٩١‬‬ ‫ﻣﻘﺪﻣﻪای ﺑﺮ رﻣﺰﻧ ﺎری‬

‫ﺟﻠﺴﻪی ‪ :٩‬ﺗﻮاﺑﻊ ﺑﻮﻟ و ﺗﺤﻠﯿﻞ ﻣﻮﻟﺪ ﻓﯿﻠﺘﺮی‬


‫ﻧ ﺎرﻧﺪه‪ :‬ﻣﺤﺴﻦ ﺻﺤﺮاﺋ‬ ‫ﻣﺪرس‪ :‬دﮐﺘﺮ ﺷﻬﺮام ﺧﺰاﺋ‬

‫ﺗﻮاﺑﻊ ﺑﻮﻟ و ﺗﻌﺎرﯾﻒ‬ ‫‪١‬‬


‫ﺗﺎﺑﻊ ﺑﻮﻟ ‪-n) ١‬ﻣﺘﻐﯿﺮه( ﻧﺎﻣﯿﺪه ﻣ ﺷﻮد‪.‬‬ ‫ﺗﻌﺮﯾﻒ ‪ ١‬ﻫﺮ ﺗﺎﺑﻊ }‪ f : {۰, ۱}n −→ {۰, ۱‬ﯾ‬

‫ﺗﺎﺑﻊ ﺑﻮﻟ وﺟﻮد دارد‪.‬‬ ‫دو روش ﺑﺮای ﻧﻤﺎﯾﺶ ﯾ‬

‫• ﻧﻤﺎﯾﺶ ﻣﻘﺪاری‪ :‬ﯾ ﺗﺎﺑﻊ ﺑﻮﻟ ‪ f‬ﺑﺮ روی ‪ {۰, ۱}n‬را ﻣ ﺗﻮان ﺑﺎ اﺳﺘﻔﺎده از ﺟﺪول ﺻﺤﺖ ‪ ٢‬ﺑﻪ ﺻﻮرت ﯾ ﺘﺎ‬
‫ﻣﺸﺨﺺ ﮐﺮد‪ .‬ﺟﺪول ﺻﺤﺖ ﺑﺮداری ﺑﻪ ﺻﻮرت ])⟩ ‪ ،[f (⟨۰⟩), · · · , f (⟨۲n−۱‬ﺷﺎﻣﻞ ﻫﻤﻪی ﻣﻘﺎدﯾﺮ ﺗﺎﺑﻊ ‪f‬‬
‫اﺳﺖ ﮐﻪ ⟩‪ ⟨i‬ﺑﯿﺎنﮔﺮ رﺷﺘﻪ ﺑﺎﯾﻨﺮی ﺑﻪ ﻃﻮل ‪ n‬اﺳﺖ ﮐﻪ ﻧﻤﺎﯾﺶ ﻣﺒﻨﺎی دو ﻋﺪد ‪ i‬اﺳﺖ‪.‬‬

‫• ﻧﻤﺎﯾﺶ ﺟﺒﺮی‪ :‬روش دﯾ ﺮی ﮐﻪ ﻣ ﺗﻮان ﺑﺎ اﺳﺘﻔﺎده از آن ﯾ ﺗﺎﺑﻊ ﺑﻮﻟ را ﺑﻪ ﺻﻮرت ﯾ ﺘﺎ ﻣﺸﺨﺺ ﮐﺮد‪،‬‬
‫اﺳﺘﻔﺎده از ﻓﺮم ﻧﺮﻣﺎل ﺟﺒﺮی ‪ ٣‬اﺳﺖ‪ .‬ﻓﺮم ﻧﺮﻣﺎل ﺟﺒﺮی ﯾ ﭼﻨﺪﺟﻤﻠﻪای ﺑﻪ ﺻﻮرت زﯾﺮ اﺳﺖ‪:‬‬
‫∑‬ ‫∏‬
‫= )‪f (x‬‬ ‫‪aI‬‬ ‫‪xi ,‬‬ ‫}‪I ⊆ {۱, ۲, ۳, · · · , n}, aI ∈ {۰, ۱‬‬
‫‪i∈I‬‬

‫ﺗﺎﺑﻊ ﺑﻮﻟ دوﻣﺘﻐﯿﺮه ﺑﺎ اﺳﺘﻔﺎده از ﻓﺮم ﻧﺮﻣﺎل ﺟﺒﺮی اﺳﺖ‪:‬‬ ‫ﻣﺜﺎل ‪ ٢‬ﻋﺒﺎرت زﯾﺮ ﻧﻤﺎﯾﺶ ﯾ‬

‫‪f (x) = a۰ + a۱ x۱ + a۲ x۲ + a۳ x۱ x۲ ,‬‬ ‫}‪ai ∈ {۰, ۱‬‬

‫ﺟﺪول ﺻﺤﺖ اﯾﻦ ﺗﺎﺑﻊ ﺑﻮﻟ ﺑﻪ ﺻﻮرت زﯾﺮ اﺳﺖ‪:‬‬

‫‪x۱‬‬ ‫‪x۲‬‬ ‫)‪f (x‬‬


‫‪۰‬‬ ‫‪۰‬‬ ‫‪a۰‬‬
‫‪۰‬‬ ‫‪۱‬‬ ‫‪a۰ + a۲‬‬
‫‪۱‬‬ ‫‪۰‬‬ ‫‪a۰ + a۱‬‬
‫‪۱‬‬ ‫‪۱‬‬ ‫‪a۰ + a۱ + a۲ + a۳‬‬
‫‪١‬‬
‫‪Boolean Function‬‬
‫‪٢‬‬
‫‪Truth Table‬‬
‫‪٣‬‬
‫‪Algebraic Normal Form‬‬

‫‪٩-١‬‬
‫ﻧ ﺘﻪ ‪ ١‬ﺑﯿﻦ دو روش ﺟﺪول ﺻﺤﺖ و ﻓﺮم ﻧﺮﻣﺎل ﺟﺒﺮی‪ ،‬ﻣ ﺗﻮان ﺑﺎ ﻣﺮﺗﺒﻪی ﭘﯿﭽﯿﺪﮔ ‪ n۲n‬ﺗﺒﺪﯾﻞ اﻧﺠﺎم داد‪.‬‬

‫ﺑﺮای اداﻣﻪی ﺑﺤﺚ ﺑﻪ ﺗﻌﺎرﯾﻔ ﻧﯿﺎز اﺳﺖ ﮐﻪ در اداﻣﻪ ﺑﻪ آﻧﻬﺎ ﺧﻮاﻫﯿﻢ ﭘﺮداﺧﺖ‪.‬‬

‫ﺗﻌﺮﯾﻒ ‪ ٣‬درﺟﻪی ﺟﺒﺮی ‪ ۴‬ﺗﺎﺑﻊ ﺑﻮﻟ ‪ f‬ﮐﻪ ﺑﺎ ) ‪ deg(f‬ﻧﻤﺎﯾﺶ داده ﻣ ﺷﻮد‪ ،‬ﺑﯿﺸﯿﻨﻪی ﺗﻌﺪاد ﻣﺘﻐﯿﺮﻫﺎی ﻣﻮﺟﻮد در‬
‫ﻋﺒﺎرتﻫﺎی ﺳﺎزﻧﺪهی ﻓﺮم ﻧﺮﻣﺎل ﺟﺒﺮی اﺳﺖ؛ ﯾﻌﻨ ‪:‬‬

‫}‪deg(f ) = max{|I|, aI ̸= ۰‬‬

‫ﺑﺎﺷﺪ‪.‬‬ ‫ﺗﻌﺮﯾﻒ ‪ ۴‬ﺗﺎﺑﻊ ﻣﺴﺘﻮی ‪ ،۵‬ﺗﺎﺑﻌ اﺳﺖ ﮐﻪ درﺟﻪی ﺟﺒﺮی آن ﮐﻤﺘﺮ ﯾﺎ ﻣﺴﺎوی ﯾ‬

‫ﺑﻪ ﻋﺒﺎرت دﯾ ﺮ‪ ،‬ﺗﺎﺑﻌ ﺑﻪ ﻓﺮم زﯾﺮ را ﺗﺎﺑﻊ ﻣﺴﺘﻮی ﻣ ﮔﻮﯾﻨﺪ‪:‬‬

‫‪f (x) = a۰ + a۱ x۱ + · · · + an xn‬‬

‫در ﻋﺒﺎرت ﻓﻮق‪ ،‬اﮔﺮ ‪ a۰ = ۰‬ﺑﺮﻗﺮار ﺑﺎﺷﺪ‪ ،‬آﻧ ﺎه ﺗﺎﺑﻊ را ﺧﻄ ‪ ۶‬ﻣ ﮔﻮﯾﻨﺪ‪.‬‬

‫ﺗﻌﺮﯾﻒ ‪ ۵‬وزن ﻫﻤﯿﻨ ‪ ٧‬ﺗﺎﺑﻊ ‪ ،f‬ﺗﻌﺪاد ﻣﻘﺎدﯾﺮ ﻏﯿﺮﺻﻔﺮ ﺗﺎﺑﻊ ‪ f‬ﺑﻪ ازای ﺗﻤﺎم ورودیﻫﺎی ﻣﻤ ﻦ اﺳﺖ؛ ﯾﻌﻨ ‪:‬‬

‫|}‪wH = |{x ∈ {۰, ۱}n | f (x) ̸= ۰‬‬

‫ﺗﺎﺑﻊ ‪ ،f‬ﺑﺮاﺑﺮ ﺗﻌﺪاد ‪١‬ﻫﺎ در ﺟﺪول ﺻﺤﺖ آن اﺳﺖ‪.‬‬ ‫در ﺣﻘﯿﻘﺖ وزن ﻫﻤﯿﻨ‬

‫در ﺟﺪول ﺻﺤﺖ آن ﺑﺮاﺑﺮ ﺑﺎﺷﺪ‪.‬‬ ‫ﺗﻌﺮﯾﻒ ‪ ۶‬ﺗﺎﺑﻊ ﻣﺘﻮازن ‪ ،٨‬ﺗﺎﺑﻌ اﺳﺖ ﮐﻪ ﺗﻌﺪاد ﻣﻘﺎدﯾﺮ ﺻﻔﺮ و ﯾ‬

‫ﻧ ﺘﻪ ‪ ٢‬ﺑﺎ ﺗﻮﺟﻪ ﺑﻪ ﺗﻌﺮﯾﻒ ﻓﻮق در ﺗﻮاﺑﻊ ﻣﺘﻮازن راﺑﻄﻪی زﯾﺮ ﺑﺮﻗﺮار اﺳﺖ‪:‬‬

‫‪wH (f ) = ۲n−۱‬‬

‫ﻫﻤﭽﻨﯿﻦ دارﯾﻢ‪:‬‬
‫‪۱‬‬
‫‪Pr‬‬ ‫= }‪{f (x) = ۰‬‬
‫‪x←{۰,۱}n‬‬ ‫‪۲‬‬

‫ﺗﻌﺮﯾﻒ ‪ ٧‬ﻓﺎﺻﻠﻪی ﻫﻤﯿﻨ ‪ ٩‬دو ﺗﺎﺑﻊ ‪ f‬و ‪ g‬ﮐﻪ ﺑﺎ )‪ dH (f, g‬ﻧﻤﺎﯾﺶ داده ﻣ ﺷﻮد‪ ،‬ﺑﺮاﺑﺮ اﺳﺖ ﺑﺎ ﺗﻌﺪاد ﻣﻘﺎدﯾﺮ ﻣﺘﻔﺎوت‬
‫‪ f‬و ‪ g‬ﺑﻪ ازای ﻫﻤﻪی ورودیﻫﺎی ﻣﻤ ﻦ‪.‬‬

‫ﻓﺎﺻﻠﻪی دو ﺗﺎﺑﻊ را ﻣ ﺗﻮان از راﺑﻄﻪی زﯾﺮ ﺑﻪ دﺳﺖ آورد‪:‬‬

‫)‪dH (f, g) = wH (f + g‬‬


‫‪۴‬‬
‫‪Algebric Degree‬‬
‫‪۵‬‬
‫‪Affine Function‬‬
‫‪۶‬‬
‫‪Linear‬‬
‫‪٧‬‬
‫‪Hamming Weight‬‬
‫‪٨‬‬
‫‪Balanced Function‬‬
‫‪٩‬‬
‫‪Hamming Distance‬‬

‫‪٩-٢‬‬
‫ﻧ ﺘﻪ ‪ ٣‬ﺑﺎ ﺗﻮﺟﻪ ﺑﻪ ﺗﻌﺮﯾﻒ ﻓﻮق ﻣ ﺗﻮان ﮔﻔﺖ‪:‬‬

‫)‪dH (f, g‬‬


‫‪Pr‬‬ ‫= })‪{f (x) ̸= g(x‬‬
‫‪x←{۰,۱}n‬‬ ‫‪۲n‬‬

‫اﮔﺮ ﺗﺎﺑﻌ را ﺑﺎ ﺗﺎﺑﻊ دﯾ ﺮ ﺗﻘﺮﯾﺐ ﺑﺰﻧﯿﻢ‪ ،‬ﺑﺎ اﺳﺘﻔﺎده از ﻓﺎﺻﻠﻪی ﺑﯿﻦ دو ﺗﺎﺑﻊ ﻣ ﺗﻮان ﺗﻌﯿﯿﻦ ﮐﺮد ﮐﻪ ﺗﻘﺮﯾﺐ ﺗﺎ ﭼﻪ ﺣﺪ‬
‫ﺧﻮب اﺳﺖ‪ .‬اﻣﺎ در ﺑﺴﯿﺎری از ﻣﻮارد ﺗﻘﺮﯾﺐﻫﺎی ﺧﻄ ﻣﻄﻠﻮب ﻣﺎﺳﺖ‪ .‬ﺑﻪ ﻫﻤﯿﻦ ﺧﺎﻃﺮ ﺗﻌﺮﯾﻒ زﯾﺮ را ﻣﻄﺮح ﻣ ﮐﻨﯿﻢ‪.‬‬

‫ﺗﻌﺮﯾﻒ ‪ ٨‬ﻣﻘﺪار ﻏﯿﺮﺧﻄ ‪ ١٠‬ﺗﺎﺑﻊ ‪ f‬را ﺑﺎ ‪ Nf‬ﻧﻤﺎﯾﺶ ﻣ دﻫﻨﺪ و ﺑﺮاﺑﺮ اﺳﺖ ﺑﺎ ﮐﻤﯿﻨﻪی ﻓﺎﺻﻠﻪی ‪ f‬از ﻣﺠﻤﻮﻋﻪی ﺗﻮاﺑﻊ‬
‫ﻣﺴﺘﻮی‪ .‬ﺑﻪ ﻋﺒﺎرت دﯾ ﺮ ﻣﻘﺪار ﻏﯿﺮﺧﻄ ‪ f‬ﺑﺮاﺑﺮ اﺳﺖ ﺑﺎ ﻓﺎﺻﻠﻪی آن ﺗﺎ ﻧﺰدﯾ ﺗﺮﯾﻦ ﺗﺎﺑﻊ ﻣﺴﺘﻮی‪.‬‬

‫= ‪Nf‬‬ ‫‪min‬‬ ‫})‪{dH (f, g‬‬


‫‪affine g's‬‬

‫ﺗﺤﻠﯿﻞ ﻣﻮﻟﺪ ﻓﯿﻠﺘﺮی‬ ‫‪٢‬‬


‫∑‬
‫‪L−۱‬‬
‫‪ ،X L +‬ﺗﺎﺑﻊ ﻓﯿﻠﺘﺮ ) ‪ f (x۱ , x۲ , · · · xn‬و ﻣﻮﻗﻌﯿﺖﻫﺎی‬ ‫ﻣﻮﻟﺪ ﻓﯿﻠﺘﺮی ﺑﺎ ﭼﻨﺪﺟﻤﻠﻪای ارﺗﺒﺎط ‪cL−i xi‬‬ ‫ﻓﺮض ﮐﻨﯿﺪ ﯾ‬
‫‪i=۰‬‬
‫‪ γ۱ , γ۲ , · · · , γn‬ﮐﻪ ‪ ۰ ≤ γ۱ < γ۲ < · · · < γn ≤ L − ۱‬دارﯾﻢ‪ .‬دﻧﺒﺎﻟﻪی ﺧﺮوﺟ اﯾﻦ ﻣﻮﻟﺪ ﮐﻪ ﺑﺎ ‪{zt }t≥۰‬‬
‫ﻧﺸﺎن داده ﻣ ﺷﻮد از روی دﻧﺒﺎﻟﻪی ﺧﺮوﺟ ﺛﺒﺎت ﺧﻄ ﮐﻪ ﺑﺎ ‪ {st }t≥۰‬ﻧﺸﺎن داده ﻣ ﺷﻮد از راﺑﻄﻪی زﯾﺮ ﺑﻪدﺳﺖ‬
‫ﻣ آﯾﺪ‪:‬‬
‫) ‪zt = f (st+γ۱ , st+γ۲ , · · · , st+γn‬‬

‫‪١٠‬‬
‫‪Nonlinearity‬‬

‫‪٩-٣‬‬
‫ﺑﻪ ﯾﺎد آورﯾﺪ ﮐﻪ راﺑﻄﻪی ﺧﻄ زﯾﺮ ﺑﺮای دﻧﺒﺎﻟﻪی ﺧﺮوﺟ ﺛﺒﺎت ﺧﻄ ﺑﺮای ‪ t ≥ L‬ﺑﺮﻗﺮار اﺳﺖ ﮐﻪ ‪ c۰ = ۱‬در ﻧﻈﺮ‬
‫ﮔﺮﻓﺘﻪ ﻣ ﺷﻮد‪:‬‬
‫∑‬‫‪L‬‬
‫‪ci st−i = ۰‬‬
‫‪i=۰‬‬

‫در اداﻣﻪ ﺣﻤﻠﻪی ﺗﻤﺎﯾﺰ و ﺣﻤﻠﻪی ﺣﺎﻟﺖ اوﻟﯿﻪ را ﺑﺮای ‪ f‬ﺧﻄ و ﻏﯿﺮﺧﻄ ﺑﺮرﺳ ﻣ ﮐﻨﯿﻢ‪.‬‬

‫ﺣﻤﻠﻪی ﺗﻤﺎﯾﺰ‬ ‫‪١.٢‬‬


‫زده ﻣ ﺷﻮد‪ .‬اﯾﻦ ﺣﻤﻠﻪ‬ ‫دﻧﺒﺎﻟﻪی ﺗﺼﺎدﻓ ﻣﺤ‬ ‫در ﺣﻤﻠﻪی ﺗﻤﺎﯾﺰ‪ ،‬اﻣﻨﯿﺖ ﺳﯿﺴﺘﻢ ﺑﺎ ﺗﻮاﻧﺎﯾ ﺗﺸﺨﯿﺺ ﺧﺮوﺟ آن از ﯾ‬
‫را ﺑﺮای رﻣﺰ دﻧﺒﺎﻟﻪای ﺑﺎ ﻓﯿﻠﺘﺮ ﺧﻄ و ﻏﯿﺮﺧﻄ ﺑﺮرﺳ ﻣ ﮐﻨﯿﻢ‪.‬‬

‫ﻣﻮﻟﺪ ﻓﯿﻠﺘﺮی ﺑﺎ ﻓﯿﻠﺘﺮ ﺧﻄ‬ ‫‪١.١.٢‬‬


‫ﺑﺎ ﺗﻮﺟﻪ ﺑﻪ راﺑﻄﻪای ﮐﻪ در ﻗﺴﻤﺖ ﻗﺒﻞ ﮔﻔﺘﻪ ﺷﺪ‪ ،‬ﻣ ﺗﻮان ﻟﻢ زﯾﺮ را ﻣﻄﺮح ﮐﺮد‪.‬‬

‫ﻟﻢ ‪ ١‬اﮔﺮ ‪ f‬ﺧﻄ ﺑﺎﺷﺪ دارﯾﻢ‪:‬‬


‫∑‬
‫‪L‬‬
‫‪ci zt−i = ۰‬‬
‫‪i=۰‬‬

‫∑‬
‫‪n‬‬
‫= ) ‪ f (x۱ , · · · , xn‬ﺑﺎﺷﺪ دارﯾﻢ‪:‬‬ ‫ﺑﺮﻫﺎن‪ .‬ﻓﺮض ﮐﻨﯿﺪ ﺗﺎﺑﻊ ﻓﯿﻠﺘﺮ ﺧﻄ ﺑﻪ ﺻﻮرت ‪aj xj‬‬
‫‪j=۱‬‬

‫∑‬
‫‪n‬‬
‫= ‪zt‬‬ ‫‪aj st+γj‬‬
‫‪j=۱‬‬

‫∑‬
‫‪L‬‬ ‫∑‬
‫‪L‬‬ ‫∑‬
‫‪n‬‬
‫= ‪ci zt−i‬‬ ‫‪ci‬‬ ‫‪aj st−i−γj‬‬
‫‪i=۰‬‬ ‫‪i=۰‬‬ ‫‪j=۱‬‬

‫∑‬
‫‪n‬‬ ‫∑‬
‫‪L‬‬
‫=‬ ‫‪aj‬‬ ‫‪ci st−i−γj‬‬
‫‪j=۱‬‬ ‫‪i=۰‬‬
‫∑‬‫‪n‬‬
‫=‬ ‫‪aj (۰) = ۰‬‬
‫‪j=۱‬‬

‫‪٩-۴‬‬
‫ﻣﻮﻟﺪ ﻓﯿﻠﺘﺮی ﺑﺎ ﻓﯿﻠﺘﺮ ﻏﯿﺮﺧﻄ‬ ‫‪٢.١.٢‬‬
‫ﺗﻘﺮﯾﺐ ﺧﻄ ‪a۱ x۱ + · · · + an xn‬‬ ‫اﮔﺮ ﺗﺎﺑﻊ ‪ f‬ﻏﯿﺮﺧﻄ ﺑﺎﺷﺪ ﻟﻢ ‪ ١‬دﯾ ﺮ ﺑﺮﻗﺮار ﻧﯿﺴﺖ‪ .‬در اﯾﻦ ﺣﺎﻟﺖ ﺑﺎ داﺷﺘﻦ ﯾ‬
‫ﺑﺮای ﺗﺎﺑﻊ ﻏﯿﺮﺧﻄ ‪ f‬ﻣ ﺗﻮان ﻧﻮﺷﺖ‪:‬‬

‫‪۱‬‬
‫= } ‪Pr {f (x) = a۱ x۱ + · · · + an xn‬‬ ‫‪(۱ + ε),‬‬ ‫‪ε ̸= ۰‬‬
‫‪۲‬‬
‫ﺗﻘﺮﯾﺐ ﺧﻄ ﺑﺮای ﺗﺎﺑﻊ ﺧﻮد دارﯾﻢ‪ .‬ﺑﻨﺎﺑﺮاﯾﻦ ﻣ ﺗﻮان ﻧﻮﺷﺖ‪:‬‬ ‫ﯾﻌﻨ ﯾ‬

‫‪f (x) = a۱ x۱ + · · · + an xn + e‬‬

‫ﻣﺘﻐﯿﺮ ﺗﺼﺎدﻓ ﺑﺎﯾﻨﺮی ﺑﺎ ﺗﻮزﯾﻊ زﯾﺮ اﺳﺖ ﮐﻪ آﻧﺮا ﻧﻮﯾﺰ ﻣ ﻧﺎﻣﯿﻢ‪:‬‬ ‫ﮐﻪ ‪ e‬ﯾ‬

‫‪۱‬‬
‫= }‪Pr {e = ۰‬‬ ‫)‪(۱ + ε‬‬
‫‪۲‬‬
‫‪‬‬ ‫‪‬‬ ‫ﺑﻨﺎﺑﺮاﯾﻦ‪:‬‬
‫∑‬
‫‪n‬‬
‫‪zt = ‬‬ ‫‪aj st+γj  + et‬‬
‫‪j=۱‬‬

‫ﮐﻪ } ‪ {et‬دﻧﺒﺎﻟﻪ ﻧﻮﯾﺰ ﻣ ﺑﺎﺷﺪ‪.‬‬


‫ﻟﻢ ‪ ٢‬ﻓﺮض ﮐﻨﯿﺪ ﮐﻪ ‪ a۱ x۱ + · · · + an xn‬ﯾ ﺗﻘﺮﯾﺐ ﺧﻄ دﻟﺨﻮاه ﺑﺮای ﺗﺎﺑﻊ ﻓﯿﻠﺘﺮ ‪ f‬ﺑﺎﺷﺪ‪ .‬ﻓﺮض ﮐﻨﯿﺪ ﮐﻪ‬
‫ﭼﻨﺪﺟﻤﻠﻪای ﻣﺸﺨﺼﻪی ‪ LFSR‬ﺑﻪ ﺻﻮرت ‪ xi۱ + xi۲ + · · · xiw‬ﺑﺎﺷﺪ‪ ،‬در اﯾﻦ ﺻﻮرت‬

‫∑‬
‫‪L‬‬
‫‪ci zt−i = et−i۱ + · · · + et−iw‬‬
‫‪i=۰‬‬

‫ﺑﺮﻫﺎن‪ .‬دارﯾﻢ‪:‬‬

‫∑‬
‫‪L‬‬ ‫∑‬
‫‪L‬‬
‫= ‪ci zt−i‬‬ ‫) ‪ci f (st−i+γ۱ , · · · , st−i+γn‬‬
‫‪i=۰‬‬ ‫‪i=۰‬‬
‫‪‬‬ ‫‪‬‬
‫∑‬
‫‪L‬‬ ‫∑‬‫‪n‬‬
‫=‬ ‫‪ci ‬‬ ‫‪aj st−i+γj + et−i ‬‬
‫‪i=۰‬‬ ‫‪j=۱‬‬

‫∑‬
‫‪L‬‬ ‫∑‬
‫‪n‬‬ ‫∑‬
‫‪L‬‬
‫=‬ ‫‪ci‬‬ ‫‪aj st−i+γj +‬‬ ‫‪ci et−i‬‬
‫‪i=۰‬‬ ‫‪j=۱‬‬ ‫‪i=۰‬‬

‫∑‬
‫‪L‬‬
‫‪=۰+‬‬ ‫‪ci et−i‬‬
‫‪i=۰‬‬
‫‪= et−i۱ + · · · + et−iw‬‬

‫‪٩-۵‬‬
‫ﻟﻢ ‪) ٣‬ﻟﻢ ‪ (pilling-up‬ﻓﺮض ﮐﻨﯿﺪ ‪ n‬ﻣﺘﻐﯿﺮ ﺗﺼﺎدﻓ ﺑﺎﯾﻨﺮی ﻣﺴﺘﻘﻞ ‪ X۱ , · · · , Xn‬ﺑﺎ ﺗﻮزﯾﻊ اﺣﺘﻤﺎل زﯾﺮ دارﯾﻢ‪:‬‬

‫‪۱‬‬
‫= )‪Pr (Xi = ۱‬‬ ‫) ‪(۱ − εi‬‬
‫‪۲‬‬
‫‪۱‬‬
‫= )‪Pr (Xi = ۰‬‬ ‫) ‪(۱ + εi‬‬
‫‪۲‬‬
‫در اﯾﻦﺻﻮرت ﻣﺘﻐﯿﺮ ﺗﺼﺎدﻓ‬
‫‪X = X۱ + · · · + Xn‬‬
‫دارای ﺗﻮﺿﯿﺢ اﺣﺘﻤﺎل زﯾﺮ اﺳﺖ‪:‬‬

‫‪۱‬‬
‫= )‪Pr(X = ۱‬‬ ‫) ‪(۱ − ε۱ · · · εn‬‬
‫‪۲‬‬
‫‪۱‬‬
‫= )‪Pr(X = ۰‬‬ ‫) ‪(۱ + ε۱ · · · εn‬‬
‫‪۲‬‬
‫ﺑﺮﻫﺎن‪ .‬اﯾﻦ ﻟﻢ را ﺑﺮای دو ﻣﺘﻐﯿﺮ ﺗﺼﺎدﻓ اﺛﺒﺎت ﻣ ﮐﻨﯿﻢ‪ .‬ﺑﺮای ﺗﻌﺪاد ﺑﯿﺸﺘﺮ ﺑﺎ اﺳﺘﻘﺮاء ﺛﺎﺑﺖ ﻣ ﺷﻮد‪ .‬ﺑﻨﺎﺑﺮاﯾﻦ ﻓﺮض‬
‫ﻣ ﮐﻨﯿﻢ ﺣﺎﻟﺖ زﯾﺮ را دارﯾﻢ‪:‬‬

‫‪۰‬‬ ‫‪۱‬‬
‫‪X۱‬‬ ‫‪۱‬‬
‫‪۲‬‬
‫‪(۱‬‬ ‫) ‪+ ε۱‬‬ ‫‪۱‬‬
‫‪۲‬‬
‫‪(۱‬‬ ‫) ‪− ε۱‬‬
‫‪X۲‬‬ ‫‪۱‬‬
‫‪۲‬‬
‫‪(۱‬‬ ‫) ‪+ ε۱‬‬ ‫‪۱‬‬
‫‪۲‬‬
‫‪(۱‬‬ ‫) ‪− ε۲‬‬

‫}‪Pr {X = ۱} = Pr {X۱ + X۲ = ۱‬‬


‫} ‪= Pr {X۱ ̸= X۲‬‬
‫‪۱‬‬ ‫‪۱‬‬ ‫‪۱‬‬ ‫‪۱‬‬
‫) ‪= (۱ − ε۱ ) (۱ + ε۲ ) + (۱ + ε۱ ) (۱ − ε۲‬‬
‫‪۲‬‬ ‫‪۲‬‬ ‫‪۲‬‬ ‫‪۲‬‬
‫‪۱‬‬
‫) ‪= (۱ − ε۱ ε۲‬‬
‫‪۲‬‬

‫} ‪Pr {X = ۰} = Pr {X۱ + X۲‬‬


‫} ‪= Pr {X۱ = X۲‬‬
‫‪۱‬‬ ‫‪۱‬‬ ‫‪۱‬‬ ‫‪۱‬‬
‫) ‪= (۱ + ε۱ ) (۱ + ε۲ ) + (۱ − ε۱ ) (۱ − ε۲‬‬
‫‪۲‬‬ ‫‪۲‬‬ ‫‪۲‬‬ ‫‪۲‬‬
‫‪۱‬‬
‫) ‪= (۱ + ε۱ ε۲‬‬
‫‪۲‬‬

‫‪٩-۶‬‬
‫ﺑﻪ ﻃﻮر ﺧﻼﺻﻪ ﺑﻪ ﻓﺮض ﻣﺴﺘﻘﻞ ﺑﻮدن ‪et‬ﻫﺎ )ﮐﻪ در ﻋﻤﻞ ﺗﺎ ﺣﺪ زﯾﺎدی ﺻﺎدق اﺳﺖ(‪ ،‬دارﯾﻢ‪:‬‬
‫‪{ L‬‬ ‫}‬
‫∑‬ ‫‪۱‬‬
‫‪Pr‬‬ ‫‪ci zt−i = ۰‬‬ ‫=‬ ‫) ‪(۱ + εw‬‬
‫‪i=۰‬‬
‫‪۲‬‬

‫ﮐﻪ ‪ w‬ﺗﻌﺪاد ﺿﺮاﯾﺐ ﻧﺎﺻﻔﺮ ﭼﻨﺪﺟﻤﻠﻪای ﻣﺸﺨﺼﻪ )ارﺗﺒﺎط( ﺛﺒﺎت ﺧﻄ اﺳﺖ و ‪ ε‬ﺑﺎﯾﺎس ﺑﻬﺘﺮﯾﻦ ﺗﻘﺮﯾﺐ ﺧﻄ ﺗﺎﺑﻊ‬
‫ﻓﯿﻠﺘﺮ اﺳﺖ‪.‬‬
‫اﮔﺮ ‪ Y‬ﻣﺘﻐﯿﺮ ﺗﺼﺎدﻓ ﮐﺎﻣﻼ ﺗﺼﺎدﻓ ﺑﺎﺷﺪ‪ ،‬ﺧﻮاﻫﯿﻢ داﺷﺖ‪:‬‬

‫‪۱‬‬
‫= )‪Pr(Y = ۱) = Pr(Y = ۰‬‬
‫‪۲‬‬
‫ﺑﻨﺎﺑﺮاﯾﻦ ﺑﺎ اﺳﺘﻔﺎده از ﯾ ﻧﻤﻮﻧﻪ ﺑﯿﻦ ‪ X‬و ‪ Y‬ﺑﺎ اﺣﺘﻤﺎل )ﻣﺰﯾﺖ( ‪ εw‬ﻣ ﺗﻮاﻧﯿﻢ ﺗﻤﯿﺰ دﻫﯿﻢ‪.‬‬
‫‪ N = ε۲w‬ﺑﺎﺷﺪ‪ ،‬ﻣﺰﯾﺖ ﺗﻤﺎﯾﺰﮔﺮ ﺑﻪ ﯾ ﻧﺰدﯾ ﻣ ﺷﻮد‪.‬‬ ‫‪۱‬‬
‫اﮔﺮ ﺗﻌﺪاد ﻧﻤﻮﻧﻪﻫﺎ‬

‫ﻣﺜﺎل ‪٩‬‬
‫‪−۳‬‬
‫‪L = ۱۰۰,‬‬ ‫‪w = ۵,‬‬ ‫‪,ε = ۲‬‬
‫‪۱‬‬
‫≃‪N‬‬ ‫‪۲w‬‬
‫‪= ۲۳۰‬‬
‫‪ε‬‬
‫ﺑﺎ ‪ ۲۳۰‬ﻧﻤﻮﻧﻪ ﻣ ﺗﻮان اﯾﻦ رﻣﺰ دﻧﺒﺎﻟﻪای را از رﺷﺘﻪی ﮐﺎﻣﻼ ﺗﺼﺎدﻓ ﺗﻤﯿﺰ داد‪.‬‬

‫در ﺣﺎﻟﺖ ﮐﻠ اﮔﺮ دو ﻋﺒﺎرت زﯾﺮ ﺑﺮﻗﺮار ﺑﺎﺷﻨﺪ‪:‬‬

‫)‪Pr {X = ۰} = p (۱ + ε‬‬ ‫)‪(١‬‬


‫‪Pr {Y = ۰} = p‬‬ ‫)‪(٢‬‬

‫آﻧ ﺎه ﺗﻌﺪاد ﻧﻤﻮﻧﻪﻫﺎی ﻻزم ﺑﺮای ﺗﺸﺨﯿﺺ دو ﻣﺘﻐﯿﺮ ﺗﺼﺎدﻓ ﺑﻪ ﺻﻮرت زﯾﺮ ﺑﻪ دﺳﺖ ﺧﻮاﻫﺪ آﻣﺪ‪:‬‬

‫‪۱‬‬
‫=‪N‬‬
‫‪pε۲‬‬

‫ﺣﻤﻠﻪ ﮐﺸﻒ ﺣﺎﻟﺖ اوﻟﯿﻪ‬ ‫‪٢.٢‬‬


‫در اﯾﻦ ﻧﻮع ﺣﻤﻠﻪ راﺑﻄﻪی ﻣﻮﻟﺪ ﻓﯿﻠﺘﺮی و ﻧﯿﺰ ﺧﺮوﺟ را در اﺧﺘﯿﺎر دارﯾﻢ و ﻣ ﺧﻮاﻫﯿﻢ ﺣﺎﻟﺖ اوﻟﯿﻪی ‪ LFSR‬را ﺑﯿﺎﺑﯿﻢ‪.‬‬
‫ﺑﺮای اﯾﻦ ﮐﺎر از دو روش ﻣ ﺗﻮان اﺳﺘﻔﺎده ﮐﺮد‪:‬‬

‫‪ .١‬روش ﺟﺒﺮی‬

‫‪ .٢‬روش ﻫﻤﺒﺴﺘ‬

‫ﻧﺨﻮاﻫﯿﻢ ﭘﺮداﺧﺖ‪ .‬اﯾﻦ ﻗﺴﻤﺖ را ﻧﯿﺰ ﺑﻪ ﺻﻮرت‬ ‫در اﯾﻨﺠﺎ ﺗﻤﺮﮐﺰ ﻣﺎ ﺑﺮ روی روش ﺟﺒﺮی اﺳﺖ و ﺑﻪ روش ﻫﻤﺒﺴﺘ‬
‫اﺟﻤﺎﻟ در دو ﺑﺨﺶ ﺗﻮاﺑﻊ ﺧﻄ و ﻏﯿﺮﺧﻄ ﺑﺮرﺳ ﻣ ﮐﻨﯿﻢ‪.‬‬

‫‪٩-٧‬‬
‫ﻣﻮﻟﺪ ﻓﯿﻠﺘﺮی ﺑﺎ ﻓﯿﻠﺘﺮ ﺧﻄ‬ ‫‪١.٢.٢‬‬
‫اﮔﺮ ﻓﯿﻠﺘﺮ ﺧﻄ ﺑﺎﺷﺪ‪ ،‬ﻣ ﺗﻮان از روی ‪ L‬ﺑﯿﺖ دﻧﺒﺎﻟﻪ ﺧﺮوﺟ ﻣﻮﻟﺪ‪ L ،‬ﻣﻌﺎدﻟﻪ ﺑﺮ ﺣﺴﺐ ‪ L‬ﻣﺠﻬﻮل ﺣﺎﻟﺖ اوﻟﯿﻪ ﻧﻮﺷﺖ‬
‫و )ﻣﺸﺮوط ﺑﺮ اﯾﻨ ﻪ ﻣﻌﺎدﻻت ﻣﺴﺘﻘﻞ ﺧﻄ ﺑﺎﺷﻨﺪ( ﺑﺎ ﺣﻞ آن ﺣﺎﻟﺖ اوﻟﯿﻪ را ﯾﺎﻓﺖ ‪ .‬در اﯾﻦ ﺣﺎﻟﺖ دﺳﺘ ﺎه ﻣﻌﺎدﻻت ﺑﺎ‬
‫اﺳﺘﻔﺎده از روش ﺣﺬﻓ ﮔﺎوس در ) ‪ O(L۳‬ﺣﻞ ﻣ ﺷﻮد‪.‬‬

‫‪ ٢.٢.٢‬ﻣﻮﻟﺪ ﻓﯿﻠﺘﺮی ﺑﺎ ﻓﯿﻠﺘﺮ ﻏﯿﺮﺧﻄ‬


‫اﮔﺮ ﻓﯿﻠﺘﺮ ﻏﯿﺮﺧﻄ ﺑﺎﺷﺪ ﻣ ﺗﻮان از ﺗ ﻨﯿ ﺧﻄ ﺳﺎزی ‪ ١١‬اﺳﺘﻔﺎده ﮐﺮد‪ .‬ﺑﺪﯾﻦ ﻣﻌﻨ ﮐﻪ ﺑﻪ ﺟﺎی ﻫﺮ ﺟﻤﻠﻪ ﺑﻪ ﺻﻮرت‬
‫‪ Πi∈I si‬ﮐﻪ }‪ I ⊆ {۰, ۱, . . . , L − ۱‬ﯾ ﻣﺘﻐﯿﺮ ﺟﺪﯾﺪ ﺑﻪ ﻧﺎم ‪ yI‬ﻣﻌﺮﻓ ﻣ ﮐﻨﯿﻢ‪ .‬ﺑﻨﺎﺑﺮاﯾﻦ ﻫﺮ ﺑﯿﺖ دﻧﺒﺎﻟﻪ ﺧﺮوﺟ‬
‫ﻣﻮﻟﺪ را ﻣ ﺗﻮان ﺑﻪ ﺻﻮرت ﺗﺮﮐﯿﺒ ﺧﻄ از ﻣﺘﻐﯿﺮﻫﺎی ﺧﻄ ﺳﺎزیﺷﺪه ‪ yI‬ﻧﻮﺷﺖ‪ .‬ﺗﻮﺟﻪ ﮐﻨﯿﺪ ﮐﻪ اﮔﺮ درﺟﻪی ﺗﺎﺑﻊ ﻓﯿﻠﺘﺮ‬
‫ﻏﯿﺮﺧﻄ ‪ d‬ﺑﺎﺷﺪ ﻓﻘﻂ ﻣﺘﻐﯿﺮﻫﺎی ﺧﻄ ﺳﺎزی ﺷﺪه ‪ yI‬ﮐﻪ ‪ |I| ≤ d‬در ﻣﻌﺎدﻻت ﺧﻄ ﺳﺎزیﺷﺪه ﻇﺎﻫﺮ ﺧﻮاﻫﻨﺪ ﺷﺪ‪.‬‬
‫∑‬‫) ( ‪d‬‬
‫ﺧﻮاﻫﺪ ﺑﻮد ﮐﻪ ﺑﺎ اﺳﺘﻔﺎده از روش ﺣﺬﻓ ﮔﺎؤس در زﻣﺎن‬ ‫‪L‬‬
‫‪i‬‬
‫ﺑﻨﺎﺑﺮاﯾﻦ ﺗﻌﺪاد ﻣﺘﻐﯿﺮﻫﺎی ﺧﻄ ﺳﺎزی ﺷﺪه ﺑﺮاﺑﺮ‬
‫‪i=۰‬‬
‫‪( d‬‬ ‫)‬
‫‪∑ (L) ۳‬‬
‫ﻗﺎﺑﻞ ﺣﻞ اﺳﺖ‪.‬‬ ‫‪i‬‬
‫‪i=۰‬‬

‫‪١١‬‬
‫‪linearization‬‬

‫‪٩-٨‬‬
‫ﺑﻪ ﻧﺎم ﺧﺪا‬

‫داﻧﺸ ﺪهی ﻋﻠﻮم رﯾﺎﺿ‬

‫‪ ٢٢‬اﺳﻔﻨﺪ ‪١٣٩١‬‬ ‫ﻣﻘﺪﻣﻪای ﺑﺮ رﻣﺰﻧ ﺎری‬

‫ﺟﻠﺴﻪی ‪ :١٠‬ﻣﻮﻟﺪﻫﺎی رﻣﺰ دﻧﺒﺎﻟﻪای ﻋﻤﻠ‬


‫ﻧ ﺎرﻧﺪه‪ :‬ﺣﺴﯿﻦ اورﻋ‬ ‫ﻣﺪرس‪ :‬دﮐﺘﺮ ﺷﻬﺮام ﺧﺰاﺋ‬

‫اﯾﻦ ﺟﻠﺴﻪ ﺑﻪ ﻣﻌﺮﻓ ﻣﻮﻟﺪﻫﺎی رﻣﺰ دﻧﺒﺎﻟﻪای ﮐﻪ در ﻋﻤﻞ ﻣﻮرد اﺳﺘﻔﺎده ﻗﺮار ﻣ ﮔﯿﺮﻧﺪ اﺧﺘﺼﺎص دارد‪ .‬اﻣﺎ ﻗﺒﻞ از آن ﺣﻤﻠﻪ ﺟﺪﯾﺪی را ﺑﻪ رﻣﺰﻫﺎی‬
‫دﻧﺒﺎﻟﻪای ﺗﻌﺮﯾﻒ ﻣ ﮐﻨﯿﻢ‪:‬‬

‫ﺣﻤﻠﻪ ﺑﺪهﺑﺴﺘﺎن زﻣﺎن‪ ،‬ﺣﺎﻓﻈﻪ و داده‬ ‫‪١‬‬


‫ﻓﺮض ﮐﻨﯿﺪ‪ ،‬ﯾ ﻣﻮﻟﺪ رﻣﺰ دﻧﺒﺎﻟﻪای »ﻧﺴﺒﺘﺎً ﺧﻮب« در اﺧﺘﯿﺎر دارﯾﺪ ﮐﻪ ﺗﻌﺪاد ﺑﯿﺖﻫﺎی ﺣﺎﻟﺖ آن ‪ n‬ﺗﺎﺳﺖ‪ .‬ﺣﺎﻟﺖ اوﻟﯿﻪی ﭼﻨﯿﻦ ﻣﻮﻟﺪی را ﺑﻪ‬
‫ﺻﻮرت »ﺗﻘﺮﯾﺒﺎً ﯾ ﺘﺎ« ﻣ ﺗﻮان از روی ‪ n‬ﺑﯿﺖ ﺧﺮوﺟ در زﻣﺎن ‪ ۲n‬ﺑﺎ اﺳﺘﻔﺎده از ﺟﺴﺘﺠﻮی ﮐﺎﻣﻞ ﺑﻪ دﺳﺖ آورد‪ .‬ﺑﺮای ﺗﻮﺟﯿﻪ اﯾﻦ ﻣﺴﺄﻟﻪ ﺗﻮﺟﻪ‬
‫ﮐﻨﯿﺪ‪ ،‬ﮐﻪ ﺣﺪود ﻧﺼﻒ ﺣﺎﻟﺖﻫﺎ‪ ،‬ﯾﻌﻨ ‪ ۲n−۱‬ﺣﺎﻟﺖ‪ ،‬ﻣ ﺗﻮاﻧﻨﺪ اوﻟﯿﻦ ﺑﯿﺖ ﺧﺮوﺟ دﻧﺒﺎﻟﻪ داده ﺷﺪه را ﺗﻮﻟﯿﺪ ﮐﻨﻨﺪ؛ ﻫﻤﭽﻨﯿﻦ ﺣﺪود ﯾ ﭼﻬﺎرم‬
‫‪ ۲‬ﺣﺎﻟﺖ‪ ،‬ﻣ ﺗﻮاﻧﻨﺪ دو ﺑﯿﺖ اول ﺧﺮوﺟ داده ﺷﺪه را ﺗﻮﻟﯿﺪ ﮐﻨﻨﺪ؛ ﺑﻪ ﻫﻤﯿﻦ ﺗﺮﺗﯿﺐ‪ ،‬ﺑﻪ ازای ﻫﺮ ‪ ،۱ ≤ t ≤ n‬ﺣﺪود ‪۲t‬‬ ‫ﺣﺎﻟﺖﻫﺎ‪ ،‬ﯾﻌﻨ‬
‫‪۱‬‬ ‫‪n−۲‬‬

‫ﺣﺎﻟﺖﻫﺎ‪ ،‬ﯾﻌﻨ ‪ ۲n−t‬ﺣﺎﻟﺖ‪ ،‬ﻣ ﺗﻮاﻧﻨﺪ ‪ t‬ﺑﯿﺖ اول دﻧﺒﺎﻟﻪ ﺧﺮوﺟ داده ﺷﺪه را ﺗﻮﻟﯿﺪ ﮐﻨﻨﺪ‪ .‬ﺑﻪ ﻃﻮر دﻗﯿﻖﺗﺮ‪ ،‬ﺑﻪ ﻃﻮر ﻣﺘﻮﺳﻂ ﯾ ﺣﺎﻟﺖ اوﻟﯿﻪ‬
‫وﺟﻮد دارد ﮐﻪ ﺑﺎ ‪ n‬ﺑﯿﺖ داده ﺷﺪه از دﻧﺒﺎﻟﻪ ﺧﺮوﺟ ﻣﻄﺎﺑﻘﺖ دارد‪.‬‬
‫در ﺣﻤﻠﻪ ﺑﺪهﺑﺴﺘﺎن زﻣﺎن‪ ،‬ﺣﺎﻓﻈﻪ و داده ‪ ١‬ﻣﻬﺎﺟﻢ در دو ﻣﺮﺣﻠﻪ ﻋﻤﻞ ﻣ ﮐﻨﺪ‪ .‬در ﻣﺮﺣﻠﻪ ﭘﯿﺶﭘﺮدازش‪ ،‬در زﻣﺎن ‪ ۲n/۲‬اﻃﻼﻋﺎﺗ را ﻣﺤﺎﺳﺒﻪ و در‬
‫ﯾ ﺣﺎﻓﻈﻪ )ﺟﺪول( ﺑﻪ اﻧﺪازه ‪ ۲n/۲‬ذﺧﯿﺮه ﻣ ﻧﻤﺎﯾﺪ‪ .‬ﺳﭙﺲ در ﻣﺮﺣﻠﻪ دوم‪ ،‬ﺑﺎ در دﺳﺖ داﺷﺘﻦ ﺣﺪود ‪ ۲n/۲‬ﺑﯿﺖ ﺧﺮوﺟ از ﻣﻮﻟﺪ‪ ،‬ﺣﺎﻟﺖ اوﻟﯿﻪ‬
‫ﻣﻮﻟﺪ را در زﻣﺎن ﺳﺮﯾﻊﺗﺮ ‪ ۲n/۲‬ﺑﻪ دﺳﺖ ﻣ آورد‪ .‬ﺑﻪ ﻃﻮر دﻗﯿﻖﺗﺮ ﺗﺎﺑﻊ ‪ f : {۰, ۱}n → {۰, ۱}n‬را در ﻧﻈﺮ ﺑ ﯿﺮﯾﺪ ﮐﻪ ‪ n‬ﺑﯿﺖ ﺣﺎﻟﺖ اوﻟﯿﻪ‬
‫را ﺑﻪ ‪ n‬ﺑﯿﺖ اول از دﻧﺒﺎﻟﻪ ﺧﺮوﺟ ﻣﻮﻟﺪ ﻣ ﻧ ﺎرد‪ .‬ﻓﺮض ﮐﻨﯿﺪ ﻣﻬﺎﺟﻢ ‪ D = ۲n/۲ + n − ۱‬ﺑﯿﺖ از دﻧﺒﺎﻟﻪ ﺧﺮوﺟ ﺑﻪ ﺻﻮرت ‪z۱ , · · · , zD‬‬
‫ﻣﺸﺎﻫﺪه ﮐﺮده اﺳﺖ‪ .‬ﻣﻌﺎدﻻ ﻣ ﺗﻮان ﺗﺼﻮر ﮐﺮد ﮐﻪ ﻣﻬﺎﺟﻢ ‪ ۲n/۲‬ﻧﻘﻄﻪ ﺧﺮوﺟ از ﺗﺎﺑﻊ ‪ f‬ﺑﻪ ﺻﻮرت ) ‪zi = (zi , zi+۱ , · · · , zi+n−۱‬‬
‫ﺑﺮای ‪ i = ۱, ۲, · · · , ۲n/۲‬در اﺧﺘﯿﺎر دارد‪ .‬ﻫﺪف ﻣﻬﺎﺟﻢ ﻣﻌ ﻮس ﮐﺮدن ﺗﺎﺑﻊ ‪ f‬در ﯾ از ﻧﻘﺎط ﺧﺮوﺟ ﻣﺸﺎﻫﺪه ﺷﺪه اﺳﺖ‪ .‬ﺑﻪ ﻋﺒﺎرت‬
‫دﯾ ﺮ‪ ،‬اﮔﺮ ﻣﻬﺎﺟﻢ ﺑﺘﻮاﻧﺪ ﯾ ﺣﺎﻟﺖ ) ‪ s = (s۱ , s۲ , · · · , sn‬ﭘﯿﺪا ﮐﻨﺪ ﮐﻪ )‪ zi = f (s‬ﻣﻮﻓﻖ ﺑﻪ ﺷ ﺴﺘﻦ رﻣﺰ دﻧﺒﺎﻟﻪای ﺷﺪه اﺳﺖ‪ .‬ﺑﺮای اﯾﻦ‬
‫ﻣﻨﻈﻮر ﻣﻬﺎﺟﻢ در ﻓﺎز ﭘﯿﺶﭘﺮدازش‪ ،‬ﺑﻪ ﺻﻮرت زﯾﺮ ﻋﻤﻞ ﻣ ﮐﻨﺪ‪:‬‬
‫• ﺑﻪ ﺗﻌﺪاد ‪ M = ۲n/۲‬ﺣﺎﻟﺖ اوﻟﯿﻪ ﺗﺼﺎدﻓ ‪ x۱ , · · · , xM‬اﻧﺘﺨﺎب ﮐﻦ‪.‬‬
‫• ﻣﻘﺎﯾﺮ ) ‪ yi = f (xi‬را ﻣﺤﺎﺳﺒﻪ ﮐﻦ )ﯾﻌﻨ ‪ ،‬ﺣﺎﻟﺖ اوﻟﯿﻪ ‪ xi‬را در ﻣﻮﻟﺪ ﻗﺮار ﺑﺪه و ‪ n‬ﺑﯿﺖ اول آن ‪ yi‬را ﺑﻪدﺳﺖ آور‪(.‬‬
‫ﺟﺪول ذﺧﯿﺮه ﮐﻦ‪.‬‬ ‫• زوجﻫﺎی ) ‪ (yi , xi‬را ﺑﻪ ﺻﻮرت ﻣﺮﺗﺐ ﺑﺮﺣﺴﺐ ﻣﺆﻟﻔﻪ اول در ﯾ‬
‫ﺑﺮای اﻋﻤﺎل ﺣﻤﻠﻪ‪ ،‬در ﻣﺮﺣﻠﻪ دوم ﻣﻬﺎﺟﻢ ﺑﺎ ﻣﺸﺎﻫﺪه دﻧﺒﺎﻟﻪی ﺧﺮوﺟ ‪ z۱ , · · · , zD‬از ﻣﻮﻟﺪ ﺑﻪ ﺻﻮرت زﯾﺮ ﻋﻤﻞ ﻣ ﮐﻨﺪ‪:‬‬
‫• ﻧﻘﺎط ﺧﺮوﺟ ) ‪ zi = (zi , zi+۱ , · · · , zi+n−۱‬را ﺗﺸ ﯿﻞ ﺑﺪه‪.‬‬
‫• ﺑﻪ ازای ‪ i = ۱, ۲, · · · , ۲n/۲‬اﮔﺮ زوﺟ در ﺟﺪول ذﺧﯿﺮه ﺷﺪه ﺑﺎ ﻣﺆﻟﻔﻪی اول ‪ zi‬وﺟﻮد دارد‪ ،‬ﻣﺆﻟﻔﻪ دوم آن را ﺑﺮﮔﺮدان‪.‬‬
‫√‬
‫ﺗﻨﺎﻗﺾ روز ﺗﻮﻟﺪ ﺑﯿﺎن ﻣ ﮐﻨﺪ اﮔﺮ از ﻣﺠﻤﻮﻋﻪای ﺷﺎﻣﻞ ‪ N‬ﻋﻀﻮ‪ N ،‬ﻋﻀﻮ ﺑﻪ ﺗﺼﺎدف و ﺑﺎ ﺟﺎﯾ ﺰﯾﻨ اﻧﺘﺨﺎب ﺷﻮﻧﺪ‪ ،‬اﺣﺘﻤﺎل ﻣﺸﺎﻫﺪه ﻋﻀﻮ‬
‫ﺗ ﺮاری ﻗﺎﺑﻞ ﺗﻮﺟﻪ )ﺣﺪود ‪ (۱/۲‬اﺳﺖ‪ .‬ﻗﻀﯿﻪ زﯾﺮ‪ ،‬ﺑﯿﺎن دﯾ ﺮی از ﺗﻨﺎﻗﺾ روز ﺗﻮﻟﺪ اﺳﺖ ﮐﻪ ﻣﻮﻓﻘﯿﺖ ﻣﻬﺎﺟﻢ را ﺗﻀﻤﯿﻦ ﻣ ﮐﻨﺪ‪.‬‬
‫ﻗﻀﯿﻪ ‪) ١‬روز ﺗﻮﻟﺪ( ﻓﺮض ﮐﻨﯿﺪ از ﺑﯿﻦ ﮔﺮداﯾﻪای ‪ N‬ﻋﻀﻮی‪ ،‬دو ﻟﯿﺴﺖ ‪ N۱‬و ‪ N۲‬ﻋﻀﻮی ﺑﻪ ﺗﺼﺎدف اﻧﺘﺨﺎب ﻣ ﮐﻨﯿﻢ ﮐﻪ ﻟﯿﺴﺖﻫﺎ ﻣ ﺗﻮاﻧﻨﺪ‬
‫√ اﯾﻦ ﺻﻮرت اﮔﺮ ‪ N۱ · N۲ = N‬آﻧ ﺎه ﺑﺎ اﺣﺘﻤﺎل ﺣﺪود ‪ ۱/۲‬ﺣﺪاﻗﻞ ﯾ ﻋﻀﻮ ﻣﺸﺘﺮک در دو ﻟﯿﺴﺖ وﺟﻮد‬ ‫دارای ﻋﻀﻮ ﺗ ﺮاری ﺑﺎﺷﻨﺪ‪ .‬در‬
‫دارد‪ .‬ﺑﻪ ﻃﻮر ﺧﺎص‪ ،‬اﮔﺮ ‪ N۱ = N۲ = N‬اﯾﻦ واﻗﻌﻪ ﺑﺎ اﺣﺘﻤﺎل ﻗﺎﺑﻞ ﺗﻮﺟﻪ ﺣﺪود ‪ ۱/۲‬رخ ﻣ دﻫﺪ‪.‬‬
‫‪١ Time-Memory-Data-Tradeoff‬‬

‫‪١٠-١‬‬
‫ﻣﻮﻟﺪﻫﺎی رﻣﺰ دﻧﺒﺎﻟﻪای ﻣﻌﺮوف‬ ‫‪٢‬‬
‫در اداﻣﻪ ﺑﻪ ﻣﻌﺮﻓ رﻣﺰﻫﺎی دﻧﺒﺎﻟﻪای ﮐﻪ در ﻋﻤﻞ ﻣﻮرد اﺳﺘﻔﺎده ﻗﺮار ﻣ ﮔﯿﺮﻧﺪ ﺧﻮاﻫﯿﻢ ﭘﺮداﺧﺖ‪ .‬اﯾﻦ رﻣﺰﻫﺎی دﻧﺒﺎﻟﻪای ﺑﻪ ﻫﻤﺮاه ﺑﺮﺧ از‬
‫ﻣﺸﺨﺼﺎت آنﻫﺎ در ﺟﺪول ‪ ١‬آﻣﺪه اﺳﺖ‪.‬‬

‫ﺟﺪول ‪ :١‬ﺟﺪول ﻣﻘﺎﯾﺴﻪ رﻣﺰﻫﺎی دﻧﺒﺎﻟﻪای ﻋﻤﻠ‬


‫ﻣﻮرد اﺳﺘﻔﺎده‬ ‫ﺗﻌﺪاد ﺑﯿﺖ ﺣﺎﻟﺖ‬ ‫ﻃﻮل ‪IV‬‬ ‫ﻃﻮل ﮐﻠﯿﺪ‬ ‫ﻧﺎم رﻣﺰ دﻧﺒﺎﻟﻪای‬
‫ﺗﺄﻣﯿﻦ اﻣﻨﯿﺖ در ﻣ ﺎﻟﻤﺎت ﺗﻠﻔﻦ ﻫﻤﺮاه‬ ‫‪۶۴‬‬ ‫‪ ۲۲‬ﺑﯿﺖ‬ ‫‪ ۶۴‬ﺑﯿﺖ‬ ‫‪A5/1‬‬
‫ﺗﺄﻣﯿﻦ اﻣﻨﯿﺖ در ﻣ ﺎﻟﻤﺎت ﺗﻠﻔﻦ ﻫﻤﺮاه‬ ‫‪۸۱‬‬ ‫‪ ۲۲‬ﺑﯿﺖ‬ ‫‪ ۶۴‬ﺑﯿﺖ‬ ‫‪A5/2‬‬
‫رﻣﺰ ﮐﺮدن ارﺗﺒﺎﻃﺎت در ﺑﻠﻮﺗﻮث‬ ‫‪۱۳۲‬‬ ‫‪−‬‬ ‫‪ ۱۲۸‬ﺑﯿﺖ‬ ‫‪E۰‬‬
‫ﭘﺮوﺗ ﻞﻫﺎی اﻣﻨﯿﺘ در اﯾﻨﺘﺮﻧﺖ‬ ‫‪۲۰۶۴‬‬ ‫‪−‬‬ ‫ﻣﺘﻐﯿﺮ ﺑﯿﻦ ‪ ۸‬ﺗﺎ ‪ ۲۰۴۸‬ﺑﯿﺖ‬ ‫‪RC4‬‬
‫ﺳﺨﺖاﻓﺰاری‬ ‫‪۲۸۸‬‬ ‫‪ ۸۰‬ﺑﯿﺖ‬ ‫‪ ۸۰‬ﺑﯿﺖ‬ ‫‪Trivium‬‬
‫ﻣﺤﯿﻂﻫﺎی ﺳﺨﺖاﻓﺰاری دارای ﻣﺤﺪودﯾﺖ‬ ‫‪۱۶۰‬‬ ‫‪ ۶۴‬ﺑﯿﺖ‬ ‫‪ ۸۰‬ﺑﯿﺖ‬ ‫‪Grain v1‬‬

‫‪A5/1‬‬ ‫‪٣‬‬
‫ﻣﻮﻟﺪ رﻣﺰ دﻧﺒﺎﻟﻪای ‪ A5/1‬ﺑﺮای رﻣﺰ ﮐﺮدن ارﺗﺒﺎﻃﺎت در اﺳﺘﺎﻧﺪارد ‪ ٢ GSM‬اﺳﺘﻔﺎده ﻣ ﺷﻮد‪ .‬اﯾﻦ ﻣﻮﻟﺪ از ﺳﻪ ﺛﺒﺎت ﺧﻄ ‪ ٣‬ﺑﻪ ﻧﺎمﻫﺎی ‪،R۱‬‬
‫‪ R۲‬و ‪ R۳‬ﺑﻪ ﻃﻮلﻫﺎی ‪ ۲۲ ،۱۹‬و ‪ ۲۳‬ﺗﺸ ﯿﻞ ﺷﺪه اﺳﺖ ﮐﻪ ﭼﻨﺪﺟﻤﻠﻪایﻫﺎی ﻣﺸﺨﺼﻪ آنﻫﺎ ﺑﻪ ﺗﺮﺗﯿﺐ ‪،۱ + x + x۲ + x۵ + x۱۹‬‬
‫‪ ۱ + x + x۲۲‬و ‪ ۱ + x + x۲ + x۱۵ + x۲۳‬ﻣ ﺑﺎﺷﻨﺪ‪ .‬ﺣﺎﻟﺖ اوﻟﯿﻪ اﯾﻦ ﻣﻮﻟﺪ ﺑﻪ ‪ ۶۴‬ﺑﯿﺖ ﮐﻠﯿﺪ ﻣﺤﺮﻣﺎﻧﻪ ‪ ۴‬و ‪ ۲۲‬ﺑﯿﺖ ﺷﻤﺎره ﻗﺎب ‪ ۵‬ﮐﻪ‬
‫ﺑﻪ ﻋﻨﻮان ﻣﻘﺪار اوﻟﯿﻪ ‪ (IV) ۶‬اﺳﺘﻔﺎده ﻣ ﺷﻮد واﺑﺴﺘﻪ اﺳﺖ‪.‬‬
‫در اﯾﻨﺠﺎ ‪-i‬ﻣﯿﻦ ﺑﯿﺖ ﮐﻠﯿﺪ ﻣﺤﺮﻣﺎﻧﻪ را ﺑﺎ ‪-i ،Ki‬ﻣﯿﻦ ﺑﯿﺖ از ﺳﻤﺖ ﭼﭗ از ‪-j‬ﻣﯿﻦ ﺛﺒﺎت ﺧﻄ را ﺑﺎ ]‪ Rj [i − ۱‬و ‪-i‬ﻣﯿﻦ ﺑﯿﺖ از ﻣﻘﺪار اوﻟﯿﻪ‬
‫را ﺑﺎ ‪ IVi‬ﻧﺸﺎن ﻣ دﻫﯿﻢ‪.‬‬

‫ﺗﺎﺑﻊ اﻧﺘﻘﺎل ﺣﺎﻟﺖ‬ ‫‪١.٣‬‬


‫در رﻣﺰ دﻧﺒﺎﻟﻪای ‪ A5/1‬ﺛﺒﺎتﻫﺎ ﻧﺤﻮه اﻧﺘﻘﺎل )ﮐﻼک ﺧﻮردن( ﺧﻮد را ﺗﻌﯿﯿﻦ ﻣ ﮐﻨﻨﺪ‪ .‬ﺑﺪﯾﻦﺗﺮﺗﯿﺐ اﻧﺘﻘﺎل ﺛﺒﺎتﻫﺎ ﺑﻪ ﻃﻮر ﻧﺎﻣﻨﻈﻢ اﻧﺠﺎم ﻣ ﺷﻮد‪.‬‬
‫ﺑﻪ ﻃﻮر دﻗﯿﻖﺗﺮ‪ ،‬ﺗﺎﺑﻊ اﻧﺘﻘﺎل ﺣﺎﻟﺖ ‪ ،٧‬ﺛﺒﺎتﻫﺎ را ﺑﻪ ﺻﻮرت زﯾﺮ ﺑﻪروز رﺳﺎﻧ ﻣ ﮐﻨﺪ‪:‬‬

‫• ﺑﯿﺖﻫﺎی ]‪ R۲ [۱۰] ،R۱ [۸‬و ]‪ R۳ [۱۰‬وارد ﺗﺎﺑﻊ ﻣﺪ ‪ ٨‬ﻣ ﺷﻮﻧﺪ ﮐﻪ ﻣﺪ ‪) ٩‬اﮐﺜﺮﯾﺖ( آنﻫﺎ را ﻣ دﻫﺪ‪.‬‬

‫• ﺳﭙﺲ‪ ،‬ﻫﺮ ﮐﺪام از ﺛﺒﺎتﻫﺎی ﺧﻄ ﮐﻼک ﻣ ﺧﻮرﻧﺪ اﮔﺮ و ﺗﻨﻬﺎ اﮔﺮ ﺑﯿﺖ ورودیﺷﺎن ﺑﻪ ﺗﺎﺑﻊ ﻣﺪ‪ ،‬ﻣﺴﺎوی ﺧﺮوﺟ ﺗﺎﺑﻊ ﻣﺪ ﺑﺎﺷﺪ‪.‬‬
‫ﻓﺮم ﻧﺮﻣﺎل ﺟﺒﺮی ﺗﺎﺑﻊ ﻣﺪ ﺑﻪ ﺻﻮرت زﯾﺮ اﺳﺖ‪:‬‬

‫‪mahority(x۱ , x۲ , x۳ ) = x۱ x۲ + x۱ x۳ + x۲ x۳‬‬

‫اﻟ ﻮرﯾﺘﻢ ﺑﺎرﮔﺬاری ﮐﻠﯿﺪ و ﻣﻘﺪار اوﻟﯿﻪ‬ ‫‪٢.٣‬‬


‫در اﯾﻦ ﻣﺮﺣﻠﻪ ﺑﺎ ﺗﻮﺟﻪ ﺑﻪ اﻟ ﻮرﯾﺘﻢ ﺑﺎرﮔﺬاری ﮐﻠﯿﺪ و ﻣﻘﺪار اوﻟﯿﻪ ‪) ١٠‬اﻟ ﻮرﯾﺘﻢ ‪ (١‬ﻫﺮ ﺳﻪ ﺛﺒﺎت ﺧﻄ ﻣﻘﺪاردﻫ اوﻟﯿﻪ ﻣ ﺷﻮﻧﺪ‪ .‬ﻻزم ﺑﻪ ذﮐﺮ‬
‫اﺳﺖ ﮐﻪ در اﺑﺘﺪا )ﻗﺒﻞ از ﺷﺮوع ﻣﺮﺣﻠﻪ اول( ﻫﺮ ﺳﻪ ﺛﺒﺎت ﺧﻄ ﻣﻘﺪار اوﻟﯿﻪ ﺻﻔﺮ دارﻧﺪ‪.‬‬
‫‪٢ Global‬‬ ‫‪System for Mobile Communications‬‬
‫‪٣ Linear‬‬ ‫)‪Feedback Shift Register (LFSR‬‬
‫‪۴ Secret Key‬‬
‫‪۵ Frame Number‬‬
‫)‪۶ Initial Value (IV‬‬
‫‪٧ update state function‬‬
‫‪٨ majoriry‬‬
‫‪٩ majoriry‬‬
‫‪١٠ Key-IV Setup‬‬

‫‪١٠-٢‬‬
‫‪Algorithm 1 : The key-IV setup of A5/1‬‬
‫‪for i = 1 to 64 do‬‬
‫]‪R1 [0] ← Ki ⊕ R1 [0‬‬
‫]‪R2 [0] ← Ki ⊕ R2 [0‬‬
‫]‪R3 [0] ← Ki ⊕ R3 [0‬‬
‫‪clock all 3 LFSRs‬‬
‫‪for i = 65 to 86 do‬‬
‫]‪R1 [0] ← IVi−64 ⊕ R1 [0‬‬
‫]‪R2 [0] ← IVi−64 ⊕ R2 [0‬‬
‫]‪R3 [0] ← IVi−64 ⊕ R3 [0‬‬
‫‪clock all 3 LFSRs‬‬
‫‪for i = 1 to 99 do‬‬
‫‪Apply update state function‬‬

‫‪ ٣.٣‬اﻟ ﻮرﯾﺘﻢ ﺗﻮﻟﯿﺪ ﮐﻠﯿﺪ اﺟﺮاﯾ‬


‫ﻣﺮﺣﻠﻪ دوم ‪ A5/1‬ﮐﻪ اﻟ ﻮرﯾﺘﻢ ﺗﻮﻟﯿﺪ ﮐﻠﯿﺪ اﺟﺮاﯾ ‪ ١١‬ﻧﺎم دارد و در ﺷ ﻞ ‪ ١‬ﻧﺸﺎن داده ﺷﺪه اﺳﺖ‪ ،‬ﺑﻪ ﺻﻮرت زﯾﺮ اﺟﺮا ﻣ ﺷﻮد‪:‬‬
‫• ﺣﺎﻟﺖ دروﻧ ﺛﺒﺎتﻫﺎ ﺑﺎ اﺳﺘﻔﺎده از ﺗﺎﺑﻊ اﻧﺘﻘﺎل ﺣﺎﻻ ﺑﻪروز رﺳﺎﻧ ﻣ ﺷﻮد‪.‬‬

‫ﺑﯿﺖ ﺧﺮوﺟ ﺗﻮﻟﯿﺪ ﻣ ﺷﻮد‪.‬‬ ‫• ﺧﺮوﺟ ﻫﺮ ﺳﻪ ﺛﺒﺎت ﺧﻄ ﺑﺎ ﻫﻢ ‪ xor‬ﻣ ﺷﻮﻧﺪ و ﯾ‬

‫ﺷ ﻞ ‪ :١‬ﻣﺮﺣﻠﻪ دوم ‪A5/1‬‬

‫ﻣﻌﺎدﻻ ﻣ ﺗﻮان ﮔﻔﺖ ﮐﻪ ﭘﺲ از اﯾﻨ ﻪ ‪ ۸۶‬ﺑﯿﺖ ﮐﻠﯿﺪ و ﻣﻘﺪار اوﻟﯿﻪ ﺑﻪ ﺻﻮرت ﺧﻄ وارد ﺛﺒﺎتﻫﺎ ﻣ ﺷﻮﻧﺪ )دو ﺣﻠﻘﻪ اول ‪ for‬اﻟ ﻮرﯾﺘﻢ ‪،(١‬‬
‫اﻟ ﻮرﯾﺘﻢ ﺗﻮﻟﯿﺪ ﮐﻠﯿﺪ اﺟﺮاﯾ ‪ ۳۲۸‬ﺑﯿﺖ ﺗﻮﻟﯿﺪ ﻣ ﮐﻨﺪ ﮐﻪ ‪ ۱۰۰‬ﺑﯿﺖ اول دور اﻧﺪاﺧﺘﻪ ﻣ ﺷﻮﻧﺪ و ‪ ۲۲۸‬ﺑﯿﺖ ﺑﻌﺪ‪ ،‬دﻧﺒﺎﻟﻪ ﮐﻠﯿﺪ اﺟﺮاﯾ را‬
‫ﺗﺸ ﯿﻞ ﻣ دﻫﻨﺪ‪.‬‬

‫‪ ۴.٣‬ﺗﺤﻠﯿﻞ ‪A5/1‬‬
‫ﺣﻤﻠﻪ ﺟﺴﺘﺠﻮی ﮐﺎﻣﻞ ﻋﻠﯿﻪ ‪ A5/1‬ﺑﺎ در دﺳﺖ داﺷﺘﻦ ‪ ۶۴‬ﺑﯿﺖ از دﻧﺒﺎﻟﻪ ﺧﺮوﺟ ‪ ،‬ﻣ ﺗﻮاﻧﺪ ﺣﺎﻟﺖ اوﻟﯿﻪ ﻣﻮﻟﺪ را در زﻣﺎن ‪ ۲۶۴‬ﺑﻪ دﺳﺖ آورد‪.‬‬
‫ﺑﺎ اﺳﺘﻔﺎده از ﺣﻤﻠﻪ ﺣﺪس و ﺗﻌﯿﯿﻦ ‪ ١٢‬ﻣ ﺗﻮان ﺣﺎﻟﺖ دروﻧ ﻣﻮﻟﺪ را ﺑﺎ ﺣﺪس ﺣﺪود ‪ ۴١‬ﺑﯿﺖ )ﻫﺮ ﺑﯿﺖ ﺑﯿﺎﻧ ﺮ ﯾ راﺑﻄﻪ ﺧﻄ روی ﺣﺎﻟﺖ‬
‫‪١١ Running‬‬ ‫‪Key Generator Algorithm‬‬
‫‪١٢ guess-and-determine‬‬

‫‪١٠-٣‬‬
‫دروﻧ ﻣﻮﻟﺪ اﺳﺖ( ﺑﻪ دﺳﺖ آورد‪ .‬ﺣﻤﻠﻪ ﺑﺪهﺑﺴﺘﺎن ﺣﺎﻓﻈﻪ زﻣﺎن‪ ،‬داده اﯾﻦ ﮐﺎر را در زﻣﺎن ‪ ۲۳۲‬اﻧﺠﺎم ﻣ دﻫﺪ اﻣﺎ ﺑﻪ ﻫﻤﺎن ﻣﯿﺰان ﺣﺎﻓﻈﻪ و داده‬
‫)ﺑﯿﺖ ﺧﺮوﺟ ( ﻧﯿﺎز دارد‪.‬‬

‫‪A5/2‬‬ ‫‪۴‬‬
‫در اﯾﻨﺠﺎ ﺑﻪ ﻣﻌﺮﻓ ﻣﻮﻟﺪ رﻣﺰ دﻧﺒﺎﻟﻪای ‪ A5/2‬ﻣ ﭘﺮدازﯾﻢ‪ .‬اﯾﻦ ﻣﻮﻟﺪ‪ ،‬ﻧﺴﺒﺖ ﺑﻪ ﻣﻮﻟﺪ ‪ ،A5/1‬ﯾ ﺛﺒﺎت ﺧﻄ دﯾ ﺮ ﻫﻢ ﺑﻪ ﻧﺎم ‪ R۴‬دارد ‪ ،‬ﮐﻪ‬
‫ﭼﻨﺪﺟﻤﻠﻪای ﻣﺸﺨﺼﻪ آن ﻋﺒﺎرت اﺳﺖ از‪ .۱ + x۵ + x۱۷ :‬در اﯾﻨﺠﺎ ﻧﯿﺰ ﻣﺎﻧﻨﺪ ‪ ،A5/1‬ﻣﻘﺪار دﻫ اوﻟﯿﻪ ﺗﻮﺳﻂ ‪ ۶۴‬ﺑﯿﺖ ﮐﻠﯿﺪ ﻣﺤﺮﻣﺎﻧﻪ و‬
‫ﻫﻤﭽﻨﯿﻦ ‪ ۲۲‬ﺑﯿﺖ ﺷﻤﺎره ﻗﺎب ﮐﻪ ﺑﻪ ﻋﻨﻮان ﻣﻘﺪار اوﻟﯿﻪ اﺳﺘﻔﺎده ﻣ ﺷﻮد اﻧﺠﺎم ﻣ ﮔﯿﺮد‪.‬‬
‫ﻣﺎﻧﻨﺪ ﻗﺴﻤﺖ ﻗﺒﻞ ‪-i‬ﻣﯿﻦ ﺑﯿﺖ ﮐﻠﯿﺪ ﻣﺤﺮﻣﺎﻧﻪ را ﺑﺎ ‪-i ،Ki‬ﻣﯿﻦ ﺑﯿﺖ از ﺳﻤﺖ ﭼﭗ از ‪-j‬ﻣﯿﻦ ﺛﺒﺎت ﺧﻄ را ﺑﺎ ]‪ Rj [i − ۱‬و ‪-i‬ﻣﯿﻦ ﺑﯿﺖ از‬
‫ﮐﻠﯿﺪ آﺷ ﺎر را ﺑﺎ ‪ IVi‬ﻧﺸﺎن ﻣ دﻫﯿﻢ‪.‬‬

‫ﺗﺎﺑﻊ اﻧﺘﻘﺎل ﺣﺎﻟﺖ‬ ‫‪١.۴‬‬


‫در رﻣﺰ دﻧﺒﺎﻟﻪای ‪ A5/2‬ﺛﺒﺎت ﭼﻬﺎرم ﻫﻤﻮاره ﺑﻪ ﺻﻮرت ﻣﻨﻈﻢ اﻧﺘﻘﺎل ﻣ ﯾﺎﺑﺪ‪ .‬اﻣﺎ ﻧﺤﻮه اﻧﺘﻘﺎل ﺳﻪ ﺛﺒﺎت دﯾ ﺮ ﺗﻮﺳﻂ ﺛﺒﺎت ﭼﻬﺎرم ﺗﻌﯿﯿﻦ ﻣ ﺷﻮد‪.‬‬
‫ﺑﺪﯾﻦﺗﺮﺗﯿﺐ اﻧﺘﻘﺎل ﺛﺒﺎتﻫﺎ ﺑﺎز ﻫﻢ ﻧﺎﻣﻨﻈﻢ اﺳﺖ‪ .‬ﺑﻪ ﻃﻮر دﻗﯿﻖﺗﺮ‪ ،‬ﺗﺎﺑﻊ اﻧﺘﻘﺎل ﺣﺎﻟﺖ‪ ،‬ﺛﺒﺎتﻫﺎ را ﺑﻪ ﺻﻮرت زﯾﺮ ﺑﻪروز رﺳﺎﻧ ﻣ ﮐﻨﺪ‪:‬‬
‫ﺗﺎﺑﻊ ﻣﺪ ﻣ ﺷﻮﻧﺪ و ﻣﺪ ‪ ١٣‬آنﻫﺎ ﻣﺤﺎﺳﺒﻪ ﻣ ﺷﻮد‪.‬‬ ‫• ﺑﯿﺖﻫﺎی ]‪ R۴ [۷] ،R۴ [۳‬و ]‪ R۴ [۱۰‬وارد ﯾ‬

‫• ﺛﺒﺎت ‪ R۱‬ﮐﻼک ﻣ ﺧﻮرد اﮔﺮوﺗﻨﻬﺎاﮔﺮ ]‪ R۴ [۱۰‬ﻣﺴﺎوی ﺧﺮوﺟ ﺗﺎﺑﻊ ﻣﺪ ﺑﺎﺷﺪ‪.‬‬

‫• ﺛﺒﺎت ‪ R۲‬ﮐﻼک ﻣ ﺧﻮرد اﮔﺮوﺗﻨﻬﺎاﮔﺮ ]‪ R۴ [۳‬ﻣﺴﺎوی ﺧﺮوﺟ ﺗﺎﺑﻊ ﻣﺪ ﺑﺎﺷﺪ‪.‬‬

‫• ﺛﺒﺎت ‪ R۳‬ﮐﻼک ﻣ ﺧﻮرد اﮔﺮوﺗﻨﻬﺎاﮔﺮ ]‪ R۴ [۷‬ﻣﺴﺎوی ﺧﺮوﺟ ﺗﺎﺑﻊ ﻣﺪ ﺑﺎﺷﺪ‪.‬‬


‫• ﺳﭙﺲ ‪ R۴‬ﮐﻼک ﻣ ﺧﻮرد‪.‬‬

‫اﻟ ﻮرﯾﺘﻢ ﺑﺎرﮔﺬاری ﮐﻠﯿﺪ و ﻣﻘﺪار اوﻟﯿﻪ‬ ‫‪٢.۴‬‬


‫اﺑﺘﺪا ﻫﺮ ﭼﻬﺎر ﺛﺒﺎت ﺧﻄ ﻣﻘﺪار اوﻟﯿﻪ ﺻﻔﺮ دارﻧﺪ‪ .‬در ﻣﺮﺣﻠﻪ اول ﻃﺒﻖ اﻟ ﻮرﯾﺘﻢ ﺑﺎرﮔﺬاری ﮐﻠﯿﺪ و ﻣﻘﺪار اوﻟﯿﻪ )اﻟ ﻮرﯾﺘﻢ ‪ (٢‬ﻫﺮ ﭼﻬﺎر ﺛﺒﺎت‬
‫ﺧﻄ ﻣﻘﺪاردﻫ اوﻟﯿﻪ ﻣ ﺷﻮﻧﺪ‪.‬‬

‫‪Algorithm 2 : The key-IV setup of A5/2‬‬


‫‪for i = 0 to 63 do‬‬
‫]‪R1 [0] ← Ki ⊕ R1 [0‬‬
‫]‪R2 [0] ← Ki ⊕ R2 [0‬‬
‫]‪R3 [0] ← Ki ⊕ R3 [0‬‬
‫]‪R4 [0] ← Ki ⊕ R4 [0‬‬
‫‪clock all 4 LFSRs‬‬
‫‪for i = 0 to 21 do‬‬
‫]‪R1 [0] ← IVi ⊕ R1 [0‬‬
‫]‪R2 [0] ← IVi ⊕ R2 [0‬‬
‫]‪R3 [0] ← IVi ⊕ R3 [0‬‬
‫]‪R4 [0] ← IVi ⊕ R4 [0‬‬
‫‪clock all 4 LFSRs‬‬
‫‪Set R1 [18], R2 [16], R3 [15], R4 [10] to 1‬‬
‫‪for i = 1 to 99 do‬‬
‫‪Apply update state function‬‬

‫ﺑﯿﺖ از ﻫﺮ ﺛﺒﺎت ﺑﺮاﺑﺮ ‪ ۱‬ﻗﺮار داده‬ ‫ﻧﺤﻮه ﺑﺎرﮔﺬاری ﻣﺸﺎﺑﻪ ‪ A5/1‬اﺳﺖ‪ .‬ﺗﻔﺎوت ﻗﺎﺑﻞ ﺗﻮﺟﻪ اﯾﻦ اﺳﺖ ﮐﻪ ﻗﺒﻞ از اﻧﺘﻘﺎل ﻧﺎﻣﻨﻈﻢ ﺛﺒﺎتﻫﺎ ﯾ‬
‫ﻣ ﺷﻮد ﮐﻪ ﺑﻪ وﺿﻮح ﺑﺎﻋﺚ ﮐﺎﻫﺶ اﻣﻨﯿﺖ ﻣ ﺷﻮد‪.‬‬
‫‪١٣ majoriry‬‬

‫‪١٠-۴‬‬
‫‪ ٣.۴‬اﻟ ﻮرﯾﺘﻢ ﺗﻮﻟﯿﺪ ﮐﻠﯿﺪ اﺟﺮاﯾ‬
‫ﺑﯿﺖ ﺧﺮوﺟ‬ ‫ﻣﺸﺎﺑﻪ ‪ A5/1‬ﺑﺮای ﺗﻮﻟﯿﺪ ﯾ ﺑﯿﺖ از دﻧﺒﺎﻟﻪ ﮐﻠﯿﺪ اﺟﺮاﯾ ‪ ،‬اﺑﺘﺪا ﺛﺒﺎتﻫﺎ ﺑﻪروزرﺳﺎﻧ ﻣ ﺷﻮﻧﺪ ﺳﭙﺲ ﺑﺎ اﻋﻤﺎل ﯾ ﺗﺎﺑﻊ ﻓﯿﻠﺘﺮ‪ ،‬ﯾ‬
‫ﺗﻮﻟﯿﺪ ﻣ ﺷﻮد‪ .‬ﺑﺮﻋ ﺲ ‪ ،A5/1‬ﺗﺎﺑﻊ ﻓﯿﻠﺘﺮ دﯾ ﺮ ﺧﻄ ﻧﯿﺴﺖ؛ ﺑﻠ ﻪ ﯾ ﺗﺎﺑﻊ درﺟﻪ ‪ ٢‬اﺳﺖ ﮐﻪ در ﺷ ﻞ ‪ ٢‬ﻗﺎﺑﻞ ﻣﺸﺎﻫﺪه اﺳﺖ‪.‬‬

‫ﺷ ﻞ ‪ :٢‬اﻟ ﻮرﯾﺘﻢ ﺗﻮﻟﯿﺪ ﮐﻠﯿﺪ اﺟﺮاﯾ ‪A5/2‬‬

‫‪ ۴.۴‬ﺗﺤﻠﯿﻞ ‪A5/2‬‬
‫ﺑﺎ ﺗﻮﺟﻪ ﺑﻪ اﯾﻨ ﻪ ﺗﻌﺪاد ﺑﯿﺖﻫﺎی ﻣﻔﯿﺪ ﻧﺎﻣﻌﻠﻮم ﺣﺎﻟﺖ ‪ A5/2‬ﺑﺮاﺑﺮ ﺑﺎ ‪ ٧٨‬ﺑﯿﺖ اﺳﺖ‪ ،‬ﺣﻤﻠﻪ ﺟﺴﺘﺠﻮی ﮐﺎﻣﻞ ﺑﺎ در دﺳﺖ داﺷﺘﻦ ‪ ٧٨‬ﺑﯿﺖ از دﻧﺒﺎﻟﻪ‬
‫ﺧﺮوﺟ ‪ ،‬ﻣ ﺗﻮاﻧﺪ ﺣﺎﻟﺖ اوﻟﯿﻪ ﻣﻮﻟﺪ را در زﻣﺎن ‪ ۲۷۸‬ﺑﻪ دﺳﺖ آورد‪ .‬ﺑﺎ اﺳﺘﻔﺎده از ﺣﻤﻠﻪ ﺗﻘﺴﯿﻢ و ﺣﻞ ‪ ١۴‬ﻣ ﺗﻮان ﺣﻤﻠﻪ ﺑﻬﺘﺮی ﺑﺎ ﺟﺴﺘﺠﻮی‬
‫ﮐﺎﻣﻞ روی ‪ ١۶‬ﺑﯿﺖ ﻣﻔﯿﺪ ﻣﺠﻬﻮل ﺛﺒﺎت ﭼﻬﺎرم اﻧﺠﺎم داد‪ .‬ﺑﺮای اﯾﻦ ﮐﺎر ﻧﯿﺎز اﺳﺖ ﮐﻪ ﺑﻪازای ﻫﺮ ﺣﺎﻟﺖ اوﻟﯿﻪ ﯾ دﺳﺘ ﺎه ﻣﻌﺎدﻻت درﺟﻪ ‪٢‬‬
‫را ﺣﻞ ﻧﻤﻮد‪ .‬اﯾﻦ دﺳﺘ ﺎه ﻏﯿﺮﺧﻄ را ﻣ ﺗﻮان ﺑﺎ اﺳﺘﻔﺎده از ﺗ ﻨﯿ ﺧﻄ ﺳﺎزی ﺑﻪ ﯾ دﺳﺘ ﺎه ﻣﻌﺎدﻻت ﺧﻄ ﺷﺎﻣﻞ‬
‫) (‬ ‫) (‬ ‫) (‬
‫‪۱۸‬‬ ‫‪۲۲‬‬ ‫‪۲۱‬‬
‫‪۱۸ +‬‬ ‫‪+ ۱۸ +‬‬ ‫‪+ ۱۸ +‬‬ ‫‪= ۶۵۵‬‬
‫‪۲‬‬ ‫‪۲‬‬ ‫‪۲‬‬

‫ﻣﺘﻐﯿﺮ ﺗﺒﺪﯾﻞ ﮐﺮد‪ .‬ﺗﻌﺪاد ﺑﯿﺖﻫﺎی ﻣﻮرد ﻧﯿﺎز ﺑﺮای اﻋﻤﺎل ﺣﻤﻠﻪ ﻧﯿﺰ ﺑﻪ ﺗﻌﺪاد ﻣﺘﻐﯿﺮﻫﺎی ﺧﻄ ﺳﺎزی ﺷﺪه اﺳﺖ‪ .‬ﺑﺎ اﺳﺘﻔﺎده از روش ﮔﺎوس ﺑﻪ‬
‫زﻣﺎن ‪ ۲۱۶ ۶۵۵۳ ≈ ۲۴۴‬ﻧﯿﺎز اﺳﺖ‪ .‬در ﻋﻤﻞ زﻣﺎن ﻣﻮرد ﻧﯿﺎز را ﻣ ﺗﻮان ﺑﺎ ﭘﯿﺶﭘﺮدازش از اﯾﻦ ﻫﻢ ﮐﻤﺘﺮ ﮐﺮد‪ .‬ﺣﻤﻠﻪ ﺑﺪهﺑﺴﺘﺎن ﺣﺎﻓﻈﻪ زﻣﺎن‪،‬‬
‫داده ﻋﻠﯿﻪ اﯾﻦ ﻣﻮﻟﺪ در زﻣﺎن ‪ ۲۴۰٫۵‬ﻗﺎﺑﻞ اﻋﻤﺎل ﻣ ﺑﺎﺷﺪ اﻣﺎ ﺑﻪ ﻫﻤﺎن ﻣﯿﺰان ﺣﺎﻓﻈﻪ و داده )ﺑﯿﺖ ﺧﺮوﺟ ( ﻧﯿﺎز دارد‪.‬‬

‫‪E۰‬‬ ‫‪۵‬‬
‫ﻣﻮﻟﺪ رﻣﺰ دﻧﺒﺎﻟﻪای ‪ E۰‬ﺑﺮای رﻣﺰﻧ ﺎری در ارﺗﺒﺎﻃﺎت ﺑﻪ وﺳﯿﻠﻪ ﺑﻠﻮﺗﻮث ﻣﻮرد اﺳﺘﻔﺎده ﻗﺮار ﻣ ﮔﯿﺮد‪ .‬در اﯾﻨﺠﺎ ﺻﺮﻓﺎً ﺑﻪ ﺗﻮﺻﯿﻒ اﻟ ﻮرﯾﺘﻢ ﺗﻮﻟﯿﺪ‬
‫ﮐﻠﯿﺪ اﺟﺮاﯾ ﺑﺴﻨﺪه ﻣ ﮐﻨﯿﻢ‪ .‬ﺷ ﻞ ‪ ٣‬ﻃﺮز ﮐﺎر ﻣﻮﻟﺪ ‪ E۰‬را ﻧﺸﺎن ﻣ دﻫﺪ‪.‬‬
‫ﻫﻤﺎنﻃﻮر ﮐﻪ در ﺷ ﻞ دﯾﺪه ﻣ ﺷﻮد‪ ،‬در اﯾﻦ ﻣﻮﻟﺪ ﭼﻬﺎر ﺛﺒﺎت ﺧﻄ ﺑﻪ ﻃﻮلﻫﺎی ‪ ۳۳ ،۳۱ ،۲۵‬و ‪ ۳۹‬وﺟﻮد دارد ﮐﻪ ﭼﻨﺪ ﺟﻤﻠﻪایﻫﺎی‬
‫ﻓﯿﺪﺑ آنﻫﺎ ﺑﻪ ﺗﺮﺗﯿﺐ ﺑﻪ ﺻﻮرت زﯾﺮ ﻣ ﺑﺎﺷﺪ‪:‬‬
‫‪١۴ divide-and-conquer‬‬

‫‪١٠-۵‬‬
‫ﺷ ﻞ ‪ :٣‬ﻃﺮز ﮐﺎر ﻣﻮﻟﺪ ‪E۰‬‬

‫‪۱ + x۸ + x۱۲ + x۲۰ + x۲۵ ,‬‬


‫‪۱ + x۱۲ + x۱۶ + x۲۴ + x۳۱ ,‬‬
‫‪۱ + x۴ + x۲۴ + x۲۸ + x۳۳ ,‬‬
‫‪۱ + x۴ + x۲۸ + x۳۶ + x۳۹ .‬‬
‫ﺧﻂﻫﺎی ﭘﺮرﻧ ﺣﺎﻣﻞ دوﺑﯿﺖ و ﺧﻂﻫﺎی ﮐﻤﺮﻧ ﺣﺎﻣﻞ ﯾ ﺑﯿﺖ ﻫﺴﺘﻨﺪ‪ .‬ﻧﻤﺎد ⊕ و ‪ +‬ﺑﻪﺗﺮﺗﯿﺐ ﺑﯿﺎﻧ ﺮ ﺟﻤﻊ ﻣﺒﻨﺎی ‪ ٢‬و ﺟﻤﻊ ﻣﻌﻤﻮﻟ اﺳﺖ‪.‬‬
‫ﻫﻤﭽﻨﯿﻦ ‪ z −۱‬ﻧﺸﺎن دﻫﻨﺪه ﯾ واﺣﺪ ﺗﺄﺧﯿﺮ زﻣﺎﻧ اﺳﺖ؛ ﯾﻌﻨ ‪ ،‬دو ﺑﯿﺖ ﺧﺮوﺟ آن در ﻟﺤﻈﻪ ‪ t‬ﻫﻤﺎن ﻣﻘﺎدﯾﺮ ورودی آن در ﻟﺤﻈﻪ ‪t − ۱‬‬
‫اﺳﺖ‪ .‬ﺑﻨﺎﺑﺮاﯾﻦ‪ ،‬ﻋﻼوه ﺑﺮ ‪ ١٢٨‬ﺑﯿﺖ ﺣﺎﻟﺖ ﺛﺒﺎتﻫﺎ‪ ۴ ،‬ﺑﯿﺖ دﯾ ﺮ ﻫﻢ اﺳﺘﻔﺎده ﻣ ﺷﻮد‪.‬‬
‫در ﻫﺮ زﻣﺎن ‪ t‬ﺧﺮوﺟ ﺛﺒﺎتﻫﺎ را ﺑﻪ ﺗﺮﺗﯿﺐ ﺑﺎ ‪ x۳t ،x۲t ،x۱t‬و ‪ x۴t‬ﻧﺸﺎن ﻣ دﻫﯿﻢ‪ .‬ﭼﻬﺎر ﺑﯿﺖ ﺣﺎﻟﺖ را ﺑﻪ ﺻﻮرت‬

‫) ‪(ct−۱ , ct ) = (c۱t−۱ , c۰t−۱ , c۱t , c۰t‬‬


‫در ﻧﻈﺮ ﻣ ﮔﯿﺮﯾﻢ ﮐﻪ ﺗﺸ ﯿﻞ ﯾ ﻣﺎﺷﯿﻦ ﺣﺎﻟﺖ ﻣﺘﻨﺎﻫ ﻣ دﻫﺪ‪ .‬اﯾﻦ ﻣﺎﺷﯿﻦ ﺣﺎﻟﺖ ﻣﺘﻨﺎﻫ ﺑﺎ درﯾﺎﻓﺖ دو ﺑﯿﺖ ‪ yt‬ﺑﻪ ﻋﻨﻮان ورودی‪ ،‬ﺑﻪ ﺻﻮرﺗ‬
‫ﮐﻪ در زﯾﺮ ﺗﻮﺿﯿﺢ داده ﻣ ﺷﻮد ﺑﺮوز ﻣ ﺷﻮد‪ .‬ﺑﯿﺖﻫﺎی ﺧﺮوﺟ ﺛﺒﺎتﻫﺎ ﺑﺎ ﺑﯿﺖ ‪ c۰t‬از ﻣﺎﺷﯿﻦ ﺣﺎﻟﺖ ﻣﺘﻨﺎﻫ ‪ XOR‬ﻣ ﺷﻮد ﺗﺎ ﯾ ﺑﯿﺖ از‬
‫دﻧﺒﺎﻟﻪ ﮐﻠﯿﺪ اﺟﺮاﯾ ﺗﻮﻟﯿﺪ ﺷﻮد‪:‬‬
‫‪zt = x۱t ⊕ x۲t ⊕ x۳t ⊕ x۴t ⊕ c۰t .‬‬
‫ﺑﺮای ﺑﻪروز رﺳﺎﻧ ﻣﺎﺷﯿﻦ ﺣﺎﻟﺖ ﻣﺘﻨﺎﻫ ‪ ،‬ﻫﻤﺎنﻃﻮر ﮐﻪ در ﺷ ﻞ دﯾﺪه ﻣ ﺷﻮد‪ ،‬اﺑﺘﺪا ﻣﻘﺪار ) ‪ ct+۱ = (c۱t+۱ , c۰t+۱‬ﺑﻪ ﺻﻮرت زﯾﺮ ﻣﺤﺎﺳﺒﻪ‬
‫ﻣ ﺷﻮد‪:‬‬
‫‪ct+۱ = (c۱t+۱ , c۰t+۱ ) = st+۱ ⊕ T۱ (ct ) ⊕ T۲ (ct−۱ ),‬‬
‫ﮐﻪ در آن‪:‬‬
‫= ‪yt‬‬ ‫‪+‬‬‫‪x۱t‬‬ ‫‪+‬‬ ‫‪x۲t‬‬ ‫‪+‬‬ ‫‪x۳t‬‬ ‫‪x۴t‬‬
‫⌋‪st+۱ = ⌊(yt + ct )/۲‬‬
‫ﮐﻪ ﻣﻘﺎدﯾﺮ دوﺑﯿﺘ ﺑﻪ ﻋﻨﻮان ﯾ ﻋﺪد ﺻﺤﯿﺢ در ﻣﺠﻤﻮﻋﻪ }‪ {۰, ۱, ۲, ۳, ۴‬ﺗﻔﺴﯿﺮ ﻣ ﺷﻮد‪ .‬ﻫﻤﭽﻨﯿﻦ ‪ T۱ , T۲ : Z۲۲ → Z۲۲‬دوﺳﻮﯾ ﻫﺎﯾ‬
‫ﺧﻄ ﻫﺴﺘﻨﺪ ﮐﻪ ﺑﻪ ﺻﻮرت زﯾﺮ ﺗﻌﺮﯾﻒ ﻣ ﺷﻮﻧﺪ‪:‬‬
‫‪T۱ : (x۱ , x۰ ) 7→ (x۰ , x۱ ),‬‬
‫‪T۲ : (x۱ , x۰ ) 7→ (x۰ , x۱ ⊕ x۰ ).‬‬

‫‪١٠-۶‬‬
‫‪RC4 ۶‬‬
‫اﻟ ﻮرﯾﺘﻢ ‪ RC4‬ﯾ از ﭘﺮﮐﺎرﺑﺮدﺗﺮﯾﻦ اﻟ ﻮرﯾﺘﻢﻫﺎ در زﻣﯿﻨﻪی رﻣﺰﻫﺎی دﻧﺒﺎﻟﻪای ﻣ ﺑﺎﺷﺪ ﮐﻪ از آن در ﭘﺮوﺗ ﻞﻫﺎﯾ ﻣﺎﻧﻨﺪ ﭘﺮوﺗ ﻞ ‪ SSL‬در اﯾﻨﺘﺮﻧﺖ‬
‫اﺳﺘﻔﺎده ﻣ ﺷﻮد‪ RC4 .‬ﻧﯿﺰ از دو ﺑﺨﺶ اﺻﻠ ﺗﺸ ﯿﻞ ﺷﺪه اﺳﺖ‪ :‬اﻟ ﻮرﯾﺘﻢ ﺑﺎرﮔﺬاری ﮐﻠﯿﺪ و اﻟ ﻮرﯾﺘﻢ ﺗﻮﻟﯿﺪ ﮐﻠﯿﺪ اﺟﺮاﯾ ‪ .‬ﺣﺎﻟﺖ داﺧﻠ اﯾﻦ‬
‫ﻣﻮﻟﺪ ﺷﺎﻣﻞ دو اﺷﺎرهﮔﺮ ﺑﺎﯾﺘ ‪ i‬و ‪ j‬و آراﯾﻪی )]‪ S = (S[۰], S[۱], · · · , S[۲۵۵‬از ﺑﺎﯾﺖﻫﺎ اﺳﺖ ﮐﻪ در ﻫﺮ ﻟﺤﻈﻪ ﺗﺸ ﯿﻞ ﯾ ﺟﺎﯾ ﺸﺖ‬
‫از ﺑﺮدار )‪ (۰, ۱, · · · , ۲۵۵‬ﻣ دﻫﻨﺪ‪.‬‬

‫اﻟ ﻮرﯾﺘﻢ ﺑﺎرﮔﺬاری ﮐﻠﯿﺪ‬ ‫‪١.۶‬‬


‫ﻃﻮل ﮐﻠﯿﺪ ‪ RC4‬ﻣ ﺗﻮاﻧﺪ ﺑﯿﻦ ‪ ١‬ﺗﺎ ‪ ٢۵۶‬ﺑﺎﯾﺖ ﺑﺎﺷﺪ ﮐﻪ ﺑﺎ )]‪ (K[۰], · · · , K[l − ۱‬ﻧﺸﺎن داده ﻣ ﺷﻮد‪ .‬اﯾﻦ اﻟ ﻮرﯾﺘﻢ ﻣﻘﺪار اوﻟﯿﻪ ﻧﺪارد و در‬
‫ﺑﻌﻀ ﮐﺎرﺑﺮدﻫﺎ ﺑﻌﻀ از ﺑﺎﯾﺖﻫﺎی ﮐﻠﯿﺪ ﺑﻪ ﻋﻨﻮان ﻣﻘﺪار اوﻟﯿﻪ در ﻧﻈﺮ ﮔﺮﻓﺘﻪ ﻣ ﺷﻮد‪ .‬در اﻟ ﻮرﯾﺘﻢ ﺑﺎرﮔﺬاری ﮐﻠﯿﺪ‪ ،‬اﺑﺘﺪا ‪ S‬ﺗﻮﺳﻂ ﺟﺎﯾ ﺸﺖ‬
‫ﻫﻤﺎﻧ ﭘﺮ ﻣ ﺷﻮد )‪ (S[i] = i‬و ﺳﭙﺲ اﻋﻀﺎی ‪ S‬ﻣﻄﺎﺑﻖ اﻟ ﻮرﯾﺘﻢ ‪ ٣‬ﺟﺎﯾ ﺸﺖ داده ﻣ ﺷﻮﻧﺪ‪.‬‬

‫‪Algorithm 3 : The key setup of RC4‬‬


‫‪Input: (K[0], · · · , K[l − 1]) where l is key length in bytes‬‬
‫‪for i = 0 to 255 do‬‬
‫‪S[i] ← i‬‬
‫‪j←0‬‬
‫‪for i = 0 to 255 do‬‬
‫‪j ← (j + S[i] + K[i mod l]) mod 256‬‬
‫]‪Swap S[i] ↔ S[j‬‬

‫اﻟ ﻮرﯾﺘﻢ ﻣﻮﻟﺪ دﻧﺒﺎﻟﻪ ﮐﻠﯿﺪ اﺟﺮاﯾ‬ ‫‪٢.۶‬‬


‫اﻟ ﻮرﯾﺘﻢ ‪ ۴‬ﻣﻮﻟﺪ دﻧﺒﺎﻟﻪ ﮐﻠﯿﺪ اﺟﺮاﯾ را ﻧﺸﺎن ﻣ دﻫﺪ‪ ..‬در اﯾﻦ اﻟ ﻮرﯾﺘﻢ اﺷﺎرهﮔﺮﻫﺎی ‪ i‬و ‪ j‬ﺑﻪ دو ﺧﺎﻧﻪ از اﯾﻦ آراﯾﻪ اﺷﺎره ﻣ ﮐﻨﻨﺪ ﮐﻪ ﻣﻘﺪار اﺑﺘﺪاﯾ‬
‫آنﻫﺎ ﺻﻔﺮ اﺳﺖ‪ .‬اﺑﺘﺪا ﻣﻘﺎدﯾﺮ ‪ i‬و ‪ j‬ﺑﻪروز ﺷﺪه و ﺳﭙﺲ ﻣﻘﺎدﯾﺮ ]‪ S[i‬و ]‪ S[j‬ﺟﺎﺑﻪ ﺟﺎ ﻣ ﺷﻮﻧﺪ‪ .‬در ﻧﻬﺎﯾﺖ اﻟ ﻮرﯾﺘﻢ ﻣﻘﺪار )]‪S[(S[i] + S[j‬‬
‫]‪ mod ۲۵۶‬ﺑﻪ ﻋﻨﻮان ﯾ ﺑﺎﯾﺖ از دﻧﺒﺎﻟﻪ ﮐﻠﯿﺪ اﺟﺮاﯾ ﻣﻌﺮﻓ ﻣ ﺷﻮد‪.‬‬

‫‪Algorithm 4 : The Running Key Generator of RC4‬‬


‫‪i←0‬‬
‫‪j←0‬‬
‫‪for i = 0 to N do‬‬
‫‪i ← (i + 1) mod 256.‬‬
‫‪j ← (j + S[i]) mod 256‬‬
‫]‪Swap S[i] ↔ S[j‬‬
‫]‪Zi ← S[S[i] + S[j] mod 256‬‬
‫‪Output Zi‬‬

‫ﺣﻤﻠﻪ ﺟﺴﺘﺠﻮی ﮐﺎﻣﻞ ﺑﻪ اﯾﻦ ﻣﻮﻟﺪ ﺑﻪ زﻣﺎن ‪ ۲۵۶! · ۲۵۶۲ ≃ ۲۱۷۰۰‬ﻧﯿﺎز دارد‪ .‬ﺑﻬﺘﺮﯾﻦ ﺣﻤﻠﻪ ﻣﻮﺟﻮد‪ ،‬ﺣﺎﻟﺖ اوﻟﯿﻪ را در زﻣﺎن ‪ ۲۲۴۱‬ﭘﯿﺪا‬
‫ﻣ ﮐﻨﺪ‪ .‬اﻟﺒﺘﻪ ﺣﻤﻠﻪﻫﺎی ﺗﻤﺎﯾﺰ ﻋﻤﻠ زﯾﺎدی ﻋﻠﯿﻪ اﯾﻦ ﻣﻮﻟﺪ وﺟﻮد دارد ﮐﻪ دﻧﺒﺎﻟﻪ ﺧﺮوﺟ آن را ﺑﻪ راﺣﺘ از ﯾ دﻧﺒﺎﻟﻪ ﮐﺎﻣﻼ ﺗﺼﺎدﻓ ﺗﺸﺨﯿﺺ‬
‫ﻣ دﻫﺪ‪.‬‬

‫‪Trivium ٧‬‬
‫رﻣﺰ دﻧﺒﺎﻟﻪای ‪ Trivium‬ﺑﺮای اﺳﺘﻔﺎده در ﮐﺎرﺑﺮدﻫﺎی ﺳﺨﺖاﻓﺰاری ﻃﺮاﺣ ﺷﺪه اﺳﺖ و ﯾ از ﻫﻔﺖ اﻟ ﻮرﯾﺘﻢ ﻧﻬﺎﯾ ﻣﺴﺎﺑﻘﻪ ‪eStream‬‬
‫اﺳﺖ‪ .‬در اﯾﻦ ﻣﻮﻟﺪ ‪ ۸۰‬ﺑﯿﺖ ﮐﻠﯿﺪ ﻣﺤﺮﻣﺎﻧﻪ ﮐﻪ آنﻫﺎ را ﺑﺎ ) ‪ (K۱ , · · · K۸۰‬ﻧﺸﺎن ﻣ دﻫﯿﻢ و ﻫﻤﭽﻨﯿﻦ ‪ ۸۰‬ﺑﯿﺖ ﻣﻘﺪار اوﻟﯿﻪ ﮐﻪ آنﻫﺎ را ﺑﺎ‬

‫‪١٠-٧‬‬
‫) ‪ (IV۱ , · · · , IV۸۰‬ﻧﺸﺎن ﻣ دﻫﯿﻢ‪ ،‬وﺟﻮد دارد ﮐﻪ دﻧﺒﺎﻟﻪ ﮐﻠﯿﺪ اﺟﺮاﯾ ﺑﺎ اﺳﺘﻔﺎده از آنﻫﺎ ﺗﻌﯿﯿﻦ ﻣ ﺷﻮد‪ .‬ﺷ ﻞ ‪ ۴‬ﺳﺎﺧﺘﺎر ‪ Trivium‬را ﮐﻪ‬
‫ﺷﺎﻣﻞ ‪ ۲۸۸‬ﺑﯿﺖ ﺣﺎﻟﺖ ) ‪ (s۱ , · · · , s۲۸۸‬ﻣ ﺑﺎﺷﺪ‪ ،‬ﻧﺸﺎن ﻣ دﻫﺪ‪.‬‬

‫ﺷ ﻞ ‪ :۴‬ﻃﺮز ﮐﺎر ﻣﻮﻟﺪ ‪Trivium‬‬

‫‪Algorithm 5 : The key-IV setup of Trivium‬‬


‫)‪(s1 , s2 , · · · , s93 ) ← (K1 , · · · , K80 , 0, · · · , 0‬‬
‫)‪(s94 , s95 , · · · , s177 ) ← (IV1 , · · · , IV80 , 0, · · · , 0‬‬
‫)‪(s178 , s179 , · · · , s288 ) ← (0, · · · , 0, 1, 1, 1‬‬
‫‪for i = 1 to 4 × 288 do‬‬
‫‪t1 ← s66 + s91 · s92 + s93 + s171‬‬
‫‪t2 ← s162 + s175 · s176 + s177 + s264‬‬
‫‪t3 ← s243 + s286 · s287 + s288 + s69‬‬
‫) ‪(s1 , s2 , · · · , s93 ) ← (t3 , s1 , · · · , s92‬‬
‫) ‪(s94 , s95 , · · · , s177 ) ← (t1 , s94 , · · · , s176‬‬
‫) ‪(s178 , s179 , · · · , s288 ) ← (t2 , s178 , · · · , s287‬‬

‫ﻣﻮﻟﺪ ‪ Trivium‬دارای ﯾ ﺗﺎﺑﻊ اﻧﺘﻘﺎل ﺣﺎﻟﺖ ﻏﯿﺮﺧﻄ و ﯾ ﺗﺎﺑﻊ ﻓﯿﻠﺘﺮ ﺧﻄ ﺑﺮای ﺗﻮﻟﯿﺪ ﺧﺮوﺟ اﺳﺖ‪ .‬ﺑﯿﺖﻫﺎی ﺣﺎﻟﺖ اﺑﺘﺪا ﺑﺎ اﺳﺘﻔﺎده از‬
‫ﺑﯿﺖﻫﺎی ﮐﻠﯿﺪ‪ ،‬ﻣﻘﺪار اوﻟﯿﻪ و ﺗﻌﺪادی ﺑﯿﺖ ﺛﺎﺑﺖ ﭘﺮ ﻣ ﺷﻮﻧﺪ‪ .‬ﺳﭙﺲ ﺑﯿﺖﻫﺎی ﺣﺎﻟﺖ ﺑﻪ ﺗﻌﺪاد ‪ ۴ × ۲۸۸‬ﺑﺪون ﺗﻮﻟﯿﺪ ﺧﺮوﺟ ﺑﻪروز رﺳﺎﻧ‬
‫ﻣ ﺷﻮد‪ .‬اﻟ ﻮرﯾﺘﻢ ‪ ۵‬ﻧﺤﻮه ﻣﻘﺪاردﻫ اوﻟﯿﻪ و را اﻟ ﻮرﯾﺘﻢ ‪ ۶‬ﻧﺤﻮه ﺗﻮﻟﯿﺪ دﻧﺒﺎﻟﻪ ﮐﻠﯿﺪ اﺟﺮاﯾ را ﻧﺸﺎن ﻣ دﻫﺪ ﮐﻪ ﻣﻮﻟﺪ ﻣﺠﺎز ﺑﻪ ﺗﻮﻟﯿﺪ ﺣﺪاﮐﺜﺮ‬
‫‪ N ≤ ۲۶۴‬اﺳﺖ ﮐﻪ ﺑﺎ ‪ z۱ , · · · , zN‬ﻧﺸﺎن داده ﻣ ﺷﻮﻧﺪ‪ .‬ﻫﻤﺎﻧﻄﻮر ﮐﻪ ﻣﺸﺎﻫﺪه ﻣ ﺷﻮد‪ ،‬ﺗﺎﺑﻊ ﻓﯿﻠﺘﺮ ﯾ ﺗﺎﺑﻊ ﺧﻄ اﺳﺖ ﮐﻪ ‪ ۶‬ﺑﯿﺖ ﺣﺎﻟﺖ‬
‫داﺧﻠ را ﺑﺮای ﺗﻮﻟﯿﺪ ﯾ ﺑﯿﺖ از دﻧﺒﺎﻟﻪ ﮐﻠﯿﺪ اﺟﺮاﯾ ﺑﺎ ‪ xor‬ﻣ ﮐﻨﺪ‪.‬‬

‫‪١٠-٨‬‬
‫‪Algorithm 6 : The Running Key Generator of Trivium‬‬
‫‪for i = 1 to N do‬‬
‫‪t1 ← s66 + s93‬‬
‫‪t2 ← s162 + s177‬‬
‫‪t3 ← s243 + s288‬‬
‫‪zi ← t1 + t2 + t3‬‬
‫‪t1 ← t1 + s91 · s92 + s171‬‬
‫‪t2 ← t2 + s175 · s176 + s264‬‬
‫‪t3 ← t3 + s286 · s287 + s69‬‬
‫) ‪(s1 , s2 , · · · , s93 ) ← (t3 , s1 , · · · , s92‬‬
‫) ‪(s94 , s95 , · · · , s177 ) ← (t1 , s94 , · · · , s176‬‬
‫) ‪(s178 , s179 , · · · , s288 ) ← (t2 , s178 , · · · , s287‬‬

‫‪Grain ٨‬‬
‫رﻣﺰ دﻧﺒﺎﻟﻪای ‪ Grain‬ﯾ دﯾ ﺮ از ﻫﻔﺖ اﻟ ﻮرﯾﺘﻢ ﻧﻬﺎﯾ ﻣﺴﺎﺑﻘﻪ ‪ eStream‬اﺳﺖ ﮐﻪ ﺑﺮای ﻣﺤﯿﻂﻫﺎی ﺳﺨﺖاﻓﺰاری ﺑﺎ ﻣﻨﺎﺑﻊ ﻣﺤﺪود ﻃﺮاﺣ‬
‫ﺷﺪه اﺳﺖ‪ .‬در اﯾﻦ ﻣﻮﻟﺪ ‪ ۸۰‬ﺑﯿﺖ ﮐﻠﯿﺪ ﮐﻪ آنﻫﺎ را ﺑﺎ ) ‪ (K۰ , · · · , K۷۹‬ﻧﺸﺎن ﻣ دﻫﯿﻢ و ﻫﻤﭽﻨﯿﻦ ‪ ۶۴‬ﺑﯿﺖ ﻣﻘﺪار اوﻟﯿﻪ ) ‪ (IV‬ﮐﻪ آنﻫﺎ‬
‫‪١۶‬‬
‫را ﺑﺎ ) ‪ (IV۰ , · · · , IV۷۹‬ﻧﻤﺎﯾﺶ ﻣ دﻫﯿﻢ‪ ،‬وﺟﻮد دارد‪ .‬اﯾﻦ ﻣﻮﻟﺪ از ﯾ ﺛﺒﺎت ﺧﻄ ‪ ،‬ﯾ ﺛﺒﺎت ﻏﯿﺮﺧﻄ ‪ (NFSR) ١۵‬و ﯾ ﺗﺎﺑﻊ ﻓﯿﻠﺘﺮ‬
‫ﺗﺸ ﯿﻞ ﺷﺪه اﺳﺖ‪.‬‬

‫ﻣﻮﻟﺪ ﮐﻠﯿﺪ اﺟﺮاﯾ‬ ‫‪١.٨‬‬


‫ﺷ ﻞ ‪ ۵‬ﺷﻤﺎی اﻟ ﻮرﯾﺘﻢ ﺗﻮﻟﯿﺪ ﮐﻠﯿﺪ اﺟﺮاﯾ ‪ Grain‬را ﻧﺸﺎن ﻣ دﻫﺪ‪ .‬ﻣﺤﺘﻮﯾﺎت ﺛﺒﺎت ﺧﻄ ﺑﺎ ) ‪ (si , si+۱ , · · · , si+۷۹‬و ﻣﺤﺘﻮﯾﺎت ﺛﺒﺎت‬
‫ﻏﯿﺮﺧﻄ ﺑﺎ ) ‪ (bi , bi+۱ , · · · , bi+۷۹‬ﻧﺸﺎن داده ﻣ ﺷﻮﻧﺪ‪.‬‬
‫ﭼﻨﺪﺟﻤﻠﻪای اوﻟﯿﻪ ﺛﺒﺎت ﺧﻄ از درﺟﻪ ‪ ۸۰‬اﺳﺖ ﮐﻪ ﺑﻪ ﺻﻮرت زﯾﺮ ﺗﻌﺮﯾﻒ ﻣ ﺷﻮد‪:‬‬

‫‪f (x) = ۱ + x۱۸ + x۲۹ + x۴۲ + x۵۷ + x۶۷ + x۸۰ .‬‬

‫ﮐﻪ راﺑﻄﻪ ﺑﺎزﮔﺸﺘ زﯾﺮ را ﺑﺮای ﺑﻪروز رﺳﺎﻧ ﺛﺒﺎت ﺧﻄ ﻣﻌﯿﻦ ﻣ ﮐﻨﺪ‪:‬‬

‫‪si+۸۰ = si+۶۲ + si+۵۱ + si+۳۸ + si+۲۳ + si+۱۳ + si .‬‬

‫ﺛﺒﺎت ﻏﯿﺮﺧﻄ ﺑﻪ ﺻﻮرت زﯾﺮ ﻣ ﺑﺎﺷﺪ‪:‬‬ ‫ﭼﻨﺪﺟﻤﻠﻪای ﻓﯿﺪﺑ‬

‫)‪g(x‬‬ ‫=‬ ‫‪۱ + x۱۷ + x۲۰ + x۲۸ + x۳۵ + x۴۳ + x۴۷ + x۵۲ + x۵۹ + x۶۵ + x۷۱ + x۸۰‬‬
‫‪+x۱۷ x۲۰ + x۴۳ x۴۷ + x۶۵ x۷۱ + x۲۰ x۲۸ x۳۵ + x۴۷ x۵۲ x۵۹ + x۱۷ x۳۵ x۵۲ x۷۱‬‬
‫‪+x۲۰ x۲۸ x۴۳ x۴۷ + x۱۷ x۲۰ x۵۹ x۶۵ + x۱۷ x۲۰ x۲۸ x۳۵ x۴۳ + x۴۷ x۵۲ x۵۹ x۶۵ x۷۱‬‬
‫‪+x۲۸ x۳۵ x۴۳ x۴۷ x۵۲ x۵۹ ,‬‬
‫دﻗﺖ ﮐﻨﯿﺪ ﮐﻪ ﭼﻨﺪﺟﻤﻠﻪای ﻓﻮق ﺻﺮﻓﺎً ﯾ ﻧﻤﺎﯾﺶ ﻧﻤﺎدﯾﻦ ﺑﺮای ﺗﻌﯿﯿﻦ راﺑﻄﻪ ﺑﺎزﮔﺸﺘ ﺛﺒﺎت ﻏﯿﺮﺧﻄ اﺳﺖ‪ .‬ﺑﺎ ﺗﻮﺟﻪ ﺑﻪ اﯾﻨ ﻪ ﺑﯿﺖ ﺧﺮوﺟ‬
‫ﺛﺒﺎت ﺧﻄ ﺑﺎ ﺑﯿﺖ ورودی ﺛﺒﺎت ﻏﯿﺮﺧﻄ ‪ xor‬ﻣ ﺷﻮد‪ ،‬ﭼﻨﺪﺟﻤﻠﻪای ﻓﻮق ﺑﯿﺎﻧ ﺮ راﺑﻄﻪ ﺑﺎزﮔﺸﺘ زﯾﺮ ﺑﺮای ﺑﻪروز زﺳﺎﻧ ﺣﺎﻟﺖ ﺛﺒﺎت ﻏﯿﺮﺧﻄ‬
‫اﺳﺖ‪:‬‬

‫‪bi+۸۰‬‬ ‫‪= si + bi+۶۳ + bi+۶۰ + bi+۵۲ + bi+۴۵ + bi+۳۷ + bi+۳۳ + bi+۲۸ + bi+۲۱‬‬
‫‪+bi+۱۵ + bi+۹ + bi + bi+۶۳ bi+۶۰ + bi+۳۷ bi+۳۳ + bi+۱۵ bi+۹‬‬
‫‪+bi+۶۰ bi+۵۲ bi+۴۵ + bi+۳۳ bi+۲۸ bi+۲۱ + bi+۶۳ bi+۴۵ bi+۲۸ bi+۹‬‬
‫‪+bi+۶۰ bi+۵۲ bi+۳۷ bi+۳۳ + bi+۶۳ bi+۶۰ bi+۲۱ bi+۱۵‬‬
‫‪+bi+۶۳ bi+۶۰ bi+۵۲ bi+۴۵ bi+۳۷ + bi+۳۳ bi+۲۸ bi+۲۱ bi+۱۵ bi+۹‬‬
‫‪+bi+۵۲ bi+۴۵ bi+۳۷ bi+۳۳ bi+۲۸ bi+۲۱ .‬‬
‫‪١۵ Nonlinear‬‬ ‫)‪Feedback Shift Register (NFSR‬‬
‫‪١۶ Filter‬‬ ‫‪Function‬‬

‫‪١٠-٩‬‬
‫ﺗﺎﺑﻊ ﻓﯿﻠﺘﺮ ﺑﺮ روی ‪ ١٢‬ﺑﯿﺖ از ﺑﯿﺖﻫﺎی ﺣﺎﻟﺖ ﺣﺎﺻﻞ ﻣ ﺷﻮد‪ .‬ﺗﺎﺑﻊ ﻓﯿﻠﺘﺮ ﺑﺎ اﺳﺘﻔﺎده از ﺗﺎﺑﻊ ﺑﻮﻟ ‪-۵‬ﻣﺘﻐﯿﺮه زﯾﺮ ﺗﻌﺮﯾﻒ‬ ‫ﺧﺮوﺟ ﺑﺎ اﻋﻤﺎل ﯾ‬
‫ﻣ ﺷﻮد‪:‬‬

‫‪h(x) = x۱ + x۴ + x۰ x۳ + x۲ x۳ + x۳ x۴ + x۰ x۱ x۲ + x۰ x۲ x۳ + x۰ x۲ x۴ + x۱ x۲ x۴ + x۲ x۳ x۴‬‬

‫ﮐﻪ در آن ‪ x۳ ،x۲ ،x۱ ،x۰‬و ‪ x۴‬ﺑﻪ ﺗﺮﺗﯿﺐ ﻣﺘﻨﺎﻇﺮ ﺑﺎ ﺑﯿﺖﻫﺎی ﺣﺎﻟﺖ ‪ si+۶۴ ،si+۴۶ ،si+۲۵ ،si+۳‬و ‪ bi+۶۳‬ﻣ ﺑﺎﺷﺪ‪ .‬ﻫﻔﺖ ﺑﯿﺖ دﯾ ﺮ‬
‫ﺣﺎﻟﺖ ‪ {bi+j }j∈A‬ﻫﺴﺘﻨﺪ ﮐﻪ }‪ A = {۱, ۲, ۴, ۱۰, ۳۱, ۴۳, ۵۶‬ﮐﻪ ﺑﺎ ﺧﺮوﺟ ﺗﺎﺑﻊ ﺑﻮﻟ ‪ xor‬ﻣ ﺷﻮﻧﺪ‪ .‬ﺑﻨﺎﺑﺮاﯾﻦ ﺑﯿﺖ ‪i‬ام دﻧﺒﺎﻟﻪ ﮐﻠﯿﺪ‬
‫اﺟﺮاﯾ ﺑﻪ ﺻﻮرت زﯾﺮ ﺗﻮﻟﯿﺪ ﻣ ﺷﻮد‪:‬‬
‫∑‬
‫) ‪zi = j∈A bi+j + h(si+۳ , si+۲۵ , si+۴۶ , si+۶۴ , bi+۶۳‬‬

‫ﺷ ﻞ ‪ :۵‬ﻣﺮﺣﻠﻪ ﺗﻮﻟﯿﺪ ﮐﻠﯿﺪ اﺟﺮاﯾ ‪Grain‬‬

‫‪ ٢.٨‬ﻣﺮﺣﻠﻪ ﺑﺎرﮔﺬاری ﮐﻠﯿﺪ و ﻣﻘﺪار اوﻟﯿﻪ‬


‫ﻗﺒﻞ از اﯾﻨ ﻪ ﮐﻠﯿﺪ اﺟﺮاﯾ ﺗﻮﻟﯿﺪ ﺷﻮد ﺑﺎﯾﺪ ﮐﻠﯿﺪ و ﻫﻤﭽﻨﯿﻦ ﻣﻘﺪار اوﻟﯿﻪ ﺑﺎرﮔﺬاری ﺷﻮﻧﺪ‪ .‬ﺑﺮای اﯾﻦ ﻣﻨﻈﻮر اﺑﺘﺪا ﺛﺒﺎتﻫﺎی ﺧﻄ و ﻏﯿﺮ ﺧﻄ ﺑﻪ‬
‫ﺻﻮرت زﯾﺮ ﻣﻘﺪاردﻫ ﻣ ﺷﻮﻧﺪ‪:‬‬

‫‪(b۰ , b۱ , · · · , b۷۹ ) ← (K۰ , K۱ , · · · , K۷۹ ) ,‬‬

‫‪(s۰ , s۱ , · · · , s۷۹ ) ← (IV۰ , IV۱ , · · · , IV۶۳ , ۱, · · · , ۱) .‬‬

‫ﺳﭙﺲ ﻣﺎﻧﻨﺪ ﺷ ﻞ ‪ ،۶‬ﻣﻮﻟﺪ ‪ ۱۶۰‬ﺑﺎر ﮐﻼک ﻣ ﺧﻮرد‪ ،‬ﺑﺪون اﯾﻨ ﻪ ﺧﺮوﺟ ﺗﻮﻟﯿﺪ ﺷﻮد‪ .‬در واﻗﻊ ﺑﻪ ﺟﺎی ﺗﻮﻟﯿﺪ ﮐﻠﯿﺪ اﺟﺮاﯾ ‪ ،‬در اﯾﻦ ﻣﺮﺣﻠﻪ‬
‫ﺧﺮوﺟ ﺗﺎﺑﻊ ﻓﯿﻠﺘﺮ ﺧﺮوﺟ ﺑﺎ ورودی ﺛﺒﺎتﻫﺎ ‪ xor‬ﻣ ﺷﻮد‪.‬‬

‫‪١٠-١٠‬‬
‫ﺷ ﻞ ‪ :۶‬ﻣﻘﺪاردﻫ اوﻟﯿﻪ ‪Grain‬‬

‫‪١٠-١١‬‬
‫ﺑﻪ ﻧﺎم ﺧﺪا‬

‫داﻧﺸ ﺪهی ﻋﻠﻮم رﯾﺎﺿ‬

‫‪ ١٢‬آﺑﺎن ‪١٣٩٢‬‬ ‫ﻣﻘﺪّﻣﻪای ﺑﺮ رﻣﺰﻧ ﺎری‬

‫ﺟﻠﺴﻪی ‪ :١١‬ﺗﻤﺎﯾﺰﻧﺎﭘﺬﯾﺮی ﻣﺤﺎﺳﺒﺎﺗ و ﺗﺤﻠﯿﻞ ﻣﺠﺎﻧﺒ‬


‫ﻧ ﺎرﻧﺪه‪ :‬ﻧﻮﯾﺪ ﻋﻼﻣﺘ‬ ‫ﻣﺪرس‪ :‬دﮐﺘﺮ ﺷﻬﺮام ﺧﺰاﺋ‬

‫ﯾﺎدآوری‬ ‫‪١‬‬
‫ﺳﯿﺴﺘﻢ رﻣﺰ ﻣﺘﻘﺎرن روی ﻓﻀﺎی ‪ M‬اﺳﺖ ﮐﻪ‪:‬‬ ‫ﺗﻌﺮﯾﻒ ‪ ١‬ﺳﻪﺗﺎﯾ )‪ Π = (Gen, Enc, Dec‬ﯾ‬

‫• )(‪k ← Gen‬‬

‫‪∀k ∈ K, ∀m ∈ M‬‬ ‫• )‪c ← Enck (m‬‬

‫‪∀k ∈ K, ∀c ∈ C‬‬ ‫• )‪m ← Deck (c‬‬

‫و ﺷﺮط ﻧﻬﺎﯾ زﯾﺮ را دارد‪:‬‬

‫‪Pr{k ← Gen() : Deck (Enck (m)) = m} = ۱‬‬

‫‪ PrivKeav‬را ﺑﻪ ﺻﻮرت زﯾﺮ در ﻧﻈﺮ ﺑ ﯿﺮﯾﺪ‪:‬‬


‫ﺑﺮای ﺳﯿﺴﺘﻢ رﻣﺰ ‪ Π‬روی ﻓﻀﺎی ﭘﯿﺎم }‪ M ⊂ {۰, ۱‬آزﻣﺎﯾﺶ ‪A,Π‬‬
‫∗‬

‫• )(‪k ← Gen‬‬

‫• )(‪ (m۰ , m۱ ) ← A‬ﮐﻪ ‪ m۰ , m۱ ∈ M‬و | ‪.|m۰ | = |m۱‬‬

‫• }‪b ← {۰, ۱‬‬

‫• ) ‪c ← Enck (mb‬‬

‫}‪b̂ ∈ {۰, ۱‬‬ ‫• )‪b̂ ← A(c‬‬

‫و در ﻏﯿﺮ اﯾﻦ‬ ‫‪ PrivKeav‬ﻧﺸﺎن داده ﻣ ﺷﻮد ﺑﺮاﺑﺮ ﯾ‬


‫در ﺻﻮرﺗ ﮐﻪ ‪ b‬و ̂‪ b‬ﺑﺮاﺑﺮ ﺑﺎﺷﻨﺪ‪ ،‬ﺧﺮوﺟ آزﻣﺎﯾﺶ ﮐﻪ ﺑﺎ ﻣﺘﻐﯿﺮ ﺗﺼﺎدﻓ ‪A,Π‬‬
‫ﺻﻮرت ﺻﻔﺮ ﺗﻌﺮﯾﻒ ﻣ ﺷﻮد‪.‬‬

‫ﺗﻌﺮﯾﻒ ‪ ٢‬ﻣ ﮔﻮﺋﯿﻢ ﺳﯿﺴﺘﻢ رﻣﺰ ‪-(t, ϵ) ،Π‬اﻣﻦ اﺳﺖ اﮔﺮ ﺑﺮای ﻫﺮ ﻣﻬﺎﺟﻢ ‪ A‬ﮐﻪ در زﻣﺎن ‪ t‬اﺟﺮا ﻣ ﺷﻮد‪ ،‬داﺷﺘﻪ ﺑﺎﺷﯿﻢ‪:‬‬

‫‪۱‬‬
‫≤ }‪A,Π = ۱‬‬
‫‪Pr{PrivKeav‬‬ ‫)‪(۱ + ε‬‬
‫‪۲‬‬

‫‪١١-١‬‬
‫روﯾ ﺮدﻫﺎی ﺗﺤﻠﯿﻞ ﺳﯿﺴﺘﻢﻫﺎی رﻣﺰﻧ ﺎری‬ ‫‪٢‬‬
‫ﺳﯿﺴﺘﻢﻫﺎی رﻣﺰﻧ ﺎری را ﻣ ﺗﻮان دو ﻧﻮع ﺗﺤﻠﯿﻞ ﮐﺮد‪:‬‬

‫• روﯾ ﺮد واﻗﻌ ‪ :١‬در اﯾﻦ روﯾ ﺮد ﻣ ﮔﻮﺋﯿﻢ ﯾ ﺳﯿﺴﺘﻢ )‪-(t, ε‬اﻣﻦ اﺳﺖ‪ ،‬در ﺻﻮرﺗ ﮐﻪ ﻫﯿﭻ ﻣﻬﺎﺟﻢ ﺑﺎ ﺣﺪّاﮐﺜﺮ زﻣﺎن‬
‫اﺟﺮای ‪ t‬ﻧﺘﻮاﻧﺪ ﺑﺎ ﻣﺰﯾﺖ ﺑﯿﺸﺘﺮ از ‪ ε‬ﺳﯿﺴﺘﻢ را ﺑﺸ ﻨﺪ‪.‬‬

‫• روﯾ ﺮد ﻣﺠﺎﻧﺒ ‪ :٢‬در اﯾﻦ روﯾ ﺮد ﻣ ﮔﻮﺋﯿﻢ ﯾ ﺧﺎﻧﻮاده از ﺳﯿﺴﺘﻢﻫﺎی رﻣﺰ اﻣﻦ اﺳﺖ‪ ،‬ﻫﺮﮔﺎه ﻫﯿﭻ ﻣﻬﺎﺟﻢ ﮐﺎراﯾ ﻧﺘﻮاﻧﺪ‬
‫ﺑﺎ ﻣﺰﯾﺖ ﻏﯿﺮ ﻧﺎﭼﯿﺰ )ﻗﺎﺑﻞ ﺗﻮﺟﻪ( ﺳﯿﺴﺘﻢ را ﺑﺸ ﻨﺪ‪.‬‬

‫ﺗﺎﮐﻨﻮن ﻣﺎ اﻣﻨﯿﺖ ﺳﯿﺴﺘﻢﻫﺎ را ﺑﻪ روﯾ ﺮد واﻗﻌ )دﻗﯿﻖ‪ ،‬ﻋﯿﻨ ﯾﺎ ﺗﺤﻘﯿﻘ ﻫﻢ ﻣ ﺗﻮان ﮔﻔﺖ( ﻣﻄﺮح ﮐﺮدﯾﻢ‪ .‬اﻣﺎ در اداﻣﻪ از روﯾ ﺮد‬
‫ﻣﺠﺎﻧﺒ اﺳﺘﻔﺎده ﻣ ﮐﻨﯿﻢ ﮐﻪ ﺑ ﻧﯿﺎز از ‪ t‬و ‪ ε‬و ﺑﻪ دﻧﺒﺎل ﮐﺸﯿﺪن اﯾﻦ ﻣﻘﺎدﯾﺮ در ﺗﻌﺎرﯾﻒ و اﺛﺒﺎتﻫﺎی اﻣﻨﯿﺘ اﺳﺖ‪ .‬اﻣﺎ ﺑﺎﯾﺪ ﻣﻔﺎﻫﯿﻤ‬
‫ﮐﻪ در ﺗﻌﺮﯾﻒ روﯾ ﺮد ﻣﺠﺎﻧﺒ اﺳﺘﻔﺎده ﺷﺪه دﻗﯿﻘﺎً ﺗﻌﺮﯾﻒ ﺷﻮﻧﺪ‪.‬‬

‫ﺧﺎﻧﻮادهای از ﺳﯿﺴﺘﻢﻫﺎ‪ .‬در روﯾ ﺮد واﻗﻌ ‪ ،‬ﺻﺮﻓﺎ اﻣﻨﯿﺖ ﯾ ﺳﯿﺴﺘﻢ ﻣﻄﺮح اﺳﺖ در ﺣﺎﻟﯿ ﻪ در روﯾ ﺮد ﻣﺠﺎﻧﺒ اﻣﻨﯿﺖ‬
‫ﺧﺎﻧﻮادهای از ﺳﯿﺴﺘﻢﻫﺎ ﻣﻄﺮح اﺳﺖ‪ .‬اﻋﻀﺎی ﺧﺎﻧﻮاده ﺗﻮﺳﻂ ﯾ ﭘﺎراﻣﺘﺮ اﻣﻨﯿﺘ ‪ ،‬ﮐﻪ ﺑﺎ ‪ n‬ﻧﺸﺎن داده ﻣ ﺷﻮد‪ ،‬ﺷﺎﺧﺺ ﻣ ﺷﻮﻧﺪ‪.‬‬

‫ﻣﻬﺎﺟﻢ ﮐﺎرا‪ .‬در روﯾ ﺮد ﻣﺠﺎﻧﺒ زﻣﺎن اﺟﺮای ﻣﻬﺎﺟﻢ ﺑﺮﺣﺴﺐ ﭘﺎراﻣﺘﺮ اﻣﻨﯿﺘ ‪ ،n ،‬ﺳﻨﺠﯿﺪه ﻣ ﺷﻮد و ﺑﺮای ﻣﺪل ﮐﺮدن ﻣﺤﺪودﯾﺖ‬
‫ﻗﺪرت ﻣﺤﺎﺳﺒﺎﺗ ﻣﻬﺎﺟﻢ ﻓﺮض ﻣ ﺷﻮد ﮐﻪ ﻣﻬﺎﺟﻢ در زﻣﺎن ﭼﻨﺪﺟﻤﻠﻪای ﺑﺮﺣﺴﺐ ﭘﺎراﻣﺘﺮ اﻣﻨﯿﺘ اﺟﺮا ﻣ ﺷﻮد‪ .‬ﻫﻤﭽﻨﯿﻦ ﺑﺮای‬
‫ﻣﻨﻈﻮر ﮐﺮدن ﻗﺪرت ﻣﻬﺎﺟﻢ در اﺳﺘﻔﺎده از ﺳ ﻪﻫﺎی ﺗﺼﺎدﻓ ﻓﺮض ﻣ ﺷﻮد ﮐﻪ ﻣﻬﺎﺟﻢ ﺗﺼﺎدﻓ اﺳﺖ‪ .‬ﺑﻨﺎﺑﺮاﯾﻦ ﻣﻬﺎﺟﻢ ﮐﺎرا را‬
‫ﻣ ﺗﻮان‪ ،‬در ﯾ ﻧ ﺎه ﺳﺎده‪ ،‬اﻟ ﻮرﯾﺘﻢﻫﺎی ﺗﺼﺎدﻓ ﭼﻨﺪﺟﻤﻠﻪای ‪ ٣‬در ﻧﻈﺮ ﮔﺮﻓﺖ‪ .‬دﻗﺖ ﮐﻨﯿﺪ ﻣﻬﺎﺟﻢ ‪ PPT‬ﯾ اﻟ ﻮرﯾﺘﻢ ﺛﺎﺑﺖ‬
‫ﺑﺮای ﺣﻤﻠﻪ ﺑﻪ ﻫﻤﻪی اﻋﻀﺎی ﺧﺎﻧﻮاده ﺳﯿﺴﺘﻢ رﻣﺰ دارد‪ .‬اﮔﺮ ﺑﺨﻮاﻫﯿﻢ ﺑﻪ ﻣﻬﺎﺟﻢ ﻗﺪرت ﺑﯿﺸﺘﺮی در اﻧﺘﺨﺎب اﻟ ﻮرﯾﺘﻢ ﺧﻮد ﺑﺮای‬
‫ﺣﻤﻠﻪ ﺑﻪ ﺳﯿﺴﺘﻢ ﺑﺪﻫﯿﻢ ﻣ ﺗﻮان ﻣﻬﺎﺟﻢ را ﺑﻪ ﺻﻮرت دﻧﺒﺎﻟﻪای از ﻣﻬﺎﺟﻢﻫﺎ در ﻧﻈﺮ ﮔﺮﻓﺖ ﮐﻪ ﺑﺮای ﺣﻤﻠﻪ ﺑﻪ ﺳﯿﺴﺘﻢ رﻣﺰ ﺑﺎ ﭘﺎراﻣﺘﺮ‬
‫اﻣﻨﯿﺘ ‪ n‬از ‪n‬اﻣﯿﻦ اﻟ ﻮرﯾﺘﻢ ﺧﻮد اﺳﺘﻔﺎده ﻣ ﮐﻨﺪ‪ .‬ﭼﻨﯿﻦ ﻣﻬﺎﺟﻢﻫﺎﯾ ﻏﯿﺮ ﯾ ﻨﻮاﺧﺖ ‪ ۴‬ﻧﺎﻣﯿﺪه ﻣ ﺷﻮﻧﺪ‪ .‬ﻟﺬا ﻗﻮیﺗﺮﯾﻦ ﻣﺪﻟ ﮐﻪ‬
‫ﺑﺮای ﺣﻤﻠﻪﮐﻨﻨﺪه ﮐﺎرا در رﻣﺰﻧ ﺎری ﺗﺼﻮر ﻣ ﺷﻮد ﻣﻬﺎﺟﻢ ﭼﻨﺪﺟﻤﻠﻪای اﺣﺘﻤﺎﻻﺗ ﻏﯿﺮﯾ ﻨﻮاﺧﺖ ‪ ۵‬اﺳﺖ ﮐﻪ ﺑﻪ ﺻﻮرت )· ‪A(۱n ,‬‬
‫ﻧﺸﺎن داده ﻣ ﺷﻮد ﮐﻪ ﻋﻼﻣﺖ ﻧﻘﻄﻪ ﺑﯿﺎﻧ ﺮ ورودیﻫﺎی دﯾ ﺮ اﻟ ﻮرﯾﺘﻢ اﺳﺖ‪.‬‬

‫ﻣﺰﯾﺖ‪ .‬در روﯾ ﺮد واﻗﻌ اﺣﺘﻤﺎل ﻣﻮﻓﻘﯿﺖ )ﻣﺰﯾﺖ( ﻣﻬﺎﺟﻢ ﯾ ﻋﺪد ﺛﺎﺑﺖ اﺳﺖ ﮐﻪ اﺳﺘﺮاﺗﮋی ﺣﻤﻠﻪﮐﻨﻨﺪه آﻧﺮا ﺗﻌﯿﯿﻦ ﻣ ﮐﻨﻨﺪ‪.‬‬
‫در روﯾ ﺮد ﻣﺠﺎﻧﺒ ﻣﺰﯾﺖ ﻣﻬﺎﺟﻢ ﺗﺎﺑﻌ از ﭘﺎراﻣﺘﺮ اﻣﻨﯿﺘ ‪ ،n ،‬اﺳﺖ ﮐﻪ ﺑﺎز ﻫﻢ اﺳﺘﺮاﺗﮋی ﺣﻤﻠﻪﮐﻨﻨﺪه آﻧﺮا ﺗﻌﯿﯿﻦ ﻣ ﮐﻨﻨﺪ‪ .‬ﻣﻨﻈﻮر از‬
‫ﯾ ﺗﺎﺑﻊ ﻧﺎﭼﯿﺰ ﺗﺎﺑﻌ اﺳﺖ ﮐﻪ از ﻣﻌ ﻮس ﻫﺮ ﭼﻨﺪﺟﻤﻠﻪای‪ ،‬ﺑﺮای ‪n‬ﻫﺎی ﺑﻪ اﻧﺪازه ﮐﺎﻓ ﺑﺰرگ‪ ،‬ﮐﻮﭼ ﺘﺮ ﺑﺎﺷﺪ‪.‬‬

‫آزﻣﺎﯾﺶ ﺗﻌﺮﯾﻒ ﻣ ﺷﻮد‪ .‬در روﯾ ﺮد ﻣﺠﺎﻧﺒ ﺧﺎﻧﻮادهای‬ ‫ﺷ ﺴﺘﻦ ﺳﯿﺴﺘﻢ‪ .‬ﻣﻔﻬﻮم دﻗﯿﻖ ﺷ ﺴﺘﻦ در روﯾ ﺮد واﻗﻌ ﺗﻮﺳﻂ ﯾ‬
‫از آزﻣﺎﯾﺶﻫﺎ ﻣﻄﺮح اﺳﺖ ﮐﻪ ﺗﻮﺳﻂ ﭘﺎراﻣﺘﺮ اﻣﻨﯿﺘ ﺷﺎﺧﺺ ﻣ ﺷﻮﻧﺪ‪.‬‬

‫اﻧﺘﺨﺎب ﭘﺎراﻣﺘﺮ اﻣﻨﯿﺘ ‪ .‬در ﻋﻤﻞ ﺑﺮای اﺳﺘﻔﺎده از ﺳﯿﺴﺘﻢ ﺑﺎﯾﺪ از ﺳﯿﺴﺘﻢ ﺑﻪ ازای ﯾ ﭘﺎراﻣﺘﺮ اﻣﻨﯿﺘ ﺛﺎﺑﺖ اﺳﺘﻔﺎده ﮐﺮد‪ .‬روﯾ ﺮد‬
‫ﻣﺠﺎﻧﺒ ‪ ،‬اﻣﻨﯿﺖ ﺳﯿﺴﺘﻢ را در ﺻﻮرﺗ ﮐﻪ ﭘﺎراﻣﺘﺮ اﻣﻨﯿﺘ ﺑﻪ اﻧﺪازه ﮐﺎﻓ ﺑﺰرگ اﻧﺘﺨﺎب ﺷﺪهﺑﺎﺷﺪ‪ ،‬ﺗﻀﻤﯿﻦ ﻣ ﮐﻨﺪ‪ .‬ﭘﺎراﻣﺘﺮ اﻣﻨﯿﺘ‬
‫‪ n‬ﻟﺰوﻣﺎً ﻧﺸﺎندﻫﻨﺪهی ﺳﻄﺢ اﻣﻨﯿﺖ ‪ ۲n‬ﺑﯿﺘ ﻧﯿﺴﺖ‪.‬‬
‫‪١ Concrete‬‬ ‫‪analysis‬‬
‫‪٢ Asymptotical‬‬ ‫‪analysis‬‬
‫)‪٣ Probablilistic Polynomial Time (PPT‬‬
‫‪۴ non-uniform‬‬
‫)‪۵ Non-uniform probablilistic polynomial time (nuPPT‬‬

‫‪١١-٢‬‬
‫ﺗﺤﻠﯿﻞ ﻣﺠﺎﻧﺒ‬ ‫‪٣‬‬
‫ﺗﺎﺑﻊ ﻧﺎﭼﯿﺰ‬ ‫‪١.٣‬‬
‫‪ n۰ ∈ N‬وﺟﻮد داﺷﺘﻪ ﺑﺎﺷﺪ‬ ‫ﺗﻌﺮﯾﻒ ‪) ٣‬ﺗﺎﺑﻊ ﻧﺎﭼﯿﺰ( ﺗﺎﺑﻊ ﻧﺎﻣﻨﻔ ‪ ε : N → R‬را ﻧﺎﭼﯿﺰ ﻣ ﮔﻮﯾﻨﺪ ﻫﺮﮔﺎه ﺑﻪ ازای ﻫﺮ ‪ ،c > ۰‬ﯾ‬
‫ﮐﻪ ﺑﺮای ‪ n > n۰‬داﺷﺘﻪ ﺑﺎﺷﯿﻢ ‪.ε(n) < n۱c‬‬

‫ﻏﯿﺮﻧﺎﭼﯿﺰ )ﻗﺎﺑﻞﺗﻮﺟﻪ( ﻫﺴﺘﻨﺪ‪.‬‬ ‫‪۱‬‬


‫‪n۱۰۰‬‬
‫و‬ ‫‪√۱‬‬
‫‪n‬‬
‫ﻧﺎﭼﯿﺰ ﻫﺴﺘﻨﺪ‪ .‬ﺗﻮاﺑﻊ ‪، n۱۲ ، n۱‬‬ ‫‪۱‬‬
‫‪nlog n‬‬
‫و‬ ‫‪۲‬‬
‫√‬
‫‪۱‬‬
‫‪n‬‬ ‫ﻣﺜﺎل ‪ ۴‬ﺗﻮاﺑﻊ ‪، ۲۱n‬‬

‫∑‬
‫)‪p(n‬‬
‫ﻧﺎﭼﯿﺰ اﺳﺖ‪.‬‬ ‫ﭼﻨﺪﺟﻤﻠﻪای ﺑﺎﺷﺪ و )‪ ε۱ , · · · , εp(n‬ﺗﻮاﺑﻊ ﻧﺎﭼﯿﺰ ﺑﺎﺷﻨﺪ‪ ،‬آﻧ ﺎه )‪εi (n‬‬ ‫ﻗﻀﯿﻪ ‪ ١‬اﮔﺮ )·(‪ p‬ﯾ‬
‫‪i=۱‬‬

‫ﺧﺎﻧﻮاده ﺳﯿﺴﺘﻢﻫﺎی رﻣﺰ ﻣﺘﻘﺎرن‬ ‫‪٢.٣‬‬


‫ﺧﺎﻧﻮاده‬ ‫ﺗﻌﺮﯾﻒ ‪) ۵‬ﺳﯿﺴﺘﻢ رﻣﺰ ﻣﺘﻘﺎرن( ﺳﻪﺗﺎﯾ )‪ Π = (Gen, Enc, Dec‬از اﻟ ﻮرﯾﺘﻢﻫﺎی ﭼﻨﺪﺟﻤﻠﻪای اﺣﺘﻤﺎﻻﺗ )‪ (PPT‬را ﯾ‬
‫از ﺳﯿﺴﺘﻢﻫﺎی رﻣﺰ ﻣﺘﻘﺎرن )ﺑﻪ ﻃﻮر ﺧﻼﺻﻪ ﯾ ﺳﯿﺴﺘﻢ رﻣﺰ ﻣﺘﻘﺎرن( روی ﻓﻀﺎی ﭘﯿﺎم ‪ M‬ﻣ ﻧﺎﻣﯿﻢ ﻫﺮﮔﺎه‪:‬‬

‫• ) ‪k ← Gen(۱n‬‬

‫‪∀k ∈ K, ∀m ∈ M‬‬ ‫• )‪c ← Enck (m‬‬

‫‪∀k ∈ K, ∀c ∈ C‬‬ ‫• )‪m ← Deck (c‬‬

‫و ﺷﺮط ﻧﻬﺎﯾ زﯾﺮ را ﺑﺮای ﻫﺮ ﭘﯿﺎم ‪ m ∈ M‬داﺷﺘﻪ ﺑﺎﺷﺪ‪:‬‬

‫‪Pr{k ← Gen(۱n ) : Deck (Enck (m)) = m} = ۱‬‬

‫اﻣﻨﯿﺖ ﺗ ﭘﯿﺎﻣ‬ ‫‪٣.٣‬‬


‫‪ PrivKeav‬را ﺑﻪ ﺻﻮرت زﯾﺮ در ﻧﻈﺮ ﺑ ﯿﺮﯾﺪ‪.‬‬
‫آزﻣﺎﯾﺶ )‪A,Π (n‬‬

‫• ) ‪k ← Gen(۱n‬‬

‫• ) ‪ (m۰ , m۱ ) ← A(۱n‬ﮐﻪ ‪ m۰ , m۱ ∈ M‬و | ‪|m۰ | = |m۱‬‬

‫• }‪b ← {۰, ۱‬‬

‫• ) ‪c ← Enck (mb‬‬

‫}‪b̂ ∈ {۰, ۱‬‬ ‫• )‪b̂ ← A(c‬‬

‫و در ﻏﯿﺮ اﯾﻦ‬ ‫در ﺻﻮرﺗ ﮐﻪ ‪ b‬و ̂‪ b‬ﺑﺮاﺑﺮ ﺑﺎﺷﻨﺪ‪ ،‬ﺧﺮوﺟ آزﻣﺎﯾﺶ ﮐﻪ ﺑﺎ ﻣﺘﻐﯿﺮ ﺗﺼﺎدﻓ )‪A,Π (n‬‬
‫‪ PrivKeav‬ﻧﺸﺎن داده ﻣ ﺷﻮد ﺑﺮاﺑﺮ ﯾ‬
‫ﺻﻮرت ﺻﻔﺮ ﺗﻌﺮﯾﻒ ﻣ ﺷﻮد‪.‬‬

‫ﺗﻌﺮﯾﻒ ‪) ۶‬اﻣﻨﯿﺖ ﺗ ﭘﯿﺎﻣ ( ﻣ ﮔﻮﺋﯿﻢ ﺳﯿﺴﺘﻢ ‪ Π‬دارای اﻣﻨﯿﺖ ﺗ ﭘﯿﺎﻣ اﺳﺖ اﮔﺮ ﺑﺮای ﻫﺮ ﻣﻬﺎﺟﻢ ﭼﻨﺪﺟﻤﻠﻪایِ اﺣﺘﻤﺎﻻﺗ‬
‫ﻏﯿﺮﯾ ﻨﻮاﺧﺖِ ‪ ،A‬ﺗﺎﺑﻊ ﻧﺎﭼﯿﺰ )·(‪ ε‬وﺟﻮد داﺷﺘﻪ ﺑﺎﺷﺪ ﮐﻪ‪:‬‬

‫‪۱‬‬
‫≤ }‪A,Π (n) = ۱‬‬
‫‪Pr{PrivKeav‬‬ ‫)‪+ ε(n‬‬
‫‪۲‬‬

‫‪١١-٣‬‬
‫اﻣﻨﯿﺖ ﭼﻨﺪﭘﯿﺎﻣ‬ ‫‪۴.٣‬‬
‫‪ PrivKmult‬را ﺑﻪ ﺻﻮرت زﯾﺮ در ﻧﻈﺮ ﺑ ﯿﺮﯾﺪ‪.‬‬
‫آزﻣﺎﯾﺶ )‪A,Π (n‬‬

‫• ) ‪k ← Gen(۱n‬‬

‫• ) ‪) ← A(۱n‬‬
‫)‪p(n‬‬ ‫)‪p(n‬‬
‫‪(m۱۰ , · · · , m۰‬‬ ‫‪, m۱۱ , · · · , m۱‬‬

‫• }‪b ← {۰, ۱‬‬

‫• ) ‪ ci ← Enck (mib‬ﺑﺮای )‪i = ۱, · · · , p(n‬‬

‫• ) )‪b̂ ← A(c۱ , · · · , cp(n‬‬

‫و در ﻏﯿﺮ اﯾﻦ‬ ‫در ﺻﻮرﺗ ﮐﻪ ‪ b‬و ̂‪ b‬ﺑﺮاﺑﺮ ﺑﺎﺷﻨﺪ‪ ،‬ﺧﺮوﺟ آزﻣﺎﯾﺶ ﮐﻪ ﺑﺎ ﻣﺘﻐﯿﺮ ﺗﺼﺎدﻓ )‪A,Π (n‬‬
‫‪ PrivKmult‬ﻧﺸﺎن داده ﻣ ﺷﻮد ﺑﺮاﺑﺮ ﯾ‬
‫ﺻﻮرت ﺻﻔﺮ ﺗﻌﺮﯾﻒ ﻣ ﺷﻮد‪.‬‬

‫ﺗﻌﺮﯾﻒ ‪) ٧‬اﻣﻨﯿﺖ ﭼﻨﺪﭘﯿﺎﻣ ( ﻣ ﮔﻮﺋﯿﻢ ﺳﯿﺴﺘﻢ ‪ Π‬دارای اﻣﻨﯿﺖ ﭼﻨﺪﭘﯿﺎﻣ اﺳﺖ اﮔﺮ ﺑﺮای ﻫﺮ ﻣﻬﺎﺟﻢ ﭼﻨﺪﺟﻤﻠﻪایِ اﺣﺘﻤﺎﻻﺗ‬
‫ﻏﯿﺮﯾ ﻨﻮاﺧﺖِ ‪ ،A‬ﺗﺎﺑﻊ ﻧﺎﭼﯿﺰ )·(‪ ε‬وﺟﻮد داﺷﺘﻪ ﺑﺎﺷﺪ ﮐﻪ‪:‬‬

‫‪۱‬‬
‫≤ }‪A,Π (n) = ۱‬‬
‫‪Pr{PrivKmult‬‬ ‫)‪+ ε(n‬‬
‫‪۲‬‬

‫ﺗﻤﺎﯾﺰﻧﺎﭘﺬﯾﺮی ﻣﺤﺎﺳﺒﺎﺗ ﻣﺠﺎﻧﺒ و ﻣﻮﻟﺪ ﺷﺒﻪﺗﺼﺎدﻓ‬ ‫‪۴‬‬


‫ﺧﺎﻧﻮاده از ﺗﻮزﯾﻊﻫﺎ ﮔﻮﯾﻨﺪ و ﺑﺎ ‪{Xn }n∈N‬‬ ‫ﺗﻌﺮﯾﻒ ‪) ٨‬ﺧﺎﻧﻮاده ﺗﻮزﯾﻊﻫﺎ( ﯾ دﻧﺒﺎﻟﻪ از ﺗﻮزﯾﻊﻫﺎی اﺣﺘﻤﺎل · · · ‪ X۱ , X۲ ,‬را ﯾ‬
‫ﯾﺎ ﺑﻪ اﺧﺘﺼﺎر } ‪ {Xn‬ﻧﻤﺎﯾﺶ ﻣ دﻫﻨﺪ‪.‬‬

‫ﺗﻌﺮﯾﻒ ‪) ٩‬ﺗﻤﺎﯾﺰﻧﺎﭘﺬﯾﺮی ﻣﺤﺎﺳﺒﺎﺗ ( دو ﺧﺎﻧﻮادهی ‪ X = {Xn }n∈N‬و ‪ Y = {Yn }n∈N‬را ﺗﻤﺎﯾﺰﻧﺎﭘﺬﯾﺮ ﻣﺤﺎﺳﺒﺎﺗ ﻣ ﻧﺎﻣﯿﻢ و‬
‫ﻣ ﻧﻮﯾﺴﯿﻢ ‪ ،X ≃ Y‬اﮔﺮ ﺑﺮای ﻫﺮ ﺗﻤﺎﯾﺰﮔﺮ ‪ nuPPT‬ﻣﺎﻧﻨﺪ ‪ D‬ﯾ ﺗﺎﺑﻊ ﻧﺎﭼﯿﺰ ﻣﺎﻧﻨﺪ )·(‪ ε‬وﺟﻮد داﺷﺘﻪ ﺑﺎﺷﺪ ﮐﻪ‪:‬‬

‫)‪| Pr{D(۱n , Xn ) = ۱} − Pr{D(۱n , Yn ) = ۱}| ≤ ε(n‬‬

‫ﺗﻮزﯾﻊ ﺑﺮ روی )‪ {۰, ۱}l(n‬ﺑﻪ ازای ﯾ‬ ‫ﺗﻌﺮﯾﻒ ‪) ١٠‬ﺗﻮزﯾﻊ ﺷﺒﻪﺗﺼﺎدﻓ ( ﺧﺎﻧﻮادهی ﺗﻮزﯾﻊﻫﺎی } ‪ {Xn‬ﮐﻪ در آن ‪ Xn‬ﯾ‬
‫ﭼﻨﺪﺟﻤﻠﻪای )·(‪ l‬اﺳﺖ ﺷﺒﻪﺗﺼﺎدﻓ ﻧﺎﻣﯿﺪه ﻣ ﺷﻮد ﻫﺮﮔﺎه } )‪.{Xn } ≃ {Ul(n‬‬

‫ﺗﻌﺮﯾﻒ ‪) ١١‬ﻣﻮﻟّﺪ ﺷﺒﻪﺗﺼﺎدﻓ ( ﻓﺮض ﮐﻨﯿﺪ )·(‪ l‬ﯾ ﭼﻨﺪﺟﻤﻠﻪای و ∗}‪ G : {۰, ۱}∗ → {۰, ۱‬ﯾ اﻟ ﻮرﯾﺘﻢ ﻗﻄﻌ ﺑﺎﺷﺪ ﮐﻪ‬
‫ﻫﺮ ورودی ‪-n‬ﺑﯿﺘ ‪ s‬را ﺑﻪ ﯾ رﺷﺘﻪ )‪-l(n‬ﺑﯿﺘ )‪ G(s‬ﺗﺒﺪﯾﻞ ﻣ ﮐﻨﺪ‪ .‬اﻟ ﻮرﯾﺘﻢ ‪ G‬ﯾ ﻣﻮﻟّﺪ ﺷﺒﻪﺗﺼﺎدﻓ اﺳﺖ اﮔﺮ‬

‫• )ﮐﺎراﯾ ( اﻟ ﻮرﯾﺘﻢ ‪ G‬ﭼﻨﺪﺟﻤﻠﻪای ﺑﺎﺷﺪ‬

‫• )ﮔﺴﺘﺮش( ‪l(n) > n‬‬

‫• )ﺷﺒﻪﺗﺼﺎدﻓ ( } )‪.{G(Un )} ≃ {Ul(n‬‬

‫ﻣﺜﺎل ‪ ١٢‬ﻓﺮض ﮐﻨﯿﺪ ﻣﻮﻟّﺪ ﺷﺒﻪﺗﺼﺎدﻓ )·(‪ G‬ﺑﺎ ﭼﻨﺪﺟﻤﻠﻪای ﮔﺴﺘﺮش )·(‪ l‬در اﺧﺘﯿﺎر دارﯾﻢ‪ .‬ﺳﯿﺴﺘﻢ رﻣﺰ ﻣﺘﻘﺎرن ‪ Π‬روی ﻓﻀﺎی‬
‫ﭘﯿﺎم )‪ M = {۰, ۱}l(n‬را ﺑﻪ ﺻﻮرت زﯾﺮ در ﻧﻈﺮ ﺑ ﯿﺮﯾﺪ‪:‬‬

‫• ) ‪k ← Gen(۱n‬‬

‫‪١١-۴‬‬
‫• )‪Enck (m) = m ⊕ G(k‬‬

‫• )‪Deck (c) = c ⊕ G(k‬‬

‫از‬ ‫ﺳﯿﺴﺘﻢ ﻓﻮق دارای اﻣﻨﯿﺖ ﺗ ﭘﯿﺎﻣ اﺳﺖ اﻣﺎ اﻣﻨﯿﺖ ﭼﻨﺪﭘﯿﺎﻣ ﻧﺪارد‪ .‬ﺑﺮای ﺣﻤﻠﻪ ﺑﻪ ﺳﯿﺴﺘﻢ ﻓﻮق‪ ،‬ﺣﻤﻠﻪﮐﻨﻨﺪه ﻣﺘﻦ رﻣﺰیِ ﯾ‬
‫دو دﺳﺘﻪ ﭘﯿﺎم زﯾﺮ را درﺧﻮاﺳﺖ و ) ‪ (c۱ , c۲‬را درﯾﺎﻓﺖ ﻣ ﮐﻨﺪ‪:‬‬

‫) )‪(m۱۰ , m۲۰ ) = (۰l(n) , ۰l(n‬‬ ‫) )‪(m۱۱ , m۲۱ ) = (۰l(n) , ۱l(n‬‬

‫ﺣﻤﻠﻪﮐﻨﻨﺪه در ﺻﻮرﺗ ﮐﻪ ‪ c۱‬و ‪ c۲‬ﺑﺎﻫﻢ ﺑﺮاﺑﺮ ﺑﺎﺷﻨﺪ‪ b̂ = ۰ ،‬و در ﻏﯿﺮ اﯾﻦ ﺻﻮرت ‪ b̂ = ۱‬ﻗﺮار ﻣ دﻫﺪ‪ .‬ﺣﻤﻠﻪﮐﻨﻨﺪهی ﺗﻮﺻﯿﻒﺷﺪه‪،‬‬
‫دارای ﻣﺰﯾﺖ ﻏﯿﺮﻧﺎﭼﯿﺰ و ﻗﺎﺑﻞ ﺗﻮﺟﻪ اﺳﺖ ﭼﺮا ﮐﻪ اﺣﺘﻤﺎل ﻣﻮﻓﻘﯿﺖ وی ﯾ ﻣ ﺑﺎﺷﺪ‪ .‬ﻟﺬا ﺳﯿﺴﺘﻢ ‪ Π‬دارای اﻣﻨﯿﺖ ﭼﻨﺪﭘﯿﺎﻣ ﻧﯿﺴﺖ‪.‬‬

‫‪١١-۵‬‬
‫ﺑﻪ ﻧﺎم ﺧﺪا‬

‫داﻧﺸ ﺪهی ﻋﻠﻮم رﯾﺎﺿ‬

‫‪ ٢٠‬ﻓﺮوردﯾﻦ ‪١٣٩٢‬‬ ‫ﻣﻘﺪﻣﻪای ﺑﺮ رﻣﺰﻧ ﺎری‬

‫ﺟﻠﺴﻪی ‪ :١٢‬ﺗﻮاﺑﻊ ﺷﺒﻪﺗﺼﺎدﻓ و اﻣﻨﯿﺖ ﭼﻨﺪﭘﯿﺎﻣ‬


‫ﻧ ﺎرﻧﺪه‪ :‬اﺣﻤﺪ ﻓﻨﺎﯾ ﺷﯿﺦ اﻻﺳﻼﻣ‬ ‫ﻣﺪرس‪ :‬دﮐﺘﺮ ﺷﻬﺮام ﺧﺰاﺋ‬

‫اﻣﻨﯿﺖ ﭼﻨﺪﭘﯿﺎﻣ‬ ‫‪١‬‬


‫‪١‬‬
‫‪PrivKmult‬‬
‫)‪Π,A (n‬‬ ‫ﺗﻌﺮﯾﻒ ‪ ١‬آزﻣﺎﯾﺶ اﻣﻨﯿﺖ ﭼﻨﺪﭘﯿﺎﻣ‬

‫‪ .١‬ﭼﺎﻟﺸ ﺮ ﮐﻠﯿﺪ ‪ k‬را ﺗﻮﻟﯿﺪ ﻣ ﮐﻨﺪ‪k ← Gen(۱n ) :‬‬

‫‪ .٢‬ﻣﻬﺎﺟﻢ ‪ ،A‬دو دﺳﺘﻪ ﭘﯿﺎم ﺑﻪ ﺻﻮرت ) ‪ (m۱۱ , ..., m۱‬و ) ‪ (m۱۰ , ..., m۰‬اﻧﺘﺨﺎب ﻣ ﮐﻨﺪ ﮐﻪ = | ‪|mi۰‬‬
‫)‪p(n‬‬ ‫)‪p(n‬‬

‫| ‪ |mi۱‬و ﺑﻪ ﭼﺎﻟﺸ ﺮ ﻣ دﻫﺪ‪.‬‬

‫ﺑﯿﺖ ﺗﺼﺎدﻓ }‪ b ∈ {۰, ۱‬اﻧﺘﺨﺎب ﻣ ﮐﻨﺪ‪.‬‬ ‫‪ .٣‬ﭼﺎﻟﺸ ﺮ ﯾ‬

‫‪ .۴‬ﭼﺎﻟﺸ ﺮ ﻣﻘﺎدﯾﺮ ) ‪ ci = Enck (mib‬را ﻣﺤﺎﺳﺒﻪ و ﺑﻪ ﻣﻬﺎﺟﻢ ‪ A‬ﻣ دﻫﺪ‪.‬‬

‫‪ .۵‬ﻣﻬﺎﺟﻢ ‪ A‬ﺑﯿﺖ ̂‪ b‬را ﺑﺎز ﻣ ﮔﺮداﻧﺪ‪.‬‬

‫‪ PrivKmult‬ﻧﺸﺎن داده ﻣ ﺷﻮد‪ ،‬ﺑﺮاﺑﺮ ﯾ در ﻧﻈﺮ ﮔﺮﻓﺘﻪ ﻣ ﺷﻮد اﮔﺮ ‪ b̂ = b‬و ﺻﻔﺮ اﺳﺖ اﮔﺮ‬
‫ﺧﺮوﺟ آزﻣﺎﯾﺶ ﮐﻪ ﺑﺎ )‪Π,A (n‬‬
‫̂‪ .b ̸= b‬دﻗﺖ ﮐﻨﯿﺪ ﮐﻪ ﺧﺮوﺟ آزﻣﺎﯾﺶ ﯾ ﻣﺘﻐﯿﺮ ﺗﺼﺎدﻓ اﺳﺖ ﮐﻪ ﺑﻪ ﺗﻤﺎم ﺑﯿﺖﻫﺎی ﺗﺼﺎدﻓ آزﻣﺎﯾﺶ و اﻟ ﻮرﯾﺘﻢﻫﺎ‪،‬‬
‫ﺑﺴﺘ دارد‪.‬‬

‫ﺗﻌﺮﯾﻒ ‪ ٢‬ﺳﯿﺴﺘﻢ رﻣﺰ ﻣﺘﻘﺎرن )‪ Π = (Gen, Enc, Dec‬دارای اﻣﻨﯿﺖ ﭼﻨﺪﭘﯿﺎﻣ در ﺣﻀﻮر ﻣﻬﺎﺟﻢ ﺷﻨﻮدﮔﺮ اﺳﺖ‪ ،‬اﮔﺮ‬
‫ﺑﺮای ﻫﺮ ﻣﻬﺎﺟﻢ ﻏﯿﺮ ﯾ ﻨﻮاﺧﺖ ﺗﺼﺎدﻓ ﭼﻨﺪﺟﻤﻠﻪای‪-‬زﻣﺎن ‪ ٢‬ﻣﺎﻧﻨﺪ ‪ ،A‬ﺗﺎﺑﻊ ﻧﺎﭼﯿﺰ )‪ ε(n‬وﺟﻮد داﺷﺘﻪ ﺑﺎﺷﺪ ﮐﻪ‪:‬‬

‫≤ }‪Π,A (n) = ۱‬‬


‫‪۱‬‬
‫‪Pr{PrivKmult‬‬ ‫‪۲‬‬
‫)‪+ ε(n‬‬

‫ﻗﻀﯿﻪ ‪ ١‬اﮔﺮ اﻟ ﻮرﯾﺘﻢ رﻣﺰﻧ ﺎری ﺗﺼﺎدﻓ ﻧﺒﺎﺷﺪ‪ ،‬اﻣﻨﯿﺖ ﭼﻨﺪ ﭘﯿﺎﻣ ﺑﺮﻗﺮار ﻧﯿﺴﺖ‪.‬‬
‫‪١‬‬
‫‪multi-message security expriment‬‬
‫‪٢‬‬
‫‪non-uniform problistic polynomial time‬‬

‫‪١٢-١‬‬
‫‪ PrivKmult‬ﺑﺎ اﺣﺘﻤﺎﻟ ﻗﺎﺑﻞ ﺗﻮﺟﻪ ﭘﯿﺮوز ﺷﻮد‪ .‬ﻣﻬﺎﺟﻢ ﺑﺎ‬
‫ﺑﺮﻫﺎن‪ .‬ﻣﻬﺎﺟﻢ ‪ A‬را ﺑﻪ ﮔﻮﻧﻪای ﻣ ﺳﺎزﯾﻢ ﮐﻪ در آزﻣﺎﯾﺶ )‪Π,A (n‬‬
‫درﯾﺎﻓﺖ ورودی ‪ ۱n‬دو دﺳﺘﻪ ﭘﯿﺎم ) ‪ (m۱۰ , m۲۰ ) = (۰n , ۰n‬و ) ‪ (m۱ , m۱ ) = (۰ , ۱‬را اﻧﺘﺨﺎب ﻣ ﮐﻨﺪ و آنﻫﺎ‬
‫‪۱‬‬ ‫‪۲‬‬ ‫‪n‬‬ ‫‪n‬‬

‫را ﺑﺮای ﭼﺎﻟﺸ ﺮ ﻣ ﻓﺮﺳﺘﺪ و ﻣﺘﻦﻫﺎی رﻣﺰﺷﺪه ) ‪ (c۱ , c۲‬را درﯾﺎﻓﺖ ﻣ ﮐﻨﺪ‪ .‬ﺑﺎ ﺗﻮﺟﻪ ﺑﻪ اﯾﻦﮐﻪ اﯾﻦ ﺳﯿﺴﺘﻢ رﻣﺰﻧ ﺎری‬
‫ﻗﻄﻌ اﺳﺖ‪ ،‬اﮔﺮ دﺳﺘﻪ اول اﻧﺘﺨﺎب ﺷﺪه ﺑﺎﺷﺪ‪ ،‬ﻫﻤﻮاره ‪ c۱ = c۲‬و اﮔﺮ دﺳﺘﻪ دوم اﻧﺘﺨﺎب ﺷﺪه ﺑﺎﺷﺪ ‪.c۱ ̸= c۲‬‬
‫ﺑﻨﺎﺑﺮاﯾﻦ ﻣﻬﺎﺟﻢ ﺑﯿﺖ ̂‪ b‬را ﺑﺮاﺑﺮ ﯾ ﻗﺮار ﻣ دﻫﺪ اﮔﺮ و ﻓﻘﻂ اﮔﺮ ‪ c۱ = c۲‬ﺑﺎﺷﺪ‪ .‬ﺑﻪ وﺿﻮح ﻣﻬﺎﺟﻢ ﺑﺎ اﺣﺘﻤﺎل ﯾ در‬
‫آزﻣﺎﯾﺶ ﺑﺎﻻ ﭘﯿﺮوز ﻣ ﺷﻮد‪.‬‬

‫ﺗﻮاﺑﻊ ﺗﺼﺎدﻓ و ﺷﺒﻪﺗﺼﺎدﻓ‬ ‫‪٢‬‬


‫ﺗﻮاﺑﻊ ﺗﺼﺎدﻓ‬ ‫‪١.٢‬‬
‫ﻣﺠﻤﻮﻋﻪی ﻫﻤﻪ ﺗﻮاﺑﻌ را ﮐﻪ ‪ n‬ﺑﯿﺖ را ﺑﻪ ‪ n‬ﺑﯿﺖ ﻣ ﻧ ﺎرﻧﺪ‪ ،‬ﺑﺎ ‪ RFn‬ﻧﺸﺎن دﻫﯿﺪ‪ .‬ﺗﻌﺪاد ﮐﻞ ﭼﻨﯿﻦ ﺗﻮاﺑﻌ ﺑﺮاﺑﺮ اﺳﺖ‬
‫ﺑﺎ ‪ ۲n۲‬زﯾﺮا‪ ،‬ﺗﻌﺪاد ورودیﻫﺎی ﺗﺎﺑﻊ ‪ ۲n‬ﺗﺎﺳﺖ و ﺑﺮای ﻫﺮ ورودی ‪ ۲n‬اﻣ ﺎن وﺟﻮد دارد‪ .‬ﻣﻨﻈﻮر از ﯾ ﺗﺎﺑﻊ ﺗﺼﺎدﻓ‬
‫‪n‬‬

‫ﺗﺎﺑﻌ اﺳﺖ ﻣﺎﻧﻨﺪ ‪ f : {۰, ۱}n → {۰, ۱}n‬ﮐﻪ از ﻣﺠﻤﻮﻋﻪ ‪ RFn‬ﺑﻪ ﺗﺼﺎدف و ﺑﺎ ﺗﻮزﯾﻊ ﯾ ﻨﻮاﺧﺖ اﻧﺘﺨﺎب ﺷﺪه‬
‫اﺳﺖ‪ .‬ﺑﺮای ذﺧﯿﺮه ﯾ ﺗﺎﺑﻊ ﺗﺼﺎدﻓ ﺑﻪ ‪ n۲n‬ﺑﯿﺖ ﻧﯿﺎز اﺳﺖ ﮐﻪ ﺣﺘ ﺑﺮای ﻣﻘﺎدﯾﺮ ﮐﻮﭼ ‪ n‬ﻧﯿﺰ ﻏﯿﺮ ﻋﻤﻠ اﺳﺖ‪.‬‬

‫ﺗﻮاﺑﻊ ﺷﺒﻪﺗﺼﺎدﻓ‬ ‫‪٢.٢‬‬


‫ﺑﺮای ﺣﻞ ﻣﺸ ﻞ ذﺧﯿﺮهﺳﺎزی ﺗﻮاﺑﻊ ﺗﺼﺎدﻓ ‪ ،‬ﺳﻌ ﻣ ﮐﻨﯿﻢ زﯾﺮﻣﺠﻤﻮﻋﻪ ﮐﻮﭼ ﺘﺮی از ﻫﻤﻪی ‪ ۲n۲‬ﺗﺎﺑﻊ اﻧﺘﺨﺎب ﮐﻨﯿﻢ‪.‬‬
‫‪n‬‬

‫ﻣﺜﻼ اﮔﺮ ﯾ ﺧﺎﻧﻮاده از ﺗﻮاﺑﻊ ﮐﻪ ﺷﺎﻣﻞ ‪ ۲n‬ﺗﺎﺑﻊ اﺳﺖ را در ﻧﻈﺮ ﺑ ﯿﺮﯾﻢ‪ ،‬ﻣ ﺗﻮان ﻫﺮ ﻋﻀﻮ آﻧﺮا ﺑﺎ ‪−n‬ﺑﯿﺖ ذﺧﯿﺮه ﮐﺮد‪.‬‬
‫واﺿﺢ اﺳﺖ ﮐﻪ وﻗﺘ ﯾ ﻋﻀﻮ از اﯾﻦ ﺧﺎﻧﻮاده ‪ ۲n‬ﻋﻀﻮی از ﺑﻪ ﺗﺼﺎدف اﻧﺘﺨﺎب ﺷﻮد دﯾ ﺮ ﮐﺎﻣﻼ ﺗﺼﺎدﻓ ﻧﯿﺴﺖ‪.‬‬
‫ﻣﺎ در اﯾﻦ ﺑﺨﺶ ﻣ ﺧﻮاﻫﯿﻢ ﻣﻔﻬﻮم ﺗﺎﺑﻊ ﺷﺒﻪﺗﺼﺎدﻓ را ﺑﺮای ﯾ ﺧﺎﻧﻮاده از ﺗﻮاﺑﻊ ﺗﻌﺮﯾﻒ ﮐﻨﯿﻢ‪.‬‬

‫ﺧﺎﻧﻮاده از ﺗﻮاﺑﻊ‬ ‫ﺗﻌﺮﯾﻒ ‪) ٣‬ﺧﺎﻧﻮاده ﺗﻮاﺑﻊ( ﻣﺠﻤﻮﻋﻪ ∗}‪ F = {fk : {۰, ۱}|k| → {۰, ۱}|k| }k∈{۰,۱‬را ﯾ‬
‫ﻣ ﻧﺎﻣﯿﻢ‪.‬‬

‫دﻗﺖ ﮐﻨﯿﺪ ﮐﻪ ﺑﻪ ازای ﻫﺮ ﮐﻠﯿﺪ ‪-n‬ﺑﯿﺘ ﻣﺎﻧﻨﺪ ‪ k‬ﺗﺎﺑﻊ )·( ‪ fk‬ﺗﺎﺑﻌ اﺳﺖ ﮐﻪ ‪-n‬ﺑﯿﺖ را ﺑﻪ ‪-n‬ﺑﯿﺖ ﻣ ﺑﺮد‪ .‬ﺣﺎل ﺳﻮال‬
‫اﯾﻦ اﺳﺖ ﮐﻪ ﭼ ﻮﻧﻪ ﻣ ﺗﻮان ﻣﻔﻬﻮم ﺷﺒﻪﺗﺼﺎﻓ ﺑﻮدن را ﺑﺮای ﯾ ﺧﺎﻧﻮاده از ﺗﻮاﺑﻊ ﺗﻌﺮﯾﻒ ﮐﺮد؟‬
‫ﺑﺮای ﺟﻮاب دادن ﺑﻪ ﺳﻮال ﺑﺎﻻ ﻣ ﺗﻮان از آزﻣﺎﯾﺶ زﯾﺮ ﮐﻪ ﺑﯿﻦ ﯾ ﭼﺎﻟﺸ ﺮ ﻓﺮﺿ و ﻣﻬﺎﺟﻢ ‪ A‬اﻧﺠﺎم ﻣ ﺷﻮد اﺳﺘﻔﺎده‬
‫ﮐﺮد‪:‬‬

‫ﺗﻌﺮﯾﻒ ‪ ۴‬آزﻣﺎﯾﺶ )‪ExpPRFF ,A (n‬‬

‫‪ .١‬ﭼﺎﻟﺸ ﺮ ﺑﯿﺖ ﺗﺼﺎدﻓ ‪ b‬را ﺗﻮﻟﯿﺪ ﻣ ﮐﻨﺪ‪b ← {۰, ۱} :‬‬

‫‪ .٢‬ﭼﺎﻟﺸ ﺮ ﺑﺎ اﺳﺘﻔﺎده از ﺑﯿﺘ ﮐﻪ در ﻣﺮﺣﻠﻪ ی ﻗﺒﻞ ﺗﻮﻟﯿﺪ ﮐﺮده ﺗﺎﺑﻊ ‪ f‬را ﺑﻪ ﺻﻮرت زﯾﺮ اﻧﺘﺨﺎب ﻣ ﮐﻨﺪ‪.‬‬
‫اﮔﺮ ‪ ،b = ۰‬ﺗﺎﺑﻊ ‪ f‬از ﺑﯿﻦ ﺗﻤﺎم ﺗﻮاﺑﻊ ﻣﻤ ﻦ ﺑﻪ ﺗﺼﺎدف اﻧﺘﺨﺎب ﻣ ﺷﻮد‪f ← RFn :‬‬
‫اﮔﺮ ‪ ،b = ۱‬ﺗﺎﺑﻊ ‪ f‬ﺑﻪ ﺗﺼﺎدف از ﻣﺠﻤﻮﻋﻪ }‪ {fk | |k| = n‬اﻧﺘﺨﺎب ﻣ ﺷﻮد؛ ﯾﻌﻨ ﭼﺎﻟﺸ ﺮ اﺑﺘﺪا ﮐﻠﯿﺪ ﮐﺎﻣﻼ‬
‫ﺗﺼﺎدﻓ ‪-n‬ﺑﯿﺘ ‪ k‬را ﺗﻮﻟﯿﺪ ﻣ ﮐﻨﺪ و ﺳﭙﺲ ﻗﺮار ﻣ دﻫﺪ‪.f ← fk :‬‬

‫‪١٢-٢‬‬
‫‪ .٣‬ﻣﻬﺎﺟﻢ ‪ A‬ﺑﺎ درﯾﺎﻓﺖ ورودی ‪ ۱n‬ﻣ ﺗﻮاﻧﺪ ﺑﻪ ﺗﻌﺪاد ﭼﻨﺪﺟﻤﻠﻪای ﺑﺎر ﭘﺮﺳﻤﺎن ‪٣‬ﻫﺎی دﻟﺨﻮاه ﺧﻮد را ﺑﻪ ﺻﻮرت‬
‫ﺗﻄﺒﯿﻘ ‪ ۴‬اﻧﺘﺨﺎب و ﺑﺮای ﭼﺎﻟﺸ ﺮ ارﺳﺎل ﮐﻨﺪ‪ .‬ﭼﺎﻟﺸ ﺮ ﻫﻢ ﺗﺎﺑﻊ ‪ f‬را روی ﻫﻤﻪ ﭘﺮﺳﻤﺎنﻫﺎ اﻋﻤﺎل و ﭘﺎﺳﺦ را‬
‫ﺑﺮای ﻣﻬﺎﺟﻢ ارﺳﺎل ﻣ ﮐﻨﺪ )اﺻﻄﻼﺣﺎً ﮔﻔﺘﻪ ﻣ ﺷﻮد ﻣﻬﺎﺟﻢ ﺑﻪ ﺗﺎﺑﻊ ‪ f‬دﺳﺘﺮﺳ اُراﮐﻠ ‪ ۵‬ﻣ ﯾﺎﺑﺪ(‪.‬‬ ‫ﺑ درﻧ‬

‫‪ .۴‬ﻣﻬﺎﺟﻢ ﺑﯿﺖ ̂‪ b‬را ﺗﻮﻟﯿﺪ ﻣ ﮐﻨﺪ‪.‬‬

‫ﺧﺮوﺟ آزﻣﺎﯾﺶ ﮐﻪ ﺑﺎ )‪ ExpPRFF,A (n‬ﻧﺸﺎن داده ﻣ ﺷﻮد ﺑﺮاﺑﺮ ﯾ در ﻧﻈﺮ ﮔﺮﻓﺘﻪ ﻣ ﺷﻮد اﮔﺮ ‪ b̂ = b‬و ﺻﻔﺮ‬
‫اﺳﺖ اﮔﺮ ̂‪ .b ̸= b‬دﻗﺖ ﮐﻨﯿﺪ ﮐﻪ ﺧﺮوﺟ آزﻣﺎﯾﺶ ﯾ ﻣﺘﻐﯿﺮ ﺗﺼﺎدﻓ اﺳﺖ ﮐﻪ ﺑﻪ ﺗﻤﺎم ﺑﯿﺖﻫﺎی ﺗﺼﺎدﻓ آزﻣﺎﯾﺶ و‬
‫اﻟ ﻮرﯾﺘﻢﻫﺎ‪ ،‬ﺑﺴﺘ دارد‪.‬‬

‫ﺗﻌﺮﯾﻒ ‪) ۵‬ﺗﺎﺑﻊ ﺷﺒﻪﺗﺼﺎدﻓ ( ﻓﺮض ﮐﻨﯿﺪ ∗}‪ F = {fk : {۰, ۱}|k| → {۰, ۱}|k| }k∈{۰,۱‬ﯾ ﺧﺎﻧﻮاده از ﺗﻮاﺑﻊ‬
‫ﺑﺎﺷﺪ ﮐﻪ ﺑﺘﻮان )‪ fk (x‬را از روی ‪ k‬و ‪ x‬در زﻣﺎن ﭼﻨﺪﺟﻤﻠﻪای ﻣﺤﺎﺳﺒﻪ ﮐﺮد‪ .‬ﻣ ﮔﻮﯾﯿﻢ ‪ F‬ﺷﺒﻪﺗﺼﺎدﻓ اﺳﺖ اﮔﺮ ﺑﺮای‬
‫ﻫﺮ ﻣﻬﺎﺟﻢ ﻏﯿﺮ ﯾ ﻨﻮاﺧﺖ ﺗﺼﺎدﻓ ﭼﻨﺪﺟﻤﻠﻪای‪-‬زﻣﺎن ﻣﺎﻧﻨﺪ ‪ ،A‬ﺗﺎﺑﻊ ﻧﺎﭼﯿﺰ )‪ ε(n‬وﺟﻮد داﺷﺘﻪ ﺑﺎﺷﺪ ﮐﻪ‪:‬‬

‫≤ }‪Pr{ExpPRFF ,A (n) = ۱‬‬ ‫‪۱‬‬


‫‪۲‬‬
‫)‪+ ε(n‬‬

‫دﺳﺘﺮﺳ اوراﮐﻠ ﯾ اﻟ ﻮرﯾﺘﻢ ﻣﺎﻧﻨﺪ ‪ A‬ﺑﻪ ﺗﺎﺑﻌ ﭼﻮن ‪ f‬را ﺑﻪ ﺻﻮرت )·( ‪ Af‬ﻧﺸﺎن ﻣ دﻫﻨﺪ‪ .‬ﭼﻨﯿﻦ اﻟ ﻮرﯾﺘﻤ ﯾ‬
‫‪۶‬‬
‫ﻣﺎﺷﯿﻦ اوراﮐﻠ ﻧﺎﻣﯿﺪه ﻣ ﺷﻮد‪ .‬ﻣ ﺗﻮان ﭼﻨﯿﻦ ﺗﺼﻮر ﻧﻤﻮد ﮐﻪ ﻣﺎﺷﯿﻦ اوراﮐﻠ ‪ A‬ﺑﻪ ﺟﻌﺒﻪای ﮐﻪ اﺻﻄﻼﺣﺎً ﺟﻌﺒﻪﺳﯿﺎه‬
‫ﻧﺎﻣﯿﺪه ﻣ ﺷﻮد دﺳﺘﺮﺳ دارد‪ .‬ﺟﻌﺒﻪ ﺳﯿﺎه ﯾ ﻧﻮار ورودی و ﯾ ﻧﻮار ﺧﺮوﺟ دارد ﺑﻪ ﻃﻮریﮐﻪ ﺑﻪ ﻣﺤﺾ اﯾﻨ ﻪ ﻣﺎﺷﯿﻦ‬
‫‪ A‬ﭘﺮﺳﻤﺎن ﺧﻮد را ﺑﺮ روی ﻧﻮار ورودی ﻗﺮار ﻣ دﻫﺪ‪ ،‬ﺧﺮوﺟ ﺑﺮ روی ﻧﻮار ﺧﺮوﺟ ﻇﺎﻫﺮ ﻣ ﺷﻮد و ﻣﺎﺷﯿﻦ ‪ A‬ﻣ ﺗﻮاﻧﺪ‬
‫از آن اﺳﺘﻔﺎده ﮐﻨﺪ‪ .‬در ﻣﺤﺎﺳﺒﻪی زﻣﺎن اﺟﺮای اﻟ ﻮرﯾﺘﻢ )ﻣﺎﺷﯿﻦ( اوراﮐﻠ ‪ ،A‬ﻫﺮ ﭘﺮﺳﻤﺎن و درﯾﺎﻓﺖ ﭘﺎﺳﺦ آن ﯾ‬
‫واﺣﺪ زﻣﺎﻧ درﻧﻈﺮ ﮔﺮﻓﺘﻪ ﻣ ﺷﻮد‪ .‬ﺑﻨﺎﺑﺮاﯾﻦ ﯾ اﻟ ﻮرﯾﺘﻢ اوراﮐﻠ ﭼﻨﺪﺟﻤﻠﻪای‪ ،‬ﻓﻘﻂ ﺑﻪ ﺗﻌﺪاد ﭼﻨﺪﺟﻤﻠﻪای ﺑﺎر )ﺑﺮ‬
‫ﺣﺴﺐ ﻃﻮل ورودی( ﻣ ﺗﻮاﻧﺪ ﺑﻪ اوراﮐﻞ )ﯾﺎ اوراﮐﻞﻫﺎی( ﺧﻮد دﺳﺘﺮﺳ ﭘﯿﺪا ﮐﻨﺪ‪ .‬ﺗﻌﺮﯾﻒ زﯾﺮ ﮐﻪ ﺑﺎ اﺳﺘﻔﺎده از ﻣﺎﺷﯿﻦ‬
‫)ﻣﻬﺎﺟﻢ( اوراﮐﻠ اراﺋﻪ ﺷﺪه اﺳﺖ ﻣﻌﺎدل ﺗﻌﺮﯾﻒ ﺑﺎﻻ از ﺷﺒﻪﺗﺼﺎدﻓ ﺑﻮدن ﯾ ﺧﺎﻧﻮاده از ﺗﻮاﺑﻊ اﺳﺖ‪.‬‬

‫ﺧﺎﻧﻮاده از ﺗﻮاﺑﻊ ∗}‪ {fk : {۰, ۱}|k| → {۰, ۱}|k| }k∈{۰,۱‬ﺷﺒﻪﺗﺼﺎدﻓ اﺳﺖ‪،‬‬ ‫ﺗﻌﺮﯾﻒ ‪) ۶‬ﺗﺎﺑﻊ ﺷﺒﻪﺗﺼﺎدﻓ ( ﯾ‬
‫ﻫﺮﮔﺎه‪:‬‬
‫‪ fk (x) .١‬را ﺑﺘﻮان در زﻣﺎن ﭼﻨﺪﺟﻤﻠﻪای از روی ‪ k‬و ‪ x‬ﻣﺤﺎﺳﺒﻪ ﮐﺮد‪.‬‬

‫‪ .٢‬ﺑﺮای ﻫﺮ ﻣﻬﺎﺟﻢ ﺗﺼﺎدﻓ ‪ A‬ﮐﻪ در زﻣﺎن ﭼﻨﺪ ﺟﻤﻠﻪ ای اﺟﺮا ﺷﻮد‪ ،‬ﺗﺎﺑﻊ ﻧﺎﭼﯿﺰ )‪ ε(n‬وﺟﻮد داﺷﺘﻪ ﺑﺎﺷﺪ ﮐﻪ‪:‬‬
‫)‪| Pr{f ← RFn : Af (·) (۱n ) = ۱} − Pr{k ← {۰, ۱}n : Afk (·) (۱n ) = ۱}| ≤ ε(n‬‬

‫ﻣﺜﺎل ‪ ٧‬ﺗﺎﺑﻊ ‪ fk (x) = k ⊕ x‬ﺷﺒﻪﺗﺼﺎدﻓ ﻧﯿﺴﺖ‪ .‬ﺑﺮای ﻧﺸﺎن دادن اﯾﻦ ﻣﻮﺿﻮع ﯾ ﻣﻬﺎﺟﻢ ‪ A‬ﻣ ﺳﺎزﯾﻢ ﮐﻪ ﺧﺎﻧﻮاده‬
‫ﻓﻮق را از ﺧﺎﻧﻮاده ﺗﻮاﺑﻊ ﺗﺼﺎدﻓ ﺗﺸﺨﯿﺺ دﻫﺪ‪ .‬ﻣﻬﺎﺟﻢ ﺑﺎ درﯾﺎﻓﺖ ورودی ‪ ۱n‬دو ﭘﺮﺳﻤﺎن ‪ x۱ = ۰n‬و ‪x۲ = ۱n‬‬
‫را اﻧﺘﺨﺎب ﻣ ﮐﻨﺪ و آنﻫﺎ را ﺑﺮای اوراﮐﻞ ﻣ ﻓﺮﺳﺘﺪ و ﭘﺎﺳﺦﻫﺎی ‪ y۱‬و ‪ y۲‬را درﯾﺎﻓﺖ ﻣ ﮐﻨﺪ‪ .‬اﮔﺮ ‪y۱ ⊕ y۲ = ۱n‬‬
‫ﺑﺎﺷﺪ‪ ،‬ﻣﻬﺎﺟﻢ ﺧﺮوﺟ ‪ ١‬را ﺑﺮﻣ ﮔﺮداﻧﺪ و در ﻏﯿﺮ اﯾﻦ ﺻﻮرت ﺧﺮوﺟ ‪ ٠‬را ﺑﺮﻣ ﮔﺮداﻧﺪ‪ .‬اﯾﻦ ﻣﻬﺎﺟﻢ دارای ﻣﺰﯾﺖ‬
‫ﻏﯿﺮﻧﺎﭼﯿﺰ | ‪ |۱ − ۲−n‬اﺳﺖ‪ ،‬زﯾﺮا‪:‬‬
‫‪٣‬‬
‫‪query‬‬
‫‪۴‬‬
‫‪addaptive‬‬
‫‪۵‬‬
‫‪oracle access‬‬
‫‪۶‬‬
‫‪black box‬‬

‫‪١٢-٣‬‬
‫‪Pr{f ← RFn : Af (·) (۱n ) = ۱} = Pr{f ← RFn | f (۰n ) ⊕ f (۱n ) = ۱n } = ۲−n‬‬

‫‪Pr{k ← {۰, ۱}n : Afk (·) (۱n ) = ۱} = Pr{k ← {۰, ۱}n : fk (۰n ) ⊕ fk (۱n ) = ۱n } = ۱‬‬

‫ﻧ ﺘﻪ ‪ ١‬ﺑﺮای ﺳﺎدﮔ ﺗﻌﺮﯾﻒ ﺗﺎﺑﻊ ﺷﺒﻪﺗﺼﺎدﻓ ﺑﺮای ﺣﺎﻟﺘ ﮐﻪ ﻃﻮل ورودی‪ ،‬ﻃﻮل ﮐﻠﯿﺪ و ﻃﻮل ﺧﺮوﺟ ﻫﻤ ﺑﺮاﺑﺮ‬
‫ﻫﺴﺘﻨﺪ اراﺋﻪ ﺷﺪ‪ .‬ﻣﻔﻬﻮم ﺗﺎﺑﻊ ﺷﺒﻪﺗﺼﺎدﻓ را ﻣ ﺗﻮان ﺑﻪ ﺗﻮاﺑﻌ ﮐﻪ ﻃﻮل ورودی‪ ،‬ﻃﻮل ﮐﻠﯿﺪ و ﻃﻮل ﺧﺮوﺟ آﻧﻬﺎ ﻣﺘﻔﺎوت‬
‫اﺳﺖ ﺗﻌﻤﯿﻢ داد‪.‬‬

‫اﮔﺮ ‪ G : {۰, ۱}n → {۰, ۱}n‬ﯾ ﻣﻮاد ﺷﺒﻪﺗﺼﺎدﻓ ﺑﺎﺷﺪ‪ ،‬ﺗﺎﺑﻊ )‪ fk (x) = G(k||x‬ﮐﻪ ‪ n‬ﺑﯿﺖ را ﺑﻪ ‪ ۲n‬ﺑﯿﺖ‬
‫ﻣ ﻧ ﺎرد‪ ،‬ﻟﺰوﻣﺎً ﯾ ﺗﺎﺑﻊ ﺷﺒﻪﺗﺼﺎدﻓ ﻧﯿﺴﺖ‪ .‬اﻣﺎ روش ﭘﯿﭽﯿﺪهﺗﺮی ﺑﺮای ﺳﺎﺧﺖ ﯾ ﺗﺎﺑﻊ ﺷﺒﻪﺗﺼﺎدﻓ ﺑﺎ اﺳﺘﻔﺎده از‬
‫ﯾ ﻣﻮﻟﺪ ﺷﺒﻪﺗﺼﺎدﻓ وﺟﻮد دارد‪.‬‬

‫ﻗﻀﯿﻪ ‪ ٢‬ﻣﻮﻟﺪ ﺷﺒﻪﺗﺼﺎدﻓ وﺟﻮد دارد اﮔﺮ وﺗﻨﻬﺎ اﮔﺮ ﺗﺎﺑﻊ ﺷﺒﻪﺗﺼﺎدﻓ وﺟﻮد داﺷﺘﻪ ﺑﺎﺷﺪ‪.‬‬

‫ﻗﻀﯿﻪ ‪ ٣‬ﻓﺮض ﮐﻨﯿﺪ ∗}‪ {fk : {۰, ۱}|k| → {۰, ۱}|k| }k∈{۰,۱‬ﯾ ﺧﺎﻧﻮاده از ﺗﻮاﺑﻊ ﺷﺒﻪ ﺗﺼﺎدﻓ ﺑﺎﺷﺪ‪ .‬ﺳﯿﺴﺘﻢ‬
‫)‪ Π = (Gen, Enc, Dec‬روی ﻓﻀﺎی ﭘﯿﺎم ‪ M = {۰, ۱}n‬ﮐﻪ ﺑﻪ ﺻﻮرت زﯾﺮ ﺗﻌﺮﯾﻒ ﻣ ﺷﻮد‪ ،‬دارای اﻣﻨﯿﺖ‬
‫ﭼﻨﺪﭘﯿﺎﻣ اﺳﺖ‪.‬‬

‫• اﻟ ﻮرﯾﺘﻢ ﺗﻮﻟﯿﺪ ﮐﻠﯿﺪ ‪ :Gen‬ورودی ‪ ۱n‬را ﻣ ﮔﯿﺮد و ﮐﻠﯿﺪ ﺗﺼﺎدﻓ ‪ k ← {۰, ۱}n‬را ﺗﻮﻟﯿﺪ ﻣ ﮐﻨﺪ‪.‬‬

‫• اﻟ ﻮرﯾﺘﻢ رﻣﺰﻧ ﺎری ‪ :Enc‬ﭘﯿﺎم ‪ m ∈ {۰, ۱}n‬و ﮐﻠﯿﺪ ‪ k ∈ {۰, ۱}n‬را ﻣ ﮔﯿﺮد و ﻣﺘﻦ رﻣﺰی ‪ c‬را ﺑﻪ اﯾﻦ‬
‫ﺻﻮرت ﺗﻮﻟﯿﺪ ﻣ ﮐﻨﺪ ﮐﻪ اﺑﺘﺪا رﺷﺘﻪ ﺗﺼﺎدﻓ ‪ r ← {۰, ۱}n‬اﻧﺘﺨﺎب و ﺳﭙﺲ ⟩)‪ c = ⟨r, m ⊕ fk (r‬ﻣﺤﺎﺳﺒﻪ‬
‫ﻣ ﺷﻮد‪.‬‬

‫• اﻟ ﻮرﯾﺘﻢ رﻣﺰﮔﺸﺎﯾ ‪ :Dec‬ﻣﺘﻦ رﻣﺰی ∗}‪ c ∈ {۰, ۱‬و ﮐﻠﯿﺪ ‪ k ∈ {۰, ۱}n‬را درﯾﺎﻓﺖ ﻣ ﮐﻨﺪ؛ ﺳﭙﺲ اﮔﺮ‬
‫⟩‪ c = ⟨r, s‬ﮐﻪ ‪ r, s ∈ {۰, ۱}n‬ﻣﺘﻦ اﺻﻠ )‪ m = s ⊕ fk (r‬ﺑﺮﮔﺮداﻧﺪه ﻣ ﺷﻮد‪ .‬در ﻏﯿﺮ اﯾﻦ ﺻﻮرت )اﮔﺮ‬
‫‪ (|c| ̸= ۲n‬ﻧﻤﺎد ⊥ ﺑﻪ ﻣﻌﻨﺎی ﻧﺎﻣﻌﺘﺒﺮ ﺑﻮدن ﻣﺘﻦ رﻣﺰی ﺑﺮﮔﺮداﻧﺪه ﻣ ﺷﻮد‪.‬‬

‫ﺷﻬﻮد اﺛﺒﺎت‪ .‬اﺑﺘﺪا ﺑﺒﯿﻨﯿﻢ ﯾ ﻣﻬﺎﺟﻢ ﻏﯿﺮﭼﻨﺪﺟﻤﻠﻪای ﭼ ﻮﻧﻪ ﻣ ﺗﻮاﻧﺪ ﺑﻪ ﺳﯿﺴﺘﻢ ﺣﻤﻠﻪ ﮐﻨﺪ‪ .‬ﺑﺎ اﺳﺘﻔﺎده از ﺗﻨﺎﻗﺾ روز‬
‫ﺗﻮﻟﺪ ﯾ ﻣﻬﺎﺟﻢ ﻏﯿﺮ ﭼﻨﺪﺟﻤﻠﻪای ﺑﺎ ﻣﺰﯾﺖ ﻗﺎﺑﻞ ﺗﻮﺟﻪ ﺑﺮای آزﻣﺎﯾﺶ اﻣﻨﯿﺖ ﭼﻨﺪﭘﯿﺎﻣ ﻣ ﺳﺎزﯾﻢ‪ .‬ﻫﺮﯾ از دﺳﺘﻪﻫﺎی‬
‫ﻣﺘﻦ اﺻﻠ ) ‪ (m۱۰ , · · · , m۰‬و ) ‪ (m۱۱ , · · · , m۱‬ﮐﻪ ﻣﻬﺎﺟﻢ اﻧﺘﺨﺎب ﻣ ﮐﻨﺪ ﺷﺎﻣﻞ ‪ p(n) = ۲n/۲‬ﻣﺘﻦ اﺳﺖ‪.‬‬
‫)‪p(n‬‬ ‫)‪p(n‬‬

‫ﻣﻬﺎﺟﻢ ﻫﺮ ﯾ از )‪ ۲p(n‬ﻣﺘﻦ ‪ mij‬را ﮐﻪ }‪ j ∈ {۰, ۱‬و )‪ i = ۱, · · · , p(n‬ﺑﻪ ﻃﻮر ﮐﺎﻣﻼ ﺗﺼﺎدﻓ از ﻣﺠﻤﻮﻋﻪی‬
‫} ‪ {۰n , ۱n‬اﻧﺘﺨﺎب ﻣ ﮐﻨﺪ‪ .‬ﺳﭙﺲ ﻣﺘﻦﻫﺎی رﻣﺰی )‪ c۱ , · · · , cp(n‬را ﮐﻪ ⟩ ‪ ci = ⟨ri , si‬و ‪ri , si ∈ {۰, ۱}n‬‬
‫درﯾﺎﻓﺖ ﻣ ﮐﻨﺪ‪ .‬دﻗﺖ ﮐﻨﯿﺪ ﮐﻪ اﮔﺮ ‪ i‬و ‪ j‬ﻣﺘﻤﺎﯾﺰی وﺟﻮد داﺷﺘﻪ ﺑﺎﺷﻨﺪ ﮐﻪ‬

‫‪ri = rj , mi۰ ⊕ mj۰ ̸= mi۱ ⊕ mj۱‬‬

‫ﻣﻬﺎﺟﻢ ﻣ ﺗﻮاﻧﺪ ﺗﺸﺨﯿﺺ دﻫﺪ ﮐﻪ ‪ ci‬ﻫﺎ رﻣﺰﺷﺪهی ﮐﺪام دﺳﺘﻪ ﻫﺴﺘﻨﺪ؛ زﯾﺮا‬

‫‪si ⊕ sj = mib ⊕ fk (ri ) ⊕ mjb ⊕ fk (rj ) = mib ⊕ mjb‬‬

‫‪١٢-۴‬‬
‫در اﯾﻦ ﺣﺎﻟﺖ ﻣﻬﺎﺟﻢ ﺑﯿﺖ ‪ b‬را ﻣ ﺗﻮاﻧﺪ ﺑﻪ درﺳﺘ ﺣﺪس ﺑﺰﻧﺪ و ﺑﯿﺖ ̂‪ b‬را ﻣﺘﻨﺎﻇﺮاً ﺗﻮﻟﯿﺪ ﮐﻨﺪ‪ .‬در ﻏﯿﺮ اﯾﻦﺻﻮرت ﺑﯿﺖ‬
‫‪۱‬‬
‫‪۲‬‬
‫̂‪ b‬ﺑﻪ ﻃﻮر ﮐﺎﻣﻼ ﺗﺼﺎدﻓ ﺗﻮﻟﯿﺪ ﻣ ﺷﻮد‪ .‬ﺣﺎل اﺣﺘﻤﺎل ﻣﻮﻓﻘﯿﺖ ﻣﻬﺎﺟﻢ را ﻣﺤﺎﺳﺒﻪ ﻣ ﮐﻨﯿﻢ‪ .‬ﺗﻮﺟﻪ ﮐﻨﯿﺪ ﮐﻪ ﺑﺎ اﺣﺘﻤﺎل‬
‫‪۱‬‬
‫‪۲‬‬
‫ﭘﯿﺸﺎﻣﺪ ‪) mi۰ ⊕ mj۰ ̸= mi۱ ⊕ mj۱‬ﺑﺮای ﻫﺮ ‪ i, j‬دﺧﻮاه ﻣﺘﻤﺎﯾﺰ( اﺗﻔﺎق ﻣ اﻓﺘﺪ و ﻃﺒﻖ ﻗﻀﯿﻪ روز ﺗﻮﻟﺪ ﺑﺎ اﺣﺘﻤﺎل‬
‫ﻣﻘﺎدﯾﺮ ﻣﺘﻤﺎﯾﺰ ‪ i, j‬وﺟﻮد دارد ﮐﻪ ‪ .ri = rj‬ﺑﻨﺎﺑﺮاﯾﻦ در ﺣﺎﻟﺖ اول ﮐﻪ ﺑﺎ اﺣﺘﻤﺎل ‪ ۱۴‬اﺗﻔﺎق ﻣ اﻓﺘﺪ ﻣﻬﺎﺟﻢ ﺑﺎ اﺣﺘﻤﺎل‬
‫ﯾ ﻣﻮﻓﻖ ﻣ ﺷﻮد و در ﺣﺎﻟﺖ دوم ﮐﻪ ﺑﺎ اﺣﺘﻤﺎل ‪ ۳۴‬اﺗﻔﺎق ﻣ اﻓﺘﺪ ﻣﻬﺎﺟﻢ ﺑﺎ اﺣﺘﻤﺎل ‪ ۱۲‬ﻣﻮﻓﻖ ﻣ ﺷﻮد‪ .‬ﺑﻨﺎﺑﺮاﯾﻦ اﺣﺘﻤﺎل‬
‫ﻣﻮﻓﻘﯿﺖ ﻣﻬﺎﺟﻢ ﺑﺮاﺑﺮ اﺳﺖ ﺑﺎ‬
‫‪۱‬‬ ‫‪۳ ۱‬‬ ‫‪۵‬‬
‫= · ‪·۱+‬‬
‫‪۴‬‬ ‫‪۴ ۲‬‬ ‫‪۸‬‬
‫ﮐﻪ ﻣﺰﯾﺖ ﻗﺎﺑﻞ ﺗﻮﺟﻬ ﺑﺮای وی ﺑﻪ ﻫﻤﺮاه دارد‪.‬‬
‫ﺑﻪ ﺻﻮرت ﺷﻬﻮدی ﻣﻬﺎﺟﻢ ﭼﻨﺪﺟﻤﻠﻪای ﮐﻪ )‪ p(n‬ﺑﺮای وی ﯾ ﭼﻨﺪﺟﻤﻠﻪای اﺳﺖ‪ ،‬ﺗﻨﻬﺎ زﻣﺎﻧ در آزﻣﺎﯾﺶ اﻣﻨﯿﺖ ﭼﻨﺪ‬
‫)‪(p(n‬‬
‫) ‪۲‬‬
‫‪۲n‬‬
‫ﭘﯿﺎﻣ ﻣﻮﻓﻖ ﻣ ﺷﻮد ﮐﻪ ﺧﻮش ﺷﺎﻧﺲ ﺑﺎﺷﺪ و دو ﭘﯿﺎم ﺑﺎ ﻣﻘﺎدﯾﺮ ﺗﺼﺎدﻓ ﯾ ﺴﺎن رﻣﺰ ﺷﻮﻧﺪ‪ .‬اﺣﺘﻤﺎل اﯾﻦ اﺗﻔﺎق از‬
‫ﮐﻤﺘﺮ اﺳﺖ ﮐﻪ ﺑﺮای ﺗﻮاﺑﻊ ﭼﻨﺪﺟﻤﻠﻪای )·(‪ p‬ﻧﺎﭼﯿﺰ اﺳﺖ‪.‬‬

‫‪١٢-۵‬‬
‫ﺑﻪ ﻧﺎم ﺧﺪا‬

‫داﻧﺸ ﺪهی ﻋﻠﻮم رﯾﺎﺿ‬

‫‪ ٢٧‬اردﯾﺒﻬﺸﺖ ‪١٣٩٢‬‬ ‫ﻣﻘﺪﻣﻪای ﺑﺮ رﻣﺰﻧ ﺎری‬

‫ﺟﻠﺴﻪی ‪ :١٣‬اﻣﻨﯿﺖ ‪ CPA‬و ‪ ،CCA‬ﺟﺎﯾ ﺸﺖ ﺷﺒﻪﺗﺼﺎدﻓ‬


‫ﻧ ﺎرﻧﺪه‪ :‬ﻧﯿﻠﻮﻓﺮ ﺻﻔ ﺻﻤﻎ آﺑﺎدی‬ ‫ﻣﺪرس‪ :‬دﮐﺘﺮ ﺷﻬﺮام ﺧﺰاﺋ‬

‫ﺗﺎﺑﻊ ﺷﺒﻪﺗﺼﺎدﻓ و رﻣﺰ دﻧﺒﺎﻟﻪای‬ ‫‪١‬‬


‫در ﺟﻠﺴﻪ ﻗﺒﻞ ‪ RFn‬را ﻣﺠﻤﻮﻋﻪی ﻫﻤﻪ ﺗﻮاﺑﻌ در ﻧﻈﺮ ﮔﺮﻓﺘﯿﻢ ﮐﻪ ‪ n‬ﺑﯿﺖ را ﺑﻪ ‪ n‬ﺑﯿﺖ ﻣ ﻧ ﺎرﻧﺪ و ﻫﻤﺎنﻃﻮر ﮐﻪ ﻣﻄﺮح‬
‫ﮐﺮدﯾﻢ ﺗﻌﺪاد ﮐﻞ ﭼﻨﯿﻦ ﺗﻮاﺑﻌ ‪ ۲n۲‬اﺳﺖ‪ .‬ﺗﺎﺑﻌ ﮐﻪ ﺑﻪ ﻃﻮر ﮐﺎﻣﻼ ﺗﺼﺎدﻓ از اﯾﻦ ﻣﺠﻤﻮﻋﻪ اﻧﺘﺨﺎب ﺷﺪه ﺑﺎﺷﺪ‪ ،‬ﯾ‬
‫‪n‬‬

‫ﺗﺎﺑﻊ ﺗﺼﺎدﻓ ﻧﺎﻣﯿﺪه ﻣ ﺷﻮد‪ .‬در ﻋﻤﻞ ﺑﻪ ﺟﺎی اﺳﺘﻔﺎده از ﺗﻮاﺑﻊ ﺗﺼﺎدﻓ ‪ ،‬از ﺗﻮاﺑﻊ ﺷﺒﻪﺗﺼﺎدﻓ اﺳﺘﻔﺎده ﻣ ﮐﻨﯿﻢ زﯾﺮا‬
‫ﺑﺮای ﻧﻤﺎﯾﺶ و ﮐﺪ ﮐﺮدن ﯾ ﺗﺎﺑﻊ ﺗﺼﺎدﻓ ﺑﻪ ‪ log(۲n۲ ) = n۲n‬ﺑﯿﺖ ﻧﯿﺎز اﺳﺖ ﮐﻪ ﺣﺘ ﺑﺮای ﻣﻘﺎدﯾﺮ ﻧﺴﺒﺘﺎً ﮐﻮﭼ‬
‫‪n‬‬

‫‪ ،n‬ﻧﻤ ﺗﻮاﻧﯿﻢ از اﯾﻦ ﺗﻮاﺑﻊ ﺑﻄﻮر ﻋﻤﻠ اﺳﺘﻔﺎده ﮐﻨﯿﻢ‪ .‬ﯾ ﺗﺎﺑﻊ ﺷﺒﻪﺗﺼﺎدﻓ ﻧﺎﻣﯿﺪه ﻣ ﺷﻮد اﮔﺮ ﻫﯿﭻ ﻣﻬﺎﺟﻢ ﮐﺎراﯾ‬
‫ﻧﺘﻮاﻧﺪ ﺑﺎ دﺳﺘﺮﺳ اوراﮐﻠ ﺑﻪ ﺗﺎﺑﻊ‪ ،‬آن را از ﯾ ﺗﺎﺑﻊ ﮐﺎﻣﻼ ﺗﺼﺎدﻓ ﺑﺎ ﻣﺰﯾﺖ ﻗﺎﺑﻞ ﺗﻮﺟﻬ ﺗﻤﯿﺰ دﻫﺪ‪ .‬ﺑﺮای دﻗﯿﻖ ﮐﺮدن‬
‫اﯾﻦ ﻣﻔﻬﻮم‪ ،‬ﻣ ﺗﻮان از روﯾ ﺮد دﻗﯿﻖ ‪ ١‬و ﻣﺠﺎﻧﺒ ‪ ٢‬اﺳﺘﻔﺎده ﮐﺮد‪ .‬ﻣﺎ از روﯾ ﺮد دوم اﺳﺘﻔﺎده ﮐﺮدﯾﻢ ﮐﻪ ﺑﺮای اﯾﻦ ﻣﻨﻈﻮر‬
‫ﻻزم اﺳﺖ ﺗﻌﺮﯾﻒ ﺑﺮای ﺧﺎﻧﻮادهای از ﺗﻮاﺑﻊ ﻣﻄﺮح ﺷﻮد‪.‬‬

‫ﺗﻌﺮﯾﻒ ‪) ١‬ﺗﺎﺑﻊ ﺷﺒﻪﺗﺼﺎدﻓ ( ﺧﺎﻧﻮادهی ﺗﻮاﺑﻊ ∗}‪ {fk : {۰, ۱}|k| → {۰, ۱}|k| }k∈{۰,۱‬را ﺷﺒﻪﺗﺼﺎدﻓ ‪ ٣‬ﮔﻮﯾﯿﻢ‬
‫اﮔﺮ‪:‬‬
‫اﻟ ﻮرﯾﺘﻢ ﭼﻨﺪﺟﻤﻠﻪای وﺟﻮد داﺷﺘﻪ ﺑﺎﺷﺪ ﮐﻪ ﺑﺘﻮاﻧﺪ )‪ fk (x‬را از روی ‪ k‬و ‪ x‬ﻣﺤﺎﺳﺒﻪ ﮐﻨﺪ‪،‬‬ ‫• ﯾ‬
‫• ﺗﺎﺑﻊ ﻧﺎﭼﯿﺰ )‪ ε(n‬وﺟﻮد داﺷﺘﻪ ﺑﺎﺷﺪ ﮐﻪ‪:‬‬

‫)‪| Pr{f ← RFn : Af (·) (۱n ) = ۱} − Pr{k ← {۰, ۱}n : Afk (·) (۱n ) = ۱}| ≤ ε(n‬‬

‫ﯾ روش ﻃﺮاﺣ ﺗﻮاﺑﻊ ﺷﺒﻪﺗﺼﺎدﻓ در ﻋﻤﻞ‪ ،‬اﺳﺘﻔﺎده از رﻣﺰﻫﺎی دﻧﺒﺎﻟﻪای ﻣﺪرن اﺳﺖ ﮐﻪ دارای ‪ IV‬ﻫﺴﺘﻨﺪ‪ .‬ﺑﺎ‬
‫اﺳﺘﻔﺎده از ﯾ ﺧﺎﻧﻮاده از ﺗﻮاﺑﻊ ﺷﺒﻪﺗﺼﺎدﻓ ‪ ،‬ﻣ ﺗﻮان ﺳﯿﺴﺘﻢ رﻣﺰ دﻧﺒﺎﻟﻪای ﺑﻪ ﺻﻮرت زﯾﺮ ﻃﺮاﺣ ﮐﺮد‪.‬‬

‫ﺗﻌﺮﯾﻒ ‪) ٢‬رﻣﺰ دﻧﺒﺎﻟﻪای( ﻓﺮض ﮐﻨﯿﺪ ∗}‪ {fk : {۰, ۱}|k| → {۰, ۱}|k| }k∈{۰,۱‬ﯾ ﺧﺎﻧﻮاده از ﺗﻮاﺑﻪ ﺷﺒﻪﺗﺼﺎدﻓ‬
‫ﺑﺎﺷﺪ‪ .‬ﺳﯿﺴﺘﻢ رﻣﺰ )‪ Π = (Gen, Enc, Dec‬روی ﻓﻀﺎی ﭘﯿﺎم ‪ M = {۰, ۱}n‬ﮐﻪ ﺑﻪ ﺷ ﻞ زﯾﺮ ﺗﻌﺮﯾﻒ ﻣ ﺷﻮد ﯾ‬
‫رﻣﺰ دﻧﺒﺎﻟﻪای اﺳﺖ‪:‬‬
‫‪١‬‬
‫‪concrete‬‬
‫‪٢‬‬
‫‪asymptotic‬‬
‫‪٣‬‬
‫‪pseudo-random‬‬

‫‪١٣-١‬‬
‫رﺷﺘﻪ ﺗﺼﺎدﻓ ‪-n‬ﺑﯿﺘ را ﺑﻪ ﻋﻨﻮان ﮐﻠﯿﺪ ﺗﻮﻟﯿﺪ ﻣ ﮐﻨﺪ‪:‬‬ ‫• اﻟ ﻮرﯾﺘﻢ ﺗﻮﻟﯿﺪ ﮐﻠﯿﺪ‪ :‬ﯾ‬

‫‪Gen(۱n ) : k ← {۰, ۱}n‬‬

‫• اﻟ ﻮرﯾﺘﻢ رﻣﺰﻧ ﺎری‪ :‬ﺑﺮای رﻣﺰ ﮐﺮدن ﭘﯿﺎم ‪ m ∈ {۰, ۱}n‬ﺗﺤﺖ ﮐﻠﯿﺪ ‪ ،k ∈ {۰, ۱}n‬اﺑﺘﺪا رﺷﺘﻪی ﺗﺼﺎدﻓ‬
‫‪ r ← {۰, ۱}n‬را ﺗﻮﻟﯿﺪ ﮐﺮده و ﺳﭙﺲ ⟩‪ ⟨r, fk (r) ⊕ m‬را ﺑﻪ ﻋﻨﻮان ﻣﺘﻦ رﻣﺰی ﺑﻪ ﺧﺮوﺟ ﻣ دﻫﺪ‪:‬‬

‫⟩‪c ← Enck (m) : r ← {۰, ۱}n , ⟨r, c⟩ ← ⟨r, fk (r) ⊕ m‬‬

‫• اﻟ ﻮرﯾﺘﻢ رﻣﺰﮔﺸﺎﯾ ‪ :‬ﺑﺮای ﯾﺎﻓﺘﻦ ﭘﯿﺎم ‪ m‬ﻣﺘﻨﺎﻇﺮ ﺑﺎ ﻣﺘﻦرﻣﺰی ⟩‪ c = ⟨r, u‬ﮐﻪ ‪ r, u ∈ {۰, ۱}n‬ﺑﻪ ﺻﻮرت‬
‫زﯾﺮ ﻋﻤﻞ ﻣ ﮐﻨﺪ‪:‬‬

‫)‪m ← Deck (⟨r, u⟩) : m = u ⊕ fk (r‬‬

‫ﺗﻌﺎرﯾﻒ ﻣﺨﺘﻠﻒ اﻣﻨﯿﺖ‬ ‫‪٢‬‬


‫ﺗﺎﮐﻨﻮن ﺑﺎ ﺗﻌﺮﯾﻒ اﻣﻨﯿﺖ ﯾ ﭘﯿﺎﻣ و ﭼﻨﺪﭘﯿﺎﻣ ‪ ۴‬آﺷﻨﺎ ﺷﺪهاﯾﻢ ﮐﻪ ﺻﺮﻓﺎً ﻣﻬﺎﺟﻢ ﺷﻨﻮدﮔﺮ را ﻣﺪل ﻣ ﮐﻨﺪ‪ .‬در اﯾﻦ ﺑﺨﺶ‬
‫ﭘﺲ از ﯾﺎدآوری اﻣﻨﯿﺖ ﭼﻨﺪﭘﯿﺎﻣ ‪ ،‬اﻣﻨﯿﺖﻫﺎی ﻗﻮیﺗﺮ ﻣﺘﻦ اﺻﻠ اﻧﺘﺨﺎﺑ )‪ (۵ CPA‬و ﻣﺘﻦ رﻣﺰی اﻧﺘﺨﺎﺑ )‪ (۶ CCA‬را‬
‫ﻣﻌﺮﻓ ﻣ ﮐﻨﯿﻢ‪ .‬اﻣﻨﯿﺖ ‪ CPA‬ﻣﻬﺎﺟﻤ را ﻣﺪل ﻣ ﮐﻨﺪ ﮐﻪ ﺑﻪ دﺳﺘ ﺎه رﻣﺰﻧ ﺎری دﺳﺘﺮﺳ دارد‪ .‬اﻣﻨﯿﺖ ‪ CCA‬ﻣﻬﺎﺟﻤ‬
‫را ﻣﺪل ﻣ ﮐﻨﺪ ﮐﻪ ﻋﻼوهﺑﺮ دﺳﺘﺮﺳ ﺑﻪ دﺳﺘ ﺎه رﻣﺰﻧ ﺎری‪ ،‬دﺳﺘ ﺎه رﻣﺰﮔﺸﺎﯾ را ﻧﯿﺰ در اﺧﺘﯿﺎر دارد‪.‬‬

‫اﻣﻨﯿﺖ ﭼﻨﺪﭘﯿﺎﻣ‬ ‫‪١.٢‬‬


‫‪ (PrivKmult‬ﻣﺮاﺣﻞ آزﻣﺎﯾﺶ اﻣﻨﯿﺖ ﺗ ﭘﯿﺎﻣ ﺑﻪ ﺻﻮرت زﯾﺮ اﺳﺖ‪:‬‬
‫ﺗﻌﺮﯾﻒ ‪) ٣‬آزﻣﺎﯾﺶ اﻣﻨﯿﺖ ﭼﻨﺪﭘﯿﺎﻣ )‪A,Π (n‬‬

‫‪k ← Gen(۱n ) .١‬‬

‫‪ (m۱۰ , . . . , m۰ ), (m۱۱ , . . . , m۱ ) ← A(۱n ) .٢‬ﮐﻪ | ‪|mi۰ | = |mi۱‬‬


‫)‪p(n‬‬ ‫)‪p(n‬‬

‫‪b ← {۰, ۱} .٣‬‬

‫‪ ci ← Enck (mib ) .۴‬ﺑﺮای )‪.i = ۱, . . . , p(n‬‬


‫‪bb ← A(c۱ , . . . , cp(n) ) .۵‬‬

‫‪ PrivKmult‬ﻧﺸﺎن داده ﻣ ﺷﻮد و ﺑﺮاﺑﺮ ‪ ١‬ﺗﻌﺮﯾﻒ ﻣ ﺷﻮد اﮔﺮ ‪ bb = b‬ﺑﺎﺷﺪ؛‬


‫ﺧﺮوﺟ اﯾﻦ آزﻣﺎﯾﺶ‪ ،‬ﺑﺎ ﻣﺘﻐﯿﺮ ﺗﺼﺎدﻓ )‪A,Π (n‬‬
‫‪٧‬‬
‫ﮐﻪ اﺣﺘﻤﺎل رﺧﺪاد آن‪ ،‬ﻫﻢ ﺑﻪ ﺳﯿﺴﺘﻢ رﻣﺰ و ﻫﻢ ﺑﻪ اﺳﺘﺮاﺗﮋی ﻣﻬﺎﺟﻢ ﺑﺴﺘ دارد‪.‬‬
‫‪۴‬‬
‫‪multi-message security‬‬
‫‪۵‬‬
‫‪chosen plaintext attack security‬‬
‫‪۶‬‬
‫‪chosen ciphertext attack security‬‬
‫‪٧‬‬
‫‪adversary‬‬

‫‪١٣-٢‬‬
‫ﺗﻌﺮﯾﻒ ‪) ۴‬اﻣﻨﯿﺖ ﭼﻨﺪﭘﯿﺎﻣ ( ﺳﯿﺴﺘﻢ رﻣﺰ )‪ Π = (Gen, Enc, Dec‬دارای اﻣﻨﯿﺖ ﭼﻨﺪﭘﯿﺎﻣ اﺳﺖ‪ ،‬اﮔﺮ ﺑﺮای ﻫﺮ‬
‫ﻣﻬﺎﺟﻢ ﭼﻨﺪﺟﻤﻠﻪای‪-‬زﻣﺎن ﺗﺼﺎدﻓ ﻏﯿﺮﯾ ﻨﻮاﺧﺖ )‪ (٨ nuPPT‬ﻣﺎﻧﻨﺪ ‪ ،A‬ﺗﺎﺑﻊ ﻧﺎﭼﯿﺰ )‪ ε(n‬ﻣﻮﺟﻮد ﺑﺎﺷﺪ ﮐﻪ‪:‬‬

‫‪۱‬‬
‫≤ }‪A,Π (n) = ۱‬‬
‫‪Pr{PrivKmult‬‬ ‫)‪+ ε(n‬‬
‫‪۲‬‬
‫ﻗﻀﯿﻪ ‪ ١‬ﺳﯿﺴﺘﻢ رﻣﺰ ﻣﻌﺮﻓ ﺷﺪه در ﺗﻌﺮﯾﻒ ‪ ،٢‬دارای اﻣﻨﯿﺖ ﭼﻨﺪﭘﯿﺎﻣ اﺳﺖ‪.‬‬

‫در اداﻣﻪ ﺑﻪ اﺛﺒﺎت ﺷﻬﻮدی اﯾﻦ ﻣﻮﺿﻮع ﻣ ﭘﺮدازﯾﻢ وﻟ از اﺛﺒﺎت دﻗﯿﻖ آن ﺻﺮفﻧﻈﺮ ﻣ ﮐﻨﯿﻢ‪.‬‬
‫آزﻣﺎﯾﺶ اﻣﻨﯿﺖ ﭼﻨﺪﭘﯿﺎﻣ را درﻧﻈﺮ ﺑ ﯿﺮﯾﺪ‪ .‬ﭼﻨﺎﻧﭽﻪ ﻣﻬﺎﺟﻢ در اﯾﻦ آزﻣﺎﯾﺶ دﺳﺘﻪی اول ﭘﯿﺎمﻫﺎ را ﺑﺮﮔﺰﯾﻨﺪ‪ ،‬ﭼﯿﺰی ﮐﻪ‬
‫درﯾﺎﻓﺖ ﻣ ﮐﻨﺪ‬
‫⟩) )‪⟨r۱ , m۰ ⊕ fk (r۱ )⟩, . . . , ⟨rp(n) , m۰ ⊕ fk (rp(n‬‬
‫‪۱‬‬ ‫)‪p(n‬‬

‫و در ﺻﻮرﺗ ﮐﻪ دﺳﺘﻪی دوم را ﺑﺮﮔﺰﯾﻨﺪ‪،‬‬

‫)‪p(n‬‬
‫‪⟨r۱ , m۱۱ ⊕ fk (r۱ )⟩, . . . , ⟨rp(n) , m۱‬‬ ‫⟩) )‪⊕ fk (rp(n‬‬

‫اﺳﺖ‪ .‬ﻋﺎﻣﻞ اﺻﻠ ﮐﻪ ﻣﻮﺟﺐ ﻣ ﺷﻮد ﻣﻬﺎﺟﻢ ﻧﺘﻮاﻧﺪ دو دﺳﺘﻪ ﻣﺘﻦ رﻣﺰﺷﺪهی ﻣﺬﮐﻮر را از ﻫﻢ ﺗﺸﺨﯿﺺ دﻫﺪ اﯾﻦ اﺳﺖ‬
‫ﮐﻪ ﭼﻮن ﺗﺎﺑﻊ ‪ f‬ﺷﺒﻪﺗﺼﺎدﻓ اﺳﺖ‪ ،‬ﻣﻬﺎﺟﻢ ﻧﻤ ﺗﻮاﻧﺪ ﻣﻘﺎدﯾﺮ ) ‪ fk (ri‬ﻫﺎ را از ﻣﻘﺎدﯾﺮ ﺗﺼﺎدﻓ ﺗﺸﺨﯿﺺ دﻫﺪ‪ .‬اﻟﺒﺘﻪ اﮔﺮ‬
‫ﻣﻬﺎﺟﻢ ﺷﻨﺎس داﺷﺘﻪ ﺑﺎﺷﺪ و دو ﺗﺎ از ﻣﻘﺎدﯾﺮ ‪ ri‬ﻫﺎ ﯾ ﺴﺎن ﺑﺎﺷﻨﺪ‪ ،‬ﻗﺎدر ﺑﻪ ﺗﺸﺨﯿﺺ ﻣﺘﻦﻫﺎی رﻣﺰﺷﺪه از ﯾ ﺪﯾ ﺮ ﺧﻮاﻫﺪ‬
‫))‪(p(n‬‬
‫اﺣﺘﻤﺎل ﻧﺎﭼﯿﺰ اﺳﺖ‪ .‬ﻃﺒﻖ‬ ‫اﺳﺖ ﮐﻪ ﺑﺮای ﻫﺮ ﺗﺎﺑﻊ ﭼﻨﺪﺟﻤﻠﻪای )·(‪ p‬ﯾ‬ ‫‪۲‬‬
‫ﺑﻮد‪ .‬اﻣﺎ اﺣﺘﻤﺎل ﭼﻨﯿﻦ روﯾﺪادی ﺑﺮاﺑﺮ‬
‫‪۲n‬‬
‫‪ p(n) ≈ ۲‬اﺣﺘﻤﺎل ﻗﺎﺑﻞ ﺗﻮﺟﻬ اﺳﺖ ﮐﻪ ﺑﺮای ﻣﻬﺎﺟﻢﻫﺎی ﭼﻨﺪﺟﻤﻠﻪای ﻗﺎﺑﻞ‬ ‫‪n/۲‬‬
‫ﻗﻀﯿﻪ روز ﺗﻮﻟﺪ‪ ،‬اﯾﻦ اﺣﺘﻤﺎل ﺑﺮای‬
‫اﺳﺘﻔﺎده ﻧﯿﺴﺖ‪.‬‬

‫اﻣﻨﯿﺖ ﻣﺘﻦ اﺻﻠ اﻧﺘﺨﺎﺑ‬ ‫‪٢.٢‬‬


‫‪ (PrivKcpa‬در آزﻣﺎﯾﺶ ﻣﺘﻦ اﺻﻠ اﻧﺘﺨﺎﺑ ‪ ،‬ﻣﻬﺎﺟﻢ ﺑﻪ اﻟ ﻮرﯾﺘﻢ‬
‫ﺗﻌﺮﯾﻒ ‪) ۵‬آزﻣﺎﯾﺶ ﺣﻤﻠﻪی ﻣﺘﻦ اﺻﻠ اﻧﺘﺨﺎﺑ )‪A,Π (n‬‬
‫رﻣﺰﻧ ﺎری دﺳﺘﺮﺳ اوراﮐﻠ ‪ ٩‬دارد پ ﻣﺮاﺣﻞ آن ﺑﻪ ﺻﻮرت زﯾﺮ اﺳﺖ‪:‬‬

‫‪k ← Gen(۱n ) .١‬‬

‫‪ m۰ , m۱ ← AEnck (·) (۱n ) .٢‬ﮐﻪ | ‪|m۰ | = |m۱‬‬

‫‪b ← {۰, ۱} .٣‬‬

‫‪c ← Enck (mb ) .۴‬‬


‫‪bb ← AEnck (·) (c) .۵‬‬

‫‪ PrivKcpa‬ﺗﻌﺮﯾﻒ ﻣ ﺷﻮد و ﻣﻘﺪار آن ﺑﺮاﺑﺮ ‪ ١‬اﺳﺖ اﮔﺮ ‪.bb = b‬‬


‫ﺧﺮوﺟ اﯾﻦ آزﻣﺎﯾﺶ‪ ،‬ﺑﺎ ﻣﺘﻐﯿﺮ ﺗﺼﺎدﻓ )‪A,Π (n‬‬
‫‪٨‬‬
‫‪non-uniform probabilistic polynomial time‬‬
‫‪٩‬‬
‫‪oracle access‬‬

‫‪١٣-٣‬‬
‫ﻧ ﺘﻪ ‪ ١‬ﭼﻮن اﻟ ﻮرﯾﺘﻢﻫﺎی رﻣﺰﻧ ﺎری ﺷﺮﮐﺖﮐﻨﻨﺪه در آزﻣﺎﯾﺶ ﺑﺎﻻ ﻣ ﺗﻮاﻧﻨﺪ اﺣﺘﻤﺎﻻﺗ ‪ ١٠‬ﺑﺎﺷﻨﺪ‪ ،‬اﮔﺮ ﻣﻬﺎﺟﻢ ﺑﻪ ﺗﻌﺪاد‬
‫ﭼﻨﺪﺟﻤﻠﻪای ﺑﺎر ﺑﺨﻮاﻫﺪ ﭘﯿﺎﻣ را رﻣﺰ ﮐﻨﺪ‪ ،‬ﻫﺮ ﺑﺎر ﻣ ﺗﻮاﻧﺪ ﻣﺘﻦ رﻣﺰﺷﺪهی ﻣﺘﻔﺎوﺗ درﯾﺎﻓﺖ ﮐﻨﺪ‪.‬‬

‫ﺗﻌﺮﯾﻒ ‪) ۶‬اﻣﻨﯿﺖ ‪ (CPA‬ﺳﯿﺴﺘﻢ رﻣﺰ )‪ Π = (Gen, Enc, Dec‬دارای اﻣﻨﯿﺖ ﻣﺘﻦ اﺻﻠ اﻧﺘﺨﺎﺑ )ﯾﺎ ‪-CPA‬‬
‫اﻣﻦ ‪ (١١‬اﺳﺖ‪ ،‬اﮔﺮ ﺑﺮای ﻫﺮ ﻣﻬﺎﺟﻢ ﭼﻨﺪﺟﻤﻠﻪای‪-‬زﻣﺎن ﺗﺼﺎدﻓ ﻏﯿﺮﯾ ﻨﻮاﺧﺖ ﻣﺎﻧﻨﺪ ‪ ،A‬ﺗﺎﺑﻊ ﻧﺎﭼﯿﺰ )‪ ε(n‬وﺟﻮد داﺷﺘﻪ‬
‫ﺑﺎﺷﺪ ﮐﻪ‪:‬‬
‫‪۱‬‬
‫≤ }‪A,Π (n) = ۱‬‬
‫‪Pr{PrivKcpa‬‬ ‫)‪+ ε(n‬‬
‫‪۲‬‬
‫ﻧ ﺘﻪ ‪ ٢‬ﯾ روش ﻋﻤﻠ ﺳﺎﺧﺖ ﺳﯿﺴﺘﻢﻫﺎی رﻣﺰی ‪-CPA‬اﻣﻦ‪ ،‬اﺳﺘﻔﺎده از رﻣﺰﻫﺎی دﻧﺒﺎﻟﻪای ‪ ١٢‬ﻣﺪرن اﺳﺖ ﮐﻪ ﻋﻼوه‬
‫ﺑﺮ ﮐﻠﯿﺪ‪ ،‬از ﯾ ﻣﻘﺪار اوﻟﯿﻪ )‪ (١٣ IV‬ﻧﯿﺰ اﺳﺘﻔﺎده ﻣ ﮐﻨﺪ‪.‬‬

‫ﻗﻀﯿﻪ ‪ ٢‬ﺳﯿﺴﺘﻢ رﻣﺰ ﻣﻌﺮﻓ ﺷﺪه در ﺗﻌﺮﯾﻒ ‪-CPA ،٢‬اﻣﻦ اﺳﺖ‪.‬‬

‫اﻣﻨﯿﺖ ﻣﺘﻦ رﻣﺰی اﻧﺘﺨﺎﺑ‬ ‫‪٣.٢‬‬


‫‪ (PrivKcca‬در آزﻣﺎﯾﺶ ﻣﺘﻦ رﻣﺰی اﻧﺘﺨﺎﺑ ‪ ،‬ﻣﻬﺎﺟﻢ ﻋﻼوه ﺑﺮ‬
‫ﺗﻌﺮﯾﻒ ‪) ٧‬آزﻣﺎﯾﺶ ﺣﻤﻠﻪی ﻣﺘﻦ رﻣﺰی اﻧﺘﺨﺎﺑ )‪A,Π (n‬‬
‫اﻟ ﻮرﯾﺘﻢ رﻣﺰﻧ ﺎری‪ ،‬ﺑﻪ اﻟ ﻮرﯾﺘﻢ رﻣﺰﮔﺸﺎﯾ ﻧﯿﺰ دﺳﺘﺮﺳ اوراﮐﻠ دارد و ﻣﺮاﺣﻞ آن ﺑﻪ ﺻﻮرت زﯾﺮ اﺳﺖ‪:‬‬

‫‪k ← Gen(۱n ) .١‬‬

‫‪ m۰ , m۱ ← AEnck (·),Deck (·) (۱n ) .٢‬ﮐﻪ | ‪|m۰ | = |m۱‬‬

‫‪b ← {۰, ۱} .٣‬‬

‫‪c ← Enck (mb ) .۴‬‬

‫‪ bb ← AEnck (·),Deck (·) (c) .۵‬ﮐﻪ ‪ A‬ﻣﺠﺎز ﺑﻪ درﺧﻮاﺳﺖ رﻣﺰﮔﺸﺎﯾ ‪ c‬ﻧﯿﺴﺖ‪.‬‬

‫‪ PrivKcca‬ﺗﻌﺮﯾﻒ ﻣ ﺷﻮد و ﻣﻘﺪار آن ﺑﺮاﺑﺮ ‪ ١‬اﺳﺖ‪ ،‬در ﺻﻮرﺗﯿ ﻪ ‪.bb = b‬‬


‫ﺧﺮوﺟ آزﻣﺎﯾﺶ‪ ،‬ﺑﺎ ﻣﺘﻐﯿﺮ ﺗﺼﺎدﻓ )‪A,Π (n‬‬

‫ﺗﻌﺮﯾﻒ ‪) ٨‬اﻣﻨﯿﺖ ‪ (CCA‬ﺳﯿﺴﺘﻢ رﻣﺰ )‪ Π = (Gen, Enc, Dec‬دارای اﻣﻨﯿﺖ ﻣﺘﻦ رﻣﺰی اﻧﺘﺨﺎﺑ )ﯾﺎ ‪-CPA‬‬
‫اﻣﻦ ‪ (١۴‬اﺳﺖ‪ ،‬اﮔﺮ ﺑﺮای ﻫﺮ ﻣﻬﺎﺟﻢ ﭼﻨﺪﺟﻤﻠﻪای‪-‬زﻣﺎن ﺗﺼﺎدﻓ ﻏﯿﺮﯾ ﻨﻮاﺧﺖ ﻣﺎﻧﻨﺪ ‪ ،A‬ﺗﺎﺑﻊ ﻧﺎﭼﯿﺰ )‪ ε(n‬وﺟﻮد داﺷﺘﻪ‬
‫ﺑﺎﺷﺪ ﮐﻪ‪:‬‬
‫‪۱‬‬
‫≤ }‪A,Π (n) = ۱‬‬
‫‪Pr{PrivKcpa‬‬ ‫)‪+ ε(n‬‬
‫‪۲‬‬
‫‪١٠‬‬
‫‪probabilistic‬‬
‫‪١١‬‬
‫‪chosen plaintext attack secure‬‬
‫‪١٢‬‬
‫‪stream cipher‬‬
‫‪١٣‬‬
‫‪initial value‬‬
‫‪١۴‬‬
‫‪chosen ciphertext attack secure‬‬

‫‪١٣-۴‬‬
‫ﻣﺜﺎل ‪ ٩‬ﺳﯿﺴﺘﻢ رﻣﺰ ﻣﻌﺮﻓ ﺷﺪه در ﺗﻌﺮﯾﻒ ‪-CCA ،٢‬اﻣﻦ ﻧﯿﺴﺖ‪.‬‬
‫ﺑﺮای اﺛﺒﺎت اﯾﻦ ﻣﻮﺿﻮع‪ ،‬ﮐﺎﻓﯿﺴﺖ ﻧﺸﺎن دﻫﯿﻢ ﻣﻬﺎﺟﻢ ﺗﺼﺎدﻓ ﭼﻨﺪﺟﻤﻠﻪای ‪ A‬وﺟﻮد دارد ﮐﻪ ﻣ ﺗﻮاﻧﺪ در آزﻣﺎﯾﺶ‬
‫‪۱‬‬
‫ﺣﻤﻠﻪی ﻣﺘﻦ رﻣﺰی اﻧﺘﺨﺎﺑ ﺑﺎ اﺣﺘﻤﺎل )‪ + µ(n‬ﻣﻮﻓﻖ ﺷﻮد ﮐﻪ )‪ µ(n‬ﯾ ﺗﺎﺑﻊ ﻏﯿﺮﻧﺎﭼﯿﺰ )ﻗﺎﺑﻞ ﺗﻮﺟﻪ( اﺳﺖ‪ .‬ﻣﻬﺎﺟﻢ‬
‫‪۲‬‬
‫‪ A‬را ﺑﻪ اﯾﻦ ﺻﻮرت ﻣ ﺳﺎزﯾﻢ ﮐﻪ در ﻣﺮﺣﻠﻪ دوم آزﻣﺎﯾﺶ )ﺑﺪون اﺳﺘﻔﺎده از اوراﻟ ﻞﻫﺎی رﻣﺰﻧ ﺎری و رﻣﺰﮔﺸﺎﯾ (‬
‫دو دﺳﺘﻪ ﭘﯿﺎم ﺗﻤﺎم ﺻﻔﺮ ‪ m۰ = ۰n‬و ﺗﻤﺎم ﯾ ‪ m۱ = ۱n‬را ﺗﻮﻟﯿﺪ ﮐﺮده و در اﺧﺘﯿﺎر ﭼﺎﻟﺸ ﺮ ‪ ١۵‬ﻗﺮار ﻣ دﻫﺪ‪.‬‬
‫ﻣﻬﺎﺟﻢ ﻣﻨﺘﻈﺮ ﻣ ﻣﺎﻧﺪ ﺗﺎ ﭼﺎﻟﺸ ﺮ ﺑﯿﺖ ﺗﺼﺎدﻓ ‪ b‬را ﺗﻮﻟﯿﺪ و ﭘﯿﺎم ‪ mb‬را ﺗﻮﺳﻂ اﻟ ﻮرﯾﺘﻢ رﻣﺰﻧ ﺎری رﻣﺰ ﻧﻤﻮده و ﭘﯿﺎم‬
‫رﻣﺰی ⟩‪ c = ⟨r, u‬را در اﺧﺘﯿﺎر او ﻗﺮار دﻫﺪ‪ .‬ﺳﭙﺲ در ﻣﺮﺣﻠﻪ ‪ ۵‬آزﻣﺎﯾﺶ‪ ،‬ﻣﻬﺎﺟﻢ ﺑﺎ درﯾﺎﻓﺖ ﻣﺘﻦ رﻣﺰی ⟩‪c = ⟨r, u‬‬
‫ﺑﺪﯾﻦ ﮔﻮﻧﻪ ﻋﻤﻞ ﻣ ﮐﻨﺪ‪ :‬ﺑﺎ ﺗﻮﺟﻪ ﺑﻪ اﯾﻨ ﻪ ﻣﻬﺎﺟﻢ ﺑﻪ ﺗﻮاﺑﻊ رﻣﺰﻧ ﺎر و رﻣﺰﮔﺸﺎ دﺳﺘﺮﺳ اوراﮐﻠ دارد‪ ،‬ﻣﻬﺎﺟﻢ ﭘﯿﺎم‬
‫ﻣﺘﻨﺎﻇﺮ ﺑﺎ ﻣﺘﻦ رﻣﺰی ⟩ ‪ c′ = ⟨r, u ⊕ ۱۰n−۱‬را از ﺗﺎﺑﻊ رﻣﺰﮔﺸﺎ درﺧﻮاﺳﺖ ﻣ ﮐﻨﺪ و ﭘﺲ از درﯾﺎﻓﺖ ﭘﯿﺎم ﻣﺘﻨﺎﻇﺮ آن‪،‬‬
‫) ‪ ،m′ = Deck (c′‬ﺑﯿﺖ ‪ bb‬را ﺑﺼﻮرت زﯾﺮ ﺗﻮﻟﯿﺪ ﻣ ﮐﻨﺪ‪:‬‬
‫{‬
‫= ‪bb‬‬ ‫‪۰‬‬ ‫‪m′ = ۱۰n−۱‬‬
‫‪۱‬‬ ‫‪m′ = ۰۱n−۱‬‬
‫دﻗﺖ ﮐﻨﯿﺪ ﮐﻪ ﭼﻮن ‪ c′ ̸= c‬ﻣﻬﺎﺟﻢ ﻣﺠﺎز ﺑﻪ درﺧﻮاﺳﺖ رﻣﺰﮔﺸﺎﯾ ‪ c′‬اﺳﺖ‪ .‬ﺑﺎ ﺗﻮﺟﻪ ﺑﻪ اﯾﻨ ﻪ )‪ u = m ⊕ fk (r‬و‬
‫)‪ u ⊕ ۱۰n−۱ = m′ ⊕ fk (r‬دارﯾﻢ ‪ .m′ = ۱۰n−۱ ⊕ mb‬ﺑﻨﺎﺑﺮاﯾﻦ ﻫﻤﻮاره ‪ b = bb‬و ﻟﺬا اﺣﺘﻤﺎل ﻣﻮﻓﻘﯿﺖ ﻣﻬﺎﺟﻢ‬
‫ﺑﺮاﺑﺮ اﺳﺖ ﺑﺎ‪:‬‬

‫‪Pr{PrivKcca‬‬
‫‪A,Π (n) = ۱} = ۱‬‬

‫ﮐﻪ ﻧﺎﭼﯿﺰ ﻧﯿﺴﺖ‪ .‬ﻟﺬا ﺳﯿﺴﺘﻢ رﻣﺰ ﻣﻮرد ﻧﻈﺮ ‪-CCA‬اﻣﻦ ﻧﯿﺴﺖ‪.‬‬

‫‪ ٣‬ﺟﺎﯾ ﺸﺖ ﺷﺒﻪﺗﺼﺎدﻓ و رﻣﺰﻗﺎﻟﺒ‬


‫ﺟﺎﯾ ﺸﺖ ‪ ١۶‬ﮔﻮﯾﯿﻢ‪ ،‬اﮔﺮ ﺗﺎﺑﻊ ﻣﻌ ﻮس‬ ‫ﺗﻌﺮﯾﻒ ‪) ١٠‬ﺟﺎﯾ ﺸﺖ( ﺗﺎﺑﻊ ‪ E : {۰, ۱}n → {۰, ۱}n‬را ﯾ‬

‫‪E −۱ : {۰, ۱}n → {۰, ۱}n‬‬

‫ﻣﻮﺟﻮد ﺑﺎﺷﺪ ﺑﻪ ﻃﻮری ﮐﻪ‪:‬‬

‫‪∀x ∈ {۰, ۱}n : E −۱ (E(x)) = x‬‬

‫ﺑﻪ ﺗﻌﺒﯿﺮ دﯾ ﺮ ﺗﺎﺑﻊ ‪ E‬را ﺟﺎﯾ ﺸﺖ ﻣ ﮔﻮﯾﯿﻢ‪ ،‬اﮔﺮ و ﺗﻨﻬﺎ اﮔﺮ ﯾ ﺑﻪ ﯾ ﺑﺎﺷﺪ‪ .‬ﻣﺸﺎﺑﻪ ﺗﻮاﺑﻊ ﺷﺒﻪﺗﺼﺎدﻓ ﻣ ﺗﻮان ﻣﻔﻬﻮم‬
‫ﺷﺒﻪﺗﺼﺎدﻓ ﺑﻮدن را ﺑﺮای ﺟﺎﯾ ﺸﺖﻫﺎ ﻧﯿﺰ ﻣﻄﺮح ﮐﺮد‪ .‬ﯾ ﺟﺎﯾ ﺸﺖ ﺷﺒﻪﺗﺼﺎدﻓ ﻧﺎﻣﯿﺪه ﻣ ﺷﻮد اﮔﺮ ﻫﯿﭻ ﻣﻬﺎﺟﻢ‬
‫ﮐﺎراﯾ ﻧﺘﻮاﻧﺪ ﺑﺎ دﺳﺘﺮﺳ اوراﮐﻠ ﺑﻪ ﺟﺎﯾ ﺸﺖ و ﻣﻌ ﻮساش‪ ،‬آن را از ﯾ ﺟﺎﯾ ﺸﺖ ﮐﺎﻣﻼ ﺗﺼﺎدﻓ ﺑﺎ ﻣﺰﯾﺖ ﻗﺎﺑﻞ‬
‫ﺗﻮﺟﻬ ﺗﻤﯿﺰ دﻫﺪ‪ .‬ﺗﻌﺮﯾﻒ را ﻣ ﺗﻮان ﺑﻪ ﺻﻮرت دﻗﯿﻖ و ﯾﺎ ﻣﺠﺎﻧﺒ اراﺋﻪ ﮐﺮد ﮐﻪ ﻣﺎ از روﯾ ﺮ دوم اﺳﺘﻔﺎده ﻣ ﮐﻨﯿﻢ‪.‬‬

‫ﺗﻌﺮﯾﻒ ‪) ١١‬ﺟﺎﯾ ﺸﺖ ﺷﺒﻪﺗﺼﺎدﻓ ( ﺧﺎﻧﻮادهی ﺟﺎﯾ ﺸﺖﻫﺎی‬


‫‪١۵‬‬
‫‪challenger‬‬
‫‪١۶‬‬
‫‪permutation‬‬

‫‪١٣-۵‬‬
‫∗}‪{Ek : {۰, ۱}|k| → {۰, ۱}|k| }k∈{۰,۱‬‬

‫را ﺷﺒﻪﺗﺼﺎدﻓ ﮔﻮﯾﯿﻢ اﮔﺮ‪:‬‬

‫اﻟ ﻮرﯾﺘﻢ ﭼﻨﺪﺟﻤﻠﻪای وﺟﻮد داﺷﺘﻪ ﺑﺎﺷﺪ ﮐﻪ ﺑﺘﻮاﻧﺪ )‪ Ek (m‬را از روی ‪ k‬و ‪ m‬ﻣﺤﺎﺳﺒﻪ ﮐﻨﺪ‪.‬‬ ‫• ﯾ‬

‫• ﺑﺮای ﻫﺮ ﻣﻬﺎﺟﻢ ‪ A‬ﺗﺎﺑﻊ ﻧﺎﭼﯿﺰ )‪ ε(n‬وﺟﻮد داﺷﺘﻪ ﺑﺎﺷﺪ ﮐﻪ‪:‬‬

‫)·( ‪−۱‬‬ ‫‪−۱‬‬


‫‪| Pr{AE(·),E‬‬ ‫‪(۱n ) = ۱} − Pr{k ← {۰, ۱}n : AEk (·),Ek‬‬ ‫)·(‬
‫)‪(۱n ) = ۱}| ≤ ε(n‬‬

‫ﮐﻪ ‪ RPn‬ﻣﺠﻤﻮﻋﻪ ﻫﻤﻪ ﺟﺎﯾ ﺸﺖﻫﺎی روی رﺷﺘﻪﻫﺎی ‪-n‬ﺑﯿﺘ اﺳﺖ و اﻧﺪازه آن ! ‪ ۲n‬اﺳﺖ‪.‬‬

‫ﺗﺎﺑﻊ ﺷﺒﻪﺗﺼﺎدﻓ ﻧﯿﺰ ﻣ ﺑﺎﺷﺪ‪.‬‬ ‫ﺟﺎﯾ ﺸﺖ ﺷﺒﻪﺗﺼﺎدﻓ ﺑﺎﺷﺪ‪ ،‬ﯾ‬ ‫ﮔﺰاره ‪ ١‬اﮔﺮ ‪ E‬ﯾ‬

‫ﺟﺎﯾ ﺸﺖﻫﺎی ﺷﺒﻪﺗﺼﺎدﻓ ﮐﺎرﺑﺮدﻫﺎی ﺑﺴﯿﺎر زﯾﺎدی در رﻣﺰﻧ ﺎری دارد و ﺗﺤﺖ ﻋﻨﻮان رﻣﺰﻗﺎﻟﺒ ‪ ١٧‬ﺷﻨﺎﺧﺘﻪ ﻣ ﺷﻮﻧﺪ‪ .‬از‬
‫رﻣﺰﻫﺎی ﻗﺎﺑ ﻣﻌﺮوف ﻣ ﺗﻮان ﺑﻪ ‪ DES‬و ‪ AES‬اﺷﺎره ﮐﺮد‪ .‬اﯾﻦ ﺟﺎﯾﺸ ﺖﻫﺎ ﺑﺮای ﻃﻮل ورودی )ﻗﺎﻟﺐ( و ﻃﻮل ﮐﻠﯿﺪ‬
‫ﺧﺎص ﻃﺮاﺣ ﺷﺪهاﻧﺪ‪ .‬رﻣﺰ ﻗﺎﻟﺒ ‪ DES‬دارای ﻃﻮل ﻗﺎﻟﺐ ‪ ۶۴‬و ﻃﻮل ﮐﻠﯿﺪ ‪ ۵۶‬ﺑﯿﺖ اﺳﺖ‪ .‬رﻣﺰ ﻗﺎﻟﺒ ‪ AES‬دارای‬
‫ﺳﻪ ﻧﺴﺨﻪ ‪ AES-192 ،AES-128‬و ‪ AES-256‬اﺳﺖ ﮐﻪ ﻋﺪد ﺑ ﺎر رﻓﺘﻪ ﺑﯿﺎﻧ ﺮ ﻃﻮل ﮐﻠﯿﺪ اﺳﺖ؛ ﻃﻮل ﻗﺎﻟﺐ ﻫﺮ ﺳﻪ‬
‫ﻧﺴﺨﻪ ‪ ١٢٨‬ﺑﯿﺖ اﺳﺖ‪ .‬ﻃﻮل ﻗﺎﻟﺐ ﮐﻮﭼ ‪ DES‬آن را ﻣﻨﺎﺳﺐ ﺑﺮای اﺳﺘﻔﺎده ﺑﻪ ﻋﻨﻮان ﯾ ﺗﺎﺑﻊ ﺷﺒﻪﺗﺼﺎدﻓ ﻧﻤ ﮐﻨﺪ‬
‫زﯾﺮا ﺑﺎ اﺳﺘﻔﺎده از ﻗﻀﯿﻪ روز ﺗﻮﻟﺪ ﺑﺎ ‪ ۲۳۲‬ﭘﺮﺳﻤﺎن از ﯾ ﺗﺎﺑﻊ ﺗﺼﺎدﻓ ﻗﺎﺑﻞ ﺗﻤﯿﺰ اﺳﺖ‪ .‬در زﻣﺎن ﻃﺮاﺣ ‪ DES‬ﻃﻮل‬
‫ﮐﻠﯿﺪ ‪ ۵۶‬ﻣﻨﺎﺳﺐ ﺑﻮد اﻣﺎ اﻣﺮوزه اﯾﻦ ﻃﻮل ﺳﻄﺢ ﻣﻨﺎﺳﺒ از اﻣﻨﯿﺖ ﺑﺮآورده ﻧﻤ ﮐﻨﺪ‪ ،‬ﺑﻪ ﻃﻮری ﮐﻪ ﺑﺎ ﻫﺰﯾﻨﻪ ﭼﻨﺪﻫﺰار دﻻر‬
‫ﻣ ﺗﻮان ﻓﻀﺎی ﮐﻠﯿﺪ را در ﭼﻨﺪ روز ﺟﺴﺘﺠﻮ ﮐﺮد‪.‬‬
‫رﻣﺰﻫﺎی ﻗﺎﻟﺒ ﺑﺮای اﻋﻤﺎل روی ﻗﺎﻟﺐﻫﺎی داده ﻃﺮاﺣ ﺷﺪهاﻧﺪ‪ .‬ﯾ روش ﺳﺎده ﺑﺮای رﻣﺰ ﮐﺮدن ﯾ ﭘﯿﺎم ‪ m‬ﺑﺎ اﺳﺘﻔﺎده‬
‫از ﯾ رﻣﺰ ﻗﺎﻟﺒ ﺑﺎ ﻃﻮل ﻗﺎﻟﺐ ‪ n‬ﺑﻪ ﺻﻮرت زﯾﺮ اﺳﺖ‪ .‬اﮔﺮ ﻃﻮل ﭘﯿﺎم ﻣﻀﺮب ‪ n‬ﻧﺒﺎﺷﺪ‪ ،‬اﺑﺘﺪا ﺑﻪ روﺷ ﻣﻨﺎﺳﺐ ﮐﻪ‬
‫دﻧﺒﺎﻟﻪزﻧ ‪ ١٨‬ﻧﺎﻣﯿﺪه ﻣ ﺷﻮد‪ ،‬ﻃﻮل ﭘﯿﺎم ﺑﻪ ﻣﻀﺮﺑ از ‪ n‬اﻓﺰاﯾﺶ ﻣ ﯾﺎﺑﺪ‪ .‬ﺳﭙﺲ ﭘﯿﺎم دﻧﺒﺎﻟﻪزده ﺷﺪه ﺑﻪ ﻗﺎﻟﺐ ﻫﺎی ‪-n‬ﺑﯿﺘ‬
‫ﺗﻘﺴﯿﻢ ﻣ ﺷﻮد و ﻫﺮ ﻗﺎﻟﺐ ﺑﻪ ﻃﻮر ﺟﺪاﮔﺎﻧﻪ ﺑﺎ اﻋﻤﺎل رﻣﺰﻗﺎﻟﺒ رﻣﺰ ﻣ ﺷﻮد‪ .‬ﺑﺮای رﻣﺰﮔﺸﺎﯾ ‪ ،‬ﻧﯿﺰ ﻫﺮ ﻗﺎﻟﺐ ﻣﺘﻦ رﻣﺰﺷﺪه‬
‫ﺑﺎ اﻋﻤﺎل ﻣﻌ ﻮس رﻣﺰ ﻗﺎﻟﺒ رﻣﺰﮔﺸﺎﯾ ﻣ ﺷﻮد‪ .‬ﯾ روش ﻣﻨﺎﺳﺐ و ﻣﺮﺳﻮم دﻧﺒﺎﻟﻪزﻧ اﺿﺎﻓﻪ ﮐﺮدن ﯾ ﺑﯿﺖ ﯾ و‬
‫ﺳﭙﺲ ﺑﻪ ﺗﻌﺪاد ﻻزم ﺑﯿﺖ ﺻﻔﺮ در اﻧﺘﻬﺎی ﭘﯿﺎم ﺑﺮای ﮐﺎﻣﻞ ﮐﺮدن آﺧﺮﯾﻦ ﻗﺎﻟﺐ اﺳﺖ‪ .‬دﻧﺒﺎﻟﻪ اﺿﺎﻓﻪ ﺷﺪه ﭘﺲ از رﻣﺰﮔﺸﺎﯾ‬
‫ﻗﺎﺑﻞ ﺗﺸﺨﯿﺺ و ﺣﺬف اﺳﺖ‪.‬‬

‫‪m = m1‬‬ ‫‪m2‬‬ ‫‪m3‬‬ ‫‪...‬‬ ‫‪mb 10t‬‬


‫‪.‬‬

‫‪Ek‬‬ ‫‪Ek‬‬ ‫‪Ek‬‬ ‫‪Ek‬‬

‫=‪c‬‬ ‫‪c1‬‬ ‫‪c2‬‬ ‫‪c3‬‬ ‫‪cb‬‬


‫‪١٧‬‬
‫‪block cipher‬‬
‫‪١٨‬‬
‫‪padding‬‬

‫‪١٣-۶‬‬
‫=‪c‬‬ ‫‪c1‬‬ ‫‪c2‬‬ ‫‪c3‬‬ ‫‪...‬‬ ‫‪cb‬‬
‫‪.‬‬

‫‪Ek−1 Ek−1 Ek−1‬‬ ‫‪Ek−1‬‬

‫‪m = m1‬‬ ‫‪m2‬‬ ‫‪m3‬‬ ‫‪mb 10t‬‬

‫را ﺣﺬف ﮐﺮد و ﻓﻘﻂ ﺑﻪ ﺗﻌﺪاد ﻻزم ﺑﯿﺖ ﺻﻔﺮ اﺿﺎﻓﻪ ﻧﻤﻮد؟‬ ‫ﺳﺆال ‪ ١٢‬آﯾﺎ ﻣ ﺗﻮان ﺑﺮای دﻧﺒﺎﻟﻪزﻧ ﺑﯿﺖ ﯾ‬

‫ﺳﺆال ‪ ١٣‬اﮔﺮ آﺧﺮﯾﻦ ﻗﺎﻟﺐ ﻣﺘﻦ رﻣﺰﮔﺸﺎﯾ ﺷﺪه ﺗﻤﺎمﺻﻔﺮ ﺑﺎﺷﺪ ﺑﻪ ﭼﻪ ﻣﻌﻨﺎﯾ اﺳﺖ؟‬

‫ﺳﺆال ‪ ١۴‬اﯾﻦ روش رﻣﺰﻧ ﺎری ﺑﺎ اﺳﺘﻔﺎده از رﻣﺰ ﻗﺎﻟﺒ دارای ﮐﺪام ﻧﻮع از اﻧﻮاع اﻣﻨﯿﺖ اﺳﺖ؟‬

‫‪١٣-٧‬‬
‫ﺑﻪ ﻧﺎم ﺧﺪا‬

‫داﻧﺸ ﺪهی ﻋﻠﻮم رﯾﺎﺿ‬

‫‪ ١٣‬آﺑﺎن‬ ‫ﻣﻘﺪﻣﻪای ﺑﺮ رﻣﺰﻧ ﺎری‬

‫ﺟﻠﺴﻪی ‪١۴‬آ‪ :‬رﻣﺰﻫﺎی ﻗﺎﻟﺒ‬


‫ﻧ ﺎرﻧﺪه‪ :‬ﭘﺮدﯾﺲ ﻣﻠ زاده و ﻧﯿﻠﻮﻓﺮ ﺻﻔ ﺻﻤﻎ آﺑﺎدی‬ ‫ﻣﺪرس‪ :‬دﮐﺘﺮ ﺷﻬﺮام ﺧﺰاﺋ‬

‫ﯾ از اﺑﺰارﻫﺎی ﻣﻬﻢ ﺑﺮای ﻃﺮاﺣ ﭘﺮوﺗ ﻞﻫﺎی اﻣﻨﯿﺘ را رﻣﺰﻫﺎی ﻗﺎﻟﺒ ‪ ١‬ﺗﺸ ﯿﻞ ﻣ دﻫﻨﺪ‪ .‬در اﯾﻦ ﺟﻠﺴﻪ اﺑﺘﺪا ﺑﻪ‬
‫ﻣﻌﺮﻓ رﻣﺰﻫﺎی ﻗﺎﻟﺒ ﻣ ﭘﺮدازﯾﻢ‪ .‬ﺳﭙﺲ ﺑﻪ ﻣﻌﺮﻓ دو روش ﻃﺮاﺣ رﻣﺰﻫﺎی ﻗﺎﻟﺒ ﯾﻌﻨ ﺷﺒ ﻪﻫﺎی ﺟﺎﻧﺸﯿﻨ ‪-‬ﺟﺎﯾ ﺸﺘ‬
‫)‪ (٢ SPN‬و ﺷﺒ ﻪﻫﺎی ﻓﺎﯾﺴﺘﻠ ‪ ٣‬ﻣ ﭘﺮدازﯾﻢ‪.‬‬

‫‪ ١‬رﻣﺰ ﻗﺎﻟﺒ‬
‫رﻣﺰ ﻗﺎﻟﺒ دارای دو ﻣﺆﻟﻔﻪ‬ ‫رﻣﺰﻫﺎی ﻗﺎﻟﺒ ‪ ،‬ﻫﻤﺎنﮔﻮﻧﻪ ﮐﻪ از ﻧﺎﻣﺸﺎن ﭘﯿﺪاﺳﺖ روی ﻗﺎﻟﺐﻫﺎﯾ از داده ﻋﻤﻞ ﻣ ﮐﻨﻨﺪ‪ .‬ﯾ‬
‫ﻣﻬﻢ ﻣ ﺑﺎﺷﺪ‪:‬‬

‫‪ .١‬اﻧﺪازه ﻗﺎﻟﺐ ﮐﻪ آن را ﺑﺎ ‪ n‬ﻧﺸﺎن ﻣ دﻫﯿﻢ‪ ،‬و‬

‫‪ .٢‬اﻧﺪازه ﮐﻠﯿﺪ )ﻃﻮل ﮐﻠﯿﺪ( ﮐﻪ آن را ﺑﺎ |‪ |k‬ﻧﺸﺎن ﻣ دﻫﯿﻢ‪.‬‬

‫ﺑﺮای ﯾ ﮐﻠﯿﺪ داده ﺷﺪه‪ ،‬ﯾ رﻣﺰ ﻗﺎﻟﺒ ﺑﺎ اﻧﺪازه ﻗﺎﻟﺐ ‪ ،n‬ﻣﺠﻤﻮﻋﻪ ‪ M = {۰, ۱}n‬از ‪ ۲n‬ورودی را ﺑﻪ ﻫﻤﺎن‬
‫ﻣﺠﻤﻮﻋﻪ ‪ M‬از ‪ ۲n‬ﺧﺮوﺟ ﺗﺒﺪﯾﻞ ﻣ ﮐﻨﺪ‪ ،‬ﺑﻪﻃﻮری ﮐﻪ ﻫﺮ ﺧﺮوﺟ ﻣﻤ ﻦ ﻓﻘﻂ و ﻓﻘﻂ ﯾ ﺑﺎر ﺗﻮﻟﯿﺪ ﻣ ﺷﻮد‪ .‬در‬
‫واﻗﻊ اﯾﻦ ﻋﻤﻞ ﯾ ﺟﺎﯾ ﺸﺖ ‪ ۴‬از ﻣﺠﻤﻮﻋﻪ ورودیﻫﺎﺳﺖ و ﻫﻨ ﺎﻣ ﮐﻪ ﮐﻠﯿﺪ ﺗﻐﯿﯿﺮ ﮐﻨﺪ‪ ،‬ﺟﺎﯾ ﺸﺖﻫﺎی ﻣﺘﻔﺎوﺗ‬
‫ﺧﻮاﻫﯿﻢ داﺷﺖ‪ .‬ﺑﻨﺎﺑﺮاﯾﻦ ﯾ رﻣﺰ ﻗﺎﻟﺒ روﺷ ﺑﺮای ﺗﻮﻟﯿﺪ ﺧﺎﻧﻮادهای از ﺟﺎﯾ ﺸﺖﻫﺎﺳﺖ ﮐﻪ ﺗﻮﺳﻂ ﮐﻠﯿﺪ ﻣﺤﺮﻣﺎﻧﻪ )‪(k‬‬
‫ﻧﺸﺎﻧﻪﮔﺬاری ﻣ ﺷﻮﻧﺪ‪.‬‬
‫ﺳﺎدهﺗﺮﯾﻦ روش اﺳﺘﻔﺎده از ﯾ رﻣﺰ ﻗﺎﻟﺒ ‪ ،‬اﻋﻤﺎل آن ﺑﻪ ﻗﺎﻟﺐﻫﺎی ﻣﺘﻦ اﺻﻠ اﺳﺖ‪ .‬ﺑﺮای رﻣﺰﻧ ﺎری ﭘﯿﺎم ‪ ،m‬اﺑﺘﺪا ﺑﺎ‬
‫اﺳﺘﻔﺎده از ﯾ دﻧﺒﺎﻟﻪزﻧ ‪ ۵‬ﻣﻨﺎﺳﺐ )ﻣﺜﻼ اﺿﺎﻓﻪ ﮐﺮدن ﯾ ﺑﯿﺖ ﯾ و ﺑﻪ ﺗﻌﺪاد ﻻزم ﺑﯿﺖ ﺻﻔﺮ در اﻧﺘﻬﺎی ﭘﯿﺎم (‪ ،‬ﻃﻮل‬
‫ﭘﯿﺎم ﺑﻪ ﻣﻀﺮﺑ از ﻃﻮل ﻗﺎﻟﺐ رﺳﺎﻧﺪه ﻣ ﺷﻮد‪ .‬ﺳﭙﺲ ﻣﺘﻦ اﺻﻠ ﺑﻪ ﻗﺎﻟﺐﻫﺎی ‪ mi‬ﺗﻔ ﯿ ﻣ ﺷﻮد‪ .‬رﻣﺰ ﻗﺎﻟﺒ ‪ ،‬ﻗﺎﻟﺒ‬
‫از ﯾ ﭘﯿﺎم اﺻﻠ ﻣﺎﻧﻨﺪ ‪ mi‬را ﺑﻪ ﻗﺎﻟﺒ از ﯾ ﭘﯿﺎم رﻣﺰﺷﺪه ﻣﺎﻧﻨﺪ ‪ ci‬ﺗﺒﺪﯾﻞ ﻣ ﮐﻨﺪ‪ .‬اﯾﻦ ﻧﺤﻮه ﺑﻪﮐﺎرﮔﯿﺮی رﻣﺰ ﻗﺎﻟﺒ ‪،‬‬
‫ﺳﺒ ﮐﺘﺎب اﻟ ﺘﺮوﻧﯿ ‪ ۶‬ﻧﺎﻣﯿﺪه ﻣ ﺷﻮد ﮐﻪ از اﻣﻨﯿﺖ ﻗﺎﺑﻞ ﻗﺒﻮﻟ ﺑﺮﺧﻮردار ﻧﯿﺴﺖ‪ .‬اﻋﻤﺎل رﻣﺰ ﻗﺎﻟﺒ روی ﻗﺎﻟﺐ ‪i‬ام‬
‫‪١‬‬
‫‪block ciphers‬‬
‫‪٢‬‬
‫)‪Substitution-Permutation Network (SPN‬‬
‫‪٣‬‬
‫‪Feistel network‬‬
‫‪۴‬‬
‫‪permutation‬‬
‫‪۵‬‬
‫‪padding‬‬
‫‪۶‬‬
‫‪electronic code book mode‬‬

‫‪١۴‬آ‪١-‬‬
‫ﻧﯿﺰ اﺻﻄﻼﺣﺎً رﻣﺰﮔﺬاری ﻣ ﮔﻮﯾﻨﺪ و ﺑﻪ ﺻﻮرت ‪ ci = Ek mi‬ﻧﺸﺎن داده ﻣ ﺷﻮد )ﺷ ﻞ ‪ .(١‬ﻋ ﺲ ﻋﻤﻞ رﻣﺰﮔﺬاری‪،‬‬
‫ﻋﻤﻞ رﻣﺰﮔﺸﺎﯾ اﺳﺖ ﮐﻪ ﺑﻪ ﺻﻮرت ) ‪ mi = Dk (ci‬ﻧﺸﺎن داده ﻣ ﺷﻮد )ﺷ ﻞ ‪.(٢‬‬

‫‪m = m۱‬‬ ‫‪m۲‬‬ ‫‪m۳‬‬ ‫‪...‬‬ ‫‪mt‬‬


‫‪.‬‬

‫‪Ek‬‬ ‫‪Ek‬‬ ‫‪Ek‬‬ ‫‪Ek‬‬

‫=‪c‬‬ ‫‪c۱‬‬ ‫‪c۲‬‬ ‫‪c۳‬‬ ‫‪ct‬‬

‫رﻣﺰ ﻗﺎﻟﺒ‬ ‫ﺷ ﻞ ‪ :١‬ﻧﻤﺎی ﮐﻠ اﻟ ﻮرﯾﺘﻢ رﻣﺰﮔﺬاری ﯾ‬

‫=‪c‬‬ ‫‪c۱‬‬ ‫‪c۲‬‬ ‫‪c۳‬‬ ‫‪...‬‬ ‫‪ct‬‬


‫‪.‬‬

‫‪Dk‬‬ ‫‪Dk‬‬ ‫‪Dk‬‬ ‫‪Dk‬‬

‫‪m = m۱‬‬ ‫‪m۲‬‬ ‫‪m۳‬‬ ‫‪mt‬‬

‫رﻣﺰ ﻗﺎﻟﺒ‬ ‫ﺷ ﻞ ‪ :٢‬ﻧﻤﺎی ﮐﻠ اﻟ ﻮرﯾﺘﻢ رﻣﺰﮔﺸﺎﯾ ﯾ‬

‫‪ ٢‬روشﻫﺎی ﻃﺮاﺣ رﻣﺰﻫﺎی ﻗﺎﻟﺒ‬


‫ﺑﻪﻃﻮر ﮐﻠ رﻣﺰﻫﺎی ﻗﺎﻟﺒ دارای دو ﺳﺎﺧﺘﺎر ﻣﻬﻢ ﻫﺴﺘﻨﺪ ﮐﻪ از آنﻫﺎ ﺑﺮای ﻃﺮاﺣ اﯾﻦ رﻣﺰﻫﺎ اﺳﺘﻔﺎده ﻣ ﺷﻮد‪ :‬ﺷﺒ ﻪﻫﺎی‬
‫ﺟﺎﻧﺸﯿﻨ ‪-‬ﺟﺎﯾ ﺸﺘ و ﺷﺒ ﻪﻫﺎی ﻓﺎﯾﺴﺘﻠ ﮐﻪ در اداﻣﻪ ﺑﻪ ﻣﻌﺮﻓ آنﻫﺎ ﻣ ﭘﺮدازﯾﻢ‪.‬‬

‫‪١۴‬آ‪٢-‬‬
‫ﺷﺒ ﻪ ﺟﺎﻧﺸﯿﻨ ‪-‬ﺟﺎﯾ ﺸﺘ‬ ‫‪١.٢‬‬
‫اﻟ ﻮی ﭘﺮﯾﺸﺎﻧ ‪-‬ﭘﺨﺶ‬ ‫‪١.١.٢‬‬
‫ﺷﺎﻧﻮن ‪ ٧‬ﯾ ﻃﺮح ﮐﻠ ﺑﺮای ﺳﺎﺧﺖ ﺟﺎﯾ ﺸﺖﻫﺎی ﺷﺒﻪﺗﺼﺎدﻓ ﻣﻌﺮﻓ ﮐﺮد‪ .‬اﯾﺪهی اﺻﻠ ‪ ،‬ﺳﺎﺧﺖ ﺟﺎﯾ ﺸﺖ ﺷﺒﻪﺗﺼﺎدﻓ‬
‫‪ E‬ﺑﺎ ﻃﻮل ﻗﺎﻟﺐ ﺑﺰرگ از ﺗﻌﺪاد زﯾﺎدی ﺟﺎﯾ ﺸﺖ ﺗﺼﺎدﻓ ﯾﺎ ﺷﺒﻪﺗﺼﺎدﻓ ﮐﻮﭼ ﺘﺮ } ‪ {Eki‬ﺑﺎ ﻃﻮل ﻗﺎﻟﺐ ﮐﻮﭼ ﺗﺮ اﺳﺖ‪.‬‬
‫ﻓﺮض ﮐﻨﯿﺪ ﺑﺨﻮاﻫﯿﻢ رﻣﺰﻗﺎﻟﺒ ‪ E‬ﺑﺎ ﻃﻮل ﻗﺎﻟﺐ ‪ ۱۲۸‬ﺑﯿﺖ ﺑﺴﺎزﯾﻢ‪ .‬رﻣﺰﻗﺎﻟﺒ ‪ E‬را ﺑﻪ ﺻﻮرت زﯾﺮ ﺗﻌﺮﯾﻒ ﻣ ﮐﻨﯿﻢ‪:‬‬
‫ﮐﻠﯿﺪ ‪ k‬ﺑﺮای ‪ ۱۶ ،E‬ﺟﺎﯾ ﺸﺖ ﺗﺼﺎدﻓ ‪ Ek۱ , · · · , Ek۱۶‬را ﻣﺸﺨﺺ ﻣ ﮐﻨﺪ ﮐﻪ ﻃﻮل ﻗﺎﻟﺐ ﻫﺮ ﯾ ‪ ۸‬ﺑﯿﺖ اﺳﺖ‪.‬‬
‫ﺳﭙﺲ ورودی ‪ x ∈ {۰, ۱}۱۲۸‬را ﺑﻪ ‪ ۱۶‬ﻗﺴﻤﺖ ‪ ۸‬ﺑﯿﺘ ﻣﺘﻮاﻟ ‪ x۱۶ , ..., x۱‬ﺗﺠﺰﯾﻪ ﻣ ﮐﻨﯿﻢ‪ .‬دارﯾﻢ‪:‬‬

‫‪Ek (x) = Ek۱ (x۱ ) · · · Ek۱۶ (x۱۶ ).‬‬

‫ﻣ ﮔﻮﯾﯿﻢ } ‪ {Eki‬ﻫﺎ ﭘﺮﯾﺸﺎﻧ ‪ ٨‬را ﺑﺮای ‪ E‬اﯾﺠﺎد ﻣ ﮐﻨﻨﺪ‪.‬‬


‫ﺟﺎﯾ ﺸﺖ ‪ E‬ﮐﻪ در ﻣﺜﺎل ﺑﺎﻻ ﺗﻌﺮﯾﻒ ﮐﺮدﯾﻢ ﺷﺒﻪﺗﺼﺎدﻓ ﻧﯿﺴﺖ‪ .‬زﯾﺮا اﮔﺮ دو ورودی ‪ x‬و ‪ x′‬ﺗﻨﻬﺎ در ‪ ١‬ﺑﯿﺖ اﺧﺘﻼف‬
‫داﺷﺘﻪ ﺑﺎﺷﻨﺪ‪ Ek (x) ،‬و ) ‪ Ek (x′‬ﺗﻨﻬﺎ در اوﻟﯿﻦ ﺑﺎﯾﺖ ﺧﻮد اﺧﺘﻼف ﺧﻮاﻫﻨﺪ داﺷﺖ‪ .‬ﺑﺮای ﺣﻞ اﯾﻦ ﻣﺸ ﻞ دو ﺗﻐﯿﯿﺮ در‬
‫روﻧﺪ ﺑﺎﻻ اﯾﺠﺎد ﻣ ﮐﻨﯿﻢ‪:‬‬

‫ﺟﺎﯾ ﺸﺖ از آنﻫﺎ را در ﻧﻈﺮ ﻣ ﮔﯿﺮﯾﻢ‪ .‬ﺑﻪ اﯾﻦ ﻣﺮﺣﻠﻪ‬ ‫‪ .١‬ﺑﯿﺖﻫﺎی ﺧﺮوﺟ } ‪{Eki‬ﻫﺎ را ﺑﺎ ﻫﻢ ﻗﺎﻃ ﮐﺮده و ﯾ‬
‫ﭘﺨﺶ ‪ ٩‬ﮔﻔﺘﻪ ﻣ ﺷﻮد‪.‬‬

‫‪ .٢‬ﭘﺨﺶ و ﭘﺮﯾﺸﺎﻧ ﮐﻪ ﺑﺎ ﻫﻢ دور ‪ ١٠‬ﻧﺎﻣﯿﺪه ﻣ ﺷﻮﻧﺪ ﭼﻨﺪﯾﻦ ﺑﺎر ﺗ ﺮار ﻣ ﺷﻮﻧﺪ‪.‬‬

‫در ورودی ﺑﺎﻋﺚ اﻋﻤﺎل ﺗﻐﯿﯿﺮات اﺳﺎﺳ‬ ‫اﺳﺘﻔﺎدهی ﻣﺘﻮاﻟ از ﭘﺨﺶ و ﭘﺮﯾﺸﺎﻧ ﺗﻀﻤﯿﻦ ﻣ ﮐﻨﺪ اﻋﻤﺎل ﺗﻐﯿﯿﺮات ﮐﻮﭼ‬
‫در ﺧﺮوﺟ ﻣ ﺷﻮد‪.‬‬

‫ﺷﺒ ﻪ ﺟﺎﻧﺸﯿﻨ ‪-‬ﺟﺎﯾ ﺸﺘ‬ ‫‪٢.١.٢‬‬


‫ﺷﺒ ﻪ ﺟﺎﻧﺸﯿﻨ ‪-‬ﺟﺎﯾ ﺸﺘ از اﺟﺮای ﻣﺴﺘﻘﯿﻢ ﻃﺮح ﭘﺮﯾﺸﺎﻧ ‪-‬ﭘﺨﺶ ﺣﺎﺻﻞ ﻣ ﺷﻮد‪ .‬ﺗﻔﺎوت اﺻﻠ در اﯾﻦ اﺳﺖ ﮐﻪ در‬
‫اﯾﻨﺠﺎ از ﺟﺎﯾ ﺸﺖﻫﺎی ﺛﺎﺑﺘ ﮐﻪ ﺑﻪ ﮐﻠﯿﺪ واﺑﺴﺘﻪ ﻧﯿﺴﺘﻨﺪ و اﺻﻄﻼﺣﺎً ‪ S-box‬ﻧﺎﻣﯿﺪه ﻣ ﺷﻮﻧﺪ اﺳﺘﻔﺎده ﻣ ﺷﻮﻧﺪ‪ .‬اﯾﻦ‬
‫ﮐﺎر ﻧﻪ ﺗﻨﻬﺎ ﭘﯿﺎدهﺳﺎزی را راﺣﺖﺗﺮ ﻣ ﮐﻨﺪ‪ ،‬ﺑﻠ ﻪ ﺑﺎﻋﺚ ﻣ ﺷﻮد ﺑﺎ اﻧﺘﺨﺎب ﻣﻨﺎﺳﺐ اﺟﺰای رﻣﺰﻗﺎﻟﺒ ‪ ،‬ﺑﺘﻮان آﻧﻬﺎ را اﻣﻦﺗﺮ‬
‫ﻃﺮاﺣ ﮐﺮد‪ .‬ﺷ ﻞ ‪ ٣‬ﺳﺎﺧﺘﺎر ﮐﻠ ﯾ ﺷﺒ ﻪ ﺟﺎﻧﺸﯿﻨ ‪-‬ﺟﺎﯾ ﺸﺘ را ﻧﺸﺎن ﻣ دﻫﺪ ﮐﻪ ‪ S-box‬ﺑﺎ ‪ Sij‬ﻧﻤﺎﯾﺶ داده‬
‫ﺷﺪهاﻧﺪ‪ .‬ﮐﻠﯿﺪ اوﻟﯿﻪ ﯾ رﻣﺰ ﻗﺎﻟﺒ ﮐﻠﯿﺪ اﺻﻠ ‪ ١١‬ﻧﺎﻣﯿﺪه ﻣ ﺷﻮد و ﮐﻠﯿﺪﻫﺎی دور ‪ ١٢‬ﻃﺒﻖ ﻃﺮح ﮐﻠﯿﺪ ‪ ١٣‬از ﮐﻠﯿﺪ اﺻﻠ‬
‫اﺳﺘﺨﺮاج ﻣ ﺷﻮﻧﺪ‪ .‬ﻃﺮح ﮐﻠﯿﺪ ﻣﺤﺎﺳﺒﺎﺗ اﺳﺖ ﮐﻪ ﮐﻠﯿﺪ دور ﻣﻮرد ﻧﯿﺎز ﺑﺮای ﻫﺮ ﺗ ﺮار رﻣﺰ ﻗﺎﻟﺒ را ﺑﺎ اﺳﺘﻔﺎده از ﮐﻠﯿﺪ‬
‫اﺻﻠ ﺗﺄﻣﯿﻦ ﻣ ﮐﻨﺪ‪ .‬ﻫﺮ دور از ﯾ ﺷﺒ ﻪ ﺟﺎﻧﺸﯿﻨ ‪-‬ﺟﺎﯾ ﺸﺘ از ﺗ ﺮار ﺳﻪ ﻣﺮﺣﻠﻪ زﯾﺮ ﺣﺎﺻﻞ ﻣ ﺷﻮد‪:‬‬

‫• اﺿﺎﻓﻪ ﺷﺪن ﮐﻠﯿﺪﻫﺎی دور‪،‬‬


‫‪٧‬‬
‫‪Shannon‬‬
‫‪٨‬‬
‫‪confusion‬‬
‫‪٩‬‬
‫‪diffusion‬‬
‫‪١٠‬‬
‫‪round‬‬
‫‪١١‬‬
‫‪master key‬‬
‫‪١٢‬‬
‫‪round keys‬‬
‫‪١٣‬‬
‫‪key schedule‬‬

‫‪١۴‬آ‪٣-‬‬
‫• ﺟﺎﻧﺸﯿﻦﺳﺎزی ﻣﻨﺎﺳﺐ ﺑﺎ اﺳﺘﻔﺎده از ‪S-box‬ﻫﺎ‪،‬‬
‫ﺗﺒﺪﯾﻞ ﺧﻄ ( ﻣﻨﺎﺳﺐ‪.‬‬ ‫ﺟﺎﯾ ﺸﺖ )ﯾﺎ درﺣﺎﻟﺖ ﮐﻠ ﯾ‬ ‫• اﻋﻤﺎل ﯾ‬
‫اﻟﺒﺘﻪ ﭘﺲ از آﺧﺮﯾﻦ دور در ﺷﺒ ﻪﻫﺎی ﺟﺎﻧﺸﯿﻨ ‪-‬ﺟﺎﯾ ﺸﺘ ‪ ،‬ﻫﻤﻮاره ﯾ زﯾﺮ ﮐﻠﯿﺪ دﯾ ﺮ ﻧﯿﺰ اﺿﺎﻓﻪ ﺧﻮاﻫﺪ ﺷﺪ ﮐﻪ‬
‫ﺳﻔﯿﺪﺳﺎزی ‪ ١۴‬ﻧﺎﻣﯿﺪه ﻣ ﺷﻮد‪ .‬اﯾﻦ ﮐﺎر ﺑﺎﻋﺚ ﻣ ﺷﻮد ﺗﺎ ﺟﺎﻧﺸﯿﻦﺳﺎزی و ﺟﺎﯾ ﺸﺖ دور آﺧﺮ در اﻣﻨﯿﺖ ﺳﺎﺧﺘﺎر ﻣﺆﺛﺮ‬
‫ﺑﺎﺷﺪ‪.‬‬

‫ﺷﺒ ﻪ ﺟﺎﻧﺸﯿﻨ ﺟﺎﯾ ﺸﺘ‬ ‫ﺷ ﻞ ‪ :٣‬ﯾ‬

‫اﻣﻨﯿﺖ ﺷﺒ ﻪ ﺟﺎﻧﺸﯿﻨ ‪-‬ﺟﺎﯾ ﺸﺘ‬ ‫‪٣.١.٢‬‬


‫در ﺻﻮرﺗ ﮐﻪ ‪ S-box‬ﻫﺎ‪ ،‬ﺟﺎﯾ ﺸﺖ اﺳﺘﻔﺎده ﺷﺪه و ﻃﺮح ﮐﻠﯿﺪ ﺑﺎ دﻗﺖ اﻧﺘﺨﺎب ﺷﻮﻧﺪ‪ ،‬ﺷﺒ ﻪﻫﺎی ﺟﺎﻧﺸﯿﻨ ﺟﺎﯾ ﺸﺘ‬
‫ﮔﺰﯾﻨﻪی ﻣﻨﺎﺳﺒ ﺑﺮای ﻃﺮاﺣ رﻣﺰﻫﺎی ﻗﺎﻟﺒ ﻫﺴﺘﻨﺪ‪ .‬اﻣﻨﯿﺖ اﯾﻦ ﺳﺎﺧﺘﺎر ﺷﺪﯾﺪاً ﺑﻪ ﺗﻌﺪاد دورﻫﺎی اﺳﺘﻔﺎده ﺷﺪه در آن‬
‫واﺑﺴﺘﻪ اﺳﺖ‪ .‬رﻣﺰ ﻗﺎﻟﺒ ‪ AES‬ﺑﺎ اﺳﺘﻔﺎده از اﯾﻦ روش ﻃﺮاﺣ ﺷﺪه اﺳﺖ‪.‬‬
‫‪١۴‬‬
‫‪whitening‬‬

‫‪١۴‬آ‪۴-‬‬
‫ﺷﺒ ﻪﻫﺎی ﻓﺎﯾﺴﺘﻠ‬ ‫‪٢.٢‬‬
‫در اﯾﻦ ﺑﺨﺶ ﺑﻪ ﻣﺴﺄﻟﻪ ﻃﺮاﺣ رﻣﺰ ﻗﺎﻟﺒ ﺑﺎ اﺳﺘﻔﺎده از ﯾ ﺗﺎﺑﻊ ﺷﺒﻪ ﺗﺼﺎدﻓ ﻣ ﭘﺮدازﯾﻢ‪ .‬ﻓﺮض ﮐﻨﯿﺪ ﺗﺎﺑﻊ ﺷﺒﻪﺗﺼﺎدﻓ‬
‫)·( ‪ fk‬را دارﯾﻢ ﮐﻪ ‪ n‬ﺑﯿﺖ را ﺑﻪ ﺻﻮرت زﯾﺮ ﺑﻪ ‪ n‬ﺑﯿﺖ ﻣ ﻧ ﺎرد )ﺷ ﻞ ‪.(۴‬‬

‫‪n‬‬
‫‪n‬‬
‫‪k‬‬ ‫‪f‬‬
‫‪.‬‬
‫‪n‬‬

‫ﺗﺎﺑﻊ ﺷﺒﻪ ﺗﺼﺎدﻓ ﺑﺎ ورودی و ﺧﺮوﺟ ‪ n‬ﺑﯿﺖ‬ ‫ﺷ ﻞ ‪ :۴‬ﯾ‬

‫ﻣ ﺧﻮاﻫﯿﻢ رﻣﺰی ﻗﺎﻟﺒ ﻃﺮاﺣ ﮐﻨﯿﻢ ﮐﻪ ﻣﺎﻧﻨﺪ ﺷ ﻞ ‪ ۲n ،۵‬ﺑﯿﺖ را ﺑﻪ ‪ ۲n‬ﺑﯿﺖ ﻣ ﻧ ﺎرد و ﻃﻮل ﮐﻠﯿﺪش ‪ rn‬اﺳﺖ‪.‬‬

‫‪۲n‬‬
‫‪rn‬‬
‫‪k‬‬ ‫‪E‬‬
‫‪.‬‬
‫‪۲n‬‬

‫رﻣﺰ ﻗﺎﻟﺒ ﺑﺎ ورودی و ﺧﺮوﺟ ‪ ۲n‬ﺑﯿﺖ‬ ‫ﺷ ﻞ ‪ :۵‬ﯾ‬

‫ﺑﺮای اﯾﻦ ﻣﻨﻈﻮر ﻣ ﺗﻮان از ﻃﺮاﺣ ﺷﺒ ﻪﻫﺎی ﻓﺎﯾﺴﺘﻠ اﺳﺘﻔﺎده ﮐﺮد ﮐﻪ در اداﻣﻪ ﺑﻪ ﭼ ﻮﻧ آن ﻣ ﭘﺮدازﯾﻢ‪:‬‬
‫ﯾ رﻣﺰ ﻗﺎﻟﺒ ﺑﺎ اﻧﺪازه ﻗﺎﻟﺐ ‪ n‬ﮐﻪ دارای ﺳﺎﺧﺘﺎر ﺷﺒ ﻪﻫﺎی ﻓﺎﯾﺴﺘﻠ ﻣ ﺑﺎﺷﺪ‪ ،‬از ﺗ ﺮار ‪ r‬دور ﺑﺎ ﺳﺎﺧﺘﺎر ﯾ ﺴﺎن ﺗﺸ ﯿﻞ‬
‫ﺷﺪه اﺳﺖ‪ .‬ﻫﺮ دور ﻧﯿﺰ دارای ﯾ ﺗﺎﺑﻊ دور ‪ ١۵‬و ﯾ ﻋﻤﻞﮔﺮ ﺟﺎﺑﺠﺎﯾ ﻣ ﺑﺎﺷﺪ ﮐﻪ ﻧﯿﻤﻪﻫﺎی ﺳﻤﺖ ﭼﭗ و راﺳﺖ‬
‫ورودی ﺧﻮد را ﺟﺎﺑﺠﺎ ﻣ ﮐﻨﺪ )اﻟﺒﺘﻪ در دور آﺧﺮ ﺷﺒ ﻪﻫﺎی ﻓﺎﯾﺴﺘﻠ ﺟﺎﺑﺠﺎﯾ وﺟﻮد ﻧﺪارد(‪ .‬ﺗﺎﺑﻊ دور‪ n ،‬ﺑﯿﺖ ﻧﯿﻤﻪی‬
‫ﺳﻤﺖ راﺳﺖ را ﺗﺤﺖ ﺗﺄﺛﯿﺮ زﯾﺮﮐﻠﯿﺪ دور ﺑﻪ ‪ n‬ﺑﯿﺖ ﺧﺮوﺟ ﻣ ﻧ ﺎرد ﮐﻪ از اﯾﻦ ﺧﺮوﺟ ﺑﺮای ﺗﻐﯿﯿﺮ ﻧﯿﻤﻪ دﯾ ﺮ ﻣﺘﻦ‬
‫اﺳﺘﻔﺎده ﻣ ﺷﻮد‪ .‬ﺑﻪ ﻋﺒﺎرت دﻗﯿﻘﺘﺮ دور ‪-i‬ام ﯾ ﺷﺒ ﻪی ﻓﺎﯾﺴﺘﻠ ﺑﻪ ﺻﻮرت زﯾﺮ اﺟﺮا ﻣ ﺷﻮد‪:‬‬

‫‪Li = Ri−۱ ,‬‬


‫‪Ri = Li−۱ ⊕ fki (Ri−۱ ).‬‬

‫ﮐﻪ در آن ﻫﻤﺎنﻃﻮر ﮐﻪ در ﺷ ﻞ ‪ ۶‬ﻧﺸﺎن داده ﺷﺪه اﺳﺖ‪ ki ،‬زﯾﺮﮐﻠﯿﺪ دور ‪ Li ،i‬ﻧﯿﻤﻪ ﭼﭗ ﺧﺮوﺟ دور ‪ i‬و ‪ Ri‬ﻧﯿﻤﻪ‬
‫راﺳﺖ ﺧﺮوﺟ دور ‪ i‬ﻣ ﺑﺎﺷﻨﺪ‪ .‬اﯾﻦ ﮐﺎر ﺑﻪ ﺻﻮرت ﺑﺎزﮔﺸﺘ ﺑﺎ ﺷﺮوع از دور اول‪ ،‬ﺑﻪ ﺗﻌﺪاد ‪ r‬ﺑﺎر اﻧﺠﺎم ﻣ ﺷﻮد ﺗﺎ‬
‫ﻧﻬﺎﯾﺘﺎ ﺧﺮوﺟ ﺗﻮﻟﯿﺪ ﮔﺮدد‪ .‬ﻧﻤﻮﻧﻪای از رﻣﺰﻫﺎی ﻗﺎﻟﺒ ﮐﻪ دارای ﭼﻨﯿﻦ ﺳﺎﺧﺘﺎری ﻫﺴﺘﻨﺪ‪ ،‬رﻣﺰ ﻗﺎﻟﺒ ‪ DES‬ﻣ ﺑﺎﺷﺪ‪.‬‬
‫‪١۵‬‬
‫‪round function‬‬

‫‪١۴‬آ‪۵-‬‬
‫‪Li−۱‬‬ ‫‪Ri−۱‬‬
‫‪.‬‬
‫⊕‬ ‫‪f‬‬
‫‪ki‬‬

‫‪Li‬‬ ‫‪Ri‬‬

‫ﺷﺒ ﻪ ﻓﺎﯾﺴﺘﻠ‬ ‫دور از ﯾ‬ ‫ﺷ ﻞ ‪ :۶‬ﯾ‬

‫ﻧ ﺘﻪ ﻗﺎﺑﻞ ﺗﻮﺟﻪ اﯾﻦ اﺳﺖ ﮐﻪ ﻟﺰوﻣ ﻧﺪارد ﺗﺎﺑﻊ دور ﯾ ﺷﺒ ﻪ ﻓﺎﯾﺴﺘﻠ ‪ ،‬ﺟﺎﯾ ﺸﺖ ﺑﺎﺷﺪ ﺗﺎ ﺧﻮد ﺷﺒ ﻪ ﻓﺎﯾﺴﺘﻠ ﻧﯿﺰ ﯾ‬
‫ﺟﺎﯾ ﺸﺖ ﺷﻮد‪ .‬در واﻗﻊ ﻣﻌ ﻮس ﯾ ﺷﺒ ﻪ ﻓﺎﯾﺴﺘﻠ ﺑﺎ اﺳﺘﻔﺎده از ﻣﻌ ﻮس رواﺑﻂ ﺑﺎﻻ و ﺑ ﺎرﮔﯿﺮی رواﺑﻂ ﺑﺎزﮔﺸﺘ زﯾﺮ‬
‫اﻧﺠﺎم ﻣ ﮔﯿﺮد‪:‬‬

‫‪Ri−۱ = Li ,‬‬
‫‪Li−۱ = Ri ⊕ fki (Li ).‬‬

‫ﻧ ﺘﻪ ‪ ١‬ﺗﻌﺪاد ﮐﻞ ﺟﺎﯾ ﺸﺖﻫﺎﯾ ﮐﻪ ‪ n‬ﺑﯿﺖ را ﺑﻪ ‪ n‬ﺑﯿﺖ ﻣ ﻧ ﺎرﻧﺪ ! ‪ ۲n‬اﺳﺖ؛ در ﺣﺎﻟﯿ ﻪ ﻣﺎ ﺧﺎﻧﻮاده ای از ﺟﺎﯾ ﺸﺖﻫﺎ‬
‫اﯾﺠﺎد ﮐﺮدﯾﻢ ﮐﻪ اﯾﻦ ﺗﻌﺪاد را ﺑﻪ ‪ ۲rn‬ﮐﺎﻫﺶ ﻣ دﻫﺪ‪ .‬ﺑﺨﺼﻮص اﮔﺮ ‪ r‬ﮐﻮﭼ ﺑﺎﺷﺪ اﯾﻦ ﺗﻌﺪاد ﺑﺴﯿﺎر ﮐﻤﺘﺮ از ﺗﻌﺪاد ﮐﻞ‬
‫ﺟﺎﯾ ﺸﺖﻫﺎ اﺳﺖ‪ .‬در ﻋﻤﻞ ﮐﻠﯿﺪﻫﺎی دور ﺑﺎ اﺳﺘﻔﺎده از ﯾ اﻟ ﻮرﯾﺘﻢ ﻃﺮح ﮐﻠﯿﺪ‪ ،‬از ﮐﻠﯿﺪ اﺻﻠ اﺳﺘﺨﺮاج ﻣ ﺷﻮﻧﺪ‪.‬‬

‫ﺳﺆاﻟ ﮐﻪ در اﯾﻨﺠﺎ ﻣﻄﺮح اﺳﺖ اﯾﻦ اﺳﺖ ﮐﻪ ﺗﻌﺪاد دورﻫﺎ در ﺷﺒ ﻪی ﻓﺎﯾﺴﺘﻠ ﭼﻘﺪر ﺑﺎﺷﺪ‪ ،‬ﺗﺎ ﺑﺎ ﻓﺮض اﯾﻨ ﻪ ‪f‬‬
‫ﺷﺒﻪﺗﺼﺎدﻓ اﺳﺖ‪ ،‬ﺧﺎﻧﻮاده ﺟﺎﯾ ﺸﺘ ﮐﻪ اﯾﺠﺎد ﮐﺮدﯾﻢ ﺷﺒﻪﺗﺼﺎدﻓ ﺑﺎﺷﺪ؟‬
‫ﺷﺒ ﻪﻫﺎی ﻓﺎﯾﺴﺘﻞ ﺗ دوری و دو‪-‬دوری‪ ،‬ﺗﻨﻬﺎ ﺑﺎ دو ﭘﺮﺳﻤﺎن ‪ ١۶‬از ‪ E‬از ﯾ ﺟﺎﯾ ﺸﺖ ﮐﺎﻣﻼ ﺗﺼﺎدﻓ ﻗﺎﺑﻞ ﺗﺸﺨﯿﺺ‬
‫ﻫﺴﺘﻨﺪ‪.‬‬

‫ﺟﺎﯾ ﺸﺖ ﮐﺎﻣﻼ ﺗﺼﺎدﻓ ﺗﻤﯿﺰ داد؟‬ ‫ﺳﺆال ‪ ١‬ﭼ ﻮﻧﻪ ﻣ ﺗﻮان ﺷﺒ ﻪ ﻓﺎﯾﺴﺘﻞ ﺳﻪدوری را از ﯾ‬

‫ﺟﺎﯾ ﺸﺖ ﮐﺎﻣﻼ ﺗﺼﺎدﻓ ﺗﻤﯿﺰ داد‪.‬‬ ‫ﺷﺒ ﻪ ﻓﺎﯾﺴﺘﻞ ﺳﻪدوری را ﻧﻤ ﺗﻮان ﻓﻘﻂ ﺑﺎ ﭘﺮﺳﻤﺎن از ‪ E‬از ﯾ‬
‫ﻗﻀﯿﻪ ‪ (Luby-Rackoff) ١‬ﻓﺮض ﮐﻨﯿﺪ ﺗﺎﺑﻊ دور ﺷﺒ ﻪ ﻓﺎﯾﺴﺘﻞ ﺷﺒﻪﺗﺼﺎدﻓ ﺑﺎﺷﺪ‪ .‬در اﯾﻦﺻﻮرت‪:‬‬

‫ﺟﺎﯾ ﺸﺖ ﮐﺎﻣﻼ ﺗﺼﺎدﻓ ﻧﯿﺴﺖ‪.‬‬ ‫• ﺷﺒ ﻪ ﻓﺎﯾﺴﺘﻞ ﺳﻪدوری ﺑﺎ دﺳﺘﺮﺳ اوراﮐﻠ ﺑﻪ ﺟﺎﯾ ﺸﺖ‪ ،‬ﻗﺎﺑﻞ ﺗﻤﺎﯾﺰ از ﯾ‬

‫ﺟﺎﯾ ﺸﺖ ﺷﺒﻪﺗﺼﺎدﻓ اﺳﺖ‪.‬‬ ‫• ﺷﺒ ﻪ ﻓﺎﯾﺴﺘﻞ ﭼﻬﺎر‪-‬دوری‪ ،‬ﯾ‬

‫ﻧ ﺘﻪ ‪ ٢‬در ﻋﻤﻞ‪ ،‬ﺗﻮاﺑﻊ ﺳﺎدهای ﺑﺮای ‪ f‬اﻧﺘﺨﺎب ﻣ ﺷﻮﻧﺪ ﮐﻪ ﺷﺒﻪﺗﺼﺎدﻓ ﻧﯿﺴﺘﻨﺪ؛ در ﻋﻮض ﺗﻌﺪاد دورﻫﺎ را زﯾﺎد‬
‫ﻣ ﺷﻮﻧﺪ‪.‬‬

‫‪١۶‬‬
‫‪query‬‬

‫‪١۴‬آ‪۶-‬‬
‫ﺑﻪ ﻧﺎم ﺧﺪا‬

‫داﻧﺸ ﺪهی ﻋﻠﻮم رﯾﺎﺿ‬

‫‪ ٢١‬آﺑﺎن ‪٩٢‬‬ ‫ﻣﻘﺪﻣﻪای ﺑﺮ رﻣﺰﻧ ﺎری‬

‫ﺟﻠﺴﻪی ‪١۴‬ب‪ AES :‬و ‪DES‬‬


‫ﻧ ﺎرﻧﺪه‪ :‬ﻣﺤﻤﺪاﻣﯿﻦ ﺷﻌﺒﺎﻧ و ﺣﺴﯿﻦ اورﻋ‬ ‫ﻣﺪرس‪ :‬دﮐﺘﺮ ﺷﻬﺮام ﺧﺰاﺋ‬

‫‪ ١‬ﻣﻘﺪﻣﻪ‬
‫در ﺟﻠﺴﻪی ﻗﺒﻞ ﺑﺎ روشﻫﺎی ﮐﻠ ﻃﺮاﺣ رﻣﺰﻫﺎی ﻗﺎﻟﺒ ‪ ،‬از ﺟﻤﻠﻪ ﻃﺮاﺣ ﻣﺒﺘﻨ ﺑﺮ ﺷﺒ ﻪﻫﺎی ﻓﺎﯾﺴﺘﻠ و ﺟﺎﻧﺸﯿﻨ ‪-‬‬
‫ﺟﺎﯾ ﺸﺘ آﺷﻨﺎ ﺷﺪﯾﻢ‪ .‬در اﯾﻦ ﺟﻠﺴﻪ ﺑﻪ ﺑﺮرﺳ دو اﻟ ﻮرﯾﺘﻢ رﻣﺰ ﻗﺎﻟﺒ ﻣﻌﺮوف ﯾﻌﻨ ‪ AES‬و ‪ DES‬ﻣ ﭘﺮدازﯾﻢ‪.‬‬

‫‪ ٢‬رﻣﺰ ﻗﺎﻟﺒ ‪AES‬‬


‫رﻣﺰ ﻗﺎﻟﺒ ‪ AES‬ﯾﺎ ﺑﻪ ﻋﺒﺎرﺗ اﺳﺘﺎﻧﺪارد رﻣﺰﻧ ﺎری ﭘﯿﺸﺮﻓﺘﻪ ‪ ،١‬اﻟ ﻮرﯾﺘﻤ ﺑﺮای رﻣﺰﻧ ﺎری دادهﻫﺎی اﻟ ﺘﺮوﻧﯿ اﺳﺖ ﮐﻪ‬
‫در ﺳﺎل ‪ ۲۰۰۱‬اﯾﺠﺎد ﮔﺮدﯾﺪ‪ .‬اﯾﻦ اﻟ ﻮرﯾﺘﻢ در اﺑﺘﺪا ﺗﺤﺖ ﻧﺎم راﯾﻨﺪال ‪ ،٢‬ﺗﻮﺳﻂ دو رﻣﺰﻧ ﺎر ﺑﻠﮋﯾ ﺑﻪ ﻧﺎمﻫﺎی ﯾﻮآن‬
‫دﯾﻤﻦ ‪ ٣‬و وﯾﻨﺴﻨﺖ راﯾﻤﻦ ‪ ۴‬ﻃﺮاﺣ ﺷﺪ‪ .‬در رﻣﺰ ﻗﺎﻟﺒ ‪ AES‬ﻃﻮل ﻗﺎﻟﺐ ‪ ۱۲۸‬ﺑﯿﺖ ﺛﺎﺑﺖ ﺑﻮده و اﻧﺪازه ﮐﻠﯿﺪ ﻣ ﺗﻮاﻧﺪ‬
‫‪ ۱۹۲ ،۱۲۸‬و ‪ ۲۵۶‬ﺑﯿﺘ ﺑﺎﺷﺪ‪ .‬ﺑﺎ ﺗﻮﺟﻪ ﺑﻪ ﻃﻮل ﮐﻠﯿﺪ‪ ،‬ﺗﻌﺪاد دورﻫﺎ ﺑﻪ ﺗﺮﺗﯿﺐ ‪ ۱۲ ،۱۰‬و ‪ ۱۴‬ﻣ ﺑﺎﺷﺪ‪.‬‬

‫ﺷ ﻞ ‪ :١‬ﻧﺤﻮه ﻧﻤﺎﯾﺶ ورودی رﻣﺰ ﻗﺎﻟﺒ ‪AES‬‬

‫ﺑﺮای ﺗﻮﺿﯿﺢ اﻟ ﻮرﯾﺘﻢ رﻣﺰﻧ ﺎری ‪ AES‬ورودی اﯾﻦ رﻣﺰ ﻗﺎﻟﺒ را ﻣﺎﻧﻨﺪ ﺷ ﻞ ‪ ١‬ﺑﻪ ﺻﻮرت ﯾ ﻣﺎﺗﺮﯾﺲ ﻣﺮﺑﻌ ‪۴ × ۴‬‬
‫در ﻧﻈﺮ ﻣ ﮔﯿﺮﯾﻢ‪ .‬ﻫﺮ ﺧﺎﻧﻪ اﯾﻦ آراﯾﻪ )ﺑﺎ ﺷﺮوع از ‪ B۰‬ﮐﻪ ﮐﻢ ارزشﺗﺮﯾﻦ ﺑﺎﯾﺖ ورودی اﺳﺖ( ﻧﺸﺎندﻫﻨﺪه ﯾ ﺑﺎﯾﺖ‬
‫‪١‬‬
‫‪Advanced Encryption Standard‬‬
‫‪٢‬‬
‫‪Rijndael‬‬
‫‪٣‬‬
‫)‪Joan Daemen‬‬
‫‪۴‬‬
‫‪Vincent Rijmen‬‬

‫‪١۴‬ب‪١-‬‬
‫از ورودی اﺳﺖ‪ .‬اﯾﻦ ورودی ﻫﻤﺎنﻃﻮر ﮐﻪ در ﺷ ﻞ ‪ ٢‬ﻧﺸﺎن داده ﺷﺪه اﺳﺖ‪ ،‬ﺗﺤﺖ ﺗﺄﺛﯿﺮ ﻋﻤﻠ ﺮﻫﺎی ‪،SubBytes‬‬
‫‪MixColumns ،ShiftRows‬و ‪AddRoundKey‬ﺑﻪ ﻣﺘﻦ رﻣﺰ ﺷﺪه ﺗﺒﺪﯾﻞ ﻣ ﮔﺮدد‪ .‬در اداﻣﻪ ﺑﻪ ﺗﺸﺮﯾﺢ اﯾﻦ‬
‫ﻋﻤﻠ ﺮﻫﺎ ﻣ ﭘﺮدازﯾﻢ‪ .‬ﻻزم ﺑﻪ ذﮐﺮ اﺳﺖ ﮐﻪ در اﺑﺘﺪای اﯾﻦ رﻣﺰ ﻗﺎﻟﺒ ﻋﻤﻞ ﺳﻔﯿﺪ ﮐﺮدن ﻧﯿﺰ وﺟﻮد دارد )ﺷ ﻞ ‪.(٢‬‬

‫‪AES Encryption over r Rounds‬‬

‫‪pre-whitening:‬‬ ‫‪AddRoundKey‬‬

‫‪SubBytes‬‬

‫‪ShiftRows‬‬
‫‪r − ۱ rounds:‬‬
‫‪MixColumns‬‬
‫‪.‬‬
‫‪AddRoundKey‬‬

‫‪SubBytes‬‬
‫‪final round:‬‬ ‫‪ShiftRows‬‬
‫‪AddRoundKey‬‬

‫ﺷ ﻞ ‪ :٢‬ﻧﻤﺎی ﮐﻠ اﻟ ﻮرﯾﺘﻢ رﻣﺰ ﻗﺎﻟﺒ ‪AES‬‬

‫‪SubBytes ١.٢‬‬
‫اﯾﻦ ﻋﻤﻠ ﺮ ﻫﺮ ﺑﺎﯾﺖ از ورودی ﺧﻮد را ﺗﺤﺖ ﺗﺄﺛﯿﺮ ‪−S‬ﺟﻌﺒﻪ ﺑﻪ ﮐﺎر رﻓﺘﻪ در اﻟ ﻮرﯾﺘﻢ ﻗﺮار ﻣ دﻫﺪ )ﺷ ﻞ ‪ .(٣‬ﺑﻪ ﻋﺒﺎرت‬
‫دﻗﯿﻘﺘﺮ دارﯾﻢ‪:‬‬

‫‪ni = S[mi ] for ۰ ≤ i ≤ ۱۵.‬‬

‫‪١۴‬ب‪٢-‬‬
‫ﺷ ﻞ ‪ :٣‬ﻧﺤﻮه ﮐﺎر ﻋﻤﻠ ﺮ ‪SubBytes‬‬

‫ﺗﻌﺮﯾﻒ ‪−S‬ﺟﻌﺒﻪ ‪ AES‬ﻧﯿﺰ در ﺷ ﻞ ‪ ۴‬آﻣﺪه اﺳﺖ‪.‬‬

‫ﺷ ﻞ ‪−S :۴‬ﺟﻌﺒﻪ ﺑﻪ ﮐﺎر رﻓﺘﻪ در رﻣﺰ ﻗﺎﻟﺒ ‪AES‬‬

‫ﻣ ﺗﻮان ‪−S‬ﺟﻌﺒﻪ ‪ AES‬را ﺑﺎ اﺳﺘﻔﺎده از ﻣﯿﺪان )‪ GF (۲۸ ) = GF (۲)[x]/(x۸ + x۴ + x۳ + x + ۱‬ﺗﯿﺰ ﺗﻌﺮﯾﻒ‬


‫ﮐﺮد‪ .‬ﺑﺎﯾﺖ ورودی ‪ x‬ﺑﻪ ﻋﻨﻮان ﻋﻀﻮی از ﻣﯿﺪان ) ‪ GF (۲۸‬در ﻧﻈﺮ ﮔﺮﻓﺘﻪ ﻣ ﺷﻮد‪ .‬ﺑﺮای ﻣﺤﺎﺳﺒﻪ )‪ S(x‬اﺑﺘﺪا ﻣﻌ ﻮس‬
‫‪ x‬در ) ‪ GF (۲۸‬ﻣﺤﺎﺳﺒﻪ ﻣ ﺷﻮد )ﻣﻌ ﻮس ﺻﻔﺮ‪ ،‬ﺻﻔﺮ در ﻧﻈﺮ ﮔﺮﻓﺘﻪ ﻣ ﺷﻮد(‪ .‬ﺳﭙﺲ ﺣﺎﺻﻞ ﺑﻪ ﻋﻨﻮان ﯾ ﺑﺮدار در‬
‫‪ GF (۲)۸‬در ﺗﻔﺴﯿﺮ ﻣ ﺷﻮد‪ ،‬ﺗﺤﺖ ﯾ ﺗﺒﺪﯾﻞ ﻣﺴﺘﻮی ﻗﺮار ﻣ ﮔﯿﺮد و ﺧﺮوﺟ )‪ S(x‬ﻣ ﺷﻮد‪.‬‬

‫‪١۴‬ب‪٣-‬‬
‫‪ShiftRows ٢.٢‬‬
‫اﯾﻦ ﻋﻤﻠ ﺮ روی ﺳﻄﺮﻫﺎی ﻣﺎﺗﺮﯾﺲ ورودی ﺧﻮد ﻋﻤﻞ ﻣ ﮐﻨﺪ‪ .‬در اﯾﻦ ﻣﺮﺣﻠﻪ ﺑﺎﯾﺖﻫﺎی ﻫﺮ ﺳﻄﺮ ﺑﻪ وﺳﯿﻠﻪ ﯾ ﻣﻘﺪار‬
‫ﻣﻌﯿﻦ ﺑﻪ ﺻﻮرت ﭼﺮﺧﺸ ﺷﯿﻔﺖ ﻣ ﯾﺎﺑﺪ؛ ﺑﺪﯾﻦ ﺻﻮرت ﮐﻪ ﺳﻄﺮ اول ﺑﺪون ﺗﻐﯿﯿﺮ ﺑﺎﻗ ﻣ ﻣﺎﻧﺪ‪ ،‬ﺳﻄﺮ دوم ﯾ واﺣﺪ‬
‫ﺑﻪ ﺳﻤﺖ ﭼﭗ ﺷﯿﻔﺖ ﻣ ﺧﻮرد و ﺑﻪ ﻫﻤﯿﻦ ﺗﺮﺗﯿﺐ ﺳﻄﺮ ‪ n‬ﺑﻪ ﺗﻌﺪاد ‪ n − ۱‬ﺑﺎﯾﺖ ﺑﻪ ﺻﻮرت ﭼﺮﺧﺸ ﺑﻪ ﭼﭗ ﺷﯿﻔﺖ‬
‫ﻣ ﯾﺎﺑﺪ )ﺷ ﻞ ‪.(۵‬‬

‫ﺷ ﻞ ‪ :۵‬ﻧﺤﻮه ﮐﺎر ﻋﻤﻠ ﺮ ‪ShiftRows‬‬

‫‪MixColumns ٣.٢‬‬
‫در اﯾﻦ ﻣﺮﺣﻠﻪ ﻫﺮ ﮐﺪام از ﺳﺘﻮنﻫﺎی ﻣﺎﺗﺮﯾﺲ ورودی‪ ،‬در ﻣﺎﺗﺮﯾﺲ ‪ M‬ﮐﻪ ﯾ ﻣﺎﺗﺮﯾﺲ ‪ ۴×۴‬اﺳﺖ در ﻣﯿﺪان ) ∗‪GF (۲‬‬
‫ﺿﺮب ﺷﺪه و ﻣﺎﺗﺮﯾﺲ ﺧﺮوﺟ را ﺗﺸ ﯿﻞ ﻣ دﻫﺪ )ﺷ ﻞ ‪ .(۶‬ﻣﺮﺣﻠﻪ ‪ShiftRows‬ﺑﻪ ﻫﻤﺮاه اﯾﻦ ﻣﺮﺣﻠﻪ ﺧﺎﺻﯿﺖ‬
‫آﺷﻔﺘ ‪ ۵‬و ﭘﺨﺶ ‪ ۶‬را در اﯾﻦ رﻣﺰ ﻗﺎﻟﺒ ﻓﺮاﻫﻢ ﻣ آورﻧﺪ‪.‬‬

‫ﺷ ﻞ ‪ :۶‬ﻧﺤﻮه ﮐﺎر ﻋﻤﻠ ﺮ ‪MixColumns‬‬

‫ﺗﻌﺮﯾﻒ ﻣﺎﺗﺮﯾﺲ ‪ M‬ﻧﯿﺰ ﺑﻪ ﺻﻮرت زﯾﺮ ﻣ ﺑﺎﺷﺪ‪:‬‬


‫‪۵‬‬
‫‪confusion‬‬
‫‪۶‬‬
‫‪diffusion‬‬

‫‪١۴‬ب‪۴-‬‬
‫‪‬‬ ‫‪‬‬
‫‪۰۲‬‬ ‫‪۰۳‬‬ ‫‪۰۱‬‬ ‫‪۰۱‬‬
‫‪ ۰۱‬‬ ‫‪۰۲‬‬ ‫‪۰۳‬‬ ‫‪۰۱ ‬‬
‫‪M =‬‬
‫‪ ۰۱‬‬
‫‪‬‬
‫‪۰۱‬‬ ‫‪۰۲‬‬ ‫‪۰۳ ‬‬
‫‪۰۳‬‬ ‫‪۰۱‬‬ ‫‪۰۱‬‬ ‫‪۰۲‬‬

‫‪AddRoundKey ۴.٢‬‬
‫در اﯾﻦ ﻋﻤﻠ ﺮ ﻣﺎﺗﺮﯾﺲ ورودی ﺑﺎ زﯾﺮﮐﻠﯿﺪ دور ﺗﻮﻟﯿﺪ ﺷﺪه ﺗﻮﺳﻂ اﻟ ﻮرﯾﺘﻢ ﻃﺮح ﮐﻠﯿﺪ ‪ ٧‬ﺗﺮﮐﯿﺐ ﻣ ﺷﻮد‪ .‬ﺑﺪﯾﻦ ﺻﻮرت‬
‫ﮐﻪ ﻫﺮ ﺑﺎﯾﺖ از ﻣﺎﺗﺮﯾﺲ ورودی ﺑﺎ ﺑﺎﯾﺖ ﻣﺘﻨﺎﻇﺮ زﯾﺮﮐﻠﯿﺪ دور ‪ XOR‬ﺷﺪه و ﻣﺎﺗﺮﯾﺲ ﺧﺮوﺟ را ﺗﺸ ﯿﻞ ﻣ دﻫﻨﺪ )ﺷ ﻞ‬
‫‪.(٧‬‬

‫ﺷ ﻞ ‪ :٧‬ﻧﺤﻮه ﮐﺎر ﻋﻤﻠ ﺮ ‪AddRoundKey‬‬

‫ﻫﻤﺎنﻃﻮر ﮐﻪ ذﮐﺮ ﺷﺪ اﻧﺪازه ﮐﻠﯿﺪ اﺳﺘﻔﺎده ﺷﺪه در رﻣﺰ ‪ ،AES‬ﺗﻌﺪاد دورﻫﺎ را ﺗﻌﯿﯿﻦ ﻣ ﮐﻨﺪ‪ .‬ﯾﻌﻨ ﺑﺮای ﻣﺜﺎل ﺑﺮای‬
‫ﮐﻠﯿﺪ ‪ ۱۲۸‬ﺑﯿﺘ ﻣﺮﺣﻠﻪ ﻣﯿﺎﻧ ‪ ۹‬ﺑﺎر اﺟﺮا ﻣ ﺷﻮد ﮐﻪ ﺑﺎ اﺟﺮای ﻣﺮﺣﻠﻪ ﭘﺎﯾﺎﻧ ‪ ۱۰‬دور ﺗ ﻤﯿﻞ ﻣ ﺷﻮد‪.‬‬
‫ﺑﺮای رﻣﺰﮔﺸﺎﯾ ﻧﯿﺰ ﻣﺠﻤﻮﻋﻪای از دورﻫﺎی ﻣﻌ ﻮس ﺑﺮای ﺗﺒﺪﯾﻞ ﻣﺘﻦ رﻣﺰ ﺷﺪه ﺑﻪ ﻣﺘﻦ اﺻﻠ ﺑﺎ اﺳﺘﻔﺎده از ﻫﻤﺎن ﮐﻠﯿﺪ‬
‫رﻣﺰﻧ ﺎری ﺑﻪ ﮐﺎر ﮔﺮﻓﺘﻪ ﻣ ﺷﻮد‪.‬‬

‫اﻟ ﻮرﯾﺘﻢ ﻃﺮح ﮐﻠﯿﺪ‬ ‫‪۵.٢‬‬


‫اﻟ ﻮرﯾﺘﻢ ﻃﺮح ﮐﻠﯿﺪ رﻣﺰ ﻗﺎﻟﺒ ‪ AES‬ﺑﺎ ﺗﻮﺟﻪ ﺑﻪ ﻃﻮل ﮐﻠﯿﺪ آن ﻓﺮق ﻣ ﮐﻨﺪ‪ .‬در اﯾﻦ ﻗﺴﻤﺖ اﻟ ﻮرﯾﺘﻢ ﻃﺮح ﮐﻠﯿﺪ‬
‫‪ AES-128‬را ﺗﻮﺿﯿﺢ ﻣ دﻫﯿﻢ‪ .‬در اﯾﻨﺠﺎ ﮐﻠﯿﺪﻫﺎی دور را ﺑﻪ ﺻﻮرت زﯾﺮ ﻧﺸﺎن ﻣ دﻫﯿﻢ‪:‬‬

‫)‪k(i,۰) ||k(i,۱) ||k(i,۲) ||k(i,۳‬‬ ‫‪۰≤i≤r‬‬


‫‪٧‬‬
‫‪Key Schedule‬‬

‫‪١۴‬ب‪۵-‬‬
‫ﮐﻪ در آن ‪ i‬ﺷﻤﺎره دور و )‪ k(i,۲) ،k(i,۱) ،k(i,۰‬و )‪ k(i,۳‬ﮐﻠﻤﻪﻫﺎی ‪ ۳۲‬ﺑﯿﺘ ﻣ ﺑﺎﺷﻨﺪ‪ .‬زﯾﺮﮐﻠﯿﺪ ﻫﺮ دور ﺑﺎ اﺳﺘﻔﺎده از‬
‫زﯾﺮﮐﻠﯿﺪ دور ﻗﺒﻞ و ﺑﻪ ﺻﻮرﺗ ﮐﻪ در ﺷ ﻞ ‪ ٨‬ﻧﺸﺎن داده ﺷﺪه اﺳﺖ ﺑﻪ دﺳﺖ ﻣ آﯾﺪ‪.‬‬

‫ﺷ ﻞ ‪ :٨‬ﻃﺮح ﮐﻠﯿﺪ ‪AES‬‬

‫ﮐﻪ در آن ‪ ri‬ﺑﺮاﺑﺮ اﺳﺖ ﺑﺎ ‪ ۰۲i−۱‬در ﻣﯿﺪان ) ‪.GF (۲۸‬‬

‫‪ ٣‬رﻣﺰ ﻗﺎﻟﺒ ‪DES‬‬


‫رﻣﺰ ﻗﺎﻟﺒ ‪ DES‬ﯾﺎ ﻫﻤﺎن اﺳﺘﺎﻧﺪارد رﻣﺰﻧ ﺎری داده ‪ ٨‬در ﺳﺎل ‪ ۱۹۷۵‬ﺗﻮﺳﻂ ﺷﺮﮐﺖ ‪ IBM‬ﻣﻄﺮح ﺷﺪ‪ .‬اﻟ ﻮرﯾﺘﻢ ‪DES‬‬
‫ﯾ ﺷﺒ ﻪی ﻓﺎﯾﺴﺘﻠ ‪ ۱۶‬دوری ﻣ ﺑﺎﺷﺪ‪ .‬در اﯾﻦ رﻣﺰ ﻗﺎﻟﺒ ﻃﻮل ﻗﺎﻟﺐﻫﺎ ‪ ۶۴‬ﺑﯿﺖ اﺳﺖ‪ .‬ﮐﻠﯿﺪ ﻧﯿﺰ ﺷﺎﻣﻞ ‪ ۶۴‬ﺑﯿﺖ‬
‫ﻣ ﺑﺎﺷﺪ وﻟ ﻫﻤﺎنﻃﻮر ﮐﻪ ﺧﻮاﻫﺪ آﻣﺪ‪ ،‬در ﻋﻤﻞ ﺗﻨﻬﺎ از ‪ ۵۶‬ﺑﯿﺖ آن اﺳﺘﻔﺎده ﻣ ﺷﻮد‪ .‬ﻫﻤﺎنﻃﻮر ﮐﻪ در ﺟﻠﺴﻪ ﻗﺒﻞ ﮔﻔﺘﻪ‬
‫ﺷﺪ ﺗﺎﺑﻊ دور ﺷﺒ ﻪ ﻓﺎﯾﺴﺘﻠ ﮐﻪ آن را ﺑﺎ ‪ f‬ﻧﺸﺎن ﻣ دﻫﯿﻢ در ﻫﺮ دور ﺑﺮ روی ﻧﯿﻤ از ﻗﺎﻟﺐ ورودی ﻋﻤﻞ ﻣ ﮐﻨﺪ‪ .‬در‬
‫ﻧﺘﯿﺠﻪ در رﻣﺰ ﻗﺎﻟﺒ ‪ ،DES‬ﻃﻮل ورودی ﺗﺎﺑﻊ ‪ f‬در ﻫﺮ دور ‪ ۳۲‬ﺑﯿﺖ ﻣ ﺑﺎﺷﺪ‪ .‬اﻟ ﻮرﯾﺘﻢ ﻃﺮح ﮐﻠﯿﺪ ﻧﯿﺰ ﺑﺮای ﻫﺮ دور‬
‫ﺑﺎ اﺳﺘﻔﺎده از ﮐﻠﯿﺪ اﺻﻠ ﯾ ﮐﻠﯿﺪ ‪ ۴۸‬ﺑﯿﺘ را ﺗﻮﻟﯿﺪ ﻣ ﮐﻨﺪ‪ .‬در اداﻣﻪ ﺑﻪ ﺑﺮرﺳ ﺗﺎﺑﻊ داﺧﻠ ‪ DES‬ﻣ ﭘﺮدازﯾﻢ‪.‬‬
‫‪٨‬‬
‫‪Data Encryption Standard‬‬

‫‪١۴‬ب‪۶-‬‬
‫ﺷ ﻞ ‪ :٩‬ﺳﺎﺧﺘﺎر ﮐﻠ اﻟ ﻮرﯾﺘﻢ رﻣﺰ ﻗﺎﻟﺒ ‪DES‬‬

‫ﻫﻤﺎنﻃﻮر ﮐﻪ در ﺷ ﻞ ‪ ٩‬ﻧﺸﺎن داده ﺷﺪه اﺳﺖ‪ ،‬ﺗﺎﺑﻊ ‪ f‬در اﺑﺘﺪا ورودی ‪ ۳۲‬ﺑﯿﺘ ﺧﻮد را ﮔﺮﻓﺘﻪ و آن را ﺗﻮﺳﻂ اﻧﺘﺸﺎر ‪E‬‬
‫ﺑﻪ ‪ ۴۸‬ﺑﯿﺖ ﺗﺒﺪﯾﻞ ﻣ ﮐﻨﺪ‪ .‬ﺳﭙﺲ ﻣﻘﺪار ﺑﺪﺳﺖ آﻣﺪه را ﺑﺎ زﯾﺮﮐﻠﯿﺪ دور ‪ ۴۸‬ﺑﯿﺘ ﺑﺪﺳﺖ آﻣﺪه در اﻟ ﻮرﯾﺘﻢ ﻃﺮح ﮐﻠﯿﺪ‪،‬‬
‫‪ XOR‬ﮐﺮده و ﺣﺎﺻﻞ ﺑﺪﺳﺖ آﻣﺪه را ﺑﻪ ‪ ۸‬ﻗﺴﻤﺖ ‪ ۶‬ﺑﯿﺘ ﺗﻘﺴﯿﻢ ﻣ ﮐﻨﺪ‪ .‬ﺣﺎل ﻫﺮ ﮐﺪام از اﯾﻦ ﻗﺴﻤﺖﻫﺎ ﺗﺤﺖ ﺗﺄﺛﯿﺮ‬
‫‪−S‬ﺟﻌﺒﻪﻫﺎی ﻣﺘﻔﺎوﺗ ﮐﻪ ‪ ۶‬ﺑﯿﺖ را ﺑﻪ ‪ ۴‬ﺑﯿﺖ ﺗﺒﺪﯾﻞ ﻣ ﮐﻨﻨﺪ‪ ،‬ﻗﺮار ﻣ ﮔﯿﺮﻧﺪ‪ .‬ﺳﭙﺲ ﺑﺎ ﮐﻨﺎر ﻫﻢ ﮔﺬاﺷﺘﻦ ﺑﯿﺖﻫﺎی‬
‫ﺑﺪﺳﺖ آﻣﺪه ﯾ رﺷﺘﻪ ‪ ۳۲‬ﺑﯿﺘ ﺗﻮﻟﯿﺪ ﻣ ﺷﻮد‪ .‬ﺗﻮﺟﻪ ﮐﻨﯿﺪ ﮐﻪ ﭼﻮن ‪−S‬ﺟﻌﺒﻪﻫﺎ ‪ ۶‬ﺑﯿﺖ را ﺑﻪ ‪ ۴‬ﺑﯿﺖ ﺗﺒﺪﯾﻞ ﻣ ﮐﻨﻨﺪ‪،‬‬
‫در ﻧﺘﯿﺠﻪ ﺑﺮﮔﺸﺖﭘﺬﯾﺮ ﻧﻤ ﺑﺎﺷﻨﺪ‪ .‬ﺑﻌﺪ از اﺛﺮ ‪−S‬ﺟﻌﺒﻪﻫﺎ‪ ،‬ﺟﺎﯾ ﺸﺖ ‪ P‬ﺑﺮای ﺟﺎﺑﻪﺟﺎ ﮐﺮدن ﺑﯿﺖﻫﺎ ﺑﺮ روی آنﻫﺎ اﻋﻤﺎل‬
‫ﻣ ﺷﻮد‪ .‬در اداﻣﻪ ﺟﺰﺋﯿﺎت اﻟ ﻮرﯾﺘﻢ رﻣﺰ ﻗﺎﻟﺒ ‪ DES‬را ﺷﺮح ﻣ دﻫﯿﻢ‪.‬‬

‫ﺟﺎﯾ ﺸﺖ ‪ IP‬و وارون آن‬ ‫‪١.٣‬‬


‫ﻫﻤﺎنﻃﻮر ﮐﻪ در ﺷ ﻞ ‪ ٩‬ﻣﺸﺎﻫﺪه ﻣ ﺷﻮد‪ ،‬در اﺑﺘﺪا و اﻧﺘﻬﺎی اﻟ ﻮرﯾﺘﻢ رﻣﺰ ﻗﺎﻟﺒ ‪ DES‬ﺑﻪ ﺗﺮﺗﯿﺐ ﺟﺎﯾ ﺸﺖ و وارون‬
‫آن ﺑﻪ ﮐﺎر ﮔﺮﻓﺘﻪ ﻣ ﺷﻮﻧﺪ‪ .‬اﯾﻦ ﺟﺎﯾ ﺸﺖ و وارون آن در ﺷ ﻞ ‪ ١٠‬ﻗﺎﺑﻞ ﻣﺸﺎﻫﺪهاﻧﺪ‪.‬‬

‫‪١۴‬ب‪٧-‬‬
‫ﺷ ﻞ ‪ :١٠‬ﺟﺎﯾ ﺸﺖ ‪ IP‬و وارون آن‬

‫ﺑﻪ ﻋﻨﻮان ﻣﺜﺎل ﺗﺤﺖ اﺛﺮ ‪ ،IP‬ﺑﯿﺘ ﮐﻪ در ﻣ ﺎن ‪ ۵۸‬ورودی اﺳﺖ ﺑﻪ ﻣ ﺎن اول آورده ﻣ ﺷﻮد‪ .‬در اداﻣﻪ ﺑﻪ ﺑﯿﺎن ﺟﺰﺋﯿﺎت‬
‫ﺗﺎﺑﻊ دور ﻣ ﭘﺮدازﯾﻢ‪.‬‬

‫ﺗﻌﺮﯾﻒ اﻧﺘﺸﺎر ‪E‬‬ ‫‪٢.٣‬‬


‫ﺑﺎ ﺗﻮﺟﻪ ﺑﻪ ﺷ ﻞ ‪ ،٩‬در ﻫﺮ دور ‪ DES‬اﺑﺘﺪا اﻧﺘﺸﺎر ‪ E‬روی ورودی ﺗﺎﺑﻊ دور ﻋﻤﻞ ﻣ ﮐﻨﺪ‪ .‬ﺗﻌﺮﯾﻒ اﻧﺘﺸﺎر ‪ E‬در ﺷ ﻞ‬
‫‪ ١١‬آﻣﺪه اﺳﺖ‪.‬‬

‫ﺷ ﻞ ‪ :١١‬ﺗﻌﺮﯾﻒ اﻧﺘﺸﺎر ‪E‬‬

‫ﻫﻤﺎنﻃﻮر ﮐﻪ در ﺷ ﻞ ‪ ١١‬ﻣﺸﺎﻫﺪه ﻣ ﺷﻮد‪ ۳۲ ،‬ﺑﯿﺖ ورودی ﺑﻪ ‪ ۴۸‬ﺑﯿﺖ ﮔﺴﺘﺮش ﻣ ﯾﺎﺑﺪ‪ .‬ﺑﻪ ﻋﻨﻮان ﻣﺜﺎل ﺗﺤﺖ اﺛﺮ‬
‫‪ ،E‬ﺑﯿﺘ ﮐﻪ در ﻣ ﺎن اول ورودی اﺳﺖ ﺑﻪ ﻣ ﺎنﻫﺎی ‪ ۲‬و ‪ ۴۸‬ﺑﺮده ﻣ ﺷﻮد‪.‬‬

‫ﺗﻌﺮﯾﻒ ‪−S‬ﺟﻌﺒﻪﻫﺎ‬ ‫‪٣.٣‬‬


‫ﻫﻤﺎنﻃﻮر ﮐﻪ ذﮐﺮ ﺷﺪ در ﻫﺮ دور‪ ۴۸ ،‬ﺑﯿﺖ ﺧﺮوﺟ ‪ E‬ﭘﺲ از ﺗﺮﮐﯿﺐ )‪ (XOR‬ﺑﺎ زﯾﺮﮐﻠﯿﺪ دور‪ ،‬ﺑﻪ ‪ ۸‬ﻗﺴﻤﺖ ‪ ۶‬ﺑﯿﺘ‬
‫ﺗﻘﺴﯿﻢ ﻣ ﺷﻮد و روی ﻫﺮ ﻗﺴﻤﺖ ﯾ ‪−S‬ﺟﻌﺒﻪ ﻣﺘﻔﺎوت ﻋﻤﻞ ﻣ ﮐﻨﺪ‪ .‬ﺗﻌﺮﯾﻒ اﯾﻦ ‪−S‬ﺟﻌﺒﻪﻫﺎ در ﺷ ﻞ ‪ ١٢‬ﻗﺎﺑﻞ‬
‫ﻣﺸﺎﻫﺪه ﻣ ﺑﺎﺷﺪ‪.‬‬

‫‪١۴‬ب‪٨-‬‬
‫ﺷ ﻞ ‪ :١٢‬ﺗﻌﺮﯾﻒ ‪−S‬ﺟﻌﺒﻪﻫﺎی رﻣﺰ ﻗﺎﻟﺒ ‪DES‬‬

‫ﻫﻤﺎنﻃﻮر ﮐﻪ ﻣﺸﺎﻫﺪه ﻣ ﺷﻮد‪ ،‬ﻫﺮ ‪−S‬ﺟﻌﺒﻪ دارای ‪ ۴‬ﺳﻄﺮ و ‪ ۱۶‬ﺳﺘﻮن اﺳﺖ‪ .‬از ﺷﺶ ﺑﯿﺖ ورودی ﺑﻪ ﻫﺮ ‪−S‬ﺟﻌﺒﻪ‪،‬‬
‫دو ﺑﯿﺖ ﺧﺎرﺟ ﺳﻄﺮ را ﻣﺸﺨﺺ ﻣ ﮐﻨﻨﺪ و ﭼﻬﺎر ﺑﯿﺖ وﺳﻂ ﻣﺸﺨﺺ ﮐﻨﻨﺪه ﺳﺘﻮن ﻣ ﺑﺎﺷﻨﺪ‪ .‬ﺑﻪ ﻋﻨﻮان ﻣﺜﺎل ورودی‬
‫‪ ۱۰۰۰۰۱‬ﺗﺤﺖ اﺛﺮ ‪ S۱‬ﺑﻪ ‪ f=1111‬ﺗﺼﻮﯾﺮ ﻣ ﺷﻮد‪.‬‬

‫ﺗﻌﺮﯾﻒ ﺟﺎﯾ ﺸﺖ ‪P‬‬ ‫‪۴.٣‬‬


‫در اﻧﺘﻬﺎی ﺗﺎﺑﻊ دور‪ ،‬ﺟﺎﯾ ﺸﺖ ‪ P‬روی ‪ ۳۲‬ﺑﯿﺖ ﺧﺮوﺟ ‪−S‬ﺟﻌﺒﻪﻫﺎ ﻋﻤﻞ ﻣ ﮐﻨﺪ‪ .‬ﺗﻌﺮﯾﻒ اﯾﻦ ﺟﺎﯾ ﺸﺖ در ﺷ ﻞ‬
‫‪ ١٣‬آﻣﺪه اﺳﺖ‪.‬‬

‫ﺷ ﻞ ‪ :١٣‬ﺗﻌﺮﯾﻒ ﺟﺎﯾ ﺸﺖ ‪P‬‬

‫‪١۴‬ب‪٩-‬‬
‫ﻃﺮح ﮐﻠﯿﺪ ‪DES‬‬ ‫‪۵.٣‬‬
‫در اﯾﻦ ﺑﻪ ﺑﺨﺶ ﺑﻪ ﺗﻮﺿﯿﺢ ﻃﺮح ﮐﻠﯿﺪ رﻣﺰ ﻗﺎﻟﺒ ‪ DES‬ﻣ ﭘﺮدازﯾﻢ‪ .‬در دور ‪ ،i‬زﯾﺮﮐﻠﯿﺪ دور ﻣﺘﻨﺎﻇﺮ ) ‪ (ki‬ﺑﻪ ﺻﻮرت زﯾﺮ‬
‫از روی ﮐﻠﯿﺪ اوﻟﯿﻪ ﺳﺎﺧﺘﻪ ﻣ ﺷﻮد‪:‬‬
‫ﺑﺎ ﺗﻮﺟﻪ ﺑﻪ ﺷ ﻞ ‪ ،١۴‬از ‪ ۶۴‬ﺑﯿﺖ ﮐﻠﯿﺪ اوﻟﯿﻪ ﺑﯿﺖﻫﺎی ‪ ۶۴, ..., ۱۶٫ ۸‬ﺣﺬف ﻣ ﺷﻮﻧﺪ‪ .‬ﺳﭙﺲ روی رﺷﺘﻪ ‪ ۵۶‬ﺑﯿﺘ‬
‫ﺑﺎﻗﯿﻤﺎﻧﺪه ﺟﺎﯾ ﺸﺖ ‪ P C۱‬ﮐﻪ ﺗﻌﺮﯾﻒ آن در ﺷ ﻞ ‪ ١۴‬آﻣﺪه اﺳﺖ‪ ،‬اﺛﺮ ﻣ ﮐﻨﺪ و رﺷﺘﻪ ﺣﺎﺻﻞ ﺑﻪ دو ﻧﯿﻤﻪ ‪ ۲۸‬ﺑﯿﺘ‬
‫ﺗﻘﺴﯿﻢ ﻣ ﺷﻮد‪ .‬ﺳﭙﺲ اﯾﻦ دو ﻧﯿﻤﻪ ﺑﻪ اﻧﺪازه ‪ ri‬ﺑﻪ ﺳﻤﺖ ﭼﭗ دوران ﻣ ﯾﺎﺑﻨﺪ‪ .‬ﻣﻘﺪار ‪ ri‬ﺑﻪ ازای دورﻫﺎی ﻣﺨﺘﻠﻒ در‬
‫ﺷ ﻞ ‪ ١۴‬آﻣﺪه اﺳﺖ‪ .‬ﭘﺲ از دوران‪ ،‬اﯾﻦ دو ﻧﯿﻤﻪ ﺑﻪ ﯾ ﺪﯾ ﺮ اﻟﺤﺎق ‪ ٩‬ﻣ ﺷﻮﻧﺪ‪ .‬در ﻧﻬﺎﯾﺖ رﺷﺘﻪ ‪ ۵۶‬ﺑﯿﺘ ﺑﻪ دﺳﺖ آﻣﺪه‬
‫ﻃﺒﻖ ﺟﺪول ‪ P C۲‬ﺑﻪ ‪ ۴۸‬ﺑﯿﺖ ﺗﺒﺪﯾﻞ ﺷﺪه و زﯾﺮﮐﻠﯿﺪ دور ‪ ki‬را ﺗﺸ ﯿﻞ ﻣ دﻫﺪ‪.‬‬

‫ﺷ ﻞ ‪ :١۴‬ﺳﺎﺧﺘﺎر ﻃﺮح ﮐﻠﯿﺪ ‪DES‬‬


‫‪٩‬‬
‫‪concatenation‬‬

‫‪١۴‬ب‪١٠-‬‬
‫اﻣﻨﯿﺖ رﻣﺰﻫﺎی ﻗﺎﻟﺒ ‪ AES‬و ‪DES‬‬ ‫‪۴‬‬
‫ﺑﺮای رﻣﺰ ﻗﺎﻟﺒ ‪ AES‬ﺑﻬﺘﺮﯾﻦ ﺣﻤﻠﻪ ﺗﺎ ﮐﻨﻮن در ﺳﺎل ‪ ۲۰۱۱‬ﺑﺎ اﺳﺘﻔﺎده از ﺣﻤﻠﻪ دوﺑﺨﺸ ‪ ١٠‬اراﺋﻪ ﺷﺪه اﺳﺖ‪ .‬ﺑﺮای‬
‫ﻣﺜﺎل اﯾﻦ ﺣﻤﻠﻪ روی ‪ AES-128‬ﺑﻪ زﻣﺎن ‪ ۲۱۲۶٫۱۸‬و ﺣﺎﻓﻈﻪ ‪ ۲۸‬ﻧﯿﺎز دارد‪ .‬ﭘﯿﭽﯿﺪﮔ داده ﻧﯿﺰ ‪ ۲۸۸‬ﻣ ﺑﺎﺷﺪ‪ .‬ﺑﻨﺎﺑﺮاﯾﻦ‬
‫‪ AES‬از اﻣﻨﯿﺖ ﻗﺎﺑﻞ ﻣﻼﺣﻈﻪای ﺑﺮﺧﻮردار ﻣ ﺑﺎﺷﺪ‪.‬‬
‫ﺑﺮای رﻣﺰ ﻗﺎﻟﺒ ‪ DES‬اوﻟﯿﻦ ﺣﻤﻠﻪ در ﺳﺎل ‪ ۱۹۹۱‬ﺗﻮﺳﻂ ﺑﯿﻬﺎم ‪ ١١‬و ﺷﺎﻣﯿﺮ ‪ ١٢‬اراﺋﻪ ﺷﺪ ﮐﻪ ﭘﯿﭽﯿﺪﮔ داده آن ‪۲۴۷‬‬
‫ﺑﻮد‪ .‬ﺣﻤﻠﻪی دﯾ ﺮی در ﺳﺎل ‪ ۱۹۹۳‬ﺗﻮﺳﻂ ﻣﺎﺗﺴﻮﯾ ‪ ١٣‬ﻣﻄﺮح ﺷﺪ ﮐﻪ ﻧﯿﺎز ﺑﻪ داﻧﺴﺘﻦ ‪ ۲۴۳‬داده داﺷﺖ‪ .‬ﻋﻼوه ﺑﺮ‬
‫اﯾﻦ ﺣﻤﻼت‪ ،‬ﺣﻤﻠﻪای ﮐﻪ ﻫﻤﻮاره ﺑﺮ اﻟ ﻮرﯾﺘﻢﻫﺎی رﻣﺰﻧ ﺎری ﻋﻤﻞ ﻣ ﮐﻨﺪ ﺟﺴﺘﺠﻮی ﺗﻤﺎﻣ ﮐﻠﯿﺪﻫﺎی ﻣﻤ ﻦ ﻣ ﺑﺎﺷﺪ‪.‬‬
‫اﻣﺮوزه ﺟﺴﺘﺠﻮی ﻓﻀﺎی ﮐﻠﯿﺪ ‪ ۵۶‬ﺑﯿﺘ ﺑﺎ ﻫﺰﯾﻨﻪ و زﻣﺎن ﻣﻌﻘﻮﻟ ﺑﻪ راﺣﺘ اﻣ ﺎن ﭘﺬﯾﺮ ﻣ ﺑﺎﺷﺪ‪.‬‬

‫‪١٠‬‬
‫‪biclique‬‬
‫‪١١‬‬
‫‪Eli Biham‬‬
‫‪١٢‬‬
‫‪Adi Shamir‬‬
‫‪١٣‬‬
‫‪Mitsuru Matsui‬‬

‫‪١۴‬ب‪١١-‬‬
‫ﺑﻪ ﻧﺎم ﺧﺪا‬

‫داﻧﺸ ﺪهی ﻋﻠﻮم رﯾﺎﺿ‬

‫‪ ٢‬آذر ‪١٣٩١‬‬ ‫ﻣﻘﺪﻣﻪای ﺑﺮ رﻣﺰﻧ ﺎری‬

‫ﺟﻠﺴﻪی ‪ :١۵‬ﻣﺪﻫﺎی ﻋﻤﻞﮐﺮد رﻣﺰﻫﺎی ﻗﺎﻟﺒ‬


‫ﻧ ﺎرﻧﺪه‪ :‬ﻣﻬﺪی ﻣﺮدی‬ ‫ﻣﺪرس‪ :‬دﮐﺘﺮ ﺷﻬﺮام ﺧﺰاﺋ‬

‫در اﯾﻦ ﺟﻠﺴﻪ ﺷﯿﻮه اﺳﺘﻔﺎده از رﻣﺰﻫﺎی ﻗﺎﻟﺒ ‪ ١‬را ﻣﻮرد ﺑﺮرﺳ ﻗﺮار ﻣ دﻫﯿﻢ و ﭼﻬﺎر ﻣﻮرد از ﻣﺪﻫﺎی ﻋﻤﻠ ﺮد ‪ ٢‬را ﻣﻌﺮﻓ‬
‫و در ﻣﻮرد اﻣﻨﯿﺖ آﻧﻬﺎ ﺑﺤﺚ ﻣ ﮐﻨﯿﻢ‪ .‬در اﺑﺘﺪا ﺗﻮﺟﻪ ﻣ ﮐﻨﯿﻢ ﮐﻪ اﮔﺮ ‪ E : {۰, ۱}n × {۰, ۱}n −→ {۰, ۱}n‬ﯾ‬
‫ﺟﺎﯾ ﺸﺖ ﺷﺒﻪ ﺗﺼﺎدﻓ )‪ (PRP‬ﺑﺎﺷﺪ آﻧ ﺎه ﻫﺮ رﺷﺘﻪ ‪-n‬ﺑﯿﺘ را ﯾ ﻗﺎﻟﺐ ﻣ ﮔﻮﺋﯿﻢ‪ .‬ﺑﺎ اﯾﻦ اﺻﻄﻼح ﻣ ﺑﯿﻨﯿﻢ ﮐﻪ رﻣﺰ‬
‫ﻗﺎﻟﺒ ﻓﻘﻂ روی ﯾ ﺗ ﻗﺎﻟﺐ ﻋﻤﻞ ﻣ ﮐﻨﺪ و اﯾﻦ ﺳﻮال ﺑﻮﺟﻮد ﻣ آﯾﺪ ﮐﻪ ﭼ ﻮﻧﻪ ﭘﯿﺎمﻫﺎی ﺑﺎ ﻃﻮل دﻟﺨﻮاه را رﻣﺰ ﮐﻨﯿﻢ‪.‬‬

‫ﻧ ﺘﻪ ‪ ١‬ﭘﯿﺎمﻫﺎی ﺑﺎ ﻃﻮل دﻟﺨﻮاه را ﻣ ﺗﻮان ﺑﺎ اﺿﺎﻓﻪ ﮐﺮدن ﯾ ﻋﺪد ‪ ۱‬و ﺑﻪ ﺗﻌﺪاد ﮐﺎﻓ ‪ ۰‬در اﻧﺘﻬﺎی آن‪ ،‬ﺑﻪ ﻃﻮل‬
‫ﻣﻀﺮﺑ از اﻧﺪازه ﻗﺎﻟﺐ ﻣﻄﻠﻮب ﺗﺒﺪﯾﻞ ﮐﺮد‪ .‬اﯾﻦ ﻋﻤﻞ ﭘﺪﯾﻨ ‪ ٣‬ﻧﺎﻣﯿﺪهﺷﻮد‪ .‬ﺑﻪ ﻃﻮر دﻗﯿﻖﺗﺮ‪ ،‬اﮔﺮ ∗}‪ M ∈ {۰, ۱‬ﯾ‬
‫رﺷﺘﻪ دﻟﺨﻮاه ﺑﺎﺷﺪ‪ ،‬رﺷﺘﻪ ﭘﺪ ﺷﺪه ﺑﻪ ﺻﻮرت ‪ M ۱۰t‬ﻣ ﺑﺎﺷﺪ ﮐﻪ ‪ ۰ ≤ t ≤ n − ۱‬ﮐﻮﭼ ﺘﺮﯾﻦ ﻋﺪدی اﺳﺖ ﮐﻪ ﺑﻪ‬
‫ازای آن | ‪ |M ۱۰t‬ﻣﻀﺮب ‪ n‬اﺳﺖ ﮐﻪ ﻣﺎ آن را ﺑﻪ ﺻﻮرت زﯾﺮ ﻧﺸﺎن ﻣ دﻫﯿﻢ‪:‬‬

‫‪M ۱۰t = m۱ m۲ . . . mb‬‬ ‫‪,‬‬ ‫‪|mi | = n‬‬ ‫‪for ۱ ≤ i ≤ b .‬‬

‫ﻣﺪ ﮐﺘﺎب اﻟ ﺘﺮوﻧﯿ‬ ‫‪١‬‬


‫ﻣﺪ ﮐﺘﺎب اﻟ ﺘﺮوﻧﯿ ‪ ،۴ ECB ،‬ﯾ از ﺳﺎدهﺗﺮﯾﻦ ﻣﺪﻫﺎی ﻣﻤ ﻦ اﺳﺖ ﮐﻪ رﻣﺰ ﮐﺮدن ﺑﻪ ﻃﻮر ﻣﺴﺘﻘﯿﻢ ﺑﺎ اﻋﻤﺎل ﺟﺎﯾ ﺸﺖ‬
‫ﺷﺒﻪﺗﺼﺎدﻓ روی ﻫﺮ ﻗﺎﻟﺐ ﻣﺘﻦ اﺻﻠ ﺑﻪ ﻃﻮر ﺟﺪاﮔﺎﻧﻪ اﻧﺠﺎم ﻣ ﺷﻮد‪ .‬ﺑﻪ ﻋﺒﺎرت دﻗﯿﻖﺗﺮ ﻣﺪ ﮐﺘﺎب اﻟ ﺘﺮوﻧﯿ ‪ ،‬ﻣﺘﻦ‬
‫اﺻﻠ ﭘﺪ ﺷﺪه ‪ M ۱۰t = m۱ m۲ · · · mb‬را ﺑﻪ ﻣﺘﻦ رﻣﺰی‬

‫⟩) ‪c = ⟨Ek (m۱ ), Ek (m۲ ), . . . , Ek (mb‬‬

‫ﺗﺒﺪﯾﻞ ﻣ ﮐﻨﺪ )ﺷ ﻞ ‪.(١‬‬


‫ﺑﻪ ﺻﻮرت ﻣﻮﺛﺮی ﻗﺎﺑﻞ ﻣﺤﺎﺳﺒﻪ اﺳﺖ ﺑﻪ‬ ‫‪Ek−۱‬‬
‫ﺑﺎزﮔﺸﺎﯾ رﻣﺰ ﻧﯿﺰ ﺑﻪ ﺻﻮرت واﺿﺤ ﺑﺎ اﺳﺘﻔﺎده از اﯾﻦ ﺣﻘﯿﻘﺖ ﮐﻪ‬
‫دﺳﺖ ﻣ آﯾﺪ‪ .‬اﻟﺒﺘﻪ ﺑﺎﯾﺪ ﺗﻮﺟﻪ ﺷﻮد ﮐﻪ رﻣﺰﮔﺸﺎﯾ ﻓﻘﻂ درﺻﻮرﺗ ﺑﺎ ﻣﻮﻓﻘﯿﺖ اﻧﺠﺎم ﻣ ﺷﻮد ﮐﻪ رﺷﺘﻪ ورودی ﯾ ﻣﺘﻦ‬
‫رﻣﺰﺷﺪه ﻣﻌﺘﺒﺮ ﺑﺎﺷﺪ )ﯾﻌﻨ ‪ ،‬رﻣﺰﺷﺪه ﯾ ﻣﺘﻦ اﺻﻠ ﺑﺎﺷﺪ(‪ .‬ﺑﻪ ﻃﻮر دﻗﯿﻖﺗﺮ‪ ،‬ﺑﺮای رﻣﺰﮔﺸﺎﯾ رﺷﺘﻪ ∗}‪c ∈ {۰, ۱‬‬
‫‪١‬‬
‫‪block ciphers‬‬
‫‪٢‬‬
‫‪modes of operation‬‬
‫‪٣‬‬
‫‪padding‬‬
‫‪۴‬‬
‫‪Electronic Code Book (ECB) mode‬‬

‫‪١۵-١‬‬
‫‪m1‬‬ ‫‪m2‬‬ ‫‪mb‬‬

‫‪Ek‬‬ ‫‪Ek‬‬ ‫···‬ ‫‪Ek‬‬

‫‪c1‬‬ ‫‪c2‬‬ ‫‪cb‬‬

‫)‪(ECB‬‬ ‫ﺷ ﻞ ‪ :١‬ﻣﺪ ﮐﺘﺎب اﻟ ﺘﺮوﻧﯿ‬

‫اﻟ ﻮرﯾﺘﻢ رﻣﺰﮔﺸﺎﯾ اﺑﺘﺪا ﺑﺮرﺳ ﻣ ﮐﻨﺪ ﮐﻪ |‪ |c‬ﻣﻀﺮﺑ از ‪ n‬ﺑﺎﺷﺪ‪ .‬اﮔﺮ ﻧﺒﺎﺷﺪ ⊥ ﺑﺮﻣ ﮔﺮداﻧﺪ؛ در ﻏﯿﺮ اﯾﻦ ﺻﻮرت‪،‬‬
‫ﻣﺤﺎﺳﺒﺎت زﯾﺮ اﻧﺠﺎم ﻣ ﺷﻮد ﮐﻪ ‪ c = c۱ . . . cb‬و ‪:|ci | = n‬‬

‫) ‪mi = Ek−۱ (ci‬‬ ‫‪for ۱ ≤ i ≤ b .‬‬


‫ﺳﭙﺲ‪ ،‬اﮔﺮ ‪ mb‬ﯾ ﺑﻠﻮک ﺗﻤﺎمﺻﻔﺮ ﺑﺎﺷﺪ‪ ،‬اﻟ ﻮرﯾﺘﻢ رﻣﺰﮔﺸﺎﯾ ﺑﺎز ﻫﻢ ⊥ ﺑﺮﻣ ﮔﺮداﻧﺪ؛ در ﻏﯿﺮ اﯾﻦﺻﻮرت‪ ،‬ﺑﺎ ﺣﺬف‬
‫ﭘﺪﯾﻨ ﻣﺘﻦ ‪ M‬ﺑﺮﮔﺮداﻧﺪه ﻣ ﺷﻮد ﮐﻪ ‪ M ۱۰t = m۱ m۲ · · · mb‬و ‪.۰ ≤ t ≤ n − ۱‬‬
‫ﻓﺮآﯾﻨﺪ رﻣﺰﻧ ﺎری در اﯾﻦ ﻣﻮرد ﻗﻄﻌ ‪) ۵‬ﻏﯿﺮاﺣﺘﻤﺎﻟ ( ﻣ ﺑﺎﺷﺪ‪ ،‬ﺑﻨﺎﺑﺮاﯾﻦ اﯾﻦ روش ﻋﻤﻠ ﺮد ﻧﻤ ﺗﻮاﻧﺪ اﻣﻨﯿﺖ ﭼﻨﺪﭘﯿﺎﻣ‬
‫داﺷﺘﻪ ﺑﺎﺷﺪ‪ .‬در واﻗﻊ ﺑﺎ ﺗﻮﺟﻪ ﺑﻪ اﯾﻨ ﻪ‪ ،‬ﻗﺎﻟﺐﻫﺎی ﺑﺮاﺑﺮ ﺑﻪ ﻗﺎﻟﺐﻫﺎی ﯾ ﺴﺎن ﻧ ﺎﺷﺘﻪ ﻣ ﺷﻮﻧﺪ‪ ،‬اﯾﻦ روش ﺣﺘ اﻣﻨﯿﺖ‬
‫ﺗ ﭘﯿﺎﻣ ﻫﻢ ﻧﺪارد‪ .‬از اﯾﻦ رو اﻣ ﺎن ﺗﺸﺨﯿﺺ ﻧﻤﻮﻧﻪﻫﺎی ﻣﺘﻦ اﺻﻠ در ﻣﺘﻦ رﻣﺰﺷﺪه وﺟﻮد دارد‪ .‬ﺑﺎ اﺳﺘﻔﺎده از اﯾﻦ‬
‫ﻣﻬﺎﺟﻢ اﻣﻨﯿﺖ ﺗ ﭘﯿﺎﻣ اراﺋﻪ ﮐﺮد‪ .‬ﮐﺎﻓﯿﺴﺖ ﻣﻬﺎﺟﻢ ﭘﯿﺎمﻫﺎی ‪ M۰ = ۰n ۰n‬و ‪M۱ = ۰n ۱n‬‬ ‫ﻣﺸﺎﻫﺪه ﻣ ﺗﻮان ﯾ‬
‫را )ﮐﻪ دارای ﻃﻮل ﯾ ﺴﺎن ﻣ ﺑﺎﺷﻨﺪ( ﺑﻪ ﭼﺎﻟﺶﮔﺮ ﻓﺮﺳﺘﺎده و ﭘﺲ از درﯾﺎﻓﺖ ﻣﺘﻦ رﻣﺰی ⟩ ‪) c = ⟨c۰ , c۱ , c۲‬ﮐﻪ رﻣﺰ‬
‫ﺷﺪهی ﯾ از ﭘﯿﺎمﻫﺎی ‪ M۰‬ﯾﺎ ‪ M۱‬ﻣ ﺑﺎﺷﺪ و ﺑﺎ ﺗﻮﺟﻪ ﺑﻪ اﻧﺘﺨﺎب ﻣﻬﺎﺟﻢ ﻃﻮل آن ﺣﺘﻤﺎَ ‪ ۳n‬اﺳﺖ(‪ ،‬ﺑﯿﺖ ̂‪ b‬را ﺑﻪ‬
‫ﺻﻮرت زﯾﺮ ﺗﻮﻟﯿﺪ ﮐﻨﺪ‪:‬‬
‫{‬
‫‪۱ if c۰ ̸= c۱‬‬
‫= ̂‪b‬‬
‫‪۰ if c۰ = c۱‬‬
‫ﻣ ﺑﺎﺷﺪ‪:‬‬ ‫ﺑﻨﺎﺑﺮاﯾﻦ ﻫﻤﻮاره ̂‪ b = b‬و ﻟﺬا اﺣﺘﻤﺎل ﻣﻮﻓﻘﯿﺖ ﻣﻬﺎﺟﻢ در آزﻣﺎﯾﺶ ﺑﺮاﺑﺮ ﯾ‬

‫‪Pr{PrivKeav‬‬
‫‪A,Π = ۱} = ۱ .‬‬

‫ﻗﺎﺑﻞ ﺗﻮﺟﻪ اﺳﺖ ﮐﻪ ﺣﻤﻠﻪ ﻓﻮق ﻋﻠﯿﻪ ﻣﺪ ﮐﺘﺎب اﻟ ﺘﺮوﻧﯿ ‪ ECB، ،‬ﯾ ﻣﺴﺌﻠﻪ ﻧﻈﺮی ﻧﯿﺴﺖ و اﻃﻼﻋﺎت زﯾﺎدی را‬
‫ﻣ ﺗﻮان ﺑﺎ ﻣﺸﺎﻫﺪه ﻣﺘﻮن رﻣﺰ ﺷﺪه ﺑﻪ دﺳﺖ آورد ﮐﻪ ﺗﻮﺳﻂ اﯾﻦ روش ﺗﻮﻟﯿﺪ ﺷﺪهاﻧﺪ‪ .‬ﺑﻨﺎﺑﺮاﯾﻦ روش ‪ ECB‬ﻧﺒﺎﯾﺪ اﺳﺘﻔﺎده‬
‫ﺷﻮد و ﻣﻌﺮﻓ اﯾﻦ روش ﺻﺮﻓﺎً ﺑﻪ ﺧﺎﻃﺮ اﻫﻤﯿﺖ ﺗﺎرﯾﺨ آن اﺳﺖ‪.‬‬
‫ﯾ ﻣﺜﺎل ﻗﺎﺑﻞ ﺗﻮﺟﻪ از اﯾﻨ ﻪ ‪ ECB‬ﻣﻘﺪاری از اﻃﻼﻋﺎت ﻣﺘﻦ اﺻﻠ را در ﻣﺘﻦ رﻣﺰی ﻓﺎش ﻣ ﮐﻨﺪ‪ ،‬در ﺣﺎﻟﺘ اﺳﺖ ﮐﻪ‬
‫ﺑﺮای رﻣﺰﻧ ﺎری ﯾ ﺗﺼﻮﯾﺮ ﺑﯿﺖﻣﭗ ‪ ۶‬اﺳﺘﻔﺎده ﺷﻮد‪ .‬در اﯾﻦ ﺣﺎﻟﺖ ﻣﻨﺎﻃﻖ وﺳﯿﻌ از رﻧ ﻫﺎی ﯾ ﻨﻮاﺧﺖ ﺑﻪ ﺻﻮرت‬
‫ﻣﺸﺎﺑﻪ رﻣﺰ ﺷﺪه و رﻧ ﻫﺎی ﭘﯿ ﺴﻞﻫﺎی ﺗ ﻧﯿﺰ ﺑﻪ ﺻﻮرت ﺟﺪاﮔﺎﻧﻪ رﻣﺰ ﺷﺪه‪ ،‬ﯾﻌﻨ ﻫﻤﺎﻧ ﻮﻧﻪ ﮐﻪ ﮔﻔﺘﻪ ﺷﺪ ﻗﺎﻟﺐﻫﺎی‬
‫‪۵‬‬
‫‪deterministic‬‬
‫‪۶‬‬
‫‪bitmap image‬‬

‫‪١۵-٢‬‬
‫در ﻣﺘﻦ اﺻﻠ در ﻣﺘﻦ رﻣﺰ ﺷﺪه‬ ‫ﯾ ﺴﺎن ﺑﻪ ﻗﺎﻟﺐﻫﺎی ﻣﺸﺎﺑﻪ رﻣﺰ ﻣ ﺷﻮﻧﺪ‪ .‬اﯾﻦ ﺑﺎﻋﺚ ﻣ ﺷﻮد ﻫﻤﺎن ﺗﻔﺎوتﻫﺎی رﻧ‬
‫ﻧﯿﺰ ﻗﺎﺑﻞ دﯾﺪن ﺑﺎﺷﺪ )ﺷ ﻞ ‪.(٢‬‬

‫ﻣﺪ‬ ‫)ﺷ ﻞ وﺳﻂ( و ﯾ‬ ‫ﺗﺼﻮﯾﺮ ﺑﯿﺖﻣﭗ و رﻣﺰ ﺷﺪه آن ﺑﺎ ﻣﺪ ﮐﺘﺎب اﻟ ﺘﺮوﻧﯿ‬ ‫ﭘﺪﯾﺎ[ ﯾ‬ ‫ﺷ ﻞ ‪] :٢‬ﺑﺮﮔﺮﻓﺘﻪ از وﯾ‬
‫اﻣﻦ )ﺷ ﻞ ﺳﻤﺖ راﺳﺖ(‪.‬‬

‫‪ ٢‬ﻣﺪ زﻧﺠﯿﺮی ﻗﺎﻟﺐ رﻣﺰ‬


‫در ﻣﺪ زﻧﺠﯿﺮی ﻗﺎﻟﺐ رﻣﺰ‪ ،٧ CBC ،‬اﺑﺘﺪا ﯾ ﺑﺮدار اوﻟﯿﻪ ﺗﺼﺎدﻓ ‪IV‬ﺑﻪ ﻃﻮل ‪n‬اﻧﺘﺨﺎب ﻣ ﺷﻮد ﮐﻪ ﺑﺨﺸ از ﻣﺘﻦ‬
‫رﻣﺰ ﺷﺪه ﺧﻮاﻫﺪ ﺑﻮد‪ .‬ﺳﭙﺲ ﺑﻪ ﻃﺮﯾﻖ زﯾﺮ ﻣﺘﻦ رﻣﺰی ﺣﺎﺻﻞ ﻣ ﺷﻮد‪.‬‬

‫‪c۰ = IV‬‬ ‫‪,‬‬ ‫) ‪ci = Ek (ci−۱ ⊕ mi‬‬ ‫‪,‬‬ ‫‪۱≤i≤b‬‬

‫‪m1‬‬ ‫‪m2‬‬ ‫‪mb−1‬‬ ‫‪mb‬‬

‫‪IV‬‬

‫‪Ek‬‬ ‫‪Ek‬‬ ‫···‬ ‫‪Ek‬‬ ‫‪Ek‬‬

‫‪c0 = IV‬‬ ‫‪c1‬‬ ‫‪c2‬‬ ‫‪cb−1‬‬ ‫‪cb‬‬

‫ﺷ ﻞ ‪ :٣‬روش زﻧﺠﯿﺮی ﻗﺎﻟﺐ رﻣﺰ )رﻣﺰﻧ ﺎری(‬

‫ﻣﺘﻦ رﻣﺰ ﻧﻬﺎﯾ ﺑﻪ ﺻﻮرت ⟩ ‪ c = ⟨IV, c۱ , c۲ , . . . , cb‬ﻣ ﺑﺎﺷﺪ )ﺷ ﻞ ‪.(٣‬‬

‫‪٧‬‬
‫‪Cipher Block Chaining (CBC) mode‬‬

‫‪١۵-٣‬‬
‫ﺑﺮای ﺑﺎز ﻧﻤﻮدن اﯾﻦ رﻣﺰ ﮐﺎﻓ اﺳﺖ ‪ mi‬ﻫﺎ را ﺑﻪ ﺻﻮرت زﯾﺮ ﻣﺤﺎﺳﺒﻪ )ﺷ ﻞ ‪(۴‬‬
‫‪mi = Ek−۱ (ci ) ⊕ ci−۱‬‬
‫ﻣﻌﺘﺒﺮ ﻧﺒﺎﺷﺪ ⊥ ﺑﺮﮔﺮداﻧﺪه ﻣ ﺷﻮد‪.‬‬ ‫را ﺣﺬف ﮐﻨﯿﻢ‪ .‬در ﺻﻮرﺗ ﮐﻪ ﭘﺪﯾﻨ‬ ‫و ﺳﭙﺲ ﭘﺪﯾﻨ‬

‫‪c0‬‬ ‫‪c1‬‬ ‫‪c2‬‬ ‫‪c3‬‬ ‫‪cb‬‬

‫‪E k-1‬‬ ‫‪E k-1‬‬ ‫‪E k-1‬‬ ‫‪E k-1‬‬

‫‪m1‬‬ ‫‪m2‬‬ ‫‪m3‬‬ ‫‪mb‬‬

‫ﺷ ﻞ ‪ :۴‬روش زﻧﺠﯿﺮی ﻗﺎﻟﺐ رﻣﺰ )رﻣﺰﮔﺸﺎﯾ (‬

‫ﺟﺎﯾ ﺸﺖ ﺷﺒﻪﺗﺼﺎدﻓ ﺑﺎﺷﺪ‬ ‫روش رﻣﺰﻧ ﺎری ﺑﻪ روش ‪ CBC‬اﺣﺘﻤﺎﻻﺗ اﺳﺖ و ﻣ ﺗﻮان ﺛﺎﺑﺖ ﮐﺮد ﮐﻪ اﮔﺮ ‪ E‬ﯾ‬
‫آﻧ ﺎه روش ‪ CBC‬دارای اﻣﻨﯿﺖ در ﻣﻘﺎﺑﻞ ﺣﻤﻠﻪ ﻣﺘﻦ اﺻﻠ اﻧﺘﺨﺎﺑ ‪ ٨‬اﺳﺖ‪.‬‬

‫ﺟﺎﯾ ﺸﺖ ﺷﺒﻪﺗﺼﺎدﻓ ﺑﺎﺷﺪ‪ ،‬آﻧ ﺎه روش ‪ CBC‬دارای اﻣﻨﯿﺖ ﻣﺘﻦ اﺻﻠ اﻧﺘﺨﺎﺑ اﺳﺖ‪.‬‬ ‫ﻗﻀﯿﻪ ‪ ١‬اﮔﺮ ‪ E‬ﯾ‬

‫ﻣﻬﻤﺘﺮﯾﻦ اﺷ ﺎل اﯾﻦ روش اﯾﻦ اﺳﺖ ﮐﻪ رﻣﺰﻧ ﺎری ﺑﺎﯾﺪ ﺑﻪ ﻃﻮر ﻣﺘﻮاﻟ اﻧﺠﺎم ﺷﻮد و ﻗﺎﺑﻠﯿﺖ ﭘﺮدازش ﻣﻮازی ﻧﺪارد‪.‬‬
‫زﯾﺮا ﺑﻪ ﺗﺮﺗﯿﺐ ﺑﺮای رﻣﺰ ﮐﺮدن ﻗﺎﻟﺐ ﻣﺘﻦ اﺻﻠ ‪ mj‬ﺑﻪ ﻗﺎﻟﺐ ﻣﺘﻦ رﻣﺰی ‪ cj−۱‬ﻧﯿﺎز اﺳﺖ‪ ،‬و ﻧﯿﺰ ﺑﻪ ﻫﻤﯿﻦ ﻋﻠﺖ ﻗﺎﻟﺐ‬
‫ﻫﺎی ﯾ ﺴﺎن در زﻣﯿﻨﻪ ﻫﺎی ﻣﺨﺘﻠﻒ ﺑﻪ ﺷ ﻞ ﻣﺘﻔﺎوﺗ رﻣﺰ ﻣ ﺷﻮﻧﺪ‪ .‬روش رﻣﺰﻧ ﺎری ‪ CBC‬دارای اﻣﻨﯿﺖ ﺣﻤﻠﻪ ﻣﺘﻦ‬
‫رﻣﺰی اﻧﺘﺨﺎﺑ ‪ ٩‬ﻧﻤ ﺑﺎﺷﺪ‪ .‬ﻣﻬﺎﺟﻢ را ﺑﻪ اﯾﻦ ﺻﻮرت ﻃﺮاﺣ ﻣ ﮐﻨﯿﻢ‪ .‬در آزﻣﺎﯾﺶ ﺣﻤﻠﻪ ﻣﺘﻦ رﻣﺰی اﻧﺘﺨﺎﺑ ﻣﻬﺎﺟﻢ دو‬
‫ﭘﯿﺎم ﺑﻪ ﺻﻮرت ‪ M۰ = ۰n‬و ‪ M۱ = ۱n‬ﺑﻪ ﭼﺎﻟﺶﮔﺮ ﻣ دﻫﺪ‪ .‬ﺳﭙﺲ ﭼﺎﻟﺶﮔﺮ ﻣﺘﻦ رﻣﺰ ﺷﺪه ﯾ از آﻧﻬﺎ را ﺑﻪ‬
‫ﺻﻮرت ⟩ ‪ c = ⟨c۰ , c۱ , c۲‬ﺑﻪ ﻣﻬﺎﺟﻢ ﺑﺮﻣ ﮔﺮداﻧﺪ‪ .‬ﺑﻪ ﯾﺎد آورﯾﺪ ﮐﻪ ﻣﻬﺎﺟﻢ دﺳﺘﺮﺳ اوراﮐﻠ ﺑﻪ اﻟ ﻮرﯾﺘﻢ رﻣﺰﻧ ﺎری‬
‫و رﻣﺰﮔﺸﺎﯾ دارد وﻟ ﻣﺠﺎز ﺑﻪ درﺧﻮاﺳﺖ رﻣﺰﮔﺸﺎﯾ ﻣﺘﻦ رﻣﺰی ﭼﺎﻟﺸ ‪ c‬ﻧﻤ ﺑﺎﺷﺪ‪ .‬ﺑﻪ ﻫﻤﯿﻦ ﻋﻠﺖ ﻣﻬﺎﺟﻢ ﺑﺎ ﺗﻐﯿﯿﺮ‬
‫اﻧﺪﮐ در آن‪ ،‬ﻣﺘﻦ رﻣﺰی درﺧﻮاﺳﺘ ⟩ ‪ c′ = ⟨c۰ ⊕ ۱n , c۱ , c۲‬را ﺑﻪ اوراﮐﻞ رﻣﺰﮔﺸﺎ ﻣ ﻓﺮﺳﺘﺪ و ﭘﺲ از درﯾﺎﻓﺖ ﭘﯿﺎم‬
‫ﻣﺘﻨﺎﻇﺮ آن‪ ،M ′ ،‬ﺑﯿﺖ ̂‪ b‬را ﺑﻪ ﺻﻮرت زﯾﺮ ﺗﻮﻟﯿﺪ ﻣ ﮐﻨﺪ‪:‬‬
‫{‬
‫‪۱ if M ′ = M۰‬‬
‫= ̂‪b‬‬ ‫‪.‬‬
‫‪۰ if M ′ = M۱‬‬
‫‪٨‬‬
‫‪Chosen-Plaintext Attack‬‬
‫‪٩‬‬
‫‪Chosen-Ciphertext Attack‬‬

‫‪١۵-۴‬‬
‫ﻣ ﺑﺎﺷﺪ‪:‬‬ ‫ﺑﻨﺎﺑﺮاﯾﻦ ﻫﻤﻮاره ̂‪ b = b‬و ﻟﺬا اﺣﺘﻤﺎل ﻣﻮﻓﻘﯿﺖ ﻣﻬﺎﺟﻢ در آزﻣﺎﯾﺶ ﻣﺘﻦ رﻣﺰی اﻧﺘﺨﺎﺑ ﺑﺮاﺑﺮ ﯾ‬

‫‪Pr{PrivKcca‬‬
‫‪A,Π = ۱} = ۱ .‬‬

‫‪ ٣‬روش ﺗﻐﺬﯾﻪ ﺧﺮوﺟ‬


‫در اﺻﻞ ﻣﺪ ﺑﺎزﺧﻮرد ﺧﺮوﺟ ‪ ،١٠ OFB ،‬روﺷ ﺑﺮای ﺗﻮﻟﯿﺪ ﯾ رﺷﺘﻪ ﺷﺒﻪﺗﺼﺎدﻓ ﺑﺎ اﺳﺘﻔﺎده از رﻣﺰﻫﺎی ﻗﺎﻟﺒ ﻣ ﺑﺎﺷﺪ‬
‫ﮐﻪ ﻣﺎﻧﻨﺪ ﯾ رﻣﺰ دﻧﺒﺎﻟﻪای ﻋﻤﻞ ﻣ ﮐﻨﺪ‪ .‬ﺑﺪﯾﻦ ﺻﻮرت ﮐﻪ اﺑﺘﺪا ﺑﺮدار ﺗﺼﺎدﻓ ‪-n‬ﺑﯿﺘ ‪ IV‬اﻧﺘﺨﺎب ﻣ ﺷﻮد و دﻧﺒﺎﻟﻪ‬
‫‪ z۰ , z۱ , ·, cb‬ﺑﺎ ﺷﺮوع از ‪ z۰ = IV‬ﺑﺎ اﺳﺘﻔﺎده از راﺑﻄﻪ ﺑﺎزﮔﺸﺘ‬

‫‪zi = E(zi−۱ ), i = ۱, ۲, · · · , b‬‬

‫ﺗﻮﻟﯿﺪ ﻣ ﺷﻮد‪ .‬در ﻧﻬﺎﯾﺖ ﻫﺮ ﻗﺎﻟﺐ از ﻣﺘﻦ اﺻﻠ ﺑﺎ ﻗﺎﻟﺐ ﻣﺘﻨﺎﻇﺮ از دﻧﺒﺎﻟﻪ ﺑﺮای ﺗﻮﻟﯿﺪ ﻣﺘﻦ رﻣﺰ ﺷﺪه ﺑﻪ ﺻﻮرت زﯾﺮ‬
‫‪ XOR‬ﻣ ﺷﻮد )ﺷ ﻞ ‪:(۵‬‬
‫‪ci = mi ⊕ zi , i = ۱, ۲, · · · , b .‬‬
‫و ﺳﺮاﻧﺠﺎم ﻣﺘﻦ رﻣﺰی ﺑﻪ ﺻﻮرت ﻧﻬﺎی زﯾﺮ ﺣﺎﺻﻞ ﻣ ﺷﻮد‪:‬‬

‫‪c = ⟨IV, c۱ , · · · , cb ⟩ .‬‬

‫‪IV‬‬

‫‪Ek‬‬ ‫‪Ek‬‬ ‫···‬ ‫‪Ek‬‬ ‫‪Ek‬‬

‫‪m1‬‬ ‫‪m2‬‬ ‫‪mb−1‬‬ ‫‪mb‬‬

‫‪c0 = IV‬‬ ‫‪c1‬‬ ‫‪c2‬‬ ‫‪cb−1‬‬ ‫‪cb‬‬

‫ﺷ ﻞ ‪ :۵‬رﻣﺰﻧ ﺎری روش ﺗﻐﺬﯾﻪ ﺧﺮوﺟ )رﻣﺰﻧ ﺎری(‬

‫رﻣﺰﮔﺸﺎﯾ ﻧﯿﺰ ﺑﻪ روش ﻣﺸﺎﺑﻪ اﻧﺠﺎم ﻣ ﮔﯿﺮد‪ .‬در اﯾﻦ روش ﻧﯿﺰ ﻫﻤﺎﻧﻨﺪ روش ‪ CBC‬ﺑﺮدار آﻏﺎزﯾﻦ ‪ IV‬ﻗﺴﻤﺘ از ﻣﺘﻦ‬
‫رﻣﺰی ﻣ ﺑﺎﺷﺪ‪ .‬در ﻣﻘﺎﯾﺴﻪ ﺑﺎ روش ‪ CBC‬در اﯾﻨﺠﺎ ﻟﺰوﻣ ﻧﺪارد ﮐﻪ ‪ E‬وارون ﭘﺬﯾﺮ ﺑﺎﺷﺪ و از ﯾ ﺗﺎﺑﻊ ﺷﺒﻪﺗﺼﺎدﻓ ﻧﯿﺰ‬
‫ﺑﻪ ﺟﺎی ﯾ ﯾ ﺸﺖ ﺷﺒﻪﺗﺼﺎدﻓ ﻣ ﺗﻮان اﺳﺘﻔﺎده ﮐﺮد‪ .‬در اﯾﻦ روش ﻧﯿﺰ ﻫﺮ دو اﻟ ﻮرﯾﺘﻢ رﻣﺰﻧ ﺎری و رﻣﺰﮔﺸﺎﯾ ﺑﺎﯾﺪ‬
‫ﺑﻪ ﺻﻮرت ﻣﺘﻮاﻟ اﻧﺠﺎم ﺷﻮﻧﺪ‪ ،‬در ﻧﺘﯿﺠﻪ اﯾﻦ ﻣﺪ ﻧﯿﺰ ﻗﺎﺑﻠﯿﺖ ﭘﺮدازش ﻣﻮازی را ﻧﺪارد‪ .‬در ﻧﻬﺎﯾﺖ ﻗﻀﯿﻪ زﯾﺮ را ﺑﺪون‬
‫اﺛﺒﺎت ﺑﯿﺎن ﻣ ﮐﻨﯿﻢ‪.‬‬

‫ﺗﺎﺑﻊ ﺷﺒﻪﺗﺼﺎدﻓ ﺑﺎﺷﺪ‪ ،‬آﻧ ﺎه روش ‪ OFB‬دارای اﻣﻨﯿﺖ ﻣﺘﻦ اﺻﻠ اﻧﺘﺨﺎﺑ اﺳﺖ‪.‬‬ ‫ﻗﻀﯿﻪ ‪ ٢‬اﮔﺮ ‪ E‬ﯾ‬
‫‪١٠‬‬
‫‪Output Feedback (OFB) mode‬‬

‫‪١۵-۵‬‬
‫ﻧ ﺘﻪ ‪ ٢‬در ﻣﺪ ‪ OFB‬ﻧﯿﺎزی ﺑﻪ ﭘﺪ ﮐﺮدن ﭘﯿﺎم ﻧﯿﺴﺖ‪ ،‬زﯾﺮا ﻣ ﺗﻮان ﺑﻪ ﺗﻌﺪاد ﻻزم از ﺑﯿﺖﻫﺎی آﺧﺮﯾﻦ ﻗﺎﻟﺐ دﻧﺒﺎﻟﻪ‬
‫ﺷﺒﻪﺗﺼﺎدﻓ ﺑﺮﯾﺪ ‪ ١١‬و ﺑﺮای رﻣﺰ ﮐﺮدن آﺧﺮﯾﻦ ﺑﯿﺖﻫﺎی ﭘﯿﺎم ﮐﻪ ﺗﺸ ﯿﻞ ﯾ ﻗﺎﻟﺐ ﮐﺎﻣﻞ ﻧﻤ دﻫﻨﺪ اﺳﺘﻔﺎده ﮐﺮد‪.‬‬

‫‪ ۴‬روش ﺷﻤﺎرﮔﺮ‬
‫روﺷ را ﮐﻪ ﻣ ﺧﻮاﻫﯿﻢ اراﺋﻪ دﻫﯿﻢ ﻧﺴﺒﺖ ﺑﻪ روش ‪ CBC‬ﮐﻤﺘﺮ ﻋﻤﻮﻣﯿﺖ دارد اﻣﺎ ﺗﻌﺪادی ﻣﺰﯾﺖ ﻧﺴﺒﺖ ﺑﻪ آن دارا‬
‫ﻣ ﺑﺎﺷﺪ‪ .‬ﻣﺪ ﺷﻤﺎرﮔﺮ‪ ،١٢ CTR ،‬را ﻫﻤﺎﻧﻨﺪ روش ‪ OFB‬ﻣ ﺗﻮان ﺑﻪ ﺻﻮرت ﯾ ﺗﻮﻟﯿﺪ ﮐﻨﻨﺪهی رﺷﺘﻪ ﺗﺼﺎدﻓ از‬
‫ﯾ رﻣﺰ ﻗﺎﻟﺐ در ﻧﻈﺮ ﮔﺮﻓﺖ‪ .‬اﺑﺘﺪا ﯾ ﺑﺮدار آﻏﺎزﯾﻦ ‪ IV‬ﺑﻪ ﺻﻮرت ﺗﺼﺎدف از ‪ {۰, ۱}n‬اﻧﺘﺨﺎب ﻣ ﺷﻮد و ﺳﭙﺲ‬
‫ﻣﺤﺎﺳﺒﺎت زﯾﺮ ﺻﻮرت ﻣ ﮔﯿﺮد‪:‬‬

‫‪ci = mi ⊕ E(IV + ⟨i⟩), i = ۱, ۲, · · · , b .‬‬


‫‪ ۲n‬ﻣ ﺑﺎﺷﺪ‬ ‫ﮐﻪ ⟩‪ ⟨i‬ﻧﻤﺎﯾﺶ دودوﯾ )ﻣﺒﻨﺎی دو( ﻋﺪد ‪ i‬ﺗﻮﺳﻂ ﯾ رﺷﺘﻪ ‪-n‬ﺑﯿﺘ و ⟩‪ IV + ⟨i‬ﺟﻤﻊ ﭘﯿﻤﺎﻧﻪای ﺑﻪ ﻫﻨ‬
‫ﮐﻪ رﺷﺘﻪﻫﺎی ‪ n‬ﺑﯿﺘ ﺑﻪ ﺻﻮرت ﻋﺪدی ﺑﯿﻦ ‪ ۰‬و ‪ ۲n − ۱‬ﺗﻔﺴﯿﺮ ﻣ ﺷﻮﻧﺪ‪.‬‬
‫ﻣﺘﻦ رﻣﺰ ﻧﻬﺎﯾ ﺑﻪ ﺻﻮرت ⟩ ‪ c = ⟨IV, c۱ , c۲ , . . . , cb‬ﻣ ﺑﺎﺷﺪ )ﺷ ﻞ ‪:(۶‬‬

‫‪IV‬‬ ‫‪IV + h1i‬‬ ‫‪IV + h2i‬‬ ‫‪IV + hbi‬‬

‫‪Ek‬‬ ‫‪Ek‬‬ ‫···‬ ‫‪Ek‬‬

‫‪m1‬‬ ‫‪m2‬‬ ‫‪mb‬‬

‫‪c0 = IV‬‬ ‫‪c1‬‬ ‫‪c2‬‬ ‫‪cb‬‬

‫ﺷ ﻞ ‪ :۶‬رﻣﺰﻧ ﺎری روش ﺷﻤﺎرﮔﺮ‬

‫از ﻣﺰﯾﺖ ﻫﺎی روش ‪ CTR‬ﻣ ﺗﻮان اﻣﻨﯿﺖ در ﻣﻘﺎﺑﻞ ﺣﻤﻠﻪ ﻣﺘﻦ اﺻﻠ اﻧﺘﺨﺎﺑ ‪ ،‬ﮐﺎﻣﻼ ﻣﻮازی اﻧﺠﺎم ﺷﺪن اﻟ ﻮرﯾﺘﻢﻫﺎی‬
‫رﻣﺰﻧ ﺎری و رﻣﺰﮔﺸﺎﯾ ‪ ،‬و ﻋﺪم ﻧﯿﺎز ﺑﻪ ﭘﺪﯾﻨ ﻣﺘﻦ اﺻﻠ را ﻧﺎم ﺑﺮد‪ .‬ﻫﻤﭽﻨﯿﻦ اﯾﻦ اﻣ ﺎن را دارد ﮐﻪ ﻣ ﺗﻮاﻧﺪ ‪i‬اﻣﯿﻦ‬
‫ﻗﺎﻟﺐ از ﻣﺘﻦ رﻣﺰی را ﺑﺪون رﻣﺰﮔﺸﺎﯾ ﻗﺎﻟﺐﻫﺎی دﯾ ﺮ رﻣﺰﮔﺸﺎﯾ ﮐﻨﺪ‪ .‬اﯾﻦ وﯾﮋﮔ را دﺳﺘﺮﺳ ﺗﺼﺎدﻓ ﻣ ﻧﺎﻣﻨﺪ‪.‬‬

‫ﺗﺎﺑﻊ ﺷﺒﻪﺗﺼﺎدﻓ ﺑﺎﺷﺪ آﻧ ﺎه روش ﺷﻤﺎرﮔﺮ ﺗﺼﺎدﻓ ‪ ،‬دارای اﻣﻨﯿﺖ ﻣﺘﻦ اﺻﻠ اﻧﺘﺨﺎﺑ اﺳﺖ‪.‬‬ ‫ﻗﻀﯿﻪ ‪ ٣‬اﮔﺮ ‪ E‬ﯾ‬

‫‪١١‬‬
‫‪truncate‬‬
‫‪١٢‬‬
‫‪Counter (CTR) mode‬‬

‫‪١۵-۶‬‬
‫ﺑﻪ ﻧﺎم ﺧﺪا‬

‫داﻧﺸ ﺪهی ﻋﻠﻮم رﯾﺎﺿ‬

‫‪ ٨‬اردﯾﺒﻬﺸﺖ ‪١٣٩٢‬‬ ‫ﻣﻘﺪﻣﻪای ﺑﺮ رﻣﺰﻧ ﺎری‬

‫ﺟﻠﺴﻪی ‪ :١۶‬ﮐﺪ اﺻﺎﻟﺖﺳﻨﺠ ﭘﯿﺎم‬


‫ﻧ ﺎرﻧﺪه‪ :‬ﻣﺤﻤﺪ ﺣﺴﯿﻦ ﻣﺤﺼﻮﻟ‬ ‫ﻣﺪرس‪ :‬دﮐﺘﺮ ﺷﻬﺮام ﺧﺰاﺋ‬

‫اﺻﺎﻟﺖ ﭘﯿﺎم‬ ‫‪١‬‬


‫ﺗﺎ ﺑﻪ ﺣﺎل ﺗﻤﺮﮐﺰ ﻣﺎ ﻣﻌﻄﻮف ﺑﻪ رﻣﺰﻧ ﺎری ﭘﯿﺎم ﻓﺮﺳﺘﻨﺪه ﺑﻪ ﺳﻮی ﮔﯿﺮﻧﺪه ﺑﻮده اﺳﺖ‪:‬‬

‫‪m‬‬
‫‪S.‬‬ ‫‪R‬‬

‫‪٢‬‬
‫در اﯾﻦ راﺳﺘﺎ اﻣﻨﯿﺖ رﻣﺰ اﺳﺘﻔﺎده ﺷﺪه را در ﺑﺮاﺑﺮ ﺣﻤﻠﻪﻫﺎی ﺷﻨﻮد ‪ ١‬ﺗﺤﺖ ﺳﻨﺎرﯾﻮﻫﺎی ﻣﺨﺘﻠﻒ ﻣﺘﻦ اﺻﻠ اﻧﺘﺨﺎﺑ‬
‫و ﻣﺘﻦ اﺻﻠ رﻣﺰی ‪ ٣‬ﺑﺮرﺳ ﮐﺮدهاﯾﻢ‪ .‬ﻧ ﺘﻪای ﮐﻪ در اﯾﻦ ﻣﯿﺎن وﺟﻮد دارد اﯾﻦ اﺳﺖ ﮐﻪ اﯾﻦ ﺣﻤﻠﻪﻫﺎ از ﻧﻮع ﺣﻤﻠﻪی‬
‫ﻣﻨﻔﻌﻞ ‪ ۴‬ﻫﺴﺘﻨﺪ‪.‬‬
‫ﺗﻌﺮﯾﻒ ‪ ١‬ﺣﻤﻠﻪای ﻣﻨﻔﻌﻞ اﺳﺖ ﮐﻪ در آن ﻣﻬﺎﺟﻢ ﻧﺘﻮاﻧﺪ ﺗﻐﯿﯿﺮی در ﭘﯿﺎم ارﺳﺎﻟ از ﻓﺮﺳﺘﻨﺪه ﺑﻪ ﮔﯿﺮﻧﺪه اﯾﺠﺎد ﮐﻨﺪ و‬
‫ﺻﺮﻓﺎ ﺗﻼش ﻣ ﮐﻨﺪ ﺗﺎ اﻃﻼﻋﺎﺗ در ﻣﻮرد ﭘﯿﺎم ﺑﺪﺳﺖ آورد‪.‬‬

‫ﺣﻤﻠﻪ ﮐﻨﻨﺪه ﻓﻌﺎل ‪ ۵‬ﺑﺎ دﺳﺖﮐﺎری در ﭘﯿﺎمﻫﺎی ارﺳﺎﻟ ﺳﻌ در ﺧﺮابﮐﺎری دارد‪ .‬ﯾ ﺣﻤﻠﻪی ﻓﻌﺎل ﺗﺤﺖ ﺳﻨﺎرﯾﻮی‬
‫ﻣﺘﻦ رﻣﺰی اﻧﺘﺨﺎﺑ ﻋﻠﯿﻪ ﯾ ﺳﯿﺴﺘﻢ رﻣﺰ در ﻧﻈﺮ ﺑ ﯿﺮﯾﺪ‪ .‬اﮔﺮ ﺳﯿﺴﺘﻢ رﻣﺰ دارای اﻣﻨﯿﺖ ﻣﺘﻦ رﻣﺰی اﻧﺘﺨﺎﺑ ﺑﺎﺷﺪ‪ ،‬ﺣﻤﻠﻪ‬
‫ﮐﻨﻨﺪه ﻗﺎدر ﻧﯿﺴﺖ ﻣﺘﻦ رﻣﺰی را ﻃﻮری ﺗﻐﯿﯿﺮ دﻫﺪ ﮐﻪ ﺗﺒﺪﯾﻞ ﺑﻪ ﻣﺘﻦ رﻣﺰ ﺷﺪهی ﻣﺘﻨﺎﻇﺮ ﺑﺎ ﭘﯿﺎم دﻟﺨﻮاﻫﺶ ﺷﻮد‪ .‬درواﻗﻊ‬
‫ﭼﻨﯿﻦ ﺳﯿﺴﺘﻢ رﻣﺰی‪ ،‬دارای اﻣﻨﯿﺖ ﻗﻮیﺗﺮی اﺳﺖ‪ :‬ﻣﻬﺎﺟﻢ ﻗﺎدر ﻧﯿﺴﺖ ﻣﺘﻦ رﻣﺰ ﺷﺪه را ﻃﻮری ﺗﻐﯿﯿﺮ دﻫﺪ‪ ،‬ﺑﻪ ﻃﻮریﮐﻪ‬
‫ﺑﺘﻮاﻧﺪ در ﻣﻮرد ﻣﺘﻦ اﺻﻠ ﻣﺘﻨﺎﻇﺮ آن اﻃﻼﻋﺎﺗ ﮐﺴﺐ ﮐﻨﺪ‪ .‬ﺑﺎ اﯾﻦ وﺟﻮد ﻣﻤ ﻦ اﺳﺖ ﻣﻬﺎﺟﻢ ﺑﺘﻮاﻧﺪ ﻣﺘﻦ رﻣﺰی ﺑﺴﺎزد‬
‫ﮐﻪ ﻣﻌﺘﺒﺮ ﺑﺎﺷﺪ و ﮔﯿﺮﻧﺪه ﺑﺘﻮاﻧﺪ آﻧﺮا رﻣﺰﮔﺸﺎﯾ ﮐﻨﺪ‪ .‬ﭼﻨﯿﻦ وﯾﮋﮔ در ﺑﻌﻀ ﮐﺎرﺑﺮدﻫﺎ ﻣ ﺗﻮاﻧﺪ ﺧﻄﺮﻧﺎک ﺑﺎﺷﺪ‪.‬‬

‫‪Enc‬‬
‫‪m‬‬ ‫‪c‬‬

‫‪m. ′‬‬ ‫‪c′‬‬


‫‪١‬‬
‫‪eavesdropping‬‬
‫‪٢‬‬
‫‪chosen-plaintext attack‬‬
‫‪٣‬‬
‫‪chosen-ciphertext attack‬‬
‫‪۴‬‬
‫‪passive‬‬
‫‪۵‬‬
‫‪active‬‬

‫‪١۶-١‬‬
‫ﺳﻮاﻟ ﮐﻪ ﭘﯿﺶ ﻣ آﯾﺪ اﯾﻦ اﺳﺖ ﮐﻪ ﭼﻪ ﮐﺎر ﻣ ﺗﻮان ﮐﺮد ﺗﺎ ﮔﯿﺮﻧﺪه از اﺻﺎﻟﺖ ﭘﯿﺎم درﯾﺎﻓﺘ ﻣﻄﻤﺌﻦ ﺷﻮد‪.‬‬
‫اوﻟﯿﻦ ﭼﯿﺰی ﮐﻪ ﺑﻪ ذﻫﻦ ﻣ رﺳﺪ اﯾﻦ اﺳﺖ ﮐﻪ ﻓﺮﺳﺘﻨﺪه ﺑﺎﯾﺪ وﯾﮋﮔ ﺧﺎﺻ از ﭘﯿﺎم اﺻﻠ ﺑﺪﺳﺖ آورده و ﯾﺎ ﻣﻘﺪاری را‬
‫از روی آن ﺣﺴﺎب ﮐﻨﺪ و ﺑﺠﺎی ﭘﯿﺎم‪ ،‬ﻣﺠﻤﻮﻋﻪی ﭘﯿﺎم و ﻣﻘﺪار ﻣﺤﺎﺳﺒﻪ ﺷﺪه را ﺑﺮای ارﺳﺎل در ﻧﻈﺮ ﺑ ﯿﺮد ﺗﺎ اﻋﺘﺒﺎر ﭘﯿﺎم‬
‫از روی اﯾﻦ ﻣﻘﺪار ﺑﺮرﺳ ﺷﻮد‪:‬‬

‫⟩)‪⟨m, f (m‬‬

‫در ﻋﻤﻞ‪ ،‬ﺗﺎﺑﻊ ‪ f‬ﻣ ﺗﻮاﻧﺪ ﯾ ‪ parity‬روی ﺑﯿﺖﻫﺎی ‪ m‬و ﯾﺎ ‪ checksum‬ﭘﯿﺎم اﺻﻠ ﺑﺎﺷﺪ‪ .‬اﻣﺎ در اﯾﻦ ﺣﺎﻻت اﯾﻦ‬
‫ﺗﺎﺑﻊ ﻋﻤﻮﻣ ‪ ۶‬اﺳﺖ و ﻣﻬﺎﺟﻢ ﺑﺎ اﻃﻼع از ﺗﺎﺑﻊ ‪ f‬ﻗﺎدر اﺳﺖ‪ ،‬ﺣﻤﻠﻪ ﻣﻨﺎﺳﺒ ﻃﺮاﺣ ﮐﻨﺪ‪ .‬ﺑﺮای ﺣﻞ اﯾﻦ ﻣﺸ ﻞ در اﯾﻨﺠﺎ‬
‫ﻧﯿﺰ از ﯾ ﮐﻠﯿﺪ ﻣﺸﺘﺮک ﺑﯿﻦ ﻓﺮﺳﺘﻨﺪه و ﮔﯿﺮﻧﺪه اﺳﺘﻔﺎده ﻣ ﮐﻨﯿﻢ‪ .‬ﯾﻌﻨ در ﭘﺎﯾﺎن ﭘﯿﺎم ﯾ ﺑﺮﭼﺴﺐ ‪ ٧‬ﭼﻮن ‪ t‬ﺑﻪ ﭘﯿﺎم اﺿﺎﻓﻪ‬
‫ﻣ ﮐﻨﯿﻢ ﮐﻪ اﯾﻦ ﺑﺮﭼﺴﺐ ﺗﺎﺑﻌ از ﭘﯿﺎم اﺻﻠ و ﮐﻠﯿﺪ اﺳﺖ‪:‬‬

‫‪k‬‬
‫‪S.‬‬ ‫‪R‬‬
‫‪m‬‬ ‫⟩‪⟨m, t‬‬

‫در ﻧﻬﺎﯾﺖ ﮔﯿﺮﻧﺪه ﺑﺎ درﯾﺎﻓﺖ ‪ t‬ﺑﺮرﺳ ﻣ ﮐﻨﺪ ﮐﻪ آﯾﺎ ‪ t‬ﺗﺎﺑﻌ ﻣﻌﻠﻮم از ﭘﯿﺎم و ﮐﻠﯿﺪ اﺳﺖ ﯾﺎ ﺧﯿﺮ و ﺑﻪ اﯾﻦ ﺗﺮﺗﯿﺐ ﺻﺤﺖ‬
‫و اﺻﺎﻟﺖ ﭘﯿﺎم را ﻣﻼﺣﻈﻪ ﻣ ﮐﻨﺪ‪.‬‬

‫‪ ٢‬ﮐﺪ اﺻﺎﻟﺖﺳﻨﺠ ﭘﯿﺎم‬


‫ﺗﻌﺮﯾﻒ ‪ ٢‬ﯾ ﺳﯿﺴﺘﻢ ﮐﺪ اﺻﺎﻟﺖﺳﻨﺠ ﭘﯿﺎم ‪ (MAC) ٨‬ﺑﻪ ﺻﻮرت )‪ Π = (Gen, Mac, Vrfy‬از اﻟ ﻮرﯾﺘﻢﻫﺎی‬
‫ﭼﻨﺪﺟﻤﻠﻪای ﺗﺼﺎدﻓ روی ﻓﻀﺎی ‪ M‬اﺳﺖ ﮐﻪ در آن‪:‬‬

‫• ‪ :Gen‬اﻟ ﻮرﯾﺘﻢ ﺗﻮﻟﯿﺪ ﮐﻠﯿﺪ اﺳﺖ ﮐﻪ از روی ﭘﺎراﻣﺘﺮ اﻣﻨﯿﺖ ‪ n‬ﮐﻠﯿﺪ ‪ k‬را ﺗﻮﻟﯿﺪ ﻣ ﮐﻨﺪ‪.‬‬
‫)‪ K‬را ﻓﻀﺎی ﮐﻠﯿﺪ‪ ،‬ﯾﻌﻨ ﻣﺠﻤﻮﻋﻪ ﻫﻤﻪ ﺧﺮوﺟ ﻫﺎی اﻟ ﻮرﯾﺘﻢ ﺗﻮﻟﯿﺪ ﮐﻠﯿﺪ ﺑ ﯿﺮﯾﺪ‪(.‬‬

‫• ‪ :Mac‬اﻟ ﻮرﯾﺘﻢ ﺗﻮﻟﯿﺪ ﺑﺮﭼﺴﺐ اﺳﺖ و ﭘﯿﺎم ‪ m ∈ M‬و ﮐﻠﯿﺪ ‪ k ∈ K‬را ﺑﻪ ﺑﺮﭼﺴﺐ )‪t ← Mack (m‬‬
‫ﻣ ﻧ ﺎرد‪.‬‬

‫• ‪ :Vrfy‬اﻟ ﻮرﯾﺘﻢ ﺗﺎﯾﯿﺪ ﺑﺮﭼﺴﺐ اﺳﺖ و ﭘﯿﺎم ‪ ،m ∈ M‬ﮐﻠﯿﺪ ‪ k ∈ K‬و ﺑﺮﭼﺴﺐ ‪ t‬را ﻣ ﮔﯿﺮد و ﺧﺮوﺟ ﯾ‬
‫)ﺑﻪ ﻣﻌﻨ ﻣﻌﺘﺒﺮ( ﯾﺎ ﺻﻔﺮ )ﺑﻪ ﻣﻌﻨ ﻧﺎﻣﻌﺘﺒﺮ( ﺑﺮ ﻣ ﮔﺮداﻧﺪ‪ .‬ﺑﺮای ﻫﺮ ﭘﯿﺎم ‪ m‬و ﻫﺮ ﮐﻠﯿﺪ ‪ k‬دارﯾﻢ‪:‬‬

‫‪Pr{k ← Gen(۱n ) ; t ← Mack (m) : Vrfyk (⟨m, t⟩) = ۱} = ۱ .‬‬

‫اﻟ ﻮرﯾﺘﻢ ﺗﻮﻟﯿﺪ ﺑﺮﭼﺴﺐ ﻣ ﺗﻮاﻧﺪ ﻗﻄﻌ ﯾﺎ ﺗﺼﺎدﻓ ﺑﺎﺷﺪ‪ .‬اﻣﺎ اﻟ ﻮرﯾﺘﻢ ﺗﺎﯾﯿﺪ ﺑﺮﭼﺴﺐ ﻫﻤﻮاره ﻗﻄﻌ اﺳﺖ‪.‬‬
‫‪۶‬‬
‫‪public‬‬
‫‪٧‬‬
‫‪tag‬‬
‫‪٨‬‬
‫‪Message Authentication Code‬‬

‫‪١۶-٢‬‬
‫ﭼ ﻮﻧﻪ ﻣ ﺗﻮان ﯾ ﺳﺎﺧﺘﺎر ﮐﺪ اﺻﺎﻟﺖﺳﻨﺠ ﺳﺎﺧﺖ؟ ﺑﺮای ﭘﺎﺳﺦ ﺑﻪ اﯾﻦ ﺳﻮال اﺑﺘﺪا ﻓﺮض ﻣ ﮐﻨﯿﻢ ﮐﻪ ﭘﯿﺎمﻫﺎی‬
‫ﻣﺎ ﻃﻮل ﺛﺎﺑﺘ دارﻧﺪ؛ ﻣﺜﻼ ‪ .M = {۰, ۱}n‬اﯾﺪهی اﺑﺘﺪاﯾ اﯾﻦ اﺳﺖ ﮐﻪ ﻣﺸﺎﺑﻪ رﻣﺰﻧ ﺎری از ‪ ٩ OTP‬ﺑﺮای ﮐﺪ‬
‫اﺻﺎﻟﺖﺳﻨﺠ ﭘﯿﺎم اﺳﺘﻔﺎده ﮐﻨﯿﻢ‪ ،‬دارﯾﻢ‪:‬‬

‫‪• Gen(۱n ) : k ← {۰, ۱}n‬‬


‫‪• t = Mack (m) : t ← m ⊕ k‬‬
‫{‬
‫‪۱, if t = m ⊕ k‬‬
‫= )⟩‪• Vrfyk (⟨m, t‬‬
‫‪۰, otherwise‬‬

‫آﯾﺎ اﯾﻦ روش ﺑﺮای ﺳﺎﺧﺖ ﺑﺮﭼﺴﺐ اﻣﻦ اﺳﺖ؟ ﺑﺮای ﭘﺎﺳﺦ ﺑﻪ اﯾﻦ ﭘﺮﺳﺶ اﺑﺘﺪا ﻧﯿﺎز دارﯾﻢ ﮐﻪ ﺗﻌﺮﯾﻔ دﻗﯿﻘ از اﻣﻨﯿﺖ‬
‫ﮐﺪ اﺻﺎﻟﺖﺳﻨﺠ ﭘﯿﺎم اراﺋﻪ ﮐﻨﯿﻢ ﮐﻪ ﻗﺎﺑﻠﯿﺖﻫﺎی ﺣﻤﻠﻪﮐﻨﻨﺪهﻫﺎی ﻓﻌﺎل را در دﻧﯿﺎی واﻗﻌ ﻣﺪل ﻣ ﮐﻨﺪ‪.‬‬

‫اﻣﻨﯿﺖ ﺳﯿﺴﺘﻢ ﮐﺪ اﺻﺎﻟﺖﺳﻨﺠ ﭘﯿﺎم‬ ‫‪٣‬‬


‫ﺣﻤﻠﻪ ﺑﻪ ﯾ ﺳﯿﺴﺘﻢ ﮐﺪ اﺻﺎﻟﺖﺳﻨﺠ ﺑﺎ ﻫﺪف ﺟﻌﻞ ﭘﯿﺎم ﺻﻮرت ﻣ ﮔﯿﺮد‪ .‬ﺑﻪ ﻋﺒﺎرت دﯾ ﺮ ﻣﻬﺎﺟﻢ ﺑﺮای ﭘﯿﺎم ﻣﻮرد‬
‫ﻧﻈﺮش ﯾ ﺑﺮﭼﺴﺐ ﻣﻌﺘﺒﺮ ﻣ ﺳﺎزد ﺗﺎ ﮔﯿﺮﻧﺪه ﺑﻪ ﻫﻨ ﺎم ﺑﺮرﺳ اﺻﺎﻟﺖ ﭘﯿﺎم‪ ،‬آن را ﻣﻌﺘﺒﺮ ﺗﺸﺨﯿﺺ دﻫﺪ‪ .‬ﺑﺮای ﺗﻌﺮﯾﻒ‬
‫اﻣﻨﯿﺖ ﭼﻨﯿﻦ ﺳﯿﺴﺘﻤ ‪ ،‬اﺑﺘﺪا ﻧﯿﺎز اﺳﺖ ﺗﺎ آزﻣﺎﯾﺶ ﻣﻨﺎﺳﺒ ﻃﺮاﺣ ﮐﺮد ﺗﺎ ﺗﻮان ﺣﻤﻠﻪی ﻣﻬﺎﺟﻢ ‪ ١٠‬ﺑﻪ اﯾﻦ ﺳﯿﺴﺘﻢ را ﻣﺪل‬
‫ﮐﻨﺪ‪ .‬ﻃﺮاﺣ اﯾﻦ آزﻣﺎﯾﺶ ﺑﻪ ﺻﻮرت ﯾ ﺑﺎزی ﺑﯿﻦ ﻣﻬﺎﺟﻤ ﭼﻮن ‪ A‬و ﯾ ﭼﺎﻟﺸ ﺮ ‪ ١١‬ﻓﺮﺿ اﺟﺮا ﻣ ﺷﻮد‪ .‬در اﯾﻦ‬
‫آزﻣﺎﯾﺶ ﺑﺮرﺳ ﻣ ﺷﻮد ﮐﻪ آﯾﺎ ﻣﻬﺎﺟﻢ ﻣ ﺗﻮاﻧﺪ ﺑﺮای ﭘﯿﺎﻣ ﮐﻪ ﻗﺒﻼ ﺑﺮﭼﺴﺐ آن را ﻧﺪﯾﺪه اﺳﺖ‪ ،‬ﺑﺮﭼﺴﺐ ﻣﻌﺘﺒﺮی ﺗﻮﻟﯿﺪ‬
‫ﮐﻨﺪ ﯾﺎ ﻧﻪ‪ .‬اﯾﻦ آزﻣﺎﯾﺶ ﮐﻪ ﺑﺎ ‪ MacForgeA,Π‬ﻧﺸﺎن داده ﻣ ﺷﻮد‪ ،‬ﺑﻪ ﺻﻮرت زﯾﺮ اﺟﺮا ﻣ ﺷﻮد‪:‬‬
‫ﮐﻠﯿﺪ ‪ k‬ﺗﻮﻟﯿﺪ ﻣ ﮐﻨﺪ‪:‬‬ ‫‪ .١‬ﭼﺎﻟﺸ ﺮ ﯾ‬
‫) ‪k ← Gen(۱n‬‬
‫‪ .٢‬ﺑﻪ ﻣﻬﺎﺟﻢ دﺳﺘﺮﺳ اوراﮐﻠ ﺑﻪ )·( ‪ Mack‬داده ﻣ ﺷﻮد ﺗﺎ ﭘﯿﺎمﻫﺎی ﻣﺨﺘﻠﻒ را ﺑﺮرﺳ ﮐﺮده و در ﻧﻬﺎﯾﺖ ﭘﺲ از‬
‫ﭘﺮﺳﻤﺎن ‪١٢‬ﻫﺎی ﻻزم‪ ،‬ﯾ زوج ⟩‪ ⟨m, t‬ﺧﺮوﺟ دﻫﺪ‪:‬‬

‫) ‪⟨m, t⟩ ← AMack (·) (۱n‬‬

‫ﻣﺠﻤﻮﻋﻪی ﭘﺮﺳﻤﺎنﻫﺎی ﻣﻬﺎﺟﻢ ﺑﻪ ﻫﻨ ﺎم ﺑﺮرﺳ را ‪ Q‬ﻣ ﻧﺎﻣﯿﻢ‪ .‬ﺧﺮوﺟ آزﻣﺎﯾﺶ ﮐﻪ ﺑﺎ ﻣﺘﻐﯿﺮ ﺗﺼﺎدﻓ )‪MacForgeA,Π (n‬‬
‫ﻧﺸﺎن داده ﻣ ﺷﻮد ﯾ در ﻧﻈﺮ ﮔﺮﻓﺘﻪ ﻣ ﺷﻮد اﮔﺮ و ﻓﻘﻂ اﮔﺮ ﻣﻬﺎﺟﻢ ﻣﻮﻓﻖ ﺑﻪ ﺟﻌﻞ ﯾ ﺑﺮﭼﺴﺐ ﻣﻌﺘﺒﺮ ﺑﺮای ﭘﯿﺎﻣ ﮐﻪ‬
‫ﻗﺒﻼ ﭘﺮﺳﻤﺎن ﻧ ﺮده اﺳﺖ ﺷﻮد‪ .‬ﺑﻪ ﻃﻮر دﻗﯿﻖﺗﺮ‪:‬‬
‫{‬
‫‪۱, if m ̸∈ Q ∧ Vrfyk (⟨m, t⟩) = ۱‬‬
‫= )‪MacForgeA,Π (n‬‬
‫‪۰, otherwise‬‬
‫‪٩‬‬
‫‪One Time Pad‬‬
‫‪١٠‬‬
‫‪adversary‬‬
‫‪١١‬‬
‫‪challenger‬‬
‫‪١٢‬‬
‫‪query‬‬

‫‪١۶-٣‬‬
‫ﺗﻌﺮﯾﻒ ‪ ٣‬ﯾ ﺳﯿﺴﺘﻢ ﮐﺪ اﺻﺎﻟﺖﺳﻨﺠ ﭘﯿﺎم دارای اﻣﻨﯿﺖ ﺟﻌﻞﻧﺎﭘﺬﯾﺮی ‪ ١٣‬اﺳﺖ‪ ،‬ﻫﺮﮔﺎه ﺑﺮای ﻫﺮ ﻣﻬﺎﺟﻢ ﺗﺼﺎدﻓ ﭼﻮن‬
‫‪ A‬ﮐﻪ در زﻣﺎن ﭼﻨﺪﺟﻤﻠﻪای اﺟﺮا ﻣ ﺷﻮد‪ ،‬ﯾ ﺗﺎﺑﻊ ﻧﺎﭼﯿﺰ ﭼﻮن )‪ ε(n‬ﯾﺎﻓﺖ ﺷﻮد ﺑﻪ ﻃﻮری ﮐﻪ داﺷﺘﻪ ﺑﺎﺷﯿﻢ‪:‬‬

‫)‪Pr{MacForgeA,Π (n) = ۱} ⩽ ε(n‬‬

‫ﻧ ﺘﻪ ‪ ١‬ﺗﻌﺮﯾﻒ ﻓﻮق ﺣﻤﻠﻪ ﺑﺎزﭘﺨﺶ ‪ ١۴‬را ﻣﺪل ﻧﻤ ﮐﻨﺪ‪ .‬ﺑﻪ ﻋﺒﺎرت دﯾ ﺮ اﮔﺮ زوج ⟩‪ ⟨m, t‬ﺗﻮﺳﻂ ﻓﺮﺳﺘﻨﺪه ﻣﺠﺎز ﺑﺮای‬
‫ﮔﯿﺮﻧﺪه ارﺳﺎل ﺷﻮد‪ ،‬ﻣﻬﺎﺟﻢ ﻣ ﺗﻮاﻧﺪ ﺑﻌﺪا ﻫﻤﯿﻦ ﭘﯿﺎم را از ﻃﺮف ﻓﺮﺳﺘﻨﺪه ﺑﺮای ﮔﯿﺮﻧﺪه ارﺳﺎل ﮐﻨﺪ و ﮔﯿﺮﻧﺪه آﻧﺮا ﺑﭙﺬﯾﺮد‪.‬‬
‫اﯾﻦ ﺑﺪﯾﻦ ﻣﻌﻨ ﻧﯿﺴﺖ ﮐﻪ ﺣﻤﻠﻪ ﺑﺎزﭘﺨﺶ در ﻋﻤﻞ ﻣﻬﻢ ﻧﯿﺴﺖ؛ ﺑﺮﻋ ﺲ‪ ،‬ﺣﻤﻠﻪ ﺑﺎزﭘﺨﺶ در ﻋﻤﻞ ﻣ ﺗﻮاﻧﺪ ﺑﺴﯿﺎر‬
‫ﺧﻄﺮﻧﺎک ﺑﺎﺷﺪ‪ .‬اﻣﺎ ﺑﺮای ﻣﻘﺎﺑﻠﻪ ﺑﺎ آن ﺑﺎﯾﺪ ﭼﺎرهﻫﺎی دﯾ ﺮی اﻧﺪﯾﺸﯿﺪ )ﻣﺎﻧﻨﺪ اﺳﺘﻔﺎده از ﻣﻬﺮ زﻣﺎﻧ ‪ (١۵‬ﮐﻪ از ﻣﻮﺿﻮع‬
‫اﯾﻦ درس ﺧﺎرج اﺳﺖ‪.‬‬

‫اﮐﻨﻮن ﺑﺎﯾﺪ واﺿﺢ ﺑﺎﺷﺪ ﮐﻪ ﭼﺮا ﭘﯿﺸﻨﻬﺎد ﻗﺴﻤﺖ ﻗﺒﻠ ﺑﺮای ﮐﺪ اﺻﺎﻟﺖﺳﻨﺠ دارای اﻣﻨﯿﺖ ﻻزم ﻧﯿﺴﺖ‪ .‬ﺑﺮای اﺛﺒﺎت‬
‫دﻗﯿﻖ ادﻋﺎ ﻣﻬﺎﺟﻢ ‪ A‬را ﺑﻪ ﺻﻮرت زﯾﺮ ﻣ ﺳﺎزﯾﻢ ﮐﻪ در آزﻣﺎﯾﺶ ﻫﻤﻮاره ﺑﺮﻧﺪه ﻣ ﺷﻮد )ﺧﺮوﺟ آزﻣﺎﯾﺶ ﺑﺎ اﺣﺘﻤﺎل ﯾ‬
‫ﺑﺮاﺑﺮ ‪ ۱‬ﻣ ﺷﻮد(‪ .‬ﻣﻬﺎﺟﻢ اﺑﺘﺪا ﭘﺮﺳﻤﺎن داﺧﻮاه ‪ m۱‬را ﺑﻪ اوراﮐﻞ )·( ‪ Mack‬ارﺳﺎل ﻣ ﮐﻨﺪ و ﺑﺮﭼﺴﺐ ‪ t۱‬را درﯾﺎﻓﺖ‬
‫ﻣ ﮐﻨﺪ‪ .‬ﺳﭙﺲ زوج ⟩ ‪ ⟨m, t⟩ = ⟨m۱ ⊕ ۱n , t۱ ⊕ ۱n‬را ﺑﻪ ﺧﺮوﺟ ﻣ دﻫﺪ‪ .‬ﺑﻪ وﺿﻮح دارﯾﻢ‪:‬‬

‫‪Pr{MacForgeA,Π (n) = ۱} = ۱ .‬‬

‫اﻣﻨﯿﺖ ﺟﻌﻞﻧﺎﭘﺬﯾﺮی ﮐﺎﻣﻞ‬ ‫‪١.٣‬‬


‫ﻓﺮض ﮐﻨﯿﺪ ‪ q‬ﯾ ﻋﺪد ﻃﺒﯿﻌ ﺛﺎﺑﺖ و ‪ T‬ﻓﻀﺎی ﻫﻤﻪ ﺑﺮﭼﺴﺐﻫﺎی ﻣﻤ ﻦ ﺑﺎﺷﺪ‪ .‬ﻣ ﺗﻮان اﻣﻨﯿﺖ ﺟﻌﻞﻧﺎﭘﺬﯾﺮی ﮐﺎﻣﻞ‬
‫‪-q‬ﭘﯿﺎﻣ را ﺑﺪﯾﻦ ﺻﻮرت ﺗﻌﺮﯾﻒ ﮐﺮد‪ :‬اﺣﺘﻤﺎل ﻣﻮﻓﻘﯿﺖ ﻫﺮ ﻣﻬﺎﺟﻢ ﺑﺎ ﺗﻮان ﻣﺤﺎﺳﺒﺎﺗ دﻟﺨﻮاه ﮐﻪ ﺣﺪاﮐﺜﺮ ﺑﻪ ﺗﻌﺪاد ‪q‬‬
‫ﭘﺮﺳﻤﺎن اﻧﺠﺎم ﻣ دﻫﺪ‪ ،‬ﺣﺪاﮐﺜﺮ ﺑﺮاﺑﺮ ﺑﺎ | ‪ |T۱‬ﺑﺎﺷﺪ‪.‬‬

‫ﻣﯿﺪان | ‪ |T‬ﻋﻀﻮی ﻣ ﺗﻮان ﺑﻪ‬ ‫ﭼﻨﺪﺟﻤﻠﻪای درﺟﻪ ‪ q‬روی ﯾ‬ ‫ﺳﺆال ‪ ۴‬ﻧﺸﺎن دﻫﯿﺪ ﭼ ﻮﻧﻪ ﻣ ﺗﻮان ﺑﺎ اﺳﺘﻔﺎده از ﯾ‬
‫اﻣﻨﯿﺖ ﺟﻌﻞﻧﺎﭘﺬﯾﺮی ﮐﺎﻣﻞ ‪-q‬ﭘﯿﺎﻣ دﺳﺖ ﯾﺎﻓﺖ‪.‬‬

‫اﻣﻨﯿﺖ ﺟﻌﻞﻧﺎﭘﺬﯾﺮی ﻗﻮی‬ ‫‪٢.٣‬‬


‫در آزﻣﺎﯾﺶ ﺟﻌﻞﻧﺎﭘﺬﯾﺮی‪ ،‬ﻣﺠﻤﻮﻋﻪی ﻫﻤﻪ زوج ﭘﺮﺳﻤﺎنﻫﺎی ارﺳﺎﻟ و ﺑﺮﭼﺴﺐﻫﺎی درﯾﺎﻓﺘ ﺗﻮﺳﻂ ﻣﻬﺎﺟﻢ ﺑﻪ ﻫﻨ ﺎم‬
‫ﺑﺮرﺳ را ‪ Q′‬ﺑﻨﺎﻣﯿﺪ‪ .‬ﯾ ﺧﺮوﺟ دﯾ ﺮ ﮐﻪ ﺑﺎ ﻣﺘﻐﯿﺮ ﺗﺼﺎدﻓ )‪ SMacForgeA,Π (n‬ﻧﺸﺎن داده ﻣ ﺷﻮد ﺑﺮای آزﻣﺎﯾﺶ‬
‫در ﻧﻈﺮ ﺑ ﯿﺮﯾﺪ ﮐﻪ ﺑﺮاﺑﺮ ﯾ در ﻧﻈﺮ ﮔﺮﻓﺘﻪ ﻣ ﺷﻮد اﮔﺮ و ﻓﻘﻂ اﮔﺮ ﻣﻬﺎﺟﻢ ﻣﻮﻓﻖ ﺷﻮد ﺑﻪ ﯾ از دو ﻫﺪف زﯾﺮ دﺳﺖ‬
‫ﯾﺎﺑﺪ‪:‬‬

‫ﺑﺮﭼﺴﺐ ﻣﻌﺘﺒﺮ ﺑﺮای ﭘﯿﺎﻣ ﮐﻪ ﻗﺒﻼ ﭘﺮﺳﻤﺎن ﻧ ﺮده اﺳﺖ‪،‬‬ ‫• ﺟﻌﻞ ﯾ‬

‫ﺑﺮﭼﺴﺐ ﺟﺪﯾﺪ ﺑﺮای ﭘﯿﺎﻣ ﮐﻪ ﻗﺒﻼ ﭘﺮﺳﻤﺎن ﮐﺮده اﺳﺖ‪.‬‬ ‫• ﺟﻌﻞ ﯾ‬


‫‪١٣‬‬
‫‪unforgeability‬‬
‫‪١۴‬‬
‫‪replay attack‬‬
‫‪١۵‬‬
‫‪timestamp‬‬

‫‪١۶-۴‬‬
‫ﺑﻪ ﻃﻮر دﻗﯿﻖﺗﺮ‪:‬‬
‫{‬
‫‪۱,‬‬ ‫‪if ⟨m, t⟩ ̸∈ Q′ ∧ Vrfyk (⟨m, t⟩) = ۱‬‬
‫= )‪SMacForgeA,Π (n‬‬
‫‪۰,‬‬ ‫‪otherwise‬‬

‫ﺗﻌﺮﯾﻒ ‪ ۵‬ﯾ ﺳﯿﺴﺘﻢ ﮐﺪ اﺻﺎﻟﺖﺳﻨﺠ ﭘﯿﺎم دارای اﻣﻨﯿﺖ ﺟﻌﻞﻧﺎﭘﺬﯾﺮی ﻗﻮی ‪ ١۶‬اﺳﺖ‪ ،‬ﻫﺮﮔﺎه ﺑﺮای ﻫﺮ ﻣﻬﺎﺟﻢ ﺗﺼﺎدﻓ‬
‫ﭼﻮن ‪ A‬ﮐﻪ در زﻣﺎن ﭼﻨﺪﺟﻤﻠﻪای اﺟﺮا ﻣ ﺷﻮد‪ ،‬ﯾ ﺗﺎﺑﻊ ﻧﺎﭼﯿﺰ ﭼﻮن )‪ ε(n‬ﯾﺎﻓﺖ ﺷﻮد ﺑﻪ ﻃﻮری ﮐﻪ داﺷﺘﻪ ﺑﺎﺷﯿﻢ‪:‬‬

‫)‪Pr{SMacForgeA,Π (n) = ۱} ⩽ ε(n‬‬

‫ﻗﻀﯿﻪ ‪ ١‬اﻣﻨﯿﺖ ﺟﻌﻞﻧﺎﭘﺬﯾﺮی ﻗﻮی‪ ،‬اﻣﻨﯿﺖ ﺟﻌﻞﻧﺎﭘﺬﯾﺮی را ﻧﺘﯿﺠﻪ ﻣ دﻫﺪ‪.‬‬

‫ﻗﻀﯿﻪ ‪ ٢‬اﮔﺮ اﻟ ﻮرﯾﺘﻢ ﺗﻮﻟﯿﺪ ﺑﺮﭼﺴﺐ ﻗﻄﻌ ﺑﺎﺷﺪ‪ ،‬اﻣﻨﯿﺖ ﺟﻌﻞﻧﺎﭘﺬﯾﺮی ﻗﻮی و اﻣﻨﯿﺖ ﺟﻌﻞﻧﺎﭘﺬﯾﺮی ﻣﻌﺎدﻟﻨﺪ‪.‬‬

‫ﮐﺪ اﻣﻦ اﺻﺎﻟﺖﺳﻨﺠ ﭘﯿﺎم‬ ‫‪ ۴‬ﺳﺎﺧﺖ ﯾ‬


‫در اﺑﺘﺪا ﺑﺮرﺳ ﻣ ﮐﻨﯿﻢ ﮐﻪ ﭼ ﻮﻧﻪ ﻣ ﺗﻮان ﯾ ‪ MAC‬ﻣﻨﺎﺳﺐ ﺑﺮای رﺷﺘﻪﻫﺎی ﺑﺎ ﻃﻮل ﺛﺎﺑﺖ‪ ،‬ﻣﺜﻼ ﻣﺠﻤﻮﻋﻪ رﺷﺘﻪﻫﺎی‬
‫‪-n‬ﺑﯿﺘ ﺳﺎﺧﺖ‪ .‬ﻓﺮض ﮐﻨﯿﺪ ﻣﺠﻤﻮﻋﻪ ﺗﻮاﺑﻊ |‪ fk : {۰, ۱}|k| → {۰, ۱}|k‬ﺧﺎﻧﻮادهای از ﺗﻮاﺑﻊ ﺷﺒﻪﺗﺼﺎدﻓ ﺑﺎﺷﻨﺪ‪.‬‬
‫ﺳﯿﺴﺘﻢ ﮐﺪ اﺻﺎﻟﺖﺳﻨﺠ ﭘﯿﺎم )‪ Π = (Gen, Mac, Vrfy‬را روی ‪ M = {۰, ۱}n‬اﯾﻨ ﻮﻧﻪ ﺗﻌﺮﯾﻒ ﻣ ﮐﻨﯿﻢ‪:‬‬

‫‪• Gen(۱n ) : k ← {۰, ۱}n‬‬

‫⟩)‪• Mack (m) : ⟨m, fk (m‬‬


‫{‬
‫‪۱, if t = fk (m) ∧ m, t ∈ {۰, ۱}n‬‬
‫= )⟩‪• Vrfyk (⟨m, t‬‬
‫‪۰, otherwise‬‬

‫ﻗﻀﯿﻪ ‪ ٣‬ﺳﯿﺴﺘﻢ ﮐﺪ اﺻﺎﻟﺖﺳﻨﺠ ﻓﻮق دارای اﻣﻨﯿﺖ ﺟﻌﻞﻧﺎﭘﺬﯾﺮی اﺳﺖ‪.‬‬

‫ﻣﻬﺎﺟﻢ‬ ‫ﺑﺮﻫﺎن‪ .‬از ﺑﺮﻫﺎن ﺧﻠﻒ ﺑﺮای اﺛﺒﺎت ﮐﻤ ﻣ ﮔﯿﺮﯾﻢ‪ .‬ﻓﺮض ﮐﻨﯿﺪ اﯾﻦ ﺳﯿﺴﺘﻢ ﺟﻌﻞﭘﺬﯾﺮ اﺳﺖ‪ .‬ﭘﺲ ﯾ‬
‫ﭼﻨﺪﺟﻤﻠﻪای ﺗﺼﺎدﻓ ﭼﻮن ‪ A‬و ﯾ ﺗﺎﺑﻊ ﻗﺎﺑﻞﺗﻮﺟﻪ )ﻏﯿﺮﻧﺎﭼﯿﺰ( ﻣﺜﻞ )·(‪ µ‬ﺟﻮد دارد ﮐﻪ‪:‬‬

‫)‪Pr{MacForgeA,Π = ۱} = µ(n‬‬ ‫)‪(١‬‬

‫ﺗﻤﺎﯾﺰﮔﺮ ‪ D‬ﺑﺮای ﺗﻤﺎﯾﺰ ﺗﺎﺑﻊ ‪ fk‬از ﺗﻮاﺑﻊ ﺗﺼﺎدﻓ ﺳﺎﺧﺖ‪:‬‬ ‫اﯾﻦ ﻣﻬﺎﺟﻢ ﯾ‬ ‫در اﯾﻨﺠﺎ ﺑﺎ روش ﮐﺎﻫﺶ ‪ ١٧‬ﻣ ﺗﻮان ﺑﻪ ﮐﻤ‬
‫‪١۶‬‬
‫‪strong unforgeability‬‬
‫‪١٧‬‬
‫‪reduction‬‬

‫‪١۶-۵‬‬
‫ﭼﺎﻟﺸ ﺮ‬

‫‪D‬‬
‫‪m۱‬‬
‫‪m۱‬‬
‫) ‪y۱ = f (m۱‬‬ ‫‪A‬‬
‫= ‪t۱‬‬
‫‪..‬‬ ‫‪y۱‬‬
‫|‪m|Q‬‬ ‫‪.‬‬
‫‪m|Q‬‬
‫|‪y|Q| = f (m|Q‬‬ ‫|‬
‫|‪t|Q‬‬
‫‪=y‬‬
‫) |‪|Q‬‬ ‫‪.‬‬

‫‪m‬‬ ‫‪m‬‬ ‫⟩‪⟨m, t‬‬


‫)‪y = f (m‬‬ ‫‪y‬‬
‫{‬
‫‪۱ if y = t ∧ m ̸∈ Q‬‬
‫̂‪b‬‬ ‫̂‪b‬‬ ‫= ̂‪b‬‬
‫‪۰ otherwise‬‬

‫در واﻗﻊ ﺗﻤﺎﯾﺰﮔﺮ ‪ D‬در آزﻣﺎﯾﺸ ﺷﺮﮐﺖ ﻣ ﮐﻨﺪ ﮐﻪ دﺳﺘﺮﺳ اوراﮐﻠ ﺑﻪ ﺗﺎﺑﻊ ‪ f‬ﻣﻮرد آزﻣﻮن دارد و ﺑﺎﯾﺪ ﺗﻌﯿﯿﻦ ﮐﻨﺪ ﮐﻪ‬
‫آﯾﺎ اﯾﻦ ﺗﺎﺑﻊ ﻫﻤﺎن ‪ fk‬اﺳﺖ )ﮐﻪ ﮐﻠﯿﺪ ‪ k‬ﮐﺎﻣﻼ ﺗﺼﺎدﻓ اﻧﺘﺨﺎب ﺷﺪه اﺳﺖ( ﯾﺎ ﯾ ﺗﺎﺑﻊ ﮐﺎﻣﻼ ﺗﺼﺎدﻓ اﺳﺖ )ﮐﻪ از‬
‫ﺑﯿﻦ ﻫﻤﻪ ﺗﻮاﺑﻌ ﮐﻪ ‪ n‬ﺑﯿﺖ را ﺑﻪ ‪ n‬ﺑﯿﺖ ﻣ ﻧ ﺎرﻧﺪ ﺑﻪ ﺗﺼﺎدف اﻧﺘﺨﺎب ﺷﺪه اﺳﺖ(‪ .‬ﺑﺮای ﺗﺸﺨﯿﺺ اﯾﻦ ﻣﺴﺎﻟﻪ ﺗﻤﺎﯾﺰﮔﺮ‬
‫‪ D‬از ﻣﻬﺎﺟﻢ ‪ A‬ﮐﻤ ﻣ ﮔﯿﺮد و آزﻣﺎﯾﺶ )‪ MacForgeA,Π (n‬را ﺑﺮای او ﺷﺒﯿﻪﺳﺎزی ﻣ ﮐﻨﺪ‪ .‬ﺗﻤﺎﯾﺰﮔﺮ ‪ D‬ﺑﺎ درﯾﺎﻓﺖ‬
‫ﻫﺮ ﭘﯿﺎم ﻣﺎﻧﻨﺪ ‪ mi‬از ﻣﻬﺎﺟﻢ ‪ A‬ﺑﺎﯾﺪ ﺑﺮﭼﺴﺐ ﻣﺘﻨﺎﻇﺮ ﺑﺎ آن‪ ،ti ،‬را ﺑﻪ وی ﺑﺮﮔﺮداﻧﺪ‪ .‬ﺑﺪﯾﻦ ﻣﻨﻈﻮر ﺗﻤﺎﯾﺰﮔﺮ ‪ D‬ﮐﻪ ﺧﻮد‬
‫در ﺣﺎل اﺟﺮای آزﻣﺎﯾﺶ ﺗﻤﺎﯾﺰ ‪ fk‬از ﯾ ﺗﺎﺑﻊ ﮐﺎﻣﻼ ﺗﺼﺎدﻓ ﺑﺎ ﭼﺎﻟﺸ ﺮ ﺧﻮد اﺳﺖ‪ ،‬ﭘﺮﺳﻤﺎن ‪ mi‬را ﺑﺮای اوراﮐﻞ ‪f‬‬
‫ارﺳﺎل ﻣ ﮐﻨﺪ و ﭘﺎﺳﺦ ) ‪ yi = f (mi‬را درﯾﺎﻓﺖ ﻣ ﮐﻨﺪ‪ .‬دﻗﺖ ﮐﻨﯿﺪ ﮐﻪ ﺗﻤﺎﯾﺰﮔﺮ ‪ D‬ﻧﻤ داﻧﺪ ﮐﻪ ‪ yi‬ﺧﺮوﺟ ﺗﺎﺑﻊ ‪fk‬‬
‫اﺳﺖ ﯾﺎ ﺧﺮوﺟ ﯾ ﺗﺎﺑﻊ ﮐﺎﻣﻼ ﺗﺼﺎدﻓ ‪ .‬ﺑﺎ اﯾﻦ وﺟﻮد‪ ،‬ﺗﻤﺎﯾﺰﮔﺮ ‪ D‬ﻣﻘﺪار ‪ yi‬را ﺑﻪ ﻋﻨﻮان ﺑﺮﭼﺴﺐ ‪ ti‬ﺑﺮای ﻣﻬﺎﺟﻢ‬
‫‪ A‬ارﺳﺎل ﻣ ﮐﻨﺪ‪ .‬در ﻧﻬﺎﯾﺖ ﻧﯿﺰ ﻣﻬﺎﺟﻢ ‪ A‬زوج ﭘﯿﺎم و ﺑﺮﭼﺴﺐ ﺟﻌﻠ ﻣﺘﻨﺎﻇﺮ را ﺑﻪ ﺻﻮرت ⟩‪ ⟨m, t‬ﺑﻪ ‪ D‬ﻣ ﮔﺮداﻧﺪ‪.‬‬
‫ﺣﺎل ﺗﻤﺎﯾﺰﮔﺮ ‪ D‬ﺑﺎﯾﺪ ﯾ ﺑﯿﺖ ̂‪ b‬ﺗﻮﻟﯿﺪ ﮐﻨﺪ‪ .‬ﺑﺪﯾﻦ ﻣﻨﻈﻮر‪ ،‬ﺗﻤﺎﯾﺰﮔﺮ ‪ D‬ﭘﺮﺳﻤﺎن ‪ m‬را ﺑﺮای اوراﮐﻞ ‪ f‬ارﺳﺎل ﻣ ﮐﻨﺪ و‬
‫ﭘﺎﺳﺦ )‪ y = f (m‬را درﯾﺎﻓﺖ ﻣ ﮐﻨﺪ‪ .‬ﺣﺎل ﺗﻤﺎﯾﺰﮔﺮ ‪) D‬ﺑﺎ ﭘﯿﺶﻓﺮض اﯾﻨ ﻪ ‪ (f = fk‬ﺑﺮرﺳ ﻣ ﮐﻨﺪ ﮐﻪ آﯾﺎ ⟩‪⟨m, t‬‬
‫ﯾ زوج ﭘﯿﺎم و ﺑﺮﭼﺴﺐ ﻣﻌﺘﺒﺮ اﺳﺖ ﯾﺎ ﺧﯿﺮ‪ .‬ﺑﻪ ﻃﻮر دﻗﯿﻖﺗﺮ ﺗﻤﺎﯾﺰﮔﺮ ‪ D‬ﺑﯿﺖ ﺧﺮوﺟ ̂‪ b‬را ﺑﺮاﺑﺮ ﯾ ﻗﺮار ﻣ دﻫﺪ اﮔﺮ‬
‫و ﻓﻘﻂ اﮔﺮ ﭘﺎﺳﺦ ‪ y‬درﯾﺎﻓﺘ از اوراﮐﻞ ‪ f‬ﺑﺎ ﺑﺮﭼﺴﺐ ﺟﻌﻠ ‪ t‬ﺑﺮاﺑﺮ ﺑﺎﺷﺪ و ﻣﻬﺎﺟﻢ ‪ A‬ﻗﺒﻼ درﺧﻮاﺳﺖ ﺑﺮﭼﺴﺐ ﭘﯿﺎم ‪m‬‬
‫را ﻧﺪاده ﺑﺎﺷﺪ‪ .‬ﺑﺎ ﺗﻮﺟﻪ ﺑﻪ روﻧﺪ ﻓﻮق و راﺑﻄﻪ )‪ (١‬دارﯾﻢ‪:‬‬

‫| ‪| Pr{k ← {۰, ۱}n : Dfk (·) (۱n ) = ۱} − Pr{f ← RFn : Df (·) (۱n ) = ۱}| = |µ(n) − ۲−n‬‬

‫ﺑﺎ ﺗﻮﺟﻪ ﺑﻪ ﻏﯿﺮﻧﺎﭼﯿﺰ ﺑﻮدن )·(‪ ،µ‬اﺣﺘﻤﺎل ﻓﻮق ﻧﯿﺰ ﻏﯿﺮﻧﺎﭼﯿﺰ اﺳﺖ و اﯾﻦ ﯾﻌﻨ ﺗﻤﺎﯾﺰﮔﺮ ‪ D‬ﻣ ﺗﻮاﻧﺪ ﺗﺎﺑﻊ ﺷﺒﻪﺗﺼﺎدﻓ ‪fk‬‬
‫را از ﺗﻮاﺑﻊ ‪ n‬ﺑﯿﺘ ﺗﺼﺎدﻓ ﺗﻤﯿﺰ دﻫﺪ ﮐﻪ اﯾﻦ ﻣﺴﺎﻟﻪ اﻣﺮی اﺳﺖ ﻣﺘﻨﺎﻗﺾ‪ .‬ﭘﺲ ﺳﯿﺴﺘﻢ ﮐﺪ اﺻﺎﻟﺖﺳﻨﺠ داده ﺷﺪه‪ ،‬اﻣﻦ‬
‫اﺳﺖ‪.‬‬

‫‪١۶-۶‬‬
‫‪ ۵‬ﮐﺪ اﺻﺎﻟﺖﺳﻨﺠ روی ﭘﯿﺎمﻫﺎی ﺑﺎ ﻃﻮل ﻣﺘﻐﯿﺮ‬
‫ﺗﺎ ﺑﻪ ﺣﺎل ﺳﯿﺴﺘﻢﻫﺎی ﮐﺪ اﺻﺎﻟﺖﺳﻨﺠ را روی ﭘﯿﺎمﻫﺎی ﺑﺎ ﻃﻮل ﺛﺎﺑﺖ در ﻧﻈﺮ ﮔﺮﻓﺘﯿﻢ‪ .‬اﻣﺎ در واﻗﻌﯿﺖ ﻃﻮل ﭘﯿﺎم ﺛﺎﺑﺖ‬
‫ﻧﯿﺴﺖ‪ .‬ﺑﺎز ﻫﻢ از ﯾ ﺗﺎﺑﻊ ﺷﺒﻪﺗﺼﺎدﻓ ﺑﺎ ﻃﻮل ﮐﻠﯿﺪ‪ ،‬ﻃﻮل ورودی و ﻃﻮل ﺧﺮوﺟ ‪-n‬ﺑﯿﺖ اﺳﺘﻔﺎده ﻣ ﮐﻨﯿﻢ‪.‬‬
‫ﺳﯿﺴﺘﻢ ﮐﺪ اﺻﺎﻟﺖﺳﻨﺠ ﭘﯿﺎم )‪ Π = (Gen, Mac, Vrfy‬را روی رﺷﺘﻪﻫﺎی ﺑﻪ ﻃﻮل دﻟﺨﻮاه اﯾﻨ ﻮﻧﻪ ﻣ ﺳﺎزﯾﻢ‪:‬‬

‫ﺗﻼش اول‪ .‬ﭘﯿﺎم ورودی ‪ M‬را ﺑﻪ ﺑﻠﻮکﻫﺎی ‪ n‬ﺑﯿﺘ ﺗﻘﺴﯿﻢ ﮐﺮده و ﺑﺮای آﺧﺮﯾﻦ ﺑﻠﻮک )ﮐﻪ ﻣ ﺗﻮاﻧﺪ ﺗﻬ ﺑﺎﺷﺪ( ﺑﺎ‬
‫اﺿﺎﻓﻪ ﮐﺮدن رﺷﺘﻪ ‪ ۱۰ · · · ۰‬ﻃﻮل اﯾﻦ ﺑﺨﺶ را ﺑﻪ ‪ n‬ﻣ رﺳﺎﻧﯿﻢ‪ .‬ﯾﻌﻨ در ﭘﺎﯾﺎن ﭘﯿﺎم رﺷﺘﻪ ‪ ۱‬را ﻗﺮار داده و ﺑﻌﺪ ﺑﺎ‬
‫اﻓﺰودن ﺗﻌﺪادی ‪) ۰‬ﮐﻤﺘﺮﯾﻦ ﺗﻌﺪاد ﻣﻤ ﻦ( در اﻧﺘﻬﺎ‪ ،‬ﻃﻮل رﺷﺘﻪ ﺣﺎﺻﻞ را ﺑﻪ ﻣﻀﺮﺑ از ‪ n‬ﻣ رﺳﺎﻧﯿﻢ‪ .‬ﺳﭙﺲ در اﯾﻦ‬
‫روش ﮐﺪ ﻣﺮﺑﻮط ﺑﻪ ﻫﺮ ﺑﻠﻮک را ﺑﻪ ﮐﻤ ‪ fk‬ﺗﻮﻟﯿﺪ ﻣ ﮐﻨﯿﻢ‪:‬‬

‫‪pad(M ) = M ||۱۰ · · · ۰ = m۱ m۲ · · · md , |mi | = n‬‬


‫) ‪ti = fk (mi‬‬
‫) ‪⟨t۱ , · · · , td ⟩ ← Mack (M‬‬
‫‪m۱‬‬ ‫‪m۲‬‬ ‫‪md‬‬

‫‪fk‬‬ ‫‪. fk‬‬ ‫···‬ ‫‪fk‬‬

‫‪t۱‬‬ ‫‪t۲‬‬ ‫‪td‬‬

‫اﻣﺎ در اﯾﻦ روش ﻣﻬﺎﺟﻢ ﺑﺎ داﻧﺴﺘﻦ ﮐﺪ ﻣﺮﺑﻮط ﺑﻪ ﯾ ﭘﯿﺎم‪ ،‬ﻣ ﺗﻮاﻧﺪ ﺟﺎی دو ﺑﻠﻮک ﭘﯿﺎم را ﻋﻮض ﮐﺮده و ﮐﺪ ﻣﺮﺑﻮط ﺑﻪ‬
‫ﭘﯿﺎم دﯾ ﺮی را ﺟﻌﻞ ﮐﻨﺪ‪ .‬ﺑﻪ ﻃﻮر دﻗﯿﻖﺗﺮ‪ ،‬ﻣﻬﺎﺟﻢ ﭘﺲ از ﭘﺮﺳﻤﺎن ﭘﯿﺎم ‪ M۱‬و درﯾﺎﻓﺖ ﺑﺮﭼﺴﺐ آن‪ ،‬ﯾ ﺑﺮﭼﺴﺐ ﺟﻌﻠ‬
‫‪ T‬ﺑﺮای ﭘﯿﺎم ‪ M‬ﺑﻪ ﺻﻮرت زﯾﺮ ﺟﻌﻞ ﻣ ﮐﻨﺪ‪:‬‬

‫⟩ ‪M۱ = m۱ m۲ · · · md ⇒ T۱ = ⟨t۱ , t۲ , · · · , td‬‬

‫‪⟨M, T ⟩ : M = m۲ m۱ · · · md‬‬ ‫⟩ ‪⇒ T = ⟨t۲ , t۱ , . . . , td‬‬


‫ﺣﻤﻠﻪ ﺑﺮای ﺟﻌﻞ ﺑﺮﭼﺴﺐ ﺑﯿﺎﺑﯿﺪ‪.‬‬ ‫ﺳﺆال ‪ ۶‬ﻓﺮض ﮐﻨﯿﺪ ﺧﺮوﺟ ‪ Mack‬را ﺑﺮاﺑﺮ ‪ t۱ ⊕ t۲ ⊕ · · · ⊕ td‬ﻗﺮار دﻫﯿﻢ‪ .‬ﯾ‬

‫ﺗﻼش دوم‪ .‬ﺑﺮای ﺣﻞ ﻣﺸ ﻞ روش ﻗﺒﻠ ‪ ،‬ﺑﺮای ﻫﺮ ﺑﻠﻮک‪ ،‬ﺷﻤﺎرهی ﺑﻠﻮک را ﻧﯿﺰ ﺑﺎ ﭘﯿﺎم اﺻﻠ ﺑﻪ ﻋﻨﻮان ورودی ﺗﺎﺑﻊ‬
‫ﺷﺒﻪﺗﺼﺎدﻓ ﻫﻤﺮاه ﻣ ﮐﻨﯿﻢ‪ .‬ﻧﻤﺎد ‪ [i]n‬ﺑﺮای ﻧﻤﺎﯾﺶ ﺑﺎﯾﻨﺮی ﻋﺪد ‪ i‬ﺗﻮﺳﻂ ﯾ رﺷﺘﻪ ‪-n‬ﺑﯿﺘ را در ﻧﻈﺮ ﺑ ﯿﺮﯾﺪ‪:‬‬
‫‪n‬‬
‫= | ‪pad(M ) = M ||۱۰ · · · ۰ = m۱ m۲ · · · md , |mi‬‬
‫‪۲‬‬
‫) ‪ti = fk ([i] n۲ ||mi‬‬
‫) ‪⟨t۱ , · · · , td ⟩ ← Mack (M‬‬

‫‪١۶-٧‬‬
‫‪[۱] n۲ ||m۱‬‬ ‫‪[۲] n۲ ||m۲‬‬ ‫‪[d] n۲ ||md‬‬

‫‪fk‬‬ ‫‪. fk‬‬ ‫···‬ ‫‪fk‬‬

‫‪t۱‬‬ ‫‪t۲‬‬ ‫‪td‬‬

‫ﺑﺮای اﯾﻦ ﻃﺮح‪ ،‬ﺣﻤﻠﻪ ﻗﺒﻠ دﯾ ﺮ ﮐﺎرﺳﺎز ﻧﯿﺴﺖ اﻣﺎ اﯾﻦ روش ﻧﯿﺰ ﺟﻌﻞﭘﺬﯾﺮ اﺳﺖ‪ .‬ﭘﺮﺳﻤﺎن ‪ M۱‬و ﺑﺮﭼﺴﺐ ﺟﻌﻠ ‪T‬‬
‫ﺑﺮای ﭘﯿﺎم ﺟﻌﻠ ‪ M‬را ﺑﻪ ﺻﻮرت زﯾﺮ در ﻧﻈﺮ ﺑ ﯿﺮﯾﺪ‪:‬‬

‫⟩ ‪M۱ = ۰ ۲ ||۱۰ ۲ −۱ ⇒ T۱ = ⟨t۱ , t۲ , t۳‬‬


‫‪n‬‬ ‫‪n‬‬

‫‪n‬‬
‫‪⟨M, T ⟩ : M = ۰ ۲‬‬ ‫⟩ ‪⇒ T = ⟨t۱ , t۲‬‬

‫در اﯾﻦ ﺣﺎﻟﺖ ﻧﯿﺰ اﮔﺮ ﺑﺮﭼﺴﺐ ﺧﺮوﺟ اﻟ ﻮرﯾﺘﻢ ‪ Mack‬ﺑﻪ ﺻﻮرت ‪ t۱ ⊕ t۲ ⊕ · · · ⊕ td‬ﺗﻌﺮﯾﻒ ﺷﻮد‪ ،‬ﺑﺎز ﻫﻢ ﺣﻤﻠﻪ‬
‫ﮐﺎر ﻣ ﮐﻨﺪ‪ .‬ﭘﺮﺳﻤﺎنﻫﺎی ‪ M۲ ،M۱‬و ‪ ،M۳‬و ﺑﺮﭼﺴﺐ ﺟﻌﻠ ‪ T‬ﺑﺮای ﭘﯿﺎم ‪ M‬را ﺑﻪ ﺻﻮرت زﯾﺮ در ﻧﻈﺮ ﺑ ﯿﺮﯾﺪ‪:‬‬

‫‪M۱ = ۰ ۲ ||۱۰ ۲ −۱ ⇒ T۱ = t۱ ⊕ t۲ ⊕ t۳‬‬


‫‪n‬‬ ‫‪n‬‬

‫‪n‬‬
‫‪M۲ = ۰ ۲‬‬ ‫‪⇒ T۲ = t۱ ⊕ t۲‬‬
‫‪⇒ T۳ = t′۱ ⊕ t۲‬‬
‫‪n‬‬
‫‪M۳ = ۱ ۲‬‬

‫‪⟨M, T ⟩ : M = ۱ ۲ ||۱۰ ۲ −۱‬‬


‫‪n‬‬ ‫‪n‬‬
‫‪⇒ T = T۱ ⊕ T۲ ⊕ T۳‬‬
‫ﺑﺮﭼﺴﺐ ﻣﻌﺘﺒﺮ ﺑﺮای ﭘﯿﺎم ‪ M‬اﺳﺖ‪.‬‬ ‫ﺑﻪوﺿﻮح ‪ T‬ﯾ‬

‫‪T = T۱ ⊕ T۲ ⊕ T۳ = t′۱ ⊕ t۲ ⊕ t۳‬‬

‫ﻣﺸ ﻞ روش ﻓﻮق ﻧﯿﺰ ﺑﺎ اﻓﺰودن ﻃﻮل ﭘﯿﺎم اﺻﻠ ﺑﻪ ورودی ﺗﺎﺑﻊ ﺷﺒﻪﺗﺼﺎدﻓ ﺣﻞ ﻣ ﺷﻮد‪:‬‬ ‫ﺗﻼش ﺳﻮم‪.‬‬

‫‪|m| = ℓ‬‬
‫‪n‬‬
‫= | ‪pad(M ) = M ||۱۰ · · · ۰ = m۱ m۲ · · · md , |mi‬‬
‫‪۳‬‬
‫) ‪ti = fk ([i] n۳ ||mi ||[ℓ] n۳‬‬
‫) ‪⟨t۱ , · · · , td ⟩ ← Mack (M‬‬

‫‪١۶-٨‬‬
‫‪[۱] n۳ ||m۱ ||[ℓ] n۴‬‬ ‫‪[۲] n۳ ||m۲ ||[ℓ] n۴‬‬ ‫‪[d] n۳ ||md ||[ℓ] n۴‬‬

‫‪fk‬‬ ‫‪. fk‬‬ ‫···‬ ‫‪fk‬‬

‫‪t۱‬‬ ‫‪t۲‬‬ ‫‪td‬‬

‫ﭘﯿﺎم دﯾ ﺮ را ﺟﻌﻞ ﮐﺮد‪ .‬ﮐﺎﻓﯿﺴﺖ دو ﭘﯿﺎم را ﮐﻪ ﻓﻘﻂ در دو‬ ‫ﻣﺘﺄﺳﻔﺎﻧﻪ در اﯾﻨﺠﺎ ﻧﯿﺰ ﺑﺎ دو ﭘﺮﺳﻤﺎن ﻣ ﺗﻮان ﺑﺮﭼﺴﺐ ﯾ‬
‫ﺑﻠﻮک اول ﻣﺘﻔﺎوتاﻧﺪ در ﻧﻈﺮ ﺑ ﯿﺮﯾﻢ‪:‬‬

‫⟩ ‪M۱ = m۱ m۲ m۳ · · · md ⇒ T۱ = ⟨t۱ , t۲ , t۳ · · · td‬‬


‫⟩ ‪M۲ = m′۱ m′۲ m۳ · · · md ⇒ T۲ = ⟨t′۱ , t′۲ , t۳ · · · td‬‬

‫‪⟨M, T ⟩ : M = m′۱ m۲ m۳ · · · md‬‬ ‫⟩ ‪⇒ T = ⟨t′۱ , t۲ , t۳ · · · td‬‬

‫ﺳﯿﺴﺘﻢ ﮐﺪ اﺻﺎﻟﺖﺳﻨﺠ‬ ‫رﺷﺘﻪی ﺗﺼﺎدﻓ ﺑﻪ ﺗﻤﺎم ﺑﻠﻮکﻫﺎ‪ ،‬ﻣ ﺗﻮان ﯾ‬ ‫ﺗﻼش ﭼﻬﺎرم‪ .‬در ﻧﻬﺎﯾﺖ ﺑﺎ اﺿﺎﻓﻪ ﮐﺮدن ﯾ‬
‫ﭘﯿﺎم ﺑﺎ اﻣﻨﯿﺖ ﺟﻌﻞﻧﺎﭘﺬﯾﺮی اراﺋﻪ ﮐﺮد‪:‬‬

‫‪|m| = ℓ‬‬
‫‪n‬‬
‫= | ‪pad(M ) = M ||۱۰ · · · ۰ = m۱ m۲ · · · md , |mi‬‬
‫‪۴‬‬
‫‪n‬‬
‫‪r ← {۰, ۱} ۴‬‬
‫) ‪ti = fk (r||[i] n۴ ||mi ||[ℓ] n۴‬‬
‫) ‪⟨t۱ , · · · , td ⟩ ← Mack (M‬‬

‫‪r‬‬ ‫‪r||[۱] n۴ ||m۱ ||[ℓ] n۴‬‬ ‫‪r||[۲] n۴ ||m۲ ||[ℓ] n۴‬‬ ‫‪r||[d] n۴ ||md ||[ℓ] n۴‬‬

‫‪fk‬‬ ‫‪. fk‬‬ ‫···‬ ‫‪fk‬‬

‫‪r‬‬ ‫‪t۱‬‬ ‫‪t۲‬‬ ‫‪td‬‬

‫ﻣ ﺗﻮان ﺛﺎﺑﺖ ﮐﺮد ﮐﻪ ﻃﺮح ﻓﻮق ﯾ ﮐﺪ اﺻﺎﻟﺖﺳﻨﺠ دارای اﻣﻨﯿﺖ ﺟﻌﻞﻧﺎﭘﺬﯾﺮی اﺳﺖ‪.‬‬
‫ﺑﺪﯾﻦ ﺗﺮﺗﯿﺐ ﺗﻮاﻧﺴﺘﯿﻢ ﺑﺮای ﭘﯿﺎمﻫﺎی ﺑﻪ ﻃﻮل ﻣﺘﻐﯿﺮ‪ ،‬ﯾ ﺳﯿﺴﺘﻢ ﮐﺪ اﺻﺎﻟﺖﺳﻨﺠ ﭘﯿﺎم ﺑﺎ اﻣﻨﯿﺖ ﺟﻌﻞﻧﺎﭘﺬﯾﺮی ﺑﺴﺎزﯾﻢ‪.‬‬
‫اﻣﺎ در اﯾﻦ روش ﻃﻮل ﺑﺮﭼﺴﺐ ﺣﺎﺻﻞ ﺷﺪه ﺑﺴﯿﺎر زﯾﺎد و ﭼﻨﺪ ﺑﺮاﺑﺮ ﻃﻮل ﭘﯿﺎم اﺻﻠ اﺳﺖ؛ اﯾﻦ ﻣﺴﺎﻟﻪ ﺑﺎﻋﺚ ﻣ ﺷﻮد ﮐﻪ‬

‫‪١۶-٩‬‬
‫ﻋﻤﻼ اﯾﻦ ﺳﯿﺴﺘﻢ ﺑﺮای درﯾﺎﻓﺖ و ارﺳﺎل ﭘﯿﺎم ﻧﺎﮐﺎرآﻣﺪ ﺑﺎﺷﺪ‪ .‬راه ﺣﻠ ﮐﻪ ﻣﻤ ﻦ اﺳﺖ ﺑﻪ ذﻫﻦ ﺑﺮﺳﺪ ﺗﻌﺮﯾﻒ ﺑﺮﭼﺴﺐ ﺑﻪ‬
‫ﺻﻮرت )‪ ⟨r, t۱ ⊕ t۲ ⊕ · · · ⊕ td ⟩ ← Mack (m‬اﺳﺖ‪ .‬آﯾﺎ ﺑﻪ ﻧﻈﺮ ﺷﻤﺎ اﯾﻦ ﻃﺮح ﺟﺪﯾﺪ اﻣﻦ اﺳﺖ؟ ﺣﺘ در ﺻﻮرت‬
‫ﺑﺎر اﺳﺘﻔﺎده از ﺗﺎﺑﻊ ﺷﺒﻪﺗﺼﺎدﻓ‬ ‫|‪۴|m‬‬
‫‪n‬‬
‫ﻣﺜﺒﺖ ﺑﻮدن ﺟﻮاب‪ ،‬ﻃﺮح ﺑﺎزﻫﻢ ﻧﺎﮐﺎرآﻣﺪ اﺳﺖ زﯾﺮ ﻣﺴﺘﻠﺰم اﺳﺘﻔﺎده از ﺣﺪود‬
‫|‪ |m‬ﺑﺎر ﺗﺎﺑﻊ ﺷﺒﻪﺗﺼﺎدﻓ را ﻓﺮاﺧﻮاﻧ ﻣ ﮐﻨﺪ‪ .‬ﯾ روش‬‫‪n‬‬
‫اﺳﺖ‪ .‬ﻫﺪف ﻣﺎ دﺳﺘﯿﺎﺑ ﺑﻪ ﻃﺮحﻫﺎی اﻣﻨ اﺳﺖ ﮐﻪ ﺣﺪود‬
‫‪١٨‬‬
‫ﻣﺮﺳﻮم ﻃﺮاﺣ ‪MAC‬ﻫﺎی اﻣﻦ اﺳﺘﻔﺎده از ﺗﻮاﺑﻊ ﭼ ﯿﺪهﺳﺎز اﺳﺖ ﮐﻪ در ﺟﻠﺴﺎت آﯾﻨﺪه در ﻣﻮرد آﻧﻬﺎ ﺑﺤﺚ ﺧﻮاﻫﯿﻢ‬
‫ﮐﺮد‪.‬‬

‫‪١٨‬‬
‫‪hash functions‬‬

‫‪١۶-١٠‬‬
‫ﺑﻪ ﻧﺎم ﺧﺪا‬

‫داﻧﺸ ﺪهی ﻋﻠﻮم رﯾﺎﺿ‬

‫‪ ١٩‬ﺗﯿﺮ ‪١٣٩٣‬‬ ‫ﻣﻘﺪﻣﻪای ﺑﺮ رﻣﺰﻧ ﺎری‬

‫ﺟﻠﺴﻪی ‪ :١٧‬ﺗﻮاﺑﻊ ﭼ ﯿﺪهﺳﺎز‬


‫ﻧ ﺎرﻧﺪه‪ :‬ﺳﻌﯿﺪ ﻣﺤﻠﻮﺟ ﻓﺮ‪ ،‬ﻣﺤﻤﺪ آﻗﺎﻣﯿﺮ‬ ‫ﻣﺪرس‪ :‬دﮐﺘﺮ ﺷﻬﺮام ﺧﺰاﺋ‬

‫ﻫﺪف ﻣﺎ در اﯾﻦ ﺟﻠﺴﻪ اراﺋﻪ اداﻣﻪ ﻣﺒﺤﺚ ﮐﺪ اﺻﺎﻟﺖﺳﻨﺠ ﭘﯿﺎم ‪ ١‬اﺳﺖ و ﻫﻤﭽﻨﯿﻦ ﻣﻌﺮﻓ ﺗﻮاﺑﻊ ﭼ ﯿﺪهﺳﺎز ‪ ٢‬و اﺳﺘﻔﺎده‬
‫از آن ﺑﺮای ﺑﻬﺒﻮد ﮐﺪﻫﺎی اﺻﺎﻟﺖﺳﻨﺠ ﭘﯿﺎم‪ ،‬ﻣﺒﺎﺣﺚ آﺧﺮ اﯾﻦ ﺟﻠﺴﻪ ﺧﻮاﻫﻨﺪﺑﻮد‪.‬‬

‫ﮐﺪ اﺻﺎﻟﺖﺳﻨﺞ ﺑﺮای ﭘﯿﺎم ﺑﺎ ﻃﻮل ﻏﯿﺮﺛﺎﺑﺖ‬


‫در ﺟﻠﺴﻪ ﻗﺒﻞ دﯾﺪﯾﻢ ﮐﻪ ﺑﺮای ‪ MAC‬ﮐﺮدن ﭘﯿﺎم ﺑﺎ ﻃﻮل ﺛﺎﺑﺖ ‪ ، n‬از ﺧﺎﻧﻮاده ﺗﻮاﺑﻊ ﺷﺒﻪ ﺗﺼﺎدﻓ ‪ fk‬ﻣ ﺗﻮاﻧﯿﻢ ﺑﻪ ﺷ ﻞ‬
‫زﯾﺮ اﺳﺘﻔﺎده ﮐﻨﯿﻢ‪:‬‬

‫‪r‬‬ ‫]‪r||[۱]||m۱ ||[ℓ‬‬ ‫]‪r||[۲]||m۲ ||[ℓ‬‬ ‫]‪r||[b]||mb ||[ℓ‬‬

‫‪fk‬‬ ‫‪f.k‬‬ ‫‪...‬‬ ‫‪fk‬‬

‫‪r‬‬ ‫‪t۱‬‬ ‫‪t۲‬‬ ‫‪tb‬‬

‫)‪⟨r, t۱ , . . . , tb ⟩ ← Mack (m‬‬

‫ﻣ ﺑﺎﺷﺪ‪ .‬ﺣﺎل ﻣﺎ‬ ‫ﻣﺸ ﻞ اﯾﻦ ﮐﺪ اﺻﺎﻟﺖﺳﻨﺞ اﯾﻦ اﺳﺖ ﮐﻪ ﻃﻮل ‪ MAC‬و ﻫﻤﭽﻨﯿﻦ ﮐﺎراﺋ ﺗﺎﺑﻊ ﺷﺒﻪ ﺗﺼﺎدﻓ‬
‫‪۴ℓ‬‬
‫‪n‬‬
‫‪ ۴ℓ‬ﺑﻪ ‪ nℓ‬ﺑﺮﺳﺎﻧﯿﻢ‪.‬‬
‫‪n‬‬
‫ﻣ ﺧﻮاﻫﯿﻢ ﮐﻪ اﯾﻦ ﻣﻘﺪار را از‬
‫ﯾ راهﮐﺎر ﺑﺮای ﺣﻞ اﯾﻦ ﻣﺸ ﻞ اﯾﻦ اﺳﺖ ﮐﻪ ﺑﻪ ﺟﺎی اﺳﺘﻔﺎده از ﻣﺪ ﮐﺎری ‪ ECB‬از ﻣﺪ ﮐﺎری ‪ CBC‬اﺳﺘﻔﺎده ﮐﻨﯿﻢ‪.‬‬
‫‪١‬‬
‫‪Message Authentication Code‬‬
‫‪٢‬‬
‫‪Hash Functions‬‬

‫‪١٧-١‬‬
‫‪m۱‬‬ ‫‪m۲‬‬ ‫‪mb‬‬

‫‪IV‬‬
‫⊕‬ ‫⊕‬ ‫‪b‬‬ ‫‪b‬‬ ‫‪b‬‬
‫⊕‬

‫‪fk‬‬ ‫‪fk‬‬ ‫‪fk‬‬ ‫‪t‬‬

‫اﯾﻦ راهﮐﺎر اﻣﻦ ﻧﯿﺴﺖ‪:‬‬

‫‪ .١‬ﺣﻤﻠﻪ ﮐﻨﻨﺪه ﭘﯿﺎم ‪ m‬را ارﺳﺎل ﮐﺮده و ﺑﺮﭼﺴﺐ ⟩‪ ⟨IV, t‬را درﯾﺎﻓﺖ ﻣ ﮐﻨﺪ‪.‬‬
‫‪ .٢‬ﺳﭙﺲ ﺣﻤﻠﻪ ﮐﻨﻨﺪه ﺑﺮﭼﺴﺐ ﻗﺎﺑﻞ ﻗﺒﻮل ⟩⟩‪ ⟨m ⊕ ∆, ⟨IV ⊕ ∆, t‬را ﺗﻮﻟﯿﺪ ﻣ ﮐﻨﺪ‪.‬‬
‫ﻫﻤﺎنﮔﻮﻧﻪ ﮐﻪ ﻣﺸﺎﻫﺪه ﻣ ﮐﻨﯿﺪ ﻣﺸ ﻞ اﺻﻠ ‪ IV‬اﺳﺖ‪ .‬دو راهﮐﺎر ﺑﺮای ﺣﻞ اﯾﻦ ﻣﺸ ﻞ وﺟﻮد دارد ﯾﺎ اﯾﻦ ﮐﻪ ﺧﻮد ‪IV‬‬
‫را ﻧﯿﺰ ﺑﻪ ﺗﺎﺑﻊ ﺷﺒﻪ ﺗﺼﺎدﻓ ﺑﺪﻫﯿﻢ و ﺧﺮوﺟ آن را ﻗﺮار دﻫﯿﻢ و راه ﮐﺎر دوم ﮐﻪ ﻣﺎ آن را ﺗﺮﺟﯿﺢ ﻣ دﻫﯿﻢ اﯾﻦ اﺳﺖ ﮐﻪ‬
‫اﺻﻼ ‪ IV‬ﻧﺪاﺷﺘﻪ ﺑﺎﺷﯿﻢ‪ .‬ﺣﺎل ﺳﻮال اﯾﻦ اﺳﺖ ﮐﻪ آﯾﺎ ﺳﺎﺧﺘﺎر ﺑﺎﻻ ﺑﺪون ‪ IV‬اﻣﻦ اﺳﺖ ﯾﺎ ﺧﯿﺮ؟‬
‫‪m۱‬‬ ‫‪m۲‬‬ ‫‪mb‬‬

‫⊕‬ ‫⊕‬ ‫‪b‬‬ ‫‪b‬‬ ‫‪b‬‬


‫⊕‬

‫‪fk‬‬ ‫‪fk‬‬ ‫‪fk‬‬ ‫‪t‬‬

‫ﺟﻮاب ﺧﯿﺮ اﺳﺖ و اﯾﻦ ﺳﺎﺧﺘﺎر ﻧﯿﺰ دارای اﻣﻨﯿﺖ ﻏﯿﺮﻗﺎﺑﻞ ﺟﻌﻞ ﻧﯿﺴﺖ‪:‬‬
‫‪ .١‬ﺣﻤﻠﻪ ﮐﻨﻨﺪه ﭘﯿﺎمﻫﺎی ‪ m۱ m۲ ،m۱‬و ‪ m′۱‬دﻟﺨﻮاه را ارﺳﺎل ﮐﺮده و ﺑﺮﭼﺴﺐﻫﺎی‬
‫‪m۱ −→ t۱‬‬
‫‪m۱ m۲ −→ t۲‬‬
‫‪m′۱ −→ t۳‬‬
‫را درﯾﺎﻓﺖ ﻣ ﮐﻨﺪ‪.‬‬
‫‪ .٢‬ﺳﭙﺲ ﺣﻤﻠﻪ ﮐﻨﻨﺪه ﺑﺮﭼﺴﺐ ﻗﺎﺑﻞ ﻗﺒﻮل ⟩ ‪ ⟨m′۱ ∥ (m۲ ⊕ t۳ ⊕ t۱ ), t۲‬را ﺗﻮﻟﯿﺪ ﻣ ﮐﻨﺪ‪.‬‬
‫ﺑﻪ ﻋﻨﻮان راه ﺣﻞ‪ ،‬ﻣ ﺗﻮان ﻃﻮل ﭘﯿﺎم )‪ (ℓ‬را ﺑﻪ ﻋﻨﻮان آﺧﺮﯾﻦ ﺗ ﻪ ﭘﯿﺎم اﺿﺎﻓﻪ ﮐﺮد و ‪ MAC‬را روی آن ﻫﻢ اﻋﻤﺎل ﮐﺮد‪.‬‬
‫‪m۱‬‬ ‫‪m۲‬‬ ‫‪mb‬‬ ‫]‪[ℓ‬‬

‫⊕‬ ‫⊕‬ ‫‪b‬‬ ‫‪b‬‬ ‫‪b‬‬


‫⊕‬ ‫⊕‬

‫‪fk‬‬ ‫‪fk‬‬ ‫‪fk‬‬ ‫‪fk‬‬ ‫‪t‬‬

‫‪١٧-٢‬‬
‫اﻣﺎ اﯾﻦ ﺳﺎﺧﺘﺎر ﻧﯿﺰ ﻗﺎﺑﻞ ﺟﻌﻞ اﺳﺖ‪:‬‬

‫‪ .١‬ﺣﻤﻠﻪ ﮐﻨﻨﺪه ﭘﯿﺎمﻫﺎی ‪ m۱ ∥ m۱ ∥ [۲n] ∥ m۲ ∥ m۲ ،m۱ ∥ m۱‬و ‪ m۳ ∥ m۳‬را ارﺳﺎل ﮐﺮده و‬


‫ﺑﺮﭼﺴﺐﻫﺎی‬

‫‪m۱ ∥ m۱ −→ M AC(m۱ ∥ m۱ ) = t۱‬‬


‫‪m۱ ∥ m۱ ∥ [۲n] ∥ m۲ ∥ m۲ −→ M AC(m۱ ∥ m۱ ∥ [۲n] ∥ m۲ ∥ m۲ ) = t۲‬‬
‫‪m۳ ∥ m۳ −→ M AC(m۳ ∥ m۳ ) = t۳‬‬

‫را درﯾﺎﻓﺖ ﻣ ﮐﻨﺪ‪.‬‬

‫‪ .٢‬ﺳﭙﺲ ﺣﻤﻠﻪ ﮐﻨﻨﺪه ﺑﺮﭼﺴﺐ ﻗﺎﺑﻞ ﻗﺒﻮل ⟩ ‪ ⟨m۳ ∥ m۳ ∥ [۲n] ∥ m۴ ∥ m۲ , t۲‬را ﺗﻮﻟﯿﺪ ﻣ ﮐﻨﺪ ﮐﻪ‬
‫‪ m۴ = t۱ ⊕ t۲ ⊕ m۲‬اﺳﺖ‪.‬‬

‫اﻣﺎ اﮔﺮ ﻫﻤﯿﻦ ‪ ℓ‬را اول ﭘﯿﺎم ﺑ ﺬارﯾﻢ؛ اﻣﻦ ﺧﻮاﻫﺪﺷﺪ‪.‬‬


‫]‪[ℓ‬‬ ‫‪m۱‬‬ ‫‪mb−۱‬‬ ‫‪mb‬‬

‫⊕‬ ‫⊕‬ ‫‪b‬‬ ‫‪b‬‬ ‫‪b‬‬


‫⊕‬ ‫⊕‬

‫‪fk‬‬ ‫‪fk‬‬ ‫‪fk‬‬ ‫‪fk‬‬ ‫‪t‬‬

‫ﺗﻮاﺑﻊ ﭼ ﯿﺪهﺳﺎز‬
‫ﺗﺎﺑﻊ )اﻟ ﻮرﯾﺘﻢ( ﭼ ﯿﺪهﺳﺎز ﻫﺮ ﺗﺎﺑﻌ اﺳﺖ ﮐﻪ ورودی ﺑﺎ ﻃﻮل دﻟﺨﻮاه را ﺑﻪ ﺧﺮوﺟ ﺑﺎ ﻃﻮل ﺛﺎﺑﺖ ﻣ ﻧ ﺎرد‪ ،‬ﻃﻮری ﮐﻪ‬
‫ﺑﺎ ﺗﻐﯿﯿﺮات در ورودی ﻧﺘﻮان ﺧﺮوﺟ را ﮐﻨﺘﺮل ﮐﺮد و ﺗﻐﯿﯿﺮات ﮐﻮﭼ در ورودی ﺑﺎﻋﺚ ﺗﻐﯿﯿﺮات ﺑﺰرگ در ﺧﺮوﺟ‬
‫ﺷﻮد‪ .‬اﯾﻦ ﺗﻮاﺑﻊ در رﻣﺰﻧ ﺎری و ﻫﻤﭽﻨﯿﻦ ﻃﺮاﺣ اﻟ ﻮرﺗﻢﻫﺎ ﮐﺎرﺑﺮد ﮔﺴﺘﺮده دارﻧﺪ‪ .‬ﺑﻪ ﻃﻮر دﻗﯿﻖﺗﺮ ﯾ ﺗﺎﺑﻊ ﭼ ﯿﺪهﺳﺎز‬
‫ﺗﺎﺑﻌ اﺳﺖ ﻣﺎﻧﻨﺪ ‪ H : {۰, ۱}∗ → {۰, ۱}n‬ﮐﻪ ‪ n‬ﻃﻮل ﭼ ﯿﺪه ﭘﯿﺎم ﻧﺎﻣﯿﺪه ﻣ ﺷﻮد‪.‬‬

‫∗}‪m = {۰, ۱‬‬

‫‪H‬‬

‫‪n‬‬

‫‪١٧-٣‬‬
‫ﺑﻪ ﺻﻮرت اﯾﺪهآل ﯾ ﺗﺎﺑﻊ ﭼ ﯿﺪهﺳﺎز ﺑﺎﯾﺪ ﻣﺎﻧﻨﺪ ﯾ اوراﮐﻞ ﺗﺼﺎدﻓ ‪ ٣‬ﻋﻤﻞ ﮐﻨﺪ ﮐﻪ ﺑﻪ ﻫﺮ ﭘﯿﺎم دﻟﺨﻮاه ﯾ ﭼ ﯿﺪه‬
‫ﮐﺎﻣﻼ ﺗﺼﺎدﻓ ‪ n‬ﺑﯿﺘ اﺧﺘﺼﺎص ﻣ دﻫﺪ‪ .‬اﻣﺎ ﭘﯿﺎدهﺳﺎزی ﭼﻨﯿﻦ ﺗﺎﺑﻌ ﻏﯿﺮ ﻋﻤﻠ اﺳﺖ‪ .‬در اداﻣﻪ ﻣﻬﻢﺗﺮﯾﻦ وﯾﮋﮔ ﻫﺎی‬
‫ﺗﻮاﺑﻊ ﭼ ﯿﺪهﺳﺎز ﮐﻪ ﺑﻪ دﻧﺒﺎل آن ﻫﺴﺘﯿﻢ را ﻣﻌﺮﻓ ﻣ ﮐﻨﯿﻢ‪.‬‬

‫ﺑﺮﺧﻮردﺗﺎﺑ ‪ :‬اﯾﻦ وﯾﮋﮔ ﮐﻪ ﻣﻘﺎوﻣﺖ در ﺑﺮاﺑﺮ ﺑﺮﺧﻮرد ‪ ۴‬ﻧﯿﺰ ﻧﺎﻣﯿﺪه ﻣ ﺷﻮد ﺑﻪ اﯾﻦ ﻣﻔﻬﻮم اﺳﺖ ﮐﻪ ﯾﺎﻓﺘﻦ زوج ‪m, m′‬‬
‫ﻃﻮری ﮐﻪ ‪ m ̸= m′‬و ) ‪ H(m) = H(m′‬از ﻧﻈﺮ ﻣﺤﺎﺳﺒﺎﺗ ﻏﯿﺮ ﻋﻤﻠ ﺑﺎﺷﺪ‪ .‬ﺑﻪ ﭼﻨﯿﻦ زوﺟ ﯾ ﺑﺮﺧﻮرد‬
‫ﺑﺮای ‪ H‬ﻣ ﮔﻮﯾﯿﻢ‪ .‬ﻻزم ﺑﻪ ذﮐﺮ اﺳﺖ ﺑﺎ ﺗﻮﺟﻪ ﺑﻪ اﯾﻦ ﮐﻪ ﻓﻀﺎی ورودی ﺑﺰرﮔﺘﺮ از ﻓﻀﺎی ﺧﺮوﺟ اﺳﺖ‪ ،‬ﺑﺮﺧﻮرد‬
‫وﺟﻮد دارد و ﻫﺮ ﻣﻬﺎﺟﻤ ﺑﺎ ﻣﺤﺎﺳﺒﻪ ﺣﺪود ‪ ۲ ۲‬ﭘﯿﺎم ﻣﺘﻔﺎوت ﻣ ﺗﻮاﻧﺪ ﺑﺎ اﺣﺘﻤﺎل ﺑﺎﻻﯾ ﯾ ﺑﺮﺧﻮرد ﺑﺮای ‪H‬‬
‫‪n‬‬

‫ﺑﯿﺎﺑﺪ‪ .‬ﺑﻨﺎﺑﺮاﯾﻦ ﻋﺪم ﺗﻮاﻧﺎﯾ ﻣﺤﺎﺳﺒﺎﺗ ﻣﻬﺎﺟﻢ ﺑﺮای ﯾﺎﻓﺘﻦ ﺑﺮﺧﻮرد ﺑﻪ ﻣﻌﻨﺎی ﻋﺪم وﺟﻮد ﺑﺮﺧﻮرد ﻧﯿﺴﺖ‪.‬‬

‫ﭘﯿﺶﺗﺼﻮﯾﺮﺗﺎﺑ ‪ :‬اﯾﻦ وﯾﮋﮔ ﮐﻪ ﻣﻘﺎوﻣﺖ در ﺑﺮاﺑﺮ ﭘﯿﺶﺗﺼﻮﯾﺮ ‪ ۵‬ﻧﯿﺰ ﻧﺎﻣﯿﺪه ﻣ ﺷﻮد ﺑﻪ اﯾﻦ ﻣﻔﻬﻮم اﺳﺖ ﮐﻪ ﺑﻪ ازای ﯾ‬
‫رﺷﺘﻪی ‪ h‬از ﻓﻀﺎی ﺧﺮوﺟ ﺗﺎﺑﻊ ‪ ،H‬ﻧﺘﻮان ورودی ‪ m‬را ﯾﺎﻓﺖ ﻃﻮری ﮐﻪ ‪ .H(m) = h‬در اﯾﻦ ﺣﺎﻟﺖ ﺑﻪ ‪m‬‬
‫ﯾ ﭘﯿﺶﺗﺼﻮﯾﺮ ﺑﺮای ‪ h‬ﻧﺴﺒﺖ ﺑﻪ ﺗﺎﺑﻊ ‪ H‬ﻣ ﮔﻮﯾﯿﻢ‪.‬‬

‫ﭘﯿﺶﺗﺼﻮﯾﺮ دومﺗﺎﺑ ‪ :‬اﯾﻦ وﯾﮋﮔ ﮐﻪ ﻣﻘﺎوﻣﺖ در ﺑﺮاﺑﺮ ﭘﯿﺶﺗﺼﻮﯾﺮ دوم ‪ ۶‬ﻧﯿﺰ ﻧﺎﻣﯿﺪه ﻣ ﺷﻮد ﺑﻪ اﯾﻦ ﻣﻔﻬﻮم اﺳﺖ ﮐﻪ ﺑﻪ‬
‫ازای ﺑ رﺷﺘﻪی ‪ h‬از ﻓﻀﺎی ﺧﺮوﺟ و ﯾ رﺷﺘﻪی ‪ m‬از ﻓﻀﺎی ورودی ﺗﺎﺑﻊ ‪ ،H‬ﻃﻮری ﮐﻪ ‪،H(m) = h‬‬
‫ﻧﺘﻮان ﯾ رﺷﺘﻪ ‪ m′‬از ﻓﻀﺎی ورودی ﭘﯿﺪا ﮐﺮد ﻃﻮری ﮐﻪ ‪ m ̸= m′‬و ‪ .H(m′ ) = H(m) = h‬ﺗﻮﺟﻪ ﺷﻮد‬
‫ﮐﻪ ﻣﻘﺎوﻣﺖ در ﺑﺮاﺑﺮ ﭘﯿﺶﺗﺼﻮﯾﺮ دوم ﻗﺎﺑﻞ ﮐﺎﻫﺶ ﺑﻪ ﻣﻘﺎوﻣﺖ در ﺑﺮاﺑﺮ ﭘﯿﺶﺗﺼﻮﯾﺮ اﺳﺖ‪.‬‬

‫ﻫﻨ ﺎﻣ ﮐﻪ ﺑﺤﺚﻫﺎی ﻣﺮﺑﻮط ﺑﻪ اﻣﻨﯿﺖ ﻣﻄﺮح ﻣ ﺷﻮد‪ ،‬ﺑﻪ ﺗﻌﺮﯾﻒ ﺧﺎﻧﻮادهای از ﺗﻮاﺑﻊ ﭼ ﯿﺪهﺳﺎز ﻋﻼﻗﻪﻣﻨﺪ ﻣ ﺷﻮﯾﻢ‪.‬‬
‫ﺑﺮای اﯾﻦ ﻣﻨﻈﻮر ﺧﺎﻧﻮادهی ∗}‪ {Hs }s∈{۰,۱‬از ﺗﻮاﺑﻊ ﭼ ﯿﺪهﺳﺎز ﺗﻌﺮﯾﻒ ﻣ ﺷﻮد‪:‬‬

‫)‪H : {0, 1}κ(n) × {0, 1}∗ → {0, 1}λ(n‬‬

‫در اﯾﻦ ﺗﻌﺮﯾﻒ ‪ n‬ﭘﺎراﻣﺘﺮ اﻣﻨﯿﺘ اﺳﺖ‪ .‬ﻣ ﺗﻮان ﺗﺼﻮر ﮐﺮد ﮐﻪ ‪ s‬ﯾ ﮐﻠﯿﺪ اﺳﺖ اﻣﺎ ﻗﺮار ﻧﯿﺴﺖ ﻣﺨﻔ ﺑﺎﺷﺪ و ﺗﻨﻬﺎ‬
‫ﺑﺮای ﻣﺸﺨﺺ ﮐﺮدن ﯾ ﻋﻀﻮ )· ‪ Hs (·) = H(s,‬از ﺧﺎﻧﻮاده ﺑ ﺎر ﻣ رود‪ .‬ﻫﻤﭽﻨﯿﻦ )‪ κ(n‬و )‪ λ(n‬ﺗﻮاﺑﻌ ﺑﺮ ﺣﺴﺐ‬
‫ﭘﺎراﻣﺘﺮ اﻣﻨﯿﺘ ﻣ ﺑﺎﺷﻨﺪ ﮐﻪ ﺑﻪ ﺗﺮﺗﯿﺐ ﻃﻮل ﮐﻠﯿﺪ و ﻃﻮل ﭼ ﯿﺪه را ﻣﺸﺨﺺ ﻣ ﮐﻨﻨﺪ‪ .‬ﺑﺎ اﺳﺘﻔﺎده از اﯾﻦ ﻣﻔﺎﻫﯿﻢ ﻣ ﺗﻮان‬
‫ﺑﺎ آزﻣﺎﯾﺶﻫﺎﯾ ﻣﻨﺎﺳﺐ‪ ،‬وﯾﮋﮔ ﻫﺎی ﺗﺎﺑﻊ ﭼ ﯿﺪهﺳﺎز را ﺑﻪ ﻃﻮر دﻗﯿﻖ ﺗﻌﺮﯾﻒ ﮐﺮد‪.‬‬

‫ﮐﺎرﺑﺮد ﺗﻮاﺑﻊ ﭼ ﯿﺪهﺳﺎز‬


‫ﺗﻮاﺑﻊ ﭼ ﯿﺪهﺳﺎز ﮐﺎرﺑﺮد ﺑﺴﯿﺎری در رﻣﺰﻧ ﺎری دارد ﻃﻮری ﮐﻪ در اﮐﺜﺮ ﺳﯿﺴﺘﻢﻫﺎی رﻣﺰﻧ ﺎری ﺷﻨﺎﺧﺘﻪ ﺷﺪه ﺑﻪ ﻧﺤﻮی از‬
‫اﯾﻦ ﺗﻮاﺑﻊ اﺳﺘﻔﺎده ﺷﺪه اﺳﺖ‪ .‬ﺧﻮاص ﺳﻪﮔﺎﻧﻪ ﮔﻔﺘﻪ ﺷﺪه ﺑﺎﻋﺚ ﻣ ﺷﻮد ﺑﺎ اﺣﺘﻤﺎل ﺑﺴﯿﺎر زﯾﺎدی دو ورودی ﻣﺘﻤﺎﯾﺰ ﺑﻪ‬
‫ﺧﺮوﺟ ﻫﺎی ﻣﺘﻤﺎﯾﺰی ﮔﻤﺎﺷﺘﻪ ﺷﻮﻧﺪ و ﺑﻪ اﯾﻦ ﺗﺮﺗﯿﺐ ﻣ ﺗﻮان ورودی ﻫﺎی ﻣﺨﺘﻠﻒ را ﺑﺎ اﺳﺘﻔﺎده از ﺧﺮوﺟ آﻧﻬﺎ ﺗﻤﺎﯾﺰ‬
‫داد‪.‬‬
‫ﻧﻘﺶ ﺳﻪ ﺷﺮط ﮔﻔﺘﻪ ﺷﺪه را ﺑﺎ دو ﻣﺜﺎل ﺑﺮرﺳ ﻣ ﮐﻨﯿﻢ‪ .‬ﺳﯿﺴﺘﻢ ﻫﺎی اﻣﻀﺎی دﯾﺠﯿﺘﺎل را درﻧﻈﺮ ﺑ ﯿﺮﯾﻢ‪ .‬در اﯾﻦ‬
‫ﺳﯿﺴﺘﻢﻫﺎ ورودی ﺑﺎ اﻧﺠﺎم اﻋﻤﺎل ﺳﻨ ﯿﻦ رﯾﺎﺿ ﻣﺎﻧﻨﺪ ﻫﻤﻨﻬﺸﺘ و ﺗﻮان ﺑﻪ ﯾ اﻣﻀﺎ ﺑﺎ ﻃﻮل ﺛﺎﺑﺖ ﻧ ﺎﺷﺘﻪ ﻣ ﺷﻮﻧﺪ‪.‬‬
‫‪٣‬‬
‫‪Random Oracle‬‬
‫‪۴‬‬
‫‪Collision Resistance‬‬
‫‪۵‬‬
‫‪Pre-Image Resistance‬‬
‫‪۶‬‬
‫‪Second Pre-Image Resistance‬‬

‫‪١٧-۴‬‬
‫در ﻣﻮاردی ﮐﻪ اﻧﺪازه ورودی ﺑﺰرگ ﺑﺎﺷﺪ اﻣ ﺎن اﻧﺠﺎم اﯾﻦ اﻋﻤﺎل ﺑﻪ ﻃﻮر ﻣﺴﺘﻘﯿﻢ ﺑﺮ روی ورودی ﻏﯿﺮ ﻋﻤﻠ اﺳﺖ‪.‬‬
‫ﺑﻨﺎﺑﺮاﯾﻦ ﺑﺎﯾﺪ ﻃﻮل ورودی را ﺑﻪ ﻧﺤﻮی ﮐﺎﻫﺶ داد‪ .‬ﺑﺮای اﯾﻦ ﮐﺎر ﺑﻪ ﺟﺎی اﻣﻀﺎ ﮐﺮدن ورودی اﺻﻠ ‪ ،‬اﺑﺘﺪا آن را از ﯾ‬
‫ﺗﺎﺑﻊ ﭼ ﯿﺪهﺳﺎز ﻋﺒﻮر ﻣ دﻫﻨﺪ و ﺳﭙﺲ آن را اﻣﻀﺎ ﻣ ﮐﻨﻨﺪ‪ .‬واﺿﺢ اﺳﺖ ﮐﻪ اﮔﺮ ﺗﺎﺑﻊ ﭼ ﯿﺪهﺳﺎز ﻣﻮرد اﺳﺘﻔﺎده ﻫﺮ ﯾ‬
‫از ﺳﻪ ﺷﺮط ﺑﺎﻻ را ﻧﺪاﺷﺘﻪ ﺑﺎﺷﺪ ﺳﯿﺴﺘﻢ دﯾ ﺮ دارای اﻣﻨﯿﺖ دﻟﺨﻮاه ﺷﺪه ﻧﺨﻮاﻫﺪ ﺑﻮد‪.‬‬
‫ﻣﻮرد دﯾ ﺮ ذﺧﯿﺮهﺳﺎزی رﻣﺰ ﻋﺒﻮر اﺳﺖ‪ .‬در ﺳﺮورﻫﺎی اﯾﻨﺘﺮﻧﺘ ﺑﻪ ﺟﺎی ذﺧﯿﺮهﺳﺎزی رﻣﺰ ﻋﺒﻮر ﮐﺎرﺑﺮان آن را از ﯾ‬
‫ﺗﺎﺑﻊ ﭼ ﯿﺪهﺳﺎز ﻋﺒﻮر ﻣ دﻫﻨﺪ و ﺳﭙﺲ ذﺧﯿﺮه ﻣ ﮐﻨﻨﺪ‪ .‬دﻟﯿﻞ اﯾﻦ ﻣﻮﺿﻮع آن اﺳﺖ ﮐﻪ ﻣﻤ ﻦ اﺳﺖ اﻓﺮاد زﯾﺎدی ﺑﻪ ﺳﺮور‬
‫دﺳﺘﺮﺳ داﺷﺘﻪ ﺑﺎﺷﻨﺪ و ﺑﺘﻮاﻧﻨﺪ اﻃﻼﻋﺎت را ﺑﺪﺳﺖ آورﻧﺪ‪ .‬ﺑﻪ ﻫﻤﯿﻦ دﻟﯿﻞ ذﺧﯿﺮهﺳﺎزی رﻣﺰﻫﺎی ﻋﺒﻮر ﮐﺎر ﻋﺎﻗﻼﻧﻪای‬
‫ﻧﺨﻮاﻫﺪ ﺑﻮد‪ .‬ﺑﻪ اﯾﻦ ﺗﺮﺗﯿﺐ ﻫﻨ ﺎﻣ ﮐﻪ ﮐﺎرﺑﺮ رﻣﺰﻋﺒﻮر ﺧﻮد را وارد ﻣ ﮐﻨﺪ اﯾﻦ رﻣﺰ از ﺗﺎﺑﻊ ﭼ ﯿﺪهﺳﺎز ﻋﺒﻮر داده ﻣ ﺷﻮد‬
‫و ﺑﺎ ﻣﻘﺪار ذﺧﯿﺮه ﺷﺪه ﻣﻄﺎﺑﻘﺖ داده ﻣ ﺷﻮد‪ .‬در اﯾﻦ روش ﻣﻘﺎوﻣﺖ در ﺑﺮاﺑﺮ ﺑﺮﺧﻮرد و ﭘﯿﺶﺗﺼﻮﯾﺮ ﺷﺮط ﻻزم ﺑﺮای‬
‫اﻣﻨﯿﺖ اﺳﺖ‪.‬‬
‫ﺑﻪ ﻋﻨﻮان آﺧﺮﯾﻦ ﻣﺜﺎل‪ ،‬ﭘﺮوﺗ ﻞ ﺗﻌﻬﺪ را ﺑﯿﺎن ﻣ ﮐﻨﯿﻢ‪ .‬ﯾ ﭘﺮوﺗ ﻞ ﺗﻌﻬﺪ ﺷﺎﻣﻞ دو ﻣﺮﺣﻠﻪ ﺗﻌﻬﺪ و آﺷ ﺎرﺳﺎزی اﺳﺖ‪.‬‬
‫در ﻣﺮﺣﻠﻪ ﺗﻌﻬﺪ‪ ،‬ﻓﺮﺳﺘﻨﺪه ﺧﻮد را ﺑﻪ ﭘﯿﺎﻣ ﻣﺘﻌﻬﺪ ﻣ ﮐﻨﺪ‪ .‬ﺑﻌﺪاً‪ ،‬در ﻣﺮﺣﻠﻪ آﺷ ﺎرﺳﺎزی ﻓﺮﺳﺘﻨﺪه‪ ،‬ﭘﯿﺎم ﺧﻮد را ﺑﺮای‬
‫ﮔﯿﺮﻧﺪه آﺷ ﺎر ﻣ ﮐﻨﺪ‪ .‬ﺑﻪ ﻋﻨﻮان ﮐﺎرﺑﺮد‪ ،‬ﺗﺼﻮر ﮐﻨﯿﺪ ﺷﺨﺼ ادﻋﺎ ﻣ ﮐﻨﺪ ﮐﻪ ﭘﯿﺮوز ﺟﺎم ﺟﻬﺎﻧ ﺑﻌﺪی را ﻣ داﻧﺪ‪ .‬ﯾ‬
‫روش ﻓﯿﺰﯾ ﺑﺮای اﻧﺠﺎم اﯾﻦ ﮐﺎر ﺑﺪﯾﻦ ﺻﻮرت اﺳﺖ ﮐﻪ آن ﺷﺤﺺ ﻧﺎم ﺗﯿﻢ ﻣﻮرد ﻧﻈﺮ را در درون ﺻﻨﺪوﻗ ﮐﻪ اﻣ ﺎن‬
‫ﺑﺎز ﮐﺮدن آن ﺻﺮﻓﺎً ﺑﺮای ﺧﻮدش وﺟﻮد دارد ﺑ ﺬارد و ﺻﻨﺪوق را در اﺧﺘﯿﺎر ﺷﻤﺎ ﻗﺮار دﻫﺪ‪ .‬اﯾﻦ ﻫﻤﺎن ﻣﺮﺣﻠﻪ ﺗﻌﻬﺪ‬
‫اﺳﺖ‪ .‬ﺑﺪﯾﻦ ﺗﺮﺗﯿﺐ‪ ،‬ﺷﺨﺺ ﻣﺘﻌﻬﺪﺷﻮﻧﺪه دﯾ ﺮ ﻧﻤ ﺗﻮاﻧﺪ ﻧﺎم ﺗﯿﻢ ﻣﻮرد ﻧﻈﺮ ﺧﻮد را ﺗﻐﯿﯿﺮ دﻫﺪ‪ .‬ﻫﻤﭽﻨﯿﻦ ﺷﻤﺎ ﻧﻤ ﺗﻮاﻧﯿﺪ‬
‫اﻃﻼﻋﺎﺗ در ﻣﻮرد ﻧﺎم ﺗﯿﻢ ﺑﻪدﺳﺖ آورﯾﺪ زﯾﺮا ﻻزﻣﻪ اﯾﻦ ﮐﺎر ﺑﺎز ﮐﺮدن ﺻﻨﺪوق اﺳﺖ‪ .‬ﺣﺎل ﭘﺲ از ﻣﺸﺨﺺﺷﺪن ﻧﺘﯿﺠﻪ‪،‬‬
‫ﺷﺨﺺ ﻣﺘﻌﻬﺪﺷﻮﻧﺪه ﺑﺎ ﺑﺎز ﮐﺮدن ﺻﻨﺪوق ﺑﺮای ﺷﻤﺎ‪ ،‬ﺛﺎﺑﺖ ﻣ ﮐﻨﺪ ﻧﺎم ﺗﯿﻢ ﭘﯿﺮوز را ﻣ داﻧﺴﺘﻪاﺳﺖ )ﯾﺎ ﻣﺸﺨﺺ ﻣ ﺷﻮد‬
‫ﮐﻪ اﺷﺘﺒﺎه ﮐﺮدهاﺳﺖ(‪ .‬اﯾﻦ ﻫﻤﺎن ﻣﺮﺣﻠﻪ آﺷ ﺎرﺳﺎزی اﺳﺖ‪ .‬در رﻣﺰﻧ ﺎری‪ ،‬ﭘﺮوﺗ ﻞ ﺗﻌﻬﺪ ﺑﻪ ﺻﻮرت دﯾﺠﯿﺘﺎل اﻧﺠﺎم‬
‫ﻣ ﺷﻮد‪ .‬ﺑﺮای اﯾﻦ ﻣﻨﻈﻮر از ﯾ ﺗﺎﺑﻊ ﺗﻌﻬﺪ اﺳﺘﻔﺎده ﻣ ﺷﻮد ﮐﻪ ‪ n‬ﭘﺎراﻣﺘﺮ اﻣﻨﯿﺘ اﺳﺖ‪:‬‬

‫∗}‪commit : {۰, ۱}n × {۰, ۱}∗ → {۰, ۱‬‬

‫اﯾﻦ ﺗﺎﺑﻊ در زﻣﺎن ﭼﻨﺪﺟﻤﻠﻪای و ﺑﻪ ﺻﻮرت ﻗﻄﻌ ﻋﻤﻞ ﻣ ﮐﻨﺪ‪ .‬در واﻗﻊ ﭘﺮوﺗ ﻞ ﺗﻌﻬﺪ از دو ﻣﺮﺣﻠﻪ زﯾﺮ ﺑﯿﻦ ﻓﺮﺳﺘﻨﺪه‬
‫و ﮔﯿﺮﻧﺪه ﺗﺸ ﯿﻞ ﺷﺪهاﺳﺖ‪:‬‬

‫ﻣﺮﺣﻠﻪ ﺗﻌﻬﺪ‪ :‬در اﯾﻦ ﭘﺮوﺗ ﻞ‪ ،‬ﻓﺮﺳﺘﻨﺪه ﺧﻮد را ﺑﻪ ﻣﻘﺪار ∗}‪ m ∈ {۰, ۱‬ﻣﺘﻌﻬﺪ ﻣ ﮐﻨﺪ؛ ﺑﺮای اﯾﻦ ﮐﺎر ﺑﺎ اﻧﺘﺨﺎب‬
‫ﻣﻘﺪار ﺗﺼﺎدﻓ ‪ r ← {۰, ۱}n‬ﻣﻘﺪار )‪ c = commit(r, m‬را ﻣﺤﺎﺳﺒﻪ و ﺑﺮای ﮔﯿﺮﻧﺪه ارﺳﺎل ﻣ ﮐﻨﺪ‪ .‬ﺣﺎل‬
‫ﮔﯿﺮﻧﺪه ‪ c‬را ذﺧﯿﺮه و ﺑﺮای اﺳﺘﻔﺎده در آﯾﻨﺪه ﻧ ﻪﻣ دارد‪.‬‬

‫ﻣﺮﺣﻠﻪ آﺷ ﺎرﺳﺎزی‪ :‬در اﯾﻦ ﭘﺮوﺗ ﻞ‪ ،‬ﻓﺮﺳﺘﻨﺪه ﺑﺎ ارﺳﺎل ﭘﯿﺎم ‪ m‬و ﻣﻘﺪار ﺗﺼﺎدﻓ ‪ r‬ﺑﻪ ﮔﯿﺮﻧﺪه‪ ،‬ﻋﻤﻼ ‪ c‬را ﺑﺎز ﻣ ﮐﻨﺪ‪.‬‬
‫ﮔﯿﺮﻧﺪه ﺑﺎ ﻣﺤﺎﺳﺒﻪی )‪ commit(r, m‬و ﻣﻘﺎﯾﺴﻪی آن ﺑﺎ ‪ c‬از ﺻﺤﺖ ‪ m‬اﻃﻤﯿﻨﺎن ﻣ ﯾﺎﺑﺪ‪.‬‬

‫ﺗﺎﺑﻊ ﭼ ﯿﺪهﺳﺎز ‪ H‬ﺑﻪ ﺻﻮرت )‪ commit(r, m) = H(r||m‬اﺳﺖ‪.‬‬ ‫روش ﭘﯿﺎدهﺳﺎزی ﺗﺎﺑﻊ ﺗﻌﻬﺪ اﺳﺘﻔﺎده از ﯾ‬ ‫ﯾ‬

‫ﺳﺆال ‪ ١‬آﯾﺎ ﺑﻪ ﻧﻈﺮ ﺷﻤﺎ ﺑﺮای اﻣﻦ ﺑﻮدن ﭘﺮوﺗ ﻞ ﺗﻌﻬﺪ‪ ،‬وﯾﮋﮔ ﻫﺎی ﺳﻪﮔﺎﻧﻪ ﺗﺎﺑﻊ ﭼ ﯿﺪهﺳﺎز ﮐﺎﻓ اﺳﺖ؟‬

‫ﺗﻮاﺑﻊ ﭼ ﯿﺪهﺳﺎز ﻣﻌﺮوف‬


‫• ‪ MD5‬ﮐﻪ ﻃﻮل ﺧﺮوﺟ آن ‪ ١٢٨‬ﺑﯿﺖ اﺳﺖ و در ﺳﺎل ‪ ٢٠٠٨‬ﺑﺮای آن ﺑﺮﺧﻮرد ﭘﯿﺪا ﺷﺪ‪.‬‬

‫‪١٧-۵‬‬
‫• ‪ SHA-1‬ﺗﻮﺳﻂ ‪ NIST‬ﻃﺮاﺣ ﺷﺪه ﮐﻪ ﻃﻮل ﺧﺮوﺟ اش ‪ ١۶٠‬ﺑﯿﺖ اﺳﺖ و ﺗﺎ ﺑﻪ ﺣﺎل ﺑﺮﺧﻮری ﺑﺮای آن ﭘﯿﺪا‬
‫ﻧﺸﺪه اﺳﺖ‪ .‬اﻣﺎ ﺑﺎ ﺗﻮﺟﻪ ﺑﻪ ﭘﯿﺸﺮﻓﺖ ﺗﻮان ﻣﺤﺎﺳﺒﺎﺗ ﺑﻪ ﻧﻈﺮ ﻣ رﺳﺪ ﺑﻪ زودی ﺑﺮای اﯾﻦ ﺗﺎﺑﻊ ﯾ ﺑﺮﺧﻮرد ﭘﯿﺪا‬
‫ﺷﻮد‪.‬‬

‫• ‪ SHA-2‬ﺗﻮﺳﻂ ‪ NIST‬ﻃﺮاﺣ ﺷﺪه ﺑﺎ ﻃﻮل ﻣﺘﻐﯿﺮ از ‪ ٢۵۶‬ﺑﯿﺖ ﺗﺎ ‪ ۵١٢‬ﺑﯿﺖ وﻟ ﺧﯿﻠ ﻣﻮرد اﺳﺘﻔﺎده ﻗﺮار‬
‫ﻧﻤ ﮔﯿﺮد‪.‬‬

‫• ‪ SHA-3‬ﺑﺎ ﻫﻤﺎن ﻃﻮل ‪ ٢۵۶‬ﺗﺎ ‪ ۵١٢‬ﺑﯿﺖ ﮐﻪ در ﻣﺴﺎﺑﻘﻪای ﺑﻪ ﻧﺎم ‪ SHA-٣‬ﮐﻪ ﺗﻮﺳﻂ ‪ NIST‬ﺑﺮﮔﺰار ﺷﺪ ﺑﺮﻧﺪه‬
‫ﺷﺪ و آن را ﺑﺎ ﻧﺎم ‪ Keccak‬ﻫﻢ ﻣ ﺷﻨﺎﺳﻨﺪ‪.‬‬

‫ﺳﺎﺧﺖ ﺗﻮاﺑﻊ ﭼ ﯿﺪهﺳﺎز‬


‫ﺳﺎﺧﺘﻦ ﺗﻮاﺑﻊ ﭼ ﯿﺪهﺳﺎز ﺑﺎ وﯾﮋﮔ ﻫﺎی ﮔﻔﺘﻪ ﺷﺪه ﮐﺎر ﻣﺸ ﻠ اﺳﺖ و ﺑﻪ ﻫﻤﯿﻦ دﻟﯿﻞ ﺗﻮاﺑﻊ ﭼ ﯿﺪهﺳﺎز ﻣﻮرد اﺳﺘﻔﺎدهی‬
‫زﯾﺎد ﺑﻪ ﭼﻨﺪ ﻣﻮرد ﺑﯿﺎن ﺷﺪه ﺧﻼﺻﻪ ﻣ ﺷﻮد‪ .‬ﺑﺮای ﺳﺎﺧﺖ ﺗﻮاﺑﻊ ﭼ ﯿﺪهﺳﺎز دو روش ﻋﻤﺪه وﺟﻮد دارد‪ .‬ﻣﺪ ﻣﺮﮐﻞ‪-‬‬
‫دﻣ ﺎرد ‪ ٧‬و ﻣﺪ اﺳﻔﻨﺠ ‪ ٨‬دو روﺷ ﻫﺴﺘﻨﺪ ﮐﻪ ﺑﺮای ﺳﺎﺧﺖ ﺗﻮاﺑﻊ ﭼ ﯿﺪهﺳﺎز از آﻧﻬﺎ اﺳﺘﻔﺎده ﻣ ﺷﻮد‪.‬‬

‫ﻣﺪ ﻣﺮﮐﻞ‪-‬دﻣ ﺎرد‬


‫ﺑﺮای ﻣﻌﺮﻓ اﯾﻦ ﻣﺪ اﺑﺘﺪا ﺑﺎﯾﺪ ﺗﻮاﺑﻊ ﻓﺸﺮدهﺳﺎز را ﻣﻌﺮﻓ ﮐﻨﯿﻢ‪.‬‬

‫ﺗﻮاﺑﻊ ﻓﺸﺮده ﺳﺎز‬

‫ﺗﻮاﺑﻊ ﻓﺸﺮده ﺳﺎز ﺗﻮاﺑﻌ ﻫﺴﺘﻨﺪ ﮐﻪ ورودی ﻫﺎی ﺑﺎ ﻃﻮل ﺛﺎﺑﺖ را ﺑﻪ ﺧﺮوﺟ ﺑﺎ ﻃﻮل ﺛﺎﺑﺖ ﮐﻮﭼ ﺘﺮ ﻣ ﻧ ﺎرد‪ .‬وﯾﮋﮔ‬
‫اﯾﻦ ﺗﻮاﺑﻊ اﯾﻦ اﺳﺖ ﮐﻪ ﯾ ﻃﺮﻓﻪ ﻫﺴﺘﻨﺪ‪ .‬ﺑﻪ اﯾﻦ ﻣﻔﻬﻮم ﮐﻪ ﻣﺤﺎﺳﺒﻪی ورودی آﻧﻬﺎ از روی ﺧﺮوﺟ ﺑﻪ راﺣﺘ اﻣ ﺎن ﭘﺬﯾﺮ‬
‫ﻧﯿﺴﺖ‪ .‬ﺗﻮاﺑﻊ ﻓﺸﺮده ﺳﺎز ﻋﻤﺪﺗﺎ ﺑﻪ وﺳﯿﻠﻪ رﻣﺰﻫﺎی ﺑﻠﻮﮐ ﺳﺎﺧﺘﻪ ﻣ ﺷﻮﻧﺪ و روش ﻫﺎی ﮔﻮﻧﺎﮔﻮﻧ ﺑﺮای ﺳﺎﺧﺖ اﯾﻦ‬
‫ﺗﻮاﺑﻊ از روی رﻣﺰ ﻫﺎی ﺑﻠﻮﮐ وﺟﻮد دارد ﮐﻪ در اﻧﺘﻬﺎ ﺑﻪ اﯾﻦ روش ﻫﺎ ﻣ ﭘﺮدازﯾﻢ‪.‬‬

‫‪n+t‬‬ ‫‪n‬‬
‫‪f‬‬

‫ﻣﺮﮐﻞ‪-‬دﻣ ﺎرد‬
‫در ﻣﺪ ﻣﺮﮐﻞ‪-‬دﻣ ﺎرد ﺑﺎ اﺳﺘﻔﺎده از ﯾ ﺗﺎﺑﻊ ﻓﺸﺮده ﺳﺎز ﯾ ﺗﺎﺑﻊ ﭼ ﯿﺪهﺳﺎز ﺳﺎﺧﺘﻪ ﻣ ﺷﻮد‪ .‬ﻓﺮض ﮐﻨﯿﺪ ‪ f‬ﯾ ﺗﺎﺑﻊ‬
‫ﻓﺸﺮدهﺳﺎز ﻣﻘﺎوم درﺑﺮاﺑﺮ ﺑﺮﺧﻮرد ﺑﺎﺷﺪ ﮐﻪ ورودی ﺑﺎ ﻃﻮل ‪ n + t‬را ﺑﻪ ﺧﺮوﺟ ﺑﺎ ﻃﻮل ‪ n‬ﻣ ﻧ ﺎرد‪ .‬و ﻓﺮض ﮐﻨﯿﻢ‬
‫‪٧‬‬
‫‪Merkle–Damgård Mode‬‬
‫‪٨‬‬
‫‪Sponge Mode‬‬

‫‪١٧-۶‬‬
‫‪ m۱۰∗ = m۱ m۲ ...mb‬ﮔﺴﺘﺮشﯾﺎﻓﺘﻪی ورودی ‪ m‬ﺑﺎﺷﺪ ﻃﻮری ﮐﻪ ﻃﻮل ﻫﺮ ‪ mi‬ﺑﺮاﺑﺮ ‪ t‬ﺑﺎﺷﺪ‪ .‬اوﻟﯿﻦ ﺳﺎﺧﺘﺎری ﮐﻪ‬
‫ﺑﻪ ذﻫﻦ ﻣ رﺳﺪ اﯾﻦ اﺳﺖ ﺑﻪ ﺷ ﻞ زﯾﺮ ﻋﻤﻞ ﮐﻨﯿﻢ‪.‬‬
‫‪m۰‬‬ ‫‪m۱‬‬ ‫‪mb‬‬

‫‪t‬‬ ‫‪t‬‬ ‫‪t‬‬


‫‪f‬‬ ‫‪f‬‬ ‫‪f‬‬ ‫)‪HIV (m‬‬
‫‪IV‬‬ ‫‪n‬‬ ‫‪n‬‬ ‫‪n‬‬
‫‪n‬‬
‫‪b‬‬ ‫‪b‬‬ ‫‪b‬‬ ‫‪b‬‬

‫ﮐﻪ ‪ IV‬ﯾ ﻣﻘﺪار ﺛﺎﺑﺖ اﺳﺖ‪ .‬ﺳﻮاﻟ ﮐﻪ ﻣﻄﺮح ﻣ ﺷﻮد اﯾﻦ اﺳﺖ ﮐﻪ اﮔﺮ ‪ f‬ﻣﻘﺎوم درﺑﺮاﺑﺮ ﺑﺮﺧﻮرد ﺑﺎﺷﺪ آﯾﺎ ‪ HIV‬ﻧﯿﺰ‬
‫ﻣﻘﺎوم در ﺑﺮاﺑﺮ ﺑﺮﺧﻮرد اﺳﺖ؟ ﺟﻮاب اﯾﻦ ﺳﻮال ﺧﯿﺮ اﺳﺖ‪ .‬ﺑﺮای اﯾﻨ ﻪ ﺑﻪ ﯾ ﺗﺎﺑﻊ ﭼ ﯿﺪهﺳﺎز ﻣﻘﺎوم درﺑﺮاﺑﺮ ﺑﺮﺧﻮرد‬
‫ﺑﺮﺳﯿﻢ ﮐﺎﻓ اﺳﺖ ﯾ ﺗﻐﯿﯿﺮ ﮐﻮﭼ در ﺷ ﻞ ﺑﺎﻻ اﯾﺠﺎد ﮐﻨﯿﻢ‪ .‬ﻓﺮض ﮐﻨﯿﻢ ‪ ℓ‬ﻃﻮل ﭘﯿﺎم ‪ m‬ﺑﺎﺷﺪ‪ .‬ﻣﺪ ﻣﺮﮐﻞ‪-‬دﻣ ﺎرد ﺑﻪ‬
‫ﺷ ﻞ زﯾﺮ ﻋﻤﻞ ﻣ ﮐﻨﺪ‪.‬‬
‫‪m۰‬‬ ‫‪m۱‬‬ ‫‪mb‬‬ ‫>‪<ℓ‬‬

‫‪t‬‬ ‫‪t‬‬ ‫‪t‬‬ ‫‪t‬‬


‫‪f‬‬ ‫‪f‬‬ ‫‪f‬‬ ‫‪f‬‬
‫)‪HIV (m‬‬
‫‪IV‬‬ ‫‪n‬‬ ‫‪n‬‬
‫‪n‬‬ ‫‪b‬‬ ‫‪b‬‬
‫‪n‬‬ ‫‪b‬‬
‫‪n‬‬

‫در اﯾﻦ ﺣﺎﻟﺖ ﻣ ﺗﻮان ﺑﺮرﺳ ﮐﺮد ﮐﻪ اﮔﺮ ‪ f‬ﻣﻘﺎوم در ﺑﺮاﺑﺮ ﺑﺮﺧﻮرد ﺑﺎﺷﺪ آﻧ ﺎه ‪ HIV‬ﻧﯿﺰ ﻣﻘﺎوم درﺑﺮاﺑﺮ ﺑﺮﺧﻮرد اﺳﺖ‪.‬‬
‫اﺛﺒﺎت اﯾﻦ ﻣﻮﺿﻮع ﺑﻪ ﺧﻮاﻧﻨﺪه واﮔﺬار ﻣ ﺷﻮد)راﻫﻨﻤﺎﯾ ‪ :‬ﮐﺎﻓ اﺳﺖ ﺑﺮ اﺳﺎس ﻃﻮل دو ﭘﯿﺎﻣ ﮐﻪ ﺑﺮﺧﻮرد دارﻧﺪ دو‬
‫ﺣﺎﻟﺖ در ﻧﻈﺮ ﺑ ﯿﺮﯾﺪ و ﺳﻌ ﮐﻨﯿﺪ در ﯾ از ﺑﻠﻮک ﻫﺎ ﯾ ﺑﺮﺧﻮرد ﺑﺮای ‪ f‬ﭘﯿﺪا ﮐﻨﯿﺪ‪.( .‬‬

‫ﻣﺪ اﺳﻔﻨﺠ‬
‫در ﻣﺪ اﺳﻔﻨﺠ ﺑﺎ اﺳﺘﻔﺎده از ﯾ ﺟﺎﯾ ﺸﺖ ﯾ ﺗﺎﺑﻊ ﭼ ﯿﺪهﺳﺎز ﺗﻮﻟﯿﺪ ﻣ ﮐﻨﯿﻢ‪ .‬ﻓﺮض ﮐﻨﯿﺪ ‪ Π‬ﯾ ﺟﺎﯾ ﺸﺖ ﺑﺎﺷﺪ ﮐﻪ‬
‫ﻃﻮل ورودی و ﺧﺮوﺟ آن ‪ n + r‬اﺳﺖ‪ .‬و ﻓﺮض ﮐﻨﯿﻢ ‪ m۱۰∗ = m۱ m۲ ...mb‬ﮔﺴﺘﺮشﯾﺎﻓﺘﻪی ورودی ‪ m‬ﺑﺎﺷﺪ‬
‫ﻃﻮری ﮐﻪ ﻃﻮل ﻫﺮ ‪ mi‬ﺑﺮاﺑﺮ ‪ r‬ﺑﺎﺷﺪ‪ .‬ﻣﺪ اﺳﻔﻨﺠ ﺑﻪ اﯾﻦ ﺷ ﻞ ﻋﻤﻞ ﻣ ﮐﻨﺪ‪.‬‬
‫‪m۰‬‬ ‫‪m۱‬‬ ‫‪mb‬‬ ‫‪h۱‬‬ ‫‪h۲‬‬

‫‪IV۱‬‬
‫‪r‬‬
‫⊕‬ ‫⊕‬ ‫⊕‬
‫‪Π‬‬ ‫‪Π‬‬ ‫‪b‬‬ ‫‪b‬‬ ‫‪b‬‬ ‫‪b‬‬
‫‪Π‬‬ ‫‪Π‬‬ ‫‪Π‬‬ ‫‪b‬‬ ‫‪b‬‬ ‫‪b‬‬

‫‪IV۲‬‬
‫‪n‬‬

‫‪HIV (m) = h۱ h۲ ...‬‬

‫ﻣ ﺗﻮان اﯾﻦ ﻋﻤﻠﯿﺎت را ﺗﺎ ﺣﺪ ﻻزم اداﻣﻪ داد و ﺑﻪ ﻣﯿﺰان ﻻزم ﺧﺮوﺟ ﮔﺮﻓﺖ‪ .‬ﻣ ﺗﻮان ﺛﺎﺑﺖ ﮐﺮد اﮔﺮ ‪ Π‬ﺷﺒﻪ ﺗﺼﺎدﻓ‬
‫ﺑﺎﺷﺪ آﻧ ﺎه ‪ HIV‬ﻣﻘﺎوم در ﺑﺮاﺑﺮ ﺑﺮﺧﻮرد اﺳﺖ و ﻋﻼوه ﺑﺮ آن ﺷﺒﻪ ﺗﺼﺎدﻓ ﻧﯿﺰ ﻫﺴﺖ و ﺑﻪ ﺷ ﻞ ﯾ اوراﮐﻞ ﺗﺼﺎدﻓ‬
‫ﻋﻤﻞ ﻣ ﮐﻨﺪ‪ .‬در ﻣﻮرد ﺳﺎﺧﺖ ﺟﺎﯾ ﺸﺖﻫﺎی ﺷﺒﻪﺗﺼﺎدﻓ ﻧﯿﺰ ﻗﺒﻼ در ﻣﺒﺤﺚ رﻣﺰ ﻫﺎی ﺑﻠﻮﮐ ﺑﺤﺚ ﺷﺪه اﺳﺖ و ﺑﻪ‬
‫ﻋﻨﻮان ﻣﺜﺎل ﻣ ﺗﻮان از ‪ AES‬ﺑﺎ ﯾ ﮐﻠﯿﺪ ﺛﺎﺑﺖ اﺳﺘﻔﺎده ﮐﺮد‪.‬‬

‫‪١٧-٧‬‬
‫ﺳﺎﺧﺖ ﺗﻮاﺑﻊ ﻓﺸﺮدهﺳﺎز‬
‫ﺑﺮای ﺳﺎﺧﺖ ﺗﻮاﺑﻊ ﻓﺸﺮدهﺳﺎز از رﻣﺰﻫﺎی ﺑﻠﻮﮐ اﺳﺘﻔﺎده ﻣ ﮐﻨﯿﻢ‪ .‬دو روش دﯾﻮﯾﺲ‪-‬ﻣﺎﯾﺮ ‪ ٩‬و اُﺳﯿﺲ‪-‬ﻣﺎﯾﺮ ‪ ١٠‬را ﺑﺮای‬
‫ﺳﺎﺧﺖ ﺗﻮاﺑﻊ ﻓﺸﺮدهﺳﺎز از روی رﻣﺰﻫﺎی ﺑﻠﻮﮐ ﻣﻌﺮﻓ ﻣ ﮐﻨﯿﻢ‪.‬‬

‫دﯾﻮﯾﺲ‪-‬ﻣﺎﯾﺮ‬
‫ﺗﺎﺑﻊ ﻓﺸﺮده ﺳﺎز ﻣ ﺳﺎزﯾﻢ ﮐﻪ ورودی ‪ m, hi−۱‬را ﺑﻪ ‪ hi‬ﻣ ﻧ ﺎرد‪ .‬در اﯾﻦ روش ﺑﻪ ﺷ ﻞ زﯾﺮ ﻋﻤﻞ‬ ‫در اﯾﻦ روش ﯾ‬
‫ﻣ ﮐﻨﯿﻢ‪.‬‬

‫‪hi−۱‬‬

‫‪m‬‬ ‫‪E‬‬

‫⊕‬

‫‪hi‬‬
‫ﻣ ﺗﻮان ﺛﺎﺑﺖ ﮐﺮد اﮔﺮ ‪ E‬ﺷﺒﻪ ﺗﺼﺎدﻓ ﺑﺎﺷﺪ ﺗﺎﺑﻊ ﺗﻮﻟﯿﺪ ﺷﺪه در اﯾﻦ روش ﻣﻘﺎوم در ﺑﺮاﺑﺮ ﺑﺮﺧﻮرد اﺳﺖ‪.‬‬

‫اُﺳﯿﺲ‪-‬ﻣﺎﯾﺮ‬
‫ﺗﺎﺑﻊ ﻓﺸﺮده ﺳﺎز ﻣ ﺳﺎزﯾﻢ ﮐﻪ ورودی ‪ m, hi−۱‬را ﺑﻪ ‪ hi‬ﻣ ﻧ ﺎرد‪ .‬در اﯾﻦ روش ﺑﻪ ﺷ ﻞ زﯾﺮ ﻋﻤﻞ‬ ‫در اﯾﻦ روش ﯾ‬
‫ﻣ ﮐﻨﯿﻢ‪.‬‬
‫‪٩‬‬
‫‪Davies-Meyer Scheme‬‬
‫‪١٠‬‬
‫‪Oasis-Meyer Scheme‬‬

‫‪١٧-٨‬‬
‫‪m‬‬

‫‪hi−۱‬‬ ‫‪E‬‬

‫⊕‬

‫‪hi‬‬
‫ﻣ ﺗﻮان ﺛﺎﺑﺖ ﮐﺮد اﮔﺮ ‪ E‬ﺷﺒﻪ ﺗﺼﺎدﻓ ﺑﺎﺷﺪ ﺗﺎﺑﻊ ﺗﻮﻟﯿﺪ ﺷﺪه در اﯾﻦ روش ﻣﻘﺎوم در ﺑﺮاﺑﺮ ﺑﺮﺧﻮرد اﺳﺖ‪ .‬در اﯾﻦ روش‬
‫ﻧﺴﺒﺖ ﺑﻪ روش دﯾﻮﯾﺲ‪-‬ﻣﺎﯾﺮ ﻣﺤﺪودﯾﺘ وﺟﻮد دارد زﯾﺮا ﺑﺎﯾﺪ ﻃﻮل ﮐﻠﯿﺪ و ﻃﻮل ورودی در ‪ E‬ﺑﺮاﺑﺮ ﺑﺎﺷﺪ‪ .‬ﺑﻨﺎﺑﺮاﯾﻦ ﺗﺎﺑﻊ‬
‫ﺗﻮﻟﯿﺪ ﺷﺪه ﻃﻮل ورودی را ﻧﺼﻒ ﻣ ﮐﻨﺪ‪.‬‬

‫‪١٧-٩‬‬
‫ﺑﻪ ﻧﺎم ﺧﺪا‬

‫داﻧﺸ ﺪهی ﻋﻠﻮم رﯾﺎﺿ‬

‫اردﯾﺒﻬﺸﺖ ‪١٣٩٣‬‬ ‫ﻣﻘﺪﻣﻪای ﺑﺮرﻣﺰﻧ ﺎری‬

‫ﺟﻠﺴﻪی ‪ :١٨‬ﺗﻮاﺑﻊ ﭼ ﯿﺪهﺳﺎز‬


‫ﻧ ﺎرﻧﺪه‪ :‬ﻣﻬﺮی رﺿﺎﯾ ﻋﻠ آﺑﺎدی‬ ‫ﻣﺪرس‪ :‬دﮐﺘﺮ ﺷﻬﺮام ﺧﺰاﺋ‬

‫ﺗﻮاﺑﻊ ﭼ ﯿﺪهﺳﺎز‬ ‫‪١‬‬


‫ﺗﻌﺮﯾﻒ ‪) ١‬ﺗﺎﺑﻊ ﭼ ﯿﺪهﺳﺎز( ﮔﻮﯾﯿﻢ ‪ H : {۰, ۱}∗ → {۰, ۱}n‬ﯾ ﺗﺎﺑﻊ ﭼ ﯿﺪهﺳﺎز ‪١‬اﺳﺖ ﻫﺮﮔﺎه‪ ،‬ﻫﺮ ﭘﯿﺎم ورودی‬
‫ﺑﺎ ﻃﻮل دﻟﺨﻮاه را ﺑﻪ ﯾ ﺧﺮوﺟ ﺑﺎ ﻃﻮل ﺛﺎﺑﺖ )ﭼ ﯿﺪهی ﭘﯿﺎم ‪ (٢‬ﺑﻪ ﻃﻮر ﮐﺎراﯾ ﺗﺼﻮﯾﺮ ﮐﻨﺪ‪.‬‬

‫ﺗﻮاﺑﻊ ﭼ ﯿﺪهﺳﺎز ﮐﺎرﺑﺮدﻫﺎی ﮔﺴﺘﺮدهای در اﻣﻀﺎی دﯾﺠﯿﺘﺎل‪ ،‬ﭘﺮوﺗ ﻞﻫﺎی اﺣﺮاز ﻫﻮﯾﺖ‪ ،‬ﺣﻔﻆ ﯾ ﭙﺎرﭼ ﭘﯿﺎم وﺗﻮﻟﯿﺪ‬
‫اﻋﺪاد ﺷﺒﻪ ﺗﺼﺎدﻓ دارﻧﺪ‪ .‬اﺳﺘﻔﺎده ازﺗﻮاﺑﻊ ﭼ ﯿﺪهﺳﺎز دراﻟ ﻮرﯾﺘﻢ ﻫﺎی اﻣﻀﺎی دﯾﺤﯿﺘﺎل ﺑﻪ اﯾﻦ ﺻﻮرت اﺳﺖ ﮐﻪ اﺑﺘﺪا‬
‫ﭼ ﯿﺪه ﭘﯿﺎﻣ ﮐﻪ ﺑﺎﯾﺪ اﻣﻀﺎ ﺷﻮد ﻣﺤﺎﺳﺒﻪ ﻣ ﮔﺮدد وﺳﭙﺲ اﯾﻦ ﭼ ﯿﺪه اﻣﻀﺎ ﻣ ﺷﻮد‪ .‬ﺟﻬﺖ ﺣﻔﻆ ﯾ ﭙﺎرﭼ ﭘﯿﺎمﻫﺎﯾ‬
‫ﮐﻪ ﺑﺮوی ﮐﺎﻧﺎل ﻫﺎی ﻧﺎاﻣﻦ ﻓﺮﺳﺘﺎده ﻣ ﺷﻮﻧﺪ‪ ،‬ﻋﻤﻮﻣﺎ از ﺗﻮاﺑﻊ ﭼ ﯿﺪهﺳﺎز اﺳﺘﻔﺎده ﻣ ﺷﻮد‪ ،‬ﺑﺪﯾﻦ ﻣﻨﻈﻮرﭼ ﯿﺪهی ﭘﯿﺎم‬
‫ﺑﺎﯾﺪ ﺑﻪ ”ﻧﻮﻋ “ ﺗﺼﻮﯾﺮی ﯾ ﺘﺎ از ﭘﯿﺎم ورودی ﺑﺎﺷﺪ و ﻫﻤﭽﻨﯿﻦ در اﯾﻦ ﺣﺎﻟﺖ ﺑﻪ ﺳﺒﺐ ﮐﻮﺗﺎهﺗﺮ ﺑﻮدن ﻃﻮل ﭼ ﯿﺪه ﻧﺴﺒﺖ‬
‫ﺑﻪ ﻃﻮل ورودی‪ ،‬ﺣﻔﻆ ﯾ ﭙﺎرﭼ ﭘﯿﺎم ﺳﺎدهﺗﺮ ﺧﻮاﻫﺪ ﺑﻮد‪ .‬ازﮐﺎرﺑﺮدﻫﺎی دﯾ ﺮ ﺗﻮاﺑﻊ ﭼ ﯿﺪهﺳﺎز‪ ،‬ذﺧﯿﺮه ﺳﺎزی ﮐﻠﻤﺎت‬
‫ﻋﺒﻮر در ﺳﯿﺴﺘﻢ ﻋﺎﻣﻞ و ﻧﺮم اﻓﺰارﻫﺎ اﺳﺖ ﺑﻪ اﯾﻦ ﺻﻮرت ﮐﻪ ﺑﻪ ﺟﺎی ذﺧﯿﺮه ﮐﻠﻤﻪ ﻋﺒﻮر‪ ،‬ﭼ ﯿﺪهی آن دﺧﯿﺮه ﻣ ﺷﻮد‪،‬‬
‫اﯾﻦ ﮐﺎر ﻣﺴﺘﻠﺰم آن اﺳﺖ ﮐﻪ ﺗﺎﺑﻊ ﭼ ﯿﺪهﺳﺎز ﺑﻪ ﻧﺤﻮی ﺑﺎﺷﺪ ﮐﻪ ازروی ﺧﺮوﺟ آن ﻧﺘﻮان ورودی را ﻣﺤﺎﺳﺒﻪ ﻧﻤﻮد‪ .‬ﺑﻪ‬
‫ﻃﻮر ﮐﻠ ازﯾ ﺗﺎﺑﻊ ﭼ ﯿﺪهﺳﺎز اﯾﺪهآل اﻧﺘﻈﺎر ﻣ رود وﯾﮋﮔ ﻫﺎی زﯾﺮ را داﺷﺘﻪ ﺑﺎﺷﺪ‪.‬‬

‫• ﺑﺮﺧﻮردﺗﺎﺑ ‪ :٣‬ﭘﯿﺪا ﮐﺮدن دوﭘﯿﺎم ﻣﺘﻤﺎﯾﺰ ‪ m‬و ‪ m′‬ﮐﻪ ﭼ ﯿﺪهی ﯾ ﺴﺎﻧ داﺷﺘﻪ ﺑﺎﺷﻨﺪ ﺳﺨﺖ ﺑﺎﺷﺪ؛ ﯾﻌﻨ از ﻧﻈﺮ‬
‫ﻣﺤﺎﺳﺒﺎﺗ ﻧﺘﻮان ﭘﯿﺎمﻫﺎی ‪ m ̸= m′‬را ﯾﺎﻓﺖ ﮐﻪ ﺑﺮای آﻧﻬﺎ ) ‪ H(m) = H(m′‬ﺑﺎﺷﺪ‪.‬‬

‫• ﭘﯿﺶﺗﺼﻮﯾﺮﺗﺎﺑ ‪ :۴‬ﺑﻪ ازای ‪ y‬ﺗﺼﺎدﻓ داده ﺷﺪه در ﺑﺮد ﺗﺎﺑﻊ ‪ ،H‬ﭘﯿﺪاﮐﺮدن ﭘﯿﺎم ‪ m‬ﮐﻪ ﺑﺮای آن داﺷﺘﻪ ﺑﺎﺷﯿﻢ‬
‫‪ ،H(m) = y‬ﺳﺨﺖ ﺑﺎﺷﺪ‪.‬‬

‫• ﭘﯿﺶﺗﺼﻮﯾﺮ دومﺗﺎﺑ ‪ :۵‬ﺑﻪ ازای ﻫﺮ ‪ m‬داده ﺷﺪه‪ ،‬ﭘﯿﺪا ﮐﺮدن ﭘﯿﺎم ‪ m′ ̸= m‬ﮐﻪ ) ‪ ،H(m) = H(m′‬ﺳﺨﺖ‬
‫ﺑﺎﺷﺪ‪.‬‬
‫‪١‬‬
‫‪Hash function‬‬
‫‪٢‬‬
‫‪message digest‬‬
‫‪٣‬‬
‫‪collision-resistant‬‬
‫‪۴‬‬
‫‪preimage-resistant‬‬
‫‪۵‬‬
‫‪second-preimage-resistant‬‬

‫‪١٨-١‬‬
‫‪ ٢‬اﻣﻨﯿﺖ ﺗﻮاﺑﻊ درﻫﻢ ﺳﺎز‬
‫ﺣﻤﻠﻪ ﺟﺴﺘﺠﻮی ﮐﺎﻣﻞ ﺑﻪ ﺗﻤﺎﻣ ﺗﻮاﺑﻊ ﭼ ﯿﺪه ﺳﺎز ﻗﺎﺑﻞ اﻋﻤﺎل اﺳﺖ‪ .‬اﻣﻨﯿﺖ ﺗﺎﺑﻊ ﭼ ﯿﺪهﺳﺎز در ﻣﻘﺎﺑﻞ ﺣﻤﻠﻪ ﺟﺴﺘﺠﻮی‬
‫ﮐﺎﻣﻞ ﻣﺘﻨﺎﺳﺐ ﺑﺎ ﻃﻮل ﺧﺮوﺟ آن اﺳﺖ ﺑﻨﺎﺑﺮاﯾﻦ ﻃﻮل ﺧﺮوﺟ ﺑﺎﯾﺪ ﺑﻪ اﻧﺪازه ﮐﺎﻓ ﺑﺰرگ ﺑﺎﺷﺪ ﺗﺎ ﺗﺎﺑﻊ ﭼ ﯿﺪه ﺳﺎز در‬
‫ﻣﻘﺎﺑﻞ ﺣﻤﻼت زﯾﺮ اﻣﻦ ﺑﺎﺷﺪ‪ .‬ﻓﺮض ﮐﻨﯿﻢ ‪ H‬ﺗﺎﺑﻊ ﭼ ﯿﺪهﺳﺎز اﯾﺪهآل ﺑﺎ ‪ n‬ﺑﯿﺖ ﺧﺮوﺟ ﺑﺎﺷﺪ‪.‬‬

‫• ﺣﻤﻠﻪ ﺑﺮﺧﻮرد‪ :‬ﻣﻬﺎﺟﻢ ﺳﻌ ﻣﯿ ﻨﺪ دوﭘﯿﺎم ‪ m ̸= m′‬راﺑﻪ ﮔﻮﻧﻪ ای ﺑﯿﺎﺑﺪ ﮐﻪ ﺑﺮای آنﻫﺎ ) ‪H(m) = H(m′‬‬
‫ﺑﺎﺷﺪ‪ .‬ﺑﺎ ﺗﻮﺟﻪ ﺑﻪ ﻗﻀﯿﻪ ﺗﻨﺎﻗﺾ روزﺗﻮﻟﺪ‪ ،‬ﺑﺮای آﻧ ﻪ ﻣﻬﺎﺟﻢ ﺑﺘﻮاﻧﺪ ﺑﺎ اﺣﺘﻤﺎل ﺑﯿﺸﺘﺮ از ‪ ١/٢‬ﭼﻨﯿﻦ ﭘﯿﺎمﻫﺎﯾ را‬
‫ﺑﯿﺎﺑﺪ ﻧﯿﺎز ﺑﻪ ﻣﺤﺎﺳﺒﻪ ‪ ۲n/۲‬ﭘﯿﺎم ورودی دارد‪.‬‬

‫• ﺣﻤﻠﻪ ﭘﯿﺶﺗﺼﻮﯾﺮ‪ :‬ﺑﺮای ﯾ ﭼ ﯿﺪهی ‪ n‬ﺑﯿﺘ ‪ y‬وﻗﺘ ﻣﻬﺎﺟﻢ ﭘﯿﺎم دﻟﺨﻮاه ‪ m‬را اﻣﺘﺤﺎن ﻣ ﮐﻨﺪ ﺑﺎ اﺣﺘﻤﺎل‬
‫‪ ۲−n‬وی ﻣ ﺗﻮاﻧﺪ اﻧﺘﻈﺎر داﺷﺘﻪ ﺑﺎﺷﺪ ﮐﻪ ‪ H(m) = y‬ﺑﺎﺷﺪ‪ .‬ﺑﻨﺎﺑﺮاﯾﻦ وی ﻧﯿﺎز ﺑﻪ ﻣﺤﺎﺳﺒﻪی ‪ ۲n‬ﭘﯿﺎم ورودی‬
‫دارد ﺗﺎ ﺑﺎ اﺣﺘﻤﺎل ﺧﻮﺑ ﯾ از آﻧﻬﺎ ﭘﯿﺶﺗﺼﻮﯾﺮی ﺑﺮای ‪ y‬ﺑﺎﺷﺪ‪.‬‬

‫• ﺣﻤﻠﻪ ﭘﯿﺶﺗﺼﻮﯾﺮ دوم‪ :‬در اﯾﻦ ﺣﻤﻠﻪ ﻣﻬﺎﺟﻢ ﺳﻌ ﻣ ﮐﻨﺪ ﺑﺮای ﭘﯿﺎم ‪ m‬ای ﮐﻪ در اﺧﺘﯿﺎر دارد‪ ،‬ﭘﯿﺎم ‪m ̸= m′‬‬
‫را ﺑﻪ ﻧﺤﻮی ﭘﯿﺪا ﮐﻨﺪ ﮐﻪ ) ‪ H(m) = H(m′‬ﺑﺎﺷﺪ‪ ،‬ﻣﻬﺎﺟﻢ ﺑﺮای ﯾﺎﻓﺘﻦ ﭼﻨﯿﻦ ﭘﯿﺎﻣ ﻧﯿﺎز ﺑﻪ ﻣﺤﺎﺳﺒﻪ ‪ ۲n‬ﻣﻘﺪار‬
‫ورودی دارد‪.‬‬

‫ﺑﺎ ﺗﻮﺟﻪ ﺑﻪ اﯾﻨ ﻪ ﻃﻮل ﺧﺮوﺟ ﺗﺎﺑﻊ ﭼ ﯿﺪهﺳﺎز ﺛﺎﺑﺖ‪ ،‬وﻟ ﻃﻮل ورودی آن دﻟﺨﻮاه اﺳﺖ ﺑﺪﯾﻬ اﺳﺖ ﮐﻪ ﺑﺮای ﺗﺎﺑﻊ‬
‫ﭼ ﯿﺪهﺳﺎز‪ ،‬ﻫﻤﻮاره ﻣ ﺗﻮان ﺑﺮﺧﻮرد ﭘﯿﺪا ﮐﺮد‪ .‬اﻣﻨﯿﺖ ﺗﺎﺑﻊ ﭼ ﯿﺪه ﺑﻪ اﯾﻦ ﻣﻌﻨﺎﺳﺖ ﮐﻪ ﭘﯿﺪاﮐﺮدن ﺑﺮﺧﻮرد ازﻧﻈﺮ ﻣﺤﺎﺳﺒﺎﺗ‬
‫ﻣﻤ ﻦ ﻧﺒﺎﺷﺪ‪ .‬ﮔﻮﯾﯿﻢ ﯾ ﺗﺎﺑﻊ ﭼ ﯿﺪهﺳﺎز ﺷ ﺴﺘﻪ ﺷﺪه اﺳﺖ اﮔﺮ اﻟ ﻮرﯾﺘﻤ ﺑﺎ ﭘﯿﭽﯿﺪﮔ ﮐﻢﺗﺮ از اﻟ ﻮرﯾﺘﻢ ﺟﺴﺘﺠﻮی‬
‫ﮐﺎﻣﻞ ﺑﺘﻮاﻧﺪ ﺣﺪاﻗﻞ ﯾ از وﯾﮋﮔ ﻫﺎی ﺗﺎﺑﻊ اﯾﺪهآل را ﻧﻘﺾ ﮐﻨﺪ‪.‬‬

‫ﻃﺮاﺣ ﺗﻮاﺑﻊ ﭼ ﯿﺪهﺳﺎز‬ ‫‪٣‬‬


‫ﻃﺮاﺣ ﺗﻮاﺑﻊ ﭼ ﯿﺪهﺳﺎز در ﺳﺎﺧﺘﺎر ﻣﺮﮐﻞ‪-‬دﻣ ﺎرد و اﺳﻔﻨﺠ از ﻣﻬﻢﺗﺮﯾﻦ روشﻫﺎی ﻃﺮاﺣ ﺗﻮاﺑﻊ ﭼ ﯿﺪهﺳﺎز ﻣ ﺑﺎﺷﻨﺪ‪.‬‬
‫در اداﻣﻪ ﺑﻪ ﭼ ﻮﻧ ﻃﺮاﺣ ﺗﻮاﺑﻊ ﭼ ﯿﺪهﺳﺎز در اﯾﻦ ﺳﺎﺧﺘﺎرﻫﺎ ﻣ ﭘﺮدازﯾﻢ‪.‬‬

‫‪ ۴‬ﺳﺎﺧﺘﺎر ﻣﺮﮐﻞ‪-‬دﻣ ﺎرد‬


‫ﻧﺨﺴﺘﯿﻦ ﺑﺎرﻣﺮﮐﻞ و دﻣ ﺎرد اﺳﺘﻔﺎده از ﺗﻮاﺑﻊ ﻓﺸﺮدهﺳﺎز ‪ ۶‬در ﻃﺮاﺣ ﺗﻮاﺑﻊ ﭼ ﯿﺪهﺳﺎز را ﻣﻄﺮح ﻧﻤﻮدﻧﺪ‪ .‬ﺗﺎﺑﻊ ﻓﺸﺮدهﺳﺎز‬
‫در واﻗﻊ ﻧﻮﻋ ﺗﺎﺑﻊ ﭼ ﯿﺪهﺳﺎز اﺳﺖ ﮐﻪ ﺑﺮای ﭘﯿﺎمﻫﺎی ﺑﺎ ﻃﻮل ﺛﺎﺑﺖ ﻗﺎﺑﻞ اﺳﺘﻔﺎده اﺳﺖ‪ .‬اﯾﺪه ﻃﺮاﺣ ﺗﺎﺑﻊ ﭼ ﯿﺪهﺳﺎز در‬
‫ﺳﺎﺧﺘﺎر ﻣﺮﮐﻞ‪-‬دﻣ ﺎرد اﯾﻦ اﺳﺖ ﮐﻪ ﺑﺎ داﺷﺘﻦ ﺗﺎﺑﻊ ﻓﺸﺮدهﺳﺎز ﺑﺮﺧﻮردﺗﺎب ‪f : {۰, ۱}n × {۰, ۱}t → {۰, ۱}n‬‬
‫ﻣ ﺗﻮان ﺗﺎﺑﻊ ﭼ ﯿﺪهﺳﺎز ﺑﺮﺧﻮردﺗﺎب ‪ H : {۰, ۱}∗ → {۰, ۱}n‬را ﺑﺎ ﺗ ﺮار ﺗﺎﺑﻊ ﻓﺸﺮدهﺳﺎز ﺑﻪ ﺻﻮرت ﺑﺎزﮔﺸﺘ‬
‫ﻃﺮاﺣ ﻧﻤﻮد‪.‬‬
‫ﺑﺪﯾﻦ ﻣﻨﻈﻮر اﺑﺘﺪا اﮔﺮ ﻃﻮل دﻧﺒﺎﻟﻪ ورودی ﺑﻪ ﺗﺎﺑﻊ ﭼ ﯿﺪهﺳﺎز‪ ،‬ﻣﻀﺮب ﺻﺤﯿﺤ از ﻃﻮل ﻗﺎﻟﺐ ورودی ﺗﺎﺑﻊ ﻓﺸﺮدهﺳﺎز‬
‫ﻧﺒﺎﺷﺪ‪ ،‬ﺑﻪ اﻧﺘﻬﺎی ﭘﯿﺎم ورودی‪ ،‬ﯾ ﺑﯿﺖ ﯾ و ﺑﻪ ﺗﻌﺪاد ﻣﻮردﻧﯿﺎز ﺑﯿﺖ ﺻﻔﺮ اﺿﺎﻓﻪ ﻣ ﺷﻮد‪ .‬و در ﺻﻮرﺗ ﮐﻪ ﻃﻮل‬
‫دﻧﺒﺎﻟﻪ ورودی ﺑﻪ ﺗﺎﺑﻊ ﭼ ﯿﺪهﺳﺎز‪ ،‬ﻣﻀﺮب ﺻﺤﯿﺤ از ﻃﻮل ﻗﺎﻟﺐ ورودی ﺗﺎﺑﻊ ﻓﺸﺮدهﺳﺎز ﺑﺎﺷﺪ‪ ،‬ﯾ ﺑﯿﺖ ‪ ١‬و ‪t − ۱‬‬
‫‪۶‬‬
‫‪compression function‬‬

‫‪١٨-٢‬‬
‫ﮔﻮﯾﯿﻢ‪ .‬ﺳﺎﺧﺘﺎر ﺗﺎﺑﻊ‬ ‫ﺑﯿﺖ ﺻﻔﺮ ﺑﻪ اﻧﺘﻬﺎی ﭘﯿﺎم ورودی اﺿﺎﻓﻪ ﻣ ﺷﻮد‪ .‬اﻓﺰودن ﺑﯿﺖ ﻫﺎی اﺿﺎﻓ ‪ ،‬ﺑﻪ اﯾﻦ ﺷﯿﻮه را ﭘﺪﯾﻨ‬
‫ﭼ ﯿﺪهﺳﺎز در ﺳﺎﺧﺘﺎر ﻣﺮﮐﻞ‪-‬دﻣ ﺎرد را در ﺷ ﻞ ‪ ١-١٧‬ﻣﺸﺎﻫﺪه ﻣ ﮐﻨﯿﻢ‪.‬‬

‫‪m۱‬‬ ‫‪m۲‬‬ ‫‪m۳‬‬ ‫‪mb‬‬ ‫‪[ℓ]t‬‬

‫‪...‬‬
‫‪f‬‬ ‫‪f‬‬ ‫‪f‬‬ ‫‪f‬‬ ‫‪f‬‬
‫)‪H(m‬‬
‫‪h۰‬‬ ‫‪h۱‬‬ ‫‪h۲‬‬ ‫‪hb−۱‬‬ ‫‪hb‬‬

‫‪.‬‬
‫ﺷ ﻞ ‪ :١-١٧‬ﺳﺎﺧﺘﺎر ﻣﺮﮐﻞ‪-‬دﻣ ﺎرد‬

‫در اﯾﻦ ﺳﺎﺧﺘﺎر ‪ hi‬ﻣﺘﻐﯿﺮ زﻧﺠﯿﺮهای ‪ ٧‬ﻧﺎﻣﯿﺪه ﻣ ﺷﻮد و در ﻣﺮﺣﻠﻪ اول ﺑﺮاﺑﺮ ﺑﺎ ﯾ ﻣﻘﺪار اوﻟﯿﻪ ‪ ٨‬ﺛﺎﺑﺖ ‪) IV‬ﻣﺜﻼ = ‪IV‬‬
‫‪ (۰n‬اﺳﺖ‪ .‬ﭘﯿﺎم ورودی ‪ ،m‬ﺑﻌﺪ از اﻋﻤﺎل ﭘﺪﯾﻨ روی آن ﺑﻪ ‪ b‬ﻗﺎﻟﺐ ‪ t‬ﺑﯿﺘ ‪ m۱ , m۲ , .., mb‬ﺗﻘﺴﯿﻢ ﻣ ﺷﻮد ﺳﭙﺲ‬
‫ﻣﻘﺪار ﭼ ﯿﺪه ﺑﺮای ﭘﯿﺎم ‪ m‬ﺑﻪ ﺻﻮرت زﯾﺮ ﻣﺤﺎﺳﺒﻪ ﻣ ﺷﻮد ﮐﻪ ‪ [ℓ]t‬ﻧﻤﺎﯾﺶ دودوﯾ ﻃﻮل ﭘﯿﺎم ‪ m‬ﺑﺎ ﯾ رﺷﺘﻪ ‪ t‬ﺑﯿﺘ‬
‫اﺳﺖ‪.‬‬

‫‪• h0 = IV‬‬

‫‪• hi+1 = f (hi , mi+1 ) for 0 ≤ i < b‬‬

‫) ‪• H(m) = f (hb , [ℓ]t‬‬

‫ﻗﻀﯿﻪ ‪ ١‬اﮔﺮﺗﺎﺑﻊ ﻓﺸﺮدهﺳﺎز ‪ f‬ﺑﺮﺧﻮردﺗﺎب ﺑﺎﺷﺪ آﻧ ﺎه ﺗﺎﺑﻊ ﭼ ﯿﺪهﺳﺎز ‪ H‬ﻧﯿﺰ ﺑﺮﺧﻮردﺗﺎب اﺳﺖ‪.‬‬

‫ﺑﺮﻫﺎن‪ .‬ﻓﺮض ﮐﻨﯿﺪ ﺗﺎﺑﻊ ﭼ ﯿﺪهﺳﺎز ‪ H‬ﺑﺮﺧﻮردﺗﺎب ﻧﺒﺎﺷﺪ ﺑﻨﺎﺑﺮاﯾﻦ ﭘﯿﺎمﻫﺎی ﻣﺘﻤﺎﯾﺰ ‪ m‬و ‪ m′‬وﺟﻮد دارﻧﺪ ﮐﻪ = )‪H(m‬‬
‫) ‪ H(m′‬اﺳﺖ‪ .‬ﻧﺸﺎن ﻣ دﻫﯿﻢ وﺟﻮد ﺑﺮﺧﻮرد ﺑﺮای ﺗﺎﺑﻊ ﭼ ﯿﺪهﺳﺎز ﻣﻨﺠﺮ ﺑﻪ ﯾﺎﻓﺘﻦ ﺑﺮﺧﻮردی ﺑﺮای ﺗﺎﺑﻊ ﻓﺸﺮدهﺳﺎز در‬
‫ﺟﺎﯾ از ﺳﺎﺧﺘﺎر ﺗ ﺮاری ﻣ ﺷﻮد‪ .‬ﻓﺮض ﮐﻨﯿﺪ ﻗﺎﻟﺐﻫﺎی ﭘﯿﺎمﻫﺎی ﭘﺪ ﺷﺪه ‪ m۱ , · · · , mb‬و ‪ m′۱ , · · · , m′b′‬ﺑﺎﺷﻨﺪ‪.‬‬
‫ﻫﻤﭽﻨﯿﻦ ﻃﻮلﻫﺎی ﭘﯿﺎمﻫﺎ را ﺑﺎ ‪ ℓ‬و ‪ ℓ′‬و ﻣﺘﻐﯿﺮﻫﺎی زﻧﺠﯿﺮهای ﻣﺘﻨﺎﻇﺮ را ‪ h۰ , h۱ , · · · , hb‬و ‪h′۰ = h۰ , h′۱ , · · · , h′b′‬‬
‫در ﻧﻈﺮ ﺑ ﯿﺮﯾﺪ‪ .‬ﺑﺪﯾﻦ ﻣﻨﻈﻮر دوﺣﺎﻟﺖ زﯾﺮ را در ﻧﻈﺮ ﻣ ﮔﯿﺮﯾﻢ‪:‬‬

‫• ﻃﻮل ﭘﯿﺎمﻫﺎی ‪ m‬و ‪ m′‬ﺑﺮاﺑﺮ اﺳﺖ‪:‬‬


‫در اﯾﻦﺻﻮرت ‪ ℓ = ℓ′‬و ‪ b = b′‬و ﺑﻨﺎﺑﺮاﯾﻦ‬
‫‪٧‬‬
‫‪chaining value‬‬
‫‪٨‬‬
‫‪Initial Value‬‬

‫‪١٨-٣‬‬
‫) ‪H(m) = f (hb , [ℓ]t‬‬
‫) ‪H(m′ ) = f (h′ b , [ℓ′ ]t‬‬
‫اﮔﺮ ‪ h′ b ̸= hb‬ﺑﺎﺷﺪ آﻧ ﺎه ﺑﺮﺧﻮردی ﺑﺮای ﺗﺎﺑﻊ ‪ f‬ﺑﺪﺳﺖ ﻣ آﯾﺪ‪ .‬درﻏﯿﺮ اﯾﻨﺼﻮرت ﯾ ﻗﺎﻟﺐ ﺑﻪ ﻋﻘﺐ ﺑﺮ‬
‫ﻣ ﮔﺮدﯾﻢ‪ .‬ﺣﺎل اﮔﺮ ) ‪ (h′ b−۱ , m′ b ) ̸= (hb−۱ , mb‬ﺑﺎﺷﺪ آﻧ ﺎه ﺑﺮﺧﻮردی ﯾﺎﻓﺘﻪ اﯾﻢ‪ .‬در ﻏﯿﺮ اﯾﻦ ﺻﻮرت اﯾﻦ‬
‫روﻧﺪ را ﺗﺎ ﯾﺎﻓﺘﻦ ﺑﺮﺧﻮردی ﺑﺮای ‪ f‬اداﻣﻪ ﻣ دﻫﯿﻢ‪ .‬ﺑﺎ ﺗﻮﺟﻪ ﺑﻪ اﯾﻨ ﻪ دو ﭘﯿﺎم ﻣﺘﻤﺎﯾﺮﻧﺪ ﭘﺲ ﺣﺪاﻗﻞ در ﯾ ﻗﺎﻟﺐ‬
‫ﺑﺎ ﻫﻢ ﻣﺘﻔﺎوت ﺧﻮاﻫﻨﺪ ﺑﻮد ﺑﻨﺎﺑﺮاﯾﻦ در روﻧﺪ ﺑﺎزﮔﺸﺘ ﺣﺘﻤﺎ ﺑﺮﺧﻮردی ﺑﺮای ‪ f‬ﺧﻮاﻫﯿﻢ ﯾﺎﻓﺖ‪.‬‬

‫• ﭘﯿﺎمﻫﺎی ‪ m‬و ‪ m′‬ﻃﻮل ﯾ ﺴﺎﻧ ﻧﺪارﻧﺪ‪:‬‬


‫در اﯾﻦ ﺻﻮرت ‪ ℓ ̸= ℓ′‬و ﺑﻨﺎﺑﺮاﯾﻦ‬
‫) ‪H(m) = f (hb , [ℓ]t‬‬
‫) ‪H(m′ ) = f (h′b′ , [ℓ′ ]t‬‬
‫) ‪H(m) = H(m′ ) ⇒ f (h′b′ , [ℓ′ ]t ) = f (hb , [ℓ]t‬‬
‫ﺑﺎ ﺗﻮﺟﻪ ﺑﻪ اﯾﻨ ﻪ ‪ ℓ ̸= ℓ′‬اﺳﺖ ﺑﻨﺎﺑﺮاﯾﻦ ) ‪ f (h′b′ , [ℓ′ ]t ) = f (hb , [ℓ]t‬ﺑﺮﺧﻮردی ﺑﺮای ﺗﺎﺑﻊ ‪ f‬ﻣ ﺑﺎﺷﺪ‪.‬‬

‫ﻧ ﺘﻪ ‪ ١‬ﻋ ﺲ ﮔﺰاره ﺑﺎﻻ ﻟﺰوﻣﺎﺑﺮﻗﺮار ﻧﯿﺴﺖ و ﺑﻪ ﻃﻮر ﮐﻠ ﻧﻤ ﺗﻮان ﺿﻌﻒﻫﺎی ﺗﺎﺑﻊ ﭼ ﯿﺪهﺳﺎز را ﺑﻪ ﺗﺎﺑﻊ ﻓﺸﺮدهﺳﺎز‬
‫ﺗﻌﻤﯿﻢ داد‪.‬‬

‫ﻧ ﺘﻪ ‪ ٢‬وارد ﮐﺮدن ﻃﻮل ﭘﯿﺎم در ﺳﺎﺧﺘﺎر ﻣﺮﮐﻞ‪-‬دﻣ ﺎرد ﺿﺮوری اﺳﺖ‪ .‬در ﻏﯿﺮ اﯾﻨﺼﻮرت ﻣ ﺗﻮان ﺗﻮاﺑﻊ ﻓﺸﺮدهﺳﺎز‬
‫ﺑﺮﺧﻮردﺗﺎﺑ ﯾﺎﻓﺖ ﮐﻪ ﺳﺎﺧﺘﺎر ﻣﺮﮐﻞ‪-‬دﻣ ﺎرد ﻣﺘﻨﺎﻇﺮ )ﺑﺪون ﻗﺎﻟﺐ ﻃﻮل ﭘﯿﺎم( ﺑﺮﺧﻮردﺗﺎب ﻧﺒﺎﺷﺪ )راﻫﻨﻤﺎﯾ ‪ :‬ﻓﺮض ﮐﻨﯿﺪ‬
‫ﺗﺎﺑﻊ ﻓﺸﺮدهﺳﺎز ﻧﻘﻄﻪ ﺛﺎﺑﺘ ﻣﺎﻧﻨﺪ )‪ IV = f (IV, m‬داﺷﺘﻪ ﺑﺎﺷﺪ‪(.‬‬

‫ﻧ ﺘﻪ ‪ ٣‬ﻗﻀﯿﻪ ﻣﺮﮐﻞ‪-‬دﻣ ﺎرد ﻧﺸﺎن ﻣ دﻫﺪ اﮔﺮ ﺗﺎﺑﻊ ﻓﺸﺮدهﺳﺎز اﯾﺪهآل ﺑﺎﺷﺪ ﺑﻪ ﻃﻮری ﮐﻪ ﺑﻬﺘﺮﯾﻦ ﺣﻤﻠﻪ ﺑﺮﺧﻮرد ﺑﺮای‬
‫آن دارای ﭘﯿﭽﯿﺪﮔ ‪ ۲n/۲‬ﺑﺎﺷﺪ‪ ،‬ﺑﻬﺘﺮﯾﻦ ﺣﻤﻠﻪ ﺑﺮﺧﻮرد ﻋﻠﯿﻪ ﺗﺎﺑﻊ ﭼ ﯿﺪهﺳﺎز ﻧﯿﺰ دارای ﻫﻤﺎن ﭘﯿﭽﯿﺪﮔ اﺳﺖ‪ .‬ﺑﺎ اﯾﻦ‬
‫وﺟﻮد ﺳﺎﺧﺘﺎر ﻣﺮﮐﻞ‪-‬دﻣ ﺎرد ﻧﺴﺒﺖ ﺑﻪ ﭘﯿﺶﺗﺼﻮﯾﺮﺗﺎﺑ اﯾﺪهال ﻋﻤﻞ ﻧﻤ ﮐﻨﺪ؛ زﯾﺮا ﺣﻤﻼﺗ ﺑﺎ ﭘﯿﭽﯿﺪﮔ ﺑﻬﺘﺮی از ‪۲n‬‬
‫ﻋﻠﯿﻪ آن وﺟﻮد دارد‪.‬‬

‫ﻃﺮاﺣ ﺗﻮاﺑﻊ ﻓﺸﺮدهﺳﺎز‬ ‫‪١.۴‬‬


‫در ﺑﺨﺶ ﻗﺒﻞ دﯾﺪﯾﻢ در ﺻﻮرت وﺟﻮد ﯾ ﺗﺎﺑﻊ ﻓﺸﺮدهﺳﺎز ﺑﺮﺧﻮردﺗﺎب‪ ،‬ﻣ ﺗﻮان ﺗﺎﺑﻊ ﭼ ﯿﺪهﺳﺎز ﺑﺮﺧﻮردﺗﺎب ﻃﺮاﺣ‬
‫ﮐﺮد‪ .‬ﺣﺎل در اﯾﻦ ﺑﺨﺶ ﺑﻪ ﭼ ﻮﻧ ﻃﺮاﺣ ﺗﺎﺑﻊ ﻓﺸﺮدهﺳﺎز ﻣﻘﺎوم در ﺑﺮاﺑﺮ ﺑﺮﺧﻮرد ﻣ ﭘﺮدازﯾﻢ‪ .‬ﯾ از روش ﻫﺎی راﯾﺞ‬
‫در ﻃﺮاﺣ ﺗﻮاﺑﻊ ﻓﺸﺮدهﺳﺎز اﺳﺘﻔﺎده از رﻣﺰﻫﺎی ﻗﺎﻟﺒ اﺳﺖ‪ .‬ﻓﺮض ﮐﻨﯿﻢ ‪E : {۰, ۱}t × {۰, ۱}n → {۰, ۱}n‬‬
‫ﯾ رﻣﺰﻗﺎﻟﺒ ﺑﺎﺷﺪ‪.‬‬
‫اﯾﺪه اوﻟﯿﻪ ﻃﺮاﺣ ﺗﺎﺑﻊ ﻓﺸﺮدهﺳﺎز ‪ f‬ﺑﻪ اﯾﻦ ﺻﻮرت اﺳﺖ ﮐﻪ در رﻣﺰﻗﺎﻟﺒ ‪ E‬ﭘﯿﺎم ورودی را ﺑﻪ ﻋﻨﻮان ﮐﻠﯿﺪ اﺻﻠ و‬
‫ﻣﻘﺪار ‪ hi‬را ﺑﻪ ﻋﻨﻮان ﻣﺘﻦ اﺻﻠ ورودی در ﻧﻈﺮ ﺑ ﯿﺮﯾﻢ‪ .‬ﺳﺎﺧﺘﺎر ﺗﺎﺑﻊ ‪ f‬را در ﺷ ﻞ ‪ ٢-١٧‬ﻣﺸﺎﻫﺪه ﻣ ﮐﻨﯿﻢ‪.‬‬

‫‪١٨-۴‬‬
‫‪hi‬‬

‫‪mi+۱‬‬ ‫▷‬ ‫‪E‬‬

‫‪.‬‬
‫‪hi+۱‬‬
‫ﺷ ﻞ ‪. ٢-١٧‬‬

‫ﺗﺎﺑﻊ ‪ f‬ﻣﻄﺎﺑﻖ راﺑﻄﻪ زﯾﺮ ﻣ ﺑﺎﺷﺪ‪.‬‬

‫) ‪hi+1 = f (hi , mi+1 ) = Emi+1 (hi‬‬

‫ﺣﺎل ﺳﻮاﻟ ﮐﻪ ﻣﻄﺮح ﻣ ﺷﻮد اﯾﻦ اﺳﺖ ﮐﻪ آﯾﺎ ﺗﺎﺑﻊ ﻓﺸﺮدهﺳﺎز ﺑﺎ ﺳﺎﺧﺘﺎر ﻣﻌﺮﻓ ﺷﺪه ﺑﺮﺧﻮردﺗﺎب اﺳﺖ؟ ﭘﺎﺳﺦ ﺑﻪ‬
‫اﯾﻦ ﭘﺮﺳﺶ ﻣﻨﻔ اﺳﺖ‪ .‬ﻣﻬﺎﺟﻢ ﻣ ﺗﻮاﻧﺪ ﺑﻪ راﺣﺘ ﺑﺮای ﻫﺮ ﺧﺮوﺟ دﻟﺨﻮاه ‪ hi+۱‬از ﺗﺎﺑﻊ ﻓﺸﺮدهﺳﺎز ﺑﻪ ﺗﻌﺪاد دﻟﺨﻮاه‬
‫ﭘﯿﺶﺗﺼﻮﯾﺮ ﺑﺴﺎزد‪ ).‬ﺑﺮای اﯾﻦ ﮐﺎر ﮐﻠﯿﺪ دﻟﺨﻮاه( ‪ mi+۱‬را اﻧﺘﺨﺎب ﻣ ﮐﻨﺪ و ﻣﻘﺪار ) ‪ E −۱ mi+۱ (hi+۱‬را ﻣﺤﺎﺳﺒﻪ‬
‫ﻣ ﮐﻨﺪ‪ .‬ﺑﻪ وﺿﻮح ) ‪ mi+۱ , E −۱ mi+۱ (hi+۱‬ﭘﯿﺶﺗﺼﻮﯾﺮی ﺑﺮای ‪ hi+۱‬اﺳﺖ‪.‬‬
‫ﺑﺮای ﺳﺎﺧﺘﻦ ﺑﺮﺧﻮرد ﺑﻪ ﻋﻨﻮان ﻣﺜﺎل ﻣﻬﺎﺟﻢ ﺧﺮوﺟ ‪ hi+۱ = ۰n‬و ﭘﯿﺎمﻫﺎی ﻣﺘﻤﺎﯾﺰ ‪ mi+۱ = ۰n‬و ‪m′ i+۱ = ۱n‬‬
‫را درﻧﻈﺮ ﻣ ﮔﯿﺮد‪ .‬ﺣﺎل ﺑﺎ ﻣﺤﺎﺳﺒﻪ ورودیﻫﺎی ‪ hi‬و ‪ h′i‬ﺑﻪ ﺻﻮرت زﯾﺮ ﺑﺮﺧﻮردی ﺑﺮای ﺗﺎﺑﻊ ‪ f‬ﻣ ﯾﺎﺑﺪ‪.‬‬
‫‪−۱‬‬
‫‪hi = E m‬‬ ‫‪i+۱‬‬
‫) ‪(hi+۱ ) = E −۱ ۰n (۰n‬‬
‫‪−۱‬‬
‫‪h′i = Em‬‬ ‫‪′‬‬ ‫) ‪(hi+۱ ) = E −۱ ۱n (۰n‬‬
‫‪i+۱‬‬ ‫) ‪=⇒ f (hi , mi+۱ ) = f (h′i , m′i‬‬
‫‪f (hi , mi+۱ ) = Emi+۱ (hi+۱ ) = ۰n‬‬
‫‪f (h′i , m′i+۱ ) = Em′i+۱ (h′i+۱ ) = ۰n‬‬
‫در اداﻣﻪ ﺑﻪ ﻣﻌﺮﻓ ﻃﺮحﻫﺎی دﯾﻮﯾﺲ‪-‬ﻣﯿﺮ ‪ ٩‬و ﻣﺎﺗﯿﺎس‪-‬ﻣﯿﺮ‪-‬اوﺳﯿﺎس ‪ ١٠‬ﻣ ﭘﺮدازﯾﻢ ﮐﻪ راهﺣﻞﻫﺎﯾ ﺑﺮای رﻓﻊ ﻣﺸ ﻞ ﻓﻮق‬
‫ﻣ ﺑﺎﺷﻨﺪ‪.‬‬
‫‪٩‬‬
‫‪Davies–Meyer‬‬
‫‪١٠‬‬
‫‪Matyas–Meyer–Oseas‬‬

‫‪١٨-۵‬‬
‫ﻃﺮح ‪Davies-Meyer‬‬ ‫‪٢.۴‬‬
‫‪hi‬‬

‫‪mi+۱‬‬ ‫▷‬ ‫‪E‬‬

‫‪.‬‬ ‫⊕‬
‫‪hi+۱‬‬

‫ﺷ ﻞ ‪ :٣-١٧‬ﻃﺮح دﯾﻮﯾﺲ‪-‬ﻣﯿﺮ‬

‫ﻣﺤﺎﺳﺒﻪ ﺗﺎﺑﻊ ﻓﺸﺮدهﺳﺎز در اﯾﻦ ﻃﺮح ﺑﻪ ﺻﻮرت زﯾﺮ اﺳﺖ‪.‬‬


‫‪hi+1 = f (hi , mi+1 ) = Emi+1 (hi ) ⊕ hi‬‬

‫• در اﯾﻦ ﻃﺮح ﻣ ﺗﻮان از ﻫﺮ رﻣﺰ ﻗﺎﻟﺐ دﻟﺨﻮاه اﺳﺘﻔﺎده ﻧﻤﻮد‪.‬‬

‫رﻣﺰﻗﺎﻟﺒ اﯾﺪهآل ﺑﺎﺷﺪ آﻧ ﺎه ﯾﺎﻓﺘﻦ ﺑﺮﺧﻮرد ﻧﯿﺎز ﺑﻪ ﻣﺤﺎﺳﺒﻪ ‪ ۲n/۲‬ﭘﯿﺎم ورودی دارد‪.‬‬ ‫• اﮔﺮ ‪ E‬ﯾ‬

‫ﻃﺮح ‪Matyas-Meyer-Oseas‬‬ ‫‪٣.۴‬‬


‫‪mi+۱‬‬

‫‪hi‬‬ ‫▷‬ ‫‪E‬‬

‫‪.‬‬ ‫⊕‬
‫‪hi+۱‬‬

‫ﺷ ﻞ ‪ :۴-١٧‬ﻃﺮح ﻣﺎﺗﯿﺎس‪-‬ﻣﯿﺮ‪-‬اوﺳﯿﺎس‬

‫ﺑﺮای ﻣﺤﺎﺳﺒﻪ ﺗﺎﺑﻊ ﻓﺸﺮدهﺳﺎز در اﯾﻦ ﻃﺮح از راﺑﻄﻪ زﯾﺮ اﺳﺘﻔﺎده ﻣ ﺷﻮد‪.‬‬
‫‪hi+1 = f (hi , mi+1 ) = Ehi (mi+1 ) ⊕ mi+1‬‬

‫‪١٨-۶‬‬
‫• در اﯾﻦ ﻃﺮح از رﻣﺰ ﻗﺎﻟﺒ اﺳﺘﻔﺎده ﺷﻮد ﮐﻪ ﻃﻮل ﻗﺎﻟﺐ ورودی و ﻃﻮل ﮐﻠﯿﺪ آن ﯾ ﺴﺎن ﺑﺎﺷﺪ‪.‬‬

‫رﻣﺰﻗﺎﻟﺒ اﯾﺪهآل ﺑﺎﺷﺪ آﻧ ﺎه ﯾﺎﻓﺘﻦ ﺑﺮﺧﻮرد ﻧﯿﺎز ﺑﻪ ﻣﺤﺎﺳﺒﻪ ‪ ۲n/۲‬ﭘﯿﺎم ورودی دارد‪.‬‬ ‫• اﮔﺮ ‪ E‬ﯾ‬

‫ﻃﺮاﺣ ﺗﻮاﺑﻊ ﭼ ﯿﺪهﺳﺎز در ﺳﺎﺧﺘﺎر اﺳﻔﻨﺠ‬ ‫‪۵‬‬


‫ﺑﺮای ﺳﺎﺧﺖ ﯾ ﺗﺎﺑﻊ ﭼ ﯿﺪهﺳﺎز ﺑﺎ ﻃﻮل ورودی دﻟﺨﻮاه و ﻃﻮل ﺧﺮوﺟ ﻣﻄﻠﻮب در ﺳﺎﺧﺘﺎر اﺳﻔﻨﺠ از ﯾ ﺳﺎﺧﺘﺎر‬
‫ﺗ ﺮار ﺷﻮﻧﺪه ﺑﺮﻣﺒﻨﺎی ﯾ ﺟﺎﯾ ﺸﺖ ‪ ١١‬ﺷﺒﻪﺗﺼﺎدﻓ اﺳﺘﻔﺎده ﻣ ﺷﻮد‪ .‬در ﺷ ﻞ ﻓﻮق ‪ π‬ﯾ ﺟﺎﯾ ﺸﺖ روی ‪{۰, ۱}r+c‬‬
‫اﺳﺖ ﮐﻪ ‪ r‬ﻧﺮخ ﺑﯿﺖ ‪ ١٢‬و ‪ c‬ﻇﺮﻓﯿﺖ ‪ ١٣‬ﻧﺎﻣﯿﺪه ﻣ ﺷﻮد‪ .‬ﭘﺲ از اﻋﻤﺎل ﭘﺪﯾﻨ روی ﭘﯿﺎم ورودی ‪) m‬ﺑﺎ اﺿﺎﻓﻪ ﮐﺮدن ﯾ‬
‫ﺑﯿﺖ ﯾ و ﺑﻪ ﺗﻌﺪاد ﻻزم ﺑﯿﺖ ﺻﻔﺮ( و ﺗﻘﺴﯿﻢ آن ﺑﻪ ‪ b‬ﻗﺎﻟﺐ ‪ r‬ﺑﯿﺘ ‪ ،m۱ , m۲ , ..., mb‬ﻣﻘﺪار ﭼ ﯿﺪه ﻣﻄﺎﺑﻖ ﺷ ﻞ‬
‫‪ ۵-١٧‬ﻣﺤﺎﺳﺒﻪ ﻣ ﺷﻮد‪ .‬اﺑﺘﺪا ﻗﺎﻟﺐﻫﺎی ﭘﯿﺎم ﭘﺪ ﺷﺪه اﺻﻄﻼﺣﺎً ﺗﻮﺳﻂ ﺟﺎﯾ ﺸﺖ ﺟﺬب ﻣ ﺷﻮﻧﺪ‪ .‬ﺳﭙﺲ ﺑﺎ اﻋﻤﺎل‬
‫ﻣﺠﺪد ﺟﺎﯾ ﺸﺖ ﺑﻪ ﺗﻌﺪاد ﻻزم‪ ،‬ﭼ ﯿﺪه ﭘﯿﺎم ﺑﻪ ﻃﻮل ﻣﻮرد ﻧﯿﺎز ﺗﻮﻟﯿﺪ ﻣ ﺷﻮد‪.‬‬

‫) ‪(x۰ , y۰ ) = IV = (۰r , ۰c‬‬


‫‪(xi+۱ , yi+۱ ) = π(xi ⊕ mi+۱ , yi ) i = ۰, ۱, · · · , b − ۱‬‬
‫) ‪(xi+۱ , yi+۱ ) = π(xi , yi‬‬ ‫· · · ‪i = b, b + ۱,‬‬
‫) · · · || ‪H(m) = truncn (xb ||xb+۱‬‬
‫ﺗﺎﺑﻊ )·( ‪ truncn‬ﻓﻘﻂ ‪ n‬اول دﻧﺒﺎﻟﻪی ورودی را در ﻧﻈﺮ ﻣ ﮔﯿﺮد‪.‬‬

‫)·( ‪H(m) = truncn‬‬


‫‪m۱‬‬ ‫‪m۲‬‬ ‫‪mb‬‬
‫‪..‬‬
‫‪..‬‬
‫‪..‬‬
‫‪..‬‬
‫‪IV۱ = ۰r‬‬ ‫⊕‬ ‫⊕‬ ‫⊕‬ ‫‪..‬‬
‫‪...‬‬ ‫‪..‬‬ ‫‪...‬‬
‫‪π‬‬ ‫‪π‬‬ ‫‪π‬‬ ‫‪..‬‬ ‫‪π‬‬
‫‪IV۲ = ۰‬‬ ‫‪c‬‬ ‫‪..‬‬
‫‪..‬‬
‫‪..‬‬
‫‪.‬‬
‫‪.‬‬
‫ﺷ ﻞ ‪ :۵-١٧‬ﺳﺎﺧﺘﺎر اﺳﻔﻨﺠ‬

‫• درﺻﻮرﺗ ﮐﻪ ‪ π‬ﯾ ﺟﺎﯾ ﺸﺖ اﯾﺪهآل ﺑﺎﺷﺪ آﻧ ﺎه ﻣﺸﺮوط ﺑﺮ اﻧﺘﺨﺎب ﻣﻨﺎﺳﺐ ﭘﺎراﻣﺘﺮ ﻇﺮﻓﯿﺖ ‪ c‬ﺗﺎﺑﻊ ﭼ ﯿﺪهﺳﺎز‬
‫‪ H‬اﯾﺪهآل ﺧﻮاﻫﺪ ﺑﻮد‪.‬‬

‫ﺗﺎﺑﻊ ﭼ ﯿﺪهﺳﺎز اﯾﺪهآل و‬ ‫• ﭘﯿﭽﯿﺪﮔ ﻫﺮ ﺣﻤﻠﻪای ﺑﻪ ﺳﺎﺧﺘﺎر اﺳﻔﻨﺠ ﻣﺤﺪود ﺑﻪ ﭘﯿﭽﯿﺪﮔ ﺑﻬﺘﺮﯾﻦ ﺣﻤﻠﻪ ﺑﻪ ﯾ‬
‫‪ ۲c/۲‬اﺳﺖ‪.‬‬

‫• ﺑﻨﺎﺑﺮاﯾﻦ اﮔﺮ ‪ n > c‬ﺑﺎﺷﺪ‪ ،‬ﺑﻬﺘﺮﯾﻦ ﺣﻤﻠﻪ ﺑﺮﺧﻮرد دارای ﭘﯿﭽﯿﺪﮔ ‪ ۲c/۲‬ﺧﻮاﻫﺪ ﺑﻮد )ﭼﻨﯿﻦ ﺣﻤﻠﻪای را ﺑﯿﺎﺑﯿﺪ(‪.‬‬
‫‪١١‬‬
‫‪permutation‬‬
‫‪١٢‬‬
‫‪bit-rate‬‬
‫‪١٣‬‬
‫‪capacity‬‬

‫‪١٨-٧‬‬
‫ﺗﻮاﺑﻊ ﭼ ﯿﺪهﺳﺎز ﻣﻬﻢ‬ ‫‪۶‬‬
‫• ‪ :SHA-1‬اﯾﻦ اﻟ ﻮرﯾﺘﻢ ﺗﻮﺳﻂ ‪ ١۴ NSA‬در ﺳﺎﺧﺘﺎر ﻣﺮﮐﻞ‪-‬دﻣ ﺎرد‪ ،‬ﻃﺮاﺣ ﺷﺪه اﺳﺖ و در ﺳﺎل ‪١٩٩۵‬‬
‫ﺗﻮﺳﻂ ‪ ١۵ NIST‬اﻧﺘﺸﺎر ﯾﺎﻓﺖ‪ .‬ﻃﻮل ﺧﺮوﺟ اﯾﻦ اﻟ ﻮرﯾﺘﻢ ‪ ١۶٠‬ﺑﯿﺖ وﻃﻮل ﻗﺎﻟﺐ آن ‪ ۵١٢‬ﺑﯿﺖ اﺳﺖ‪ .‬در ﺳﺎل‬
‫‪ ٢٠٠۵‬ﻧﺸﺎن داده ﺷﺪ ﮐﻪ ﺑﺎ ﻣﺤﺎﺳﺒﻪ ‪ ۲۶۹‬ﻣﻘﺪار ورودی ﻣ ﺗﻮان ﺑﺮﺧﻮردی ﺑﺮای اﯾﻦ اﻟ ﻮرﯾﺘﻢ ﭘﯿﺪا ﮐﺮد‪ .‬ﺑﺎ‬
‫وﺟﻮد اﻟ ﻮرﯾﺘﻢﻫﺎی اﻧﺪﮐ ﺑﻬﺘﺮ ﻫﻨﻮز ﺑﺮﺧﻮردی ﺑﺮای اﯾﻦ ﺗﺎﺑﻊ ﭘﯿﺪا ﻧﺸﺪه اﺳﺖ‪.‬‬
‫ﭘﯿﺶ از ﺳﺎل ‪ SHA-1 ،٢٠١٠‬ﮐﺎرﺑﺮدﻫﺎی ﮔﺴﺘﺮدهای در اﻣﻀﺎی دﯾﺠﯿﺘﺎل ‪ DSS‬و ﭘﺮوﺗ ﻞﻫﺎی ‪TLS ،SSL‬‬
‫و ‪ PGP‬داﺷﺘﻪ اﺳﺖ‪ .‬در ﺣﺎل ﺣﺎﺿﺮ در ﺑﻌﻀ از ﻣﻮارد ‪ SHA-1‬ﺑﺎ ‪ SHA-2‬ﺟﺎﯾ ﺰﯾﻦ ﮔﺮدﯾﺪه اﺳﺖ‪.‬‬

‫• ‪ :SHA-2‬ﻣﺆﺳﺴﻪ ‪ NIST‬ﭼﻬﺎر ﺗﺎﺑﻊ ﭼ ﯿﺪهﺳﺎز ﮐﻪ ﺑﺮ اﺳﺎس ﻃﻮل ﺧﺮوﺟ ﺷﺎن ﻧﺎﻣ ﺬاری ﺷﺪه ﺑﻮدﻧﺪ ﺑﻪ ﻧﺎم‬
‫ﻫﺎی ‪ SHA-256 ،SHA-384 ،SHA-512‬و ‪ SHA-224‬ﻣﻌﺮوف ﺑﻪ ﺧﺎﻧﻮاده ‪ SHA-2‬را ﻣﻌﺮﻓ ﮐﺮد‪ .‬اﯾﻦ‬
‫ﺧﺎﻧﻮاده از ﻟﺤﺎظ ﺳﺎﺧﺘﺎری ﻣﺸﺎﺑﻪ ‪ SHA-1‬ﻫﺴﺘﻨﺪ‪ .‬اﻣﺎ ﺑﻪ ﻃﻮر ﮐﻠ اﯾﻦ ﺧﺎﻧﻮاده ﺑﺎ اﺳﺘﻘﺒﺎل ﮔﺴﺘﺮدهای روﺑﺮو‬
‫ﻧﺸﺪ‪.‬‬

‫• ‪ :MD5‬اﯾﻦ اﻟ ﻮرﯾﺘﻢ در ﺳﺎل ‪ ١٩٩٢‬ﺗﻮﺳﻂ ران رﯾﻮﺳﺖ ‪ ١۶‬در ﺳﺎﺧﺘﺎر ﻣﺮﮐﻞ‪-‬دﻣ ﺎرد ﺑﺎ ﻃﻮل ﻗﺎﻟﺐ ‪ ۵١٢‬ﺑﯿﺖ‬
‫وﻃﻮل ﺧﺮوﺟ ‪ ١٢٨‬ﺑﯿﺖ ﻃﺮاﺣ ﮔﺮدﯾﺪ‪ .‬ﺣﻤﻠﻪ ﺑﺮﺧﻮرد ﺑﻪ ﺗﺎﺑﻊ ﻓﺸﺮدهﺳﺎز اﯾﻦ اﻟ ﻮرﯾﺘﻢ در ﺳﺎل ‪ ١٩٩۶‬اراﯾﻪ‬
‫ﺷﺪه اﺳﺖ‪.‬‬

‫• ‪ :SHA-3‬ﻣﻮﺳﺴﻪ ‪ NIST‬درﺳﺎل ‪ ٢٠٠٧‬ﻣﺴﺎﺑﻘﻪ ﻃﺮاﺣ اﻟ ﻮرﯾﺘﻢ درﻫﻢ ﺳﺎز‪ ،‬ﺑﺎ ﻋﻨﻮان ‪ SHA-3‬را ﺑﺮﮔﺰار‬
‫ﻧﻤﻮد‪ .‬از ﻣﯿﺎن ‪ ۵١‬ﮐﺎﻧﺪﯾﺪای اوﻟﯿﻪ ﻧﻬﺎﯾﺘﺎً اﻟ ﻮرﯾﺘﻢ ‪ Keccak‬ﮐﻪ در ﺳﺎﺧﺘﺎر اﺳﻔﻨﺠ ‪ ،‬ﻃﺮاﺣ ﺷﺪه ﺑﻮد ﺑﻪ ﻋﻨﻮان‬
‫اﻟ ﻮرﯾﺘﻢ ﺑﺮﺗﺮ اﻧﺘﺨﺎب ﮔﺮدﯾﺪ و ﺗﻮﺳﻂ ‪ NIST‬اﺳﺘﺎﻧﺪارد ﺷﺪه اﺳﺖ‪.‬‬

‫‪١۴‬‬
‫‪National Security Agency‬‬
‫‪١۵‬‬
‫‪National Institute of Standards and Technology‬‬
‫‪١۶‬‬
‫‪Ron Rivest‬‬

‫‪١٨-٨‬‬
‫ﺑﻪ ﻧﺎم ﺧﺪا‬

‫داﻧﺸ ﺪهی ﻋﻠﻮم رﯾﺎﺿ‬

‫آذر ‪١٣٩٢‬‬ ‫ﻣﻘﺪﻣﻪای ﺑﺮ رﻣﺰﻧ ﺎری‬

‫ﺟﻠﺴﻪی ‪ :١٨‬ﺳﺎﺧﺘﻦ ﺗﻮاﺑﻊ ﭼ ﯿﺪه ﺳﺎز و ﻃﺮاﺣ ﺳﯿﺴﺘﻢ ‪ CCA‬اﻣﻦ‬


‫ﻧ ﺎرﻧﺪه‪ :‬ﻟﻌﯿﺎ ﻗﺪرﺗ‬ ‫ﻣﺪرس‪ :‬دﮐﺘﺮ ﺷﻬﺮام ﺧﺰاﺋ‬

‫در اﯾﻦ ﺟﻠﺴﻪ ﺳﻌ دارﯾﻢ ﮐﻪ ﺑﻌﻀ از روش ﻫﺎی ﺳﺎﺧﺘﻦ ﯾ ﺗﺎﺑﻊ ﭼ ﯿﺪه ﺳﺎز ‪١‬ﻣﻘﺎوم در ﺑﺮاﺑﺮ ﺑﺮﺧﻮرد را ﺑﺮرﺳ‬
‫ﮐﻨﯿﻢ‪ .‬ﺳﺎﺧﺘﺎر ﻫﺎی ‪ Merkle-Damgard‬و اﺳﻔﻨﺠ ‪ ٢‬دو روش ﮐﻠ ﺑﺮای ﻃﺮاﺣ ﺗﻮاﺑﻊ ﭼ ﯿﺪه ﺳﺎز ﻣﻘﺎوم در ﺑﺮاﺑﺮ‬
‫ﺑﺮﺧﻮرد ﺑﺎ ﻃﻮل ورودی دﻟﺨﻮاه ﻫﺴﺘﻨﺪ‪.‬ﮐﻪ در ﻫﺮ دو روش ﺑﺮای ﺳﺎﺧﺖ ﺗﻮاﺑﻊ ﭼ ﯿﺪه ﺳﺎز از ﺗﺎﺑﻌ ﻓﺸﺮده ﺳﺎز ‪ ٣‬ﺑﺎ‬
‫ﻃﻮل ورودی ﺛﺎﺑﺖ اﺳﺘﻔﺎده ﻣ ﺷﻮد‪.‬‬
‫در واﻗﻊ اﯾﻦ ﺳﺎﺧﺘﺎرﻫﺎ روﺷ ﺑﺮای ﺗﺒﺪﯾﻞ ﯾ ﺗﺎﺑﻊ ﻓﺸﺮده ﺳﺎز ﻣﻘﺎوم در ﺑﺮاﺑﺮ ﺑﺮﺧﻮرد ﺑﺎ ﻃﻮل ورودی ﺛﺎﺑﺖ‪ ،‬ﺑﻪ ﺗﺎﺑﻊ‬
‫ﭼ ﯿﺪه ﺳﺎز ﻣﻘﺎوم در ﺑﺮاﺑﺮ ﺑﺮﺧﻮردی اﺳﺖ ﮐﻪ ﻣ ﺗﻮاﻧﺪ روی ورودی ﺑﺎ ﻫﺮ ﻃﻮﻟ ﻋﻤﻞ ﮐﻨﺪ‪.‬‬
‫در ﺟﻠﺴﻪ ی ﮔﺬﺷﺘﻪ ﺳﺎﺧﺘﺎر ‪ Merkle-Damgard‬ﺑﺮرﺳ ﺷﺪ‪ .‬در اﯾﻦ ﺟﻠﺴﻪ ﺗﻌﺪادی از ﻣﺪﻫﺎی ﺗﻮاﺑﻊ ﻓﺸﺮده ﺳﺎز‬
‫ﺑﺮرﺳ ﻣ ﺷﻮد و ﺳﭙﺲ ﺳﺎﺧﺘﺎر اﺳﻔﻨﺠ را ﻣﻌﺮﻓ ﻣ ﮐﻨﯿﻢ‪.‬‬

‫‪ ١‬ﺳﺎﺧﺘﻦ ﺗﻮاﺑﻊ ﻓﺸﺮده ﺳﺎز‬


‫ﺑﺮای ﺳﺎﺧﺘﻦ ﯾ ﺗﺎﺑﻊ ﻓﺸﺮده ﺳﺎز‪ ،‬اﯾﺪه اوﻟﯿﻪ ﮐﻪ ﻣﻤ ﻦ اﺳﺖ ﺑﻪ ذﻫﻦ ﺑﺮﺳﺪ اﺳﺘﻔﺎده از رﻣﺰﻫﺎی ﻗﺎﻟﺒ ‪ ۴‬اﺳﺖ‪ .‬ﺑﺮای‬
‫ﻣﺜﺎل ﻣ ﺗﻮاﻧﯿﻢ ﻗﺮار دﻫﯿﻢ‪:‬‬

‫)‪f (h, m) = Eh (m‬‬


‫ﺑﺮای ﭼﻨﯿﻦ ﺗﺎﺑﻌ ﺑﻪ راﺣﺘ ﺑﺎ در دﺳﺖ داﺷﺘﻦ ‪ E −۱‬ﻣ ﺗﻮاﻧﯿﻢ ﺑﺮﺧﻮرد ﺑﺴﺎزﯾﻢ‪ .‬درواﻗﻊ ) ‪ (h۱ , m۱‬و ) ‪ (h۲ , m۲‬را‬
‫ﻣ ﯾﺎﺑﯿﻢ ﮐﻪ ﻣﻘﺪار ‪ f‬ﺑﺮاﯾﺸﺎن ﺑﺮاﺑﺮ ﺑﺎﺷﺪ‪.‬‬

‫‪m۱ = E۱−۱‬‬ ‫‪n‬‬


‫) ‪n (۰‬‬

‫‪،‬‬
‫‪m۲ = E۱−۱‬‬ ‫‪n‬‬
‫) ‪n (۰‬‬

‫در اﯾﺪه ﻗﺒﻞ ﺗﺎﺑﻊ ﻣﻘﺎوم در ﺑﺮاﺑﺮ ﺑﺮﺧﻮرد ﺧﻮاﻫﺪ ﺷﺪ‪.‬ﺑﻪ‬ ‫ﮐﻪ ‪ E‬ﯾ رﻣﺰ ﻗﺎﻟﺒ ﺑﺎ ﮐﻠﯿﺪ ‪ h‬اﺳﺖ‪ .‬اﻣﺎ ﺑﺎ ﺗﻐﯿﯿﺮ ﮐﻮﭼ‬
‫ﺗﻮاﺑﻌ ﮐﻪ در اداﻣﻪ ﻣ آﯾﺪ دﻗﺖ ﮐﻨﯿﺪ‪.‬‬
‫‪١‬‬
‫‪Hash Function‬‬
‫‪٢‬‬
‫‪Sponge Construction‬‬
‫‪٣‬‬
‫‪Compress Function‬‬
‫‪۴‬‬
‫‪block cipher‬‬

‫‪١٨-١‬‬
‫ﺷ ﻞ ‪ :١‬اﺳﺘﻔﺎده از رﻣﺰ ﻗﺎﻟﺒ‬

‫ﺗﺎﺑﻊ ﻓﺸﺮده ﺳﺎز ‪Oseas-Meyer-Matyas‬‬ ‫‪٢‬‬


‫اﯾﻦ ﺗﺎﺑﻊ ﺑﻪ اﯾﻦ ﺻﻮرت اﺳﺖ ﮐﻪ اﺑﺘﺪا ورودی ﺑﻪ ﺻﻮرت ﺗﻌﺪادی ﺑﻼک ﺗﺠﺰﯾﻪ ﻣ ﺷﻮد و ﻫﺮ ﺑﻼک ‪ xi‬ﺑﻪ ﻋﻨﻮان ﮐﻠﯿﺪ‬
‫رﻣﺰ ﻗﺎﻟﺒ ‪ E‬در ﻧﻈﺮ ﮔﺮﻓﺘﻪ ﻣ ﺷﻮد‪.‬و در ﻣﺮﺣﻠﻪ ‪ i‬ﺧﺮوﺟ ﻣﺮﺣﻠﻪ ی ﻗﺒﻞ‪، Hi−۱ ،‬ﺑﻪ ﻋﻨﻮان ورودی ﺑﻪ ‪ Exi‬داده ﻣ‬
‫ﺷﻮد و ﺳﭙﺲ دوﺑﺎره ﺑﺎ ‪ xor Hi−۱‬ﻣ ﺷﻮد‪.‬در واﻗﻊ دارﯾﻢ‪:‬‬

‫‪Hi = Exi (Hi−۱ ) ⊕ Hi−۱‬‬


‫و ‪.H۰ = IV‬‬

‫ﺷ ﻞ ‪Oseas-Meyer-Matyas :٢‬‬

‫‪١٨-٢‬‬
‫ﺗﺎﺑﻊ ﻓﺸﺮده ﺳﺎز ‪Davies- Meyer‬‬ ‫‪٣‬‬
‫اﯾﻦ ﺗﺎﺑﻊ ﻓﺸﺮده ﺳﺎز ﺷﺒﺎﻫﺖ زﯾﺎدی ﺑﺎ ﺗﺎﺑﻊ ﻗﺒﻠ دارد‪ ،‬ﺗﻨﻬﺎ ﺗﻔﺎوت اﯾﻦ اﺳﺖ ﮐﻪ اﯾﻨﺒﺎر ﻫﺮ ﺑﻼک ورودی‪ ،xi ،‬ﺑﻪ ﻋﻨﻮان‬
‫ورودی ﺑﻪ رﻣﺰ ﻗﺎﻟﺒ ‪ EHi−۱‬داده ﻣ ﺷﻮد ﮐﻪ ‪ Hi−۱‬ﺧﺮوﺟ ﻣﺮﺣﻠﻪ ی ﻗﺒﻞ اﺳﺖ‪ .‬ﻟﺬا دارﯾﻢ‪:‬‬

‫‪Hi = EHi−۱ (xi ) ⊕ xi‬‬

‫و ‪.H۰ = IV‬‬

‫ﺷ ﻞ ‪Davies- Meyer :٣‬‬

‫‪ ۴‬ﺳﺎﺧﺘﺎر اﺳﻔﻨﺠ‬
‫ﺳﺎﺧﺘﺎر اﺳﻔﻨﺠ ‪ ۵‬ﯾ ﺳﺎﺧﺘﺎر ﺳﺎده ی ﺗ ﺮار ﺷﻮﻧﺪه اﺳﺖ ﮐﻪ ﺑﺮای ﺳﺎﺧﺘﻦ ﯾ ﺗﺎﺑﻊ ‪ F‬ﺑﺎ اﻧﺪازه ی ورودی و ﺧﺮوﺟ‬
‫دﻟﺨﻮاه اﺳﺘﻔﺎده ﻣ ﺷﻮد و از ﯾ ﺟﺎﯾ ﺸﺖ ‪ f‬ﮐﻪ روی ‪ b‬ﺑﯿﺖ ﻋﻤﻞ ﻣ ﮐﻨﺪ ﺳﺎﺧﺘﻪ ﻣ ﺷﻮد‪ .‬اﯾﻦ ﺳﺎﺧﺘﺎر روی‬
‫‪ b = r + c‬ﺑﯿﺖ ﻋﻤﻞ ﻣ ﮐﻨﺪ ﮐﻪ ﺑﻪ اﯾﻦ ‪ r‬ﺑﯿﺖ ‪ bitrate‬و ﺑﻪ ‪ c‬ﺑﯿﺖ دﯾ ﺮ ﻇﺮﻓﯿﺖ ‪ ۶‬ﮔﻔﺘﻪ ﻣ ﺷﻮد‪.‬‬
‫در اﺑﺘﺪا ورودی ﯾﺎ ‪ ١‬و ‪ ٠‬ﭘﺪ ﻣ ﺷﻮد ﺗﺎ ﻃﻮل آن ﻣﻀﺮب ‪ r‬ﺷﻮد و ﺑﻪ ﺑﻼک ﻫﺎی ﺑﺎ ﻃﻮل ‪ r‬ﺗﺠﺰﯾﻪ ﻣ ﺷﻮد‪.‬ﺳﭙﺲ ‪ b‬ﺑﯿﺖ‬
‫‪ ،‬ﺑﺮاﺑﺮ ﺻﻔﺮ ﻣﻘﺪار دﻫ ﻣ ﺷﻮﻧﺪ و ﺳﺎﺧﺘﺎر ﻣﺎ در دو ﻣﺮﺣﻠﻪ ی زﯾﺮ اﻧﺠﺎم ﻣ ﭘﺬﯾﺮد‪:‬‬

‫• در ﻣﺮﺣﻠﻪ ی ﺟﺬب ‪ ،‬ﺑﻼک ﺑﺎ ﻃﻮل ‪ r‬ﺑﺎ ‪ r‬ﺑﯿﺖ اوﻟﯿﻪ ‪ XOR‬ﻣ ﺷﻮد‪.‬ﺗﺎ ‪ r‬ﺑﯿﺖ ﺟﺪﯾﺪ ﺑﻪ ﻫﻤﺮاه ‪ c‬ﺑﯿﺖ ﺻﻔﺮ‬
‫اوﻟﯿﻪ ﺑﻪ ﻋﻨﻮان ورودی ﺗﺎﺑﻊ ‪ f‬داده ﺷﻮﻧﺪ‪ .‬وﻗﺘ ﺑﺮای ﺗﻤﺎم ﺑﻼک ﻫﺎ ﻋﻤﻞ ﺑﺎﻻ ﺻﻮرت ﭘﺬﯾﺮﻓﺖ وارد ﻣﺮﺣﻠﻪ ی‬
‫ﺑﻌﺪی ﻓﺸﺮده ﺳﺎزی ﻣ ﺷﻮﯾﻢ‪.‬‬
‫‪۵‬‬
‫‪sponge construction‬‬
‫‪۶‬‬
‫‪capacity‬‬

‫‪١٨-٣‬‬
‫ﺷ ﻞ ‪ :۴‬ﺳﺎﺧﺘﺎر اﺳﻔﻨﺠ‬

‫• در ﻣﺮﺣﻠﻪ ی ﻓﺸﺮده ﺳﺎزی ‪ r ،‬ﺑﯿﺖ اوﻟﯿﻪ ﺧﺮوﺟ ﻣﺮﺣﻠﻪ ی ﻗﺒﻞ ﺑﻪ ﻫﻤﺮاه اﻋﻤﺎل ﺗﺎﺑﻊ ‪ f‬ﺑﻪ ﺗﻌﺪاد دﻟﺨﻮاه روی‬
‫آن ‪ ،‬ﺑﻪ ﻋﻨﻮان ﺧﺮوﺟ داده ﻣ ﺷﻮد‪ .‬ﻧ ﺘﻪ‪ c :‬ﺑﯿﺖ ﻫﺎی ﻫﺮ ﻣﺮﺣﻠﻪ ﺑﻪ ﻋﻨﻮان ﺧﺮوﺟ ﻓﺸﺮده ﺳﺎزی اﺳﺘﻔﺎده ﻧﻤ‬
‫ﺷﻮﻧﺪ‪.‬‬
‫ﺗﺎ ﺑﻪ اﯾﻦ ﺟﺎ ﺑﻌﻀ از ﮐﺪﻫﺎی اﺻﺎﻟﺖ ﺳﻨﺠ ﻣﺒﺘﻨ ﺑﺮ رﻣﺰﻫﺎی ﻗﺎﻟﺒ را دﯾﺪه اﯾﻢ‪.‬ﯾ روش دﯾ ﺮ ﺑﺮای ﺳﺎﺧﺘﻦ اﯾﻦ ﮐﺪﻫﺎ‬
‫اﺳﺘﻔﺎده از ﺗﻮاﺑﻊ ﭼ ﯿﺪه ﺳﺎز اﺳﺖ‪.‬ﺑﺮای ﻣﺜﺎل ‪ NMAC‬و ‪ HMAC‬دو ﺳﺎﺧﺘﺎر ﻫﺴﺘﻨﺪ ﮐﻪ ﺑﺎ اﺳﺘﻔﺎده از ‪Merkle-‬‬
‫‪ Damgrad‬ﺳﺎﺧﺘﻪ ﻣ ﺷﻮﻧﺪ ﮐﻪ در ﻗﺴﻤﺖ ﺑﻌﺪ آﻧﻬﺎ را ﺑﺮرﺳ ﻣ ﮐﻨﯿﻢ‪ .‬ﯾ از ﮐﺎرﺑﺮدﻫﺎی ﺗﻮاﺑﻊ درﻫﻢ ﺳﺎز اﺳﺘﻔﺎده‬
‫از آﻧﻬﺎ در ﺳﺎﺧﺘﻦ ﮐﺪﻫﺎی اﺻﺎﻟﺖ ﺳﻨﺠ اﺳﺖ‪ .‬ﺑﻪ اﺧﺘﺼﺎر دو ﻧﻮع ‪ MAC‬ﻣﺨﺘﻠﻒ ‪ NMAC‬و ‪ HMAC‬را ﮐﻪ از‬
‫ﺗﻮاﺑﻊ درﻫﻢ ﺳﺎز اﺳﺘﻔﺎده ﻣ ﮐﻨﻨﺪ را ﺑﺮرﺳ ﻣ ﮐﻨﯿﻢ‪.‬‬

‫‪Nested MAC(NMAC) ۵‬‬


‫ﻓﺮض ﮐﻨﯿﺪ ﮐﻪ ﺗﺎﺑﻊ ‪ H‬ﺗﺎﺑﻊ ﭼ ﯿﺪه ﺳﺎز ﺳﺎﺧﺘﻪ ﺷﺪه ﺗﻮﺳﻂ ﺳﺎﺧﺘﺎر ‪ Merkle-Damgard‬اﺳﺖ ﮐﻪ روی ﺗﺎﺑﻊ ﻓﺸﺮده‬
‫ﺳﺎز ‪ h‬اﻋﻤﺎل ﺷﺪه اﺳﺖ‪ .‬ﺣﺎل اﮔﺮ ‪ s‬ﯾ ﮐﻠﯿﺪ ﺛﺎﺑﺖ و ﻏﯿﺮﻣﺤﺮﻣﺎﻧﻪ ﺑﺎﺷﺪ‪ ،‬ورژن ﮐﻠﯿﺪ‪-‬ﻣﺤﺮﻣﺎﻧﻪ ی ‪ hs‬ﺑﻪ ﺻﻮرت‬
‫ﻣﻘﺎﺑﻞ ﺗﻌﺮﯾﻒ ﻣ ﺷﻮد‪.hsk (x) = hs (k||x) :‬‬
‫‪ Hks‬را ﺗﺎﺑﻊ ﭼ ﯿﺪه ﺳﺎزی ﮐﻪ از ﻗﺮار دادن ‪ IV = K‬و ﺑﺎ اﺳﺘﻔﺎده از ‪ Merkle-Damgard‬ﺳﺎﺧﺘﻪ ﻣ ﺷﻮد‪ ،‬ﺗﻌﺮﯾﻒ‬
‫ﻣ ﮐﻨﯿﻢ‪ .‬ﺑﻨﺎﺑﺮاﯾﻦ ﺑﺮای ﻣﺜﺎل در ﻣﺮﺣﻠﻪ ی اول ﺧﺮوﺟ )‪ z۱ = hs (k||xx۱ ) = hsk (x‬ﺑﺪﺳﺖ ﻣ آﯾﺪ‪ .‬ﺑﻨﺎﺑﺮاﯾﻦ‬
‫‪ Hk۲‬روی ورودی ﭘﺪ ﺷﺪه اﻋﻤﺎل ﺷﺪه و ﺳﭙﺲ ﺧﺮوﺟ ﺑﻌﻨﻮان ورودی‬ ‫‪s‬‬
‫‪ HMAC‬ﺑﻪ اﯾﻦ ﺻﻮرت ﮐﺎر ﻣ ﮐﻨﺪ ﮐﻪ اﺑﺘﺪا‬
‫ﺑﻪ ﺗﺎﺑﻊ ﻓﺸﺮده ﺳﺎز ‪ hsk۱‬ﺑﺎ ﮐﻠﯿﺪ ﻣﺤﺮﻣﺎﻧﻪ ی ‪ k۱‬داده ﻣ ﺷﻮد‪.‬در آﺧﺮ ﺧﻮاﻫﯿﻢ داﺷﺖ‪.t = hk۱ (Hk۲ (m)) :‬‬
‫‪s‬‬ ‫‪s‬‬

‫‪HMAC ۶‬‬
‫ﯾ از اﺷ ﺎﻻت ‪ HMAC‬اﯾﻦ اﺳﺖ ﮐﻪ ‪ IV‬ﮐﻪ در ‪ H‬اﺳﺘﻔﺎده ﻣ ﺷﻮد را ﺗﻐﯿﯿﺮ ﻣ دﻫﺪ ﮐﻪ اﯾﻦ ﻣ ﺗﻮاﻧﺪ اﺷ ﺎﻻﺗ‬
‫را در ﻣﺮﺣﻠﻪ ی اﺟﺮا ﺑﻮﺟﻮد ﺑﯿﺎورد‪ HMAC.‬اﯾﻦ ﻣﺸ ﻞ را ﺣﻞ ﻣ ﮐﻨﺪ و ﻧﯿﺰ ﺑﺮﺧﻼف ‪ NMAC‬ﺑﻪ ﺟﺎی دو ﮐﻠﯿﺪ از‬
‫ﯾ ﮐﻠﯿﺪ ﺑﻬﺮه ﻣ ﮔﯿﺮد‪.‬‬
‫‪ H‬و ‪ h‬را ﻣﺎﻧﻨﺪ ﻗﺴﻤﺖ ﻗﺒﻞ در ﻧﻈﺮ ﺑ ﯿﺮﯾﺪ‪.‬ﻓﺮض ﮐﻨﯿﺪ ﮐﻪ ‪ IV‬ﯾ ﻣﻘﺪار ﺛﺎﺑﺖ ﺑﺎﺷﺪ ﻫﻤﭽﻨﯿﻦ ﻓﺮض ﮐﻨﯿﺪ ﮐﻪ ‪opad‬‬
‫و ‪ ipad‬دو ﻣﻘﺪار ﺛﺎﺑﺖ ﺑﺼﻮرت ﻣﻘﺎﺑﻞ ﺑﺎﺷﻨﺪ‪ipad = ox۳۶۳۶..٫ ۳۶ ، opad = ox۵c۵c۵c..٫ ۵c :‬‬

‫‪١٨-۴‬‬
‫ﺷ ﻞ ‪NMAC :۵‬‬

‫‪ HIV‬اﺳﺖ‪ .‬ﺑﻌﺪ از آن ﺧﺮوﺟ ﮐﻠ ﺑﻪ ﺻﻮرت ﻣﻘﺎﺑﻞ ﻣﺤﺎﺳﺒﻪ ﻣ ﺷﻮد‪:‬‬


‫‪s‬‬
‫اوﻟﯿﻦ ﻣﺮﺣﻠﻪ‪ ،‬ﻣﺤﺎﺳﺒﻪ ی )‪((k ⊕ ipad)||m‬‬
‫‪s‬‬
‫‪HM ACk (m) = HIV‬‬ ‫‪((k ⊕ opad)||HIV‬‬
‫‪s‬‬
‫))‪((k ⊕ ipad)||m)) = Hks۱ (Hks۲ (m‬‬

‫ﺷ ﻞ ‪HMAC :۶‬‬

‫اﻣﺮوزه ‪ HMAC‬ﺑﻪ ﺻﻮرت ﯾ اﺳﺘﺎﻧﺪارد در آﻣﺪه و ﺑﺼﻮرت ﮔﺴﺘﺮده ای ﻣﻮرد اﺳﺘﻔﺎده ﻗﺮار ﻣ ﮔﯿﺮد‪.‬ﻋﻼوه ﺑﺮ اﯾﻨ ﻪ‬
‫ﺑﻪ ﺳﺎدﮔ ﻗﺎﺑﻞ ﭘﯿﺎده ﺳﺎزی اﺳﺖ دارای اﺛﺒﺎت ﺑﺮای اﻣﻨﯿﺖ ﻧﯿﺰ ﻫﺴﺖ‪.‬‬

‫‪ ٧‬رﻣﺰﻧ ﺎری اﺣﺮاز اﺻﺎﻟﺖ ﺷﺪه‬


‫در ﺟﻠﺴﺎت ﮔﺬﺷﺘﻪ آزﻣﺎﯾﺶ ﻣﺮﺑﻮط ﺑﻪ ﺳﯿﺴﺘﻢ ‪ CCA‬اﻣﻦ را ﺗﻌﺮﯾﻒ ﮐﺮدﯾﻢ‪ .‬در اداﻣﻪ ی اﯾﻦ ﺟﻠﺴﻪ ﺳﻌ دارﯾﻢ ﯾ‬
‫ﺳﯿﺴﺘﻢ اﻣﻦ دارای اﻣﻨﯿﺖ ﻣﺘﻦ رﻣﺰی اﻧﺘﺨﺎﺑ ‪ ٧‬ﺑﺴﺎزﯾﻢ‪.‬‬
‫اﺑﺘﺪا آزﻣﺎﯾﺶ ﻣﺮﺑﻮط ﺑﻪ اﯾﻦ ﻧﻮع اﻣﻨﯿﺖ را ﯾﺎدآوری ﻣ ﮐﻨﯿﻢ‪.‬‬
‫‪٧‬‬
‫‪CCA-Secure‬‬

‫‪١٨-۵‬‬
‫ﮐﻠﯿﺪ ‪ k‬ﺗﻮﻟﯿﺪ ﻣ ﮐﻨﺪ‪k ← Gen() :‬‬ ‫‪ .١‬ﭼﺎﻟﺸ ﺮ ﯾ‬

‫‪ .٢‬ﻣﻬﺎﺟﻢ دارای دﺳﺘﺮﺳ اوراﮐﻠ ﭘﯿﺎمﻫﺎی ‪ m۰ , m۲ ∈ M‬را اﻧﺘﺨﺎب ﮐﺮده و ﺑﻪ ﭼﺎﻟﺸ ﺮ ﻣ دﻫﺪ‪:‬‬
‫) ‪m۰ , m۱ ← AEnck (.),Deck (.) (۱n‬‬

‫‪ .٣‬ﭼﺎﻟﺸ ﺮ ﺑﯿﺖ ﺗﺼﺎدﻓ ‪ b‬را ﺗﻮﻟﯿﺪ ﻣ ﮐﻨﺪ‪b ← {۰, ۱} :‬‬

‫‪ .۴‬ﭼﺎﻟﺸ ﺮ ﻣﺘﻦ رﻣﺰی ‪ ،c‬رﻣﺰﺷﺪه ‪ mb‬ﺗﺤﺖ ﮐﻠﯿﺪ ‪ ،k‬را ﻣﺤﺎﺳﺒﻪ ﻣ ﮐﻨﺪ و ﺑﻪ ﻣﻬﺎﺟﻢ ﻣ دﻫﺪ‪c ← Enck (mb ) :‬‬

‫‪ .۵‬ﻣﻬﺎﺟﻢ ‪ A‬ﺑﯿﺖ ̂‪ b‬را ﺑﯿﺮون ﻣ دﻫﺪ‪b̂ ← AEnck (.),Deck (.) (c) :‬‬
‫دﻗﺖ ﺷﻮد ﮐﻪ ﻣﻬﺎﺟﻢ ﻣﺠﺎز ﺑﻪ درﺧﻮاﺳﺖ رﻣﺰﮔﺸﺎﯾ ﻣﺘﻦ رﻣﺰی ‪ c‬ﻧﯿﺴﺖ‪.‬‬

‫در ﻧﻈﺮ ﮔﺮﻓﺘﻪ ﻣ ﺷﻮد اﮔﺮ ‪ b̂ = b‬و ﺻﻔﺮ اﺳﺖ اﮔﺮ‬ ‫‪ PrivKeav‬ﻧﺸﺎن داده ﻣ ﺷﻮد ﺑﺮاﺑﺮ ﯾ‬
‫ﺧﺮوﺟ آزﻣﺎﯾﺶ ﮐﻪ ﺑﺎ ‪A,Π‬‬
‫‪.b̂ ̸= b‬‬
‫روش ﺑﻪ اﯾﻦ ﺻﻮرت اﺳﺖ ﮐﻪ دو ﮐﻠﯿﺪ ﻣﺤﺮﻣﺎﻧﻪ ﺑﯿﻦ ﻓﺮﺳﺘﻨﺪه و ﮔﯿﺮﻧﺪه ﺑﻪ اﺷﺘﺮاک ﮔﺬاﺷﺘﻪ ﻣ ﺷﻮد‪.‬ﯾ از ﮐﻠﯿﺪﻫﺎ‬
‫ﻣﺮﺑﻮط ﺑﻪ ﺳﺎﺧﺘﺎر ‪ CPA‬اﻣﻦ و دﯾ ﺮی ﻣﺮﺑﻮط ﯾﻪ ﮐﺪ اﺻﺎﻟﺖ ﺳﻨﺠ اﺳﺖ‪ .‬ﻓﺮض ﮐﻨﯿﺪ ﮐﻪ ‪ Π۱‬ﯾ ﺳﯿﺴﺘﻢ رﻣﺰ ‪CPA‬‬
‫اﻣﻦ و ‪ Π۲‬ﯾ ﮐﺪ اﺻﺎﻟﺖ ﺳﻨﺠ ﺟﻌﻞ ﻧﺎﭘﺬﯾﺮ ﺑﺎﺷﺪ‪.‬آﻧ ﺎه اﮔﺮ )‪ c = Enck۱ (m‬و )‪ t = M ACk۲ (c‬ﺑﺎﺷﺪ ﯾ‬
‫ﺳﯿﺴﺘﻢ رﻣﺰﮔﺬاری ﺑﺎ ) ‪ < c, t > ← Enck (mb‬را ﺑﻪ ﻋﻨﻮان ﺧﺮوﺟ دﻫﺪ آﻧ ﺎه اﯾﻦ ﺳﯿﺴﺘﻢ ‪ CCA‬اﻣﻦ اﺳﺖ‪ .‬ﮔﯿﺮﻧﺪه‬
‫ﺑﻌﺪ از درﯾﺎﻓﺖ > ‪ < c, t‬ﭼ ﻣ ﮐﻨﺪ ﮐﻪ آﯾﺎ ﺗ ‪ t‬روی ‪ c‬ﻣﻌﺘﺒﺮ اﺳﺖ ﯾﺎ ﺧﯿﺮ و ﺳﭙﺲ اﻗﺪام ﺑﻪ رﻣﺰﮔﺸﺎﯾ ﻣ ﮐﻨﺪ‪.‬‬
‫ﻧ ﺘﻪ در اﯾﻦ روش اﯾﻦ اﺳﺖ ﮐﻪ ﻫﯿﭻ ﻣﻬﺎﺟﻢ ﭼﻨﺪﺟﻤﻠﻪ ای ﻧﻤ ﺗﻮاﻧﺪ ﯾ ﻣﺘﻦ رﻣﺰی ﻣﻌﺘﺒﺮ را ﺑﺪون داﻧﺴﺘﻦ ﮐﻠﯿﺪﻫﺎ‬
‫ﺗﻮﻟﯿﺪ ﮐﻨﺪ و ﺑﻨﺎﺑﺮاﯾﻦ ﺳﺎﺧﺘﺎر دارای اﻣﻨﯿﺖ ﻣﻮرد اﻧﺘﻈﺎر اﺳﺖ‪.‬‬
‫ﺑﻄﻮر ﺷﻬﻮدی ﻧﯿﺰ ﺑﻨﻈﺮ ﻣ رﺳﺪ اﮔﺮ ﺳﯿﺴﺘﻤ ‪ CCA‬اﻣﻦ ﺑﺎﺷﺪ ﺣﻤﻠﻪ ﮐﻨﻨﺪه ﻧﺒﺎﯾﺪ ﻗﺎﺑﻠﯿﺖ ﺳﺎﺧﺘﻦ ﯾ ﻣﺘﻦ رﻣﺰی ﻣﻌﺘﺒﺮ‬
‫را داﺷﺘﻪ ﺑﺎﺷﺪ‪ .‬ﺑﻨﺎﺑﺮاﯾﻦ آزﻣﺎﯾﺶ ﺟﺎﻣﻌﯿﺖ ﻣﺘﻦ رﻣﺰی را ﺑﺼﻮرت زﯾﺮ ﺗﻌﺮﯾﻒ ﻣ ﮐﻨﯿﻢ‪:‬‬
‫آزﻣﺎﯾﺶ ﺟﺎﻣﻌﯿﺖ ﻣﺘﻦ رﻣﺰی )‪:٨ (CI‬‬

‫‪k ← Gen(۱n ) .١‬‬

‫‪c ← AEnck (.) (۱n ) .٢‬‬


‫اﮔﺮ ‪ Q‬ﻣﺠﻤﻮﻋﻪ ی ﻣﺘﻦ ﻫﺎی رﻣﺰی درﯾﺎﻓﺘ ﺗﻮﺳﻂ ‪ A‬ﺑﺎﺷﺪ آﻧ ﺎه ‪/ Q‬‬
‫∈‪c‬‬

‫‪ .٣‬اﮔﺮ ⊥ ≠ )‪ Deck (c‬ﺧﺮوﺟ آزﻣﺎﯾﺶ ‪ ١‬و در ﻏﯿﺮ اﯾﻦ ﺻﻮرت ‪ ٠‬اﺳﺖ‪.‬‬

‫ﺗﻌﺮﯾﻒ ‪ ١‬ﯾ ﺳﯿﺴﺘﻢ دارای ﺟﺎﻣﻌﯿﺖ ﻣﺘﻦ رﻣﺰی اﺳﺖ اﮔﺮ ﺑﺮای ﻫﺮ ﻣﻬﺎﺟﻢ ﭼﻨﺪﺟﻤﻠﻪ ای اﺣﺘﻤﺎﻟ ‪ A‬ﺗﺎﺑﻊ ﻧﺎﭼﯿﺰ ‪negl‬‬
‫وﺟﻮد داﺷﺘﻪ ﺑﺎﺷﺪ ﮐﻪ‪:‬‬
‫)‪Pr{P rivKA,Π (۱ ) = ۱} ≤ negl(n‬‬
‫‪CI‬‬ ‫‪n‬‬

‫ﺑﺮای ﺳﺎﺧﺘﻦ ﯾ ﺳﯿﺴﺘﻢ ‪ CCA‬اﻣﻦ اﯾﻦ ﮐﺎﻓ ﻧﯿﺴﺖ ﮐﻪ ﺗﻨﻬﺎ ﺟﺎﻣﻌﯿﺖ ﻣﺘﻦ رﻣﺰی داﺷﺘﻪ ﺑﺎﺷﺪ‪ ،‬درواﻗﻊ ﺷﺮاﯾﻂ ﮐﺎﻓ‬
‫ﺑﻪ ﺻﻮرت زﯾﺮ اﺳﺖ‪:‬‬

‫ﺳﯿﺴﺘﻢ ‪ CPA‬اﻣﻦ ﺑﺎﺷﺪ و ﺟﺎﻣﻌﯿﺖ ﻣﺘﻦ رﻣﺰی داﺷﺘﻪ ﺑﺎﺷﺪ‪ CCA ⇐= .‬اﻣﻦ اﺳﺖ‪.‬‬

‫‪٨‬‬
‫‪Ciphertext Integrity‬‬

‫‪١٨-۶‬‬
‫ﺩﺍﻧﺸﮑﺪﻩﯼ ﻋﻠﻮﻡ ﺭ ﯾﺎﺿﯽ‬

‫‪ ۲۰‬ﺍﺭﺩﯾﺒﻬﺸﺖ ‪۹۳‬‬ ‫ﻣﻘﺪﻣﻪﯼ ﺑﺮ ﺭﻣﺰﻧﮕﺎﺭﯼ‬

‫ﺟﻠﺴﻪ‪ :۲۳‬ﺗﺎﺑﻊ ﭼﮑﯿﺪﻩﺳﺎﺯ ﻭ ﻧﺤﻮﻩ ﺳﺎﺧﺘﻦ ﮐﺪ ﺍﺻﺎﻟﺖﺳﻨﺠﯽ ﭘﯿﺎﻡ ﺑﺎ ﺁﻥ‬


‫ﻧﮕﺎﺭﻧﺪﮔﺎﻥ‪ :‬ﻣﺼﻄﻔﯽ ﮐﺮ ﯾﻤﯽ ﻭ ﺍﻣﯿﺮ ﻋﺮﻓﺎﻥ ﻋﺸﺮﺗﯽﻓﺮ‬ ‫ﺍﺳﺘﺎﺩ‪ :‬ﺩﮐﺘﺮ ﻣﯿﺮ ﺍﻣﯿﺪ ﺣﺎﺟﯽ ﻣﯿﺮ ﺻﺎﺩﻗﯽ‬

‫ﺗﺎﺑﻊ ﭼﮑﯿﺪﻩﺳﺎﺯ‬ ‫‪۱‬‬

‫ﺗﺎﺑﻊ ﭼﮑﯿﺪﻩﺳﺎﺯ ﺗﺎﺑﻌﯽ ﺍﺳﺖ ﮐﻪ ﭘﯿﺎﻣﯽ ﺭﺍ ﺑﻪ ﻃﻮﻝ ﺩﻟﺨﻮﺍﻩ ﻓﺸﺮﺩﻩ ﻣﯽﮐﻨﺪ‪ .‬ﺑﺮﺍﯼ ﮐﺎﺭﺑﺮﺩﻫﺎﯼ ﺭﻣﺰﻧﮕﺎﺭﯼ‪ ،‬ﯾﮏ ﺗﺎﺑﻊ ﭼﮑﯿﺪﻩﺳﺎﺯ‬
‫ﻣﻄﻠﻮﺏ ﺩﺍﺭﺍﯼ ﻭﯾﮋﮔﯽﻫﺎﯼ ﺯﯾﺮ ﺍﺳﺖ‪:‬‬
‫• ﻣﻘﺎﻭﻡ ﺩﺭ ﻣﻘﺎﺑﻞ ﺑﺮﺧﻮﺭﺩ‬

‫• ﻣﻘﺎﻭﻡ ﺩﺭ ﻣﻘﺎﺑﻞ ﭘﯿﺶ ﺗﺼﻮﯾﺮ‬

‫• ﻣﻘﺎﻭﻡ ﺩﺭ ﻣﻘﺎﺑﻞ ﭘﯿﺶ ﺗﺼﻮﯾﺮ ﺩﻭﻡ‬

‫ﻧﺤﻮﻩ ﺳﺎﺧﺘﻦ ﮐﺪ ﺍﺻﺎﻟﺖﺳﻨﺠﯽ ﭘﯿﺎﻡ ﺑﺎ ﺗﺎﺑﻊ ﭼﮑﯿﺪﻩﺳﺎﺯ‬ ‫‪۲‬‬

‫ﺩﺭ ﺟﻠﺴﺎﺕ ﻗﺒﻠﯽ ﺑﺎ ﺗﺎﺑﻊ ﭼﮑﯿﺪﻩﺳﺎﺯ‪ ،‬ﻭﯾﮋﮔﯽﻫﺎﯼ ﺁﻥ ﻭ ﻧﺤﻮﻩ ﺳﺎﺧﺖ ﺁﻥ ﺩﺭ ﺟﻠﺴﺎﺕ ﻗﺒﻠﯽ ﺁﺷﻨﺎ ﺷﺪﯾﻢ‪ .‬ﺩﺭ ﺍﯾﻦ ﺟﻠﺴﻪ ﺑﺎ‬
‫ﺑﻌﻀﯽ ﺍﺯ ﺭ ﻭﺵﻫﺎﯼ ﺳﺎﺧﺖ ﮐﺪ ﺍﺻﺎﻟﺖﺳﻨﺠﯽ ﭘﯿﺎﻡ ﺑﺎ ﺍﺳﺘﻔﺎﺩﻩ ﺍﺯ ﺗﻮﺍﺑﻊ ﭼﮑﯿﺪﻩﺳﺎﺯ ﺑﻪ ﺭ ﻭﺵ ﻣﺮﮐﻞ ﺩﻣﮕﺎﺭﺩ ﺁﺷﻨﺎ ﻣﯽﺷﻮﯾﻢ‪.‬‬
‫ﺩﺭ ﺍﺩﺍﻣﻪ ﺑﺎ ﻃﺮﺡﻫﺎﯼ ﻣﺨﺘﻠﻒ ﮐﻪ ﻫﻤﻪ ﺑﺮ ﺍﺳﺎﺱ ﺳﺎﺧﺘﺎﺭ ﻣﺮﮐﻞ ﺩﻣﮕﺎﺭﺩ ﻫﺴﺘﻨﺪ ﻣﻮﺍﺟﻪ ﻣﯽﺷﻮﯾﻢ‪ .‬ﺑﻪ ﺻﻮﺭﺕ ﻣﺮﺣﻠﻪ ﺑﻪ ﻣﺮﺣﻠﻪ‬
‫ﺿﻌﻒﻫﺎﯼ ﺳﺎﺧﺘﺎﺭﻫﺎﯼ ﻗﺒﻠﯽ ﺭﺍﺑﺮ ﻃﺮﻑ ﮐﺮﺩﻩ ﺗﺎ ﺩﺭﻧﻬﺎﯾﺖ ﺑﻪ ﯾﮏ ﮐﺪ ﺍﺻﺎﻟﺖﺳﻨﺠﯽ ﺍﻣﻦ ﺑﺮﺳﯿﻢ‪ .‬ﺍﺯ ‪ ۵‬ﻃﺮﺡ ﭘﯿﺸﺮ ﻭ‪ ،‬ﻓﻘﻂ ‪۲‬‬
‫ﻣﻮﺭﺩ ﺍﺯ ﺁﻧﻬﺎ ﻗﺎﺑﻞ ﻗﺒﻮﻝ ﻫﺴﺘﻨﺪ‪.‬‬

‫ﻃﺮﺡ ﭘﯿﺸﻨﻬﺎﺩﯼ ﺍﻭﻝ‬ ‫‪۱.۲‬‬

‫ﺍﻭﻟﯿﻦ ﺗﻼﺵ ﺑﺮﺍﯼ ﺑﺪﺳﺖ ﺁﻭﺭﺩﻥ ﮐﺪ ﺍﺻﺎﻟﺖﺳﻨﺠﯽ ﭘﯿﺎﻡ‪ ،‬ﺍﺳﺘﻔﺎﺩﻩ ﺍﺯ ﺳﺎﺧﺘﺎﺭ ﻣﺮﮐﻞ‪-‬ﺩﻣﮕﺎﺭﺩ ﻭ ﺟﺎﯾﮕﺰﯾﻨﯽ ‪ IV‬ﺑﺎ ﮐﻠﯿﺪ ﺍﺳﺖ‪.‬‬
‫ﺩﺭ ﺍﯾﻦ ﻃﺮﺡ‪ ،‬ﺍﺯ ﻃﻮﻝ ﺳﯿﮕﻨﺎﻝ ﺍﺳﺘﻔﺎﺩﻩ ﻧﻤﯽﮐﻨﯿﻢ‪ .‬ﺩﺭ ﺍﺑﺘﺪﺍ ﺑﺎ ﺍﺳﺘﻔﺎﺩﻩ ﺍﺯ ﻻﯾﻪﮔﺬﺍﺭﯼ‪ ،‬ﭘﯿﺎﻡ ﺩﻟﺨﻮﺍﻩ ﺭﺍ ﺑﻪ ‪ b‬ﺑﻠﻮﮎ ﺗﺒﺪﯾﻞ ﮐﺮﺩﻩ‬
‫ﻭ ﺑﻪ ﺻﻮﺭﺕ ﺯﯾﺮ ﺑﻪ ﯾﮏ ﮐﺪ ﺍﺻﺎﻟﺖﺳﻨﺠﯽ ﭘﯿﺎﻡ ﻣﯽﺭﺳﯿﻢ‪.‬‬

‫‪m۱‬‬ ‫‪m۲‬‬ ‫···‬ ‫‪mb‬‬

‫···‬ ‫‪t‬‬
‫‪k‬‬ ‫‪f‬‬ ‫‪f‬‬ ‫‪f‬‬
‫‪.‬‬

‫‪۲۳-۱‬‬
‫ﺑﺎ ﺍﺳﺘﻔﺎﺩﻩ ﺍﺯ ﺣﻤﻠﻪ ﮔﺴﺘﺮﺵ ﭘﯿﺎﻡ ﺑﻪ ﺭﺍﺣﺘﯽ ﻣﯽﺗﻮﺍﻥ ﺑﻪ ﺍﯾﻦ ﻃﺮﺡ ﺣﻤﻠﻪ ﮐﺮﺩ‪ .‬ﻫﻤﭽﻨﯿﻦ ﻣﻌﻤﻮﻻ ﺩﺭ ﺗﻮﺍﺑﻊ ﭼﮑﯿﺪﻩﺳﺎﺯ ﺩﻭﺳﺖ‬
‫ﺩﺍﺭ ﯾﻢ ﻣﻘﺪﺍﺭ ﺍﻭﻟﯿﻪ ﺛﺎﺑﺖ ﺑﺎﺷﺪ ﺗﺎ ﺑﺘﻮﺍﻧﯿﻢ ﺍﺯ ﯾﮏ ﺗﺎﺑﻊ ﭼﮑﯿﺪﻩﺳﺎﺯ ﺛﺎﺑﺖ ﺍﺳﺘﻔﺎﺩﻩ ﮐﻨﯿﻢ ﻭ ﻧﯿﺎﺯﯼ ﺑﻪ ﺗﻐﯿﯿﺮ ﺗﺎﺑﻊ ﺑﺮﺍﯼ ﺍﺳﺘﻔﺎﺩﻩ ﻣﺠﺪﺩ‬
‫ﻧﺪﺍﺷﺘﻪ ﺑﺎﺷﯿﻢ‪ .‬ﺩﺭ ﺍﯾﻦ ﻃﺮﺡ ﭼﻮﻥ ﺍﺯ ﮐﻠﯿﺪ ﺑﻪ ﻋﻨﻮﺍﻥ ﻣﻘﺪﺍﺭ ﺍﻭﻟﯿﻪ ﺍﺳﺘﻔﺎﺩﻩ ﻣﯽﮐﻨﯿﻢ ﺛﺎﺑﺖ ﻧﯿﺴﺖ‪ .‬ﻭﻟﯽ ﺑﻪ ﻃﻮﺭ ﮐﻠﯽ ﺿﻌﻒ ﺍﯾﻦ‬
‫ﻃﺮﺡ‪ ،‬ﻧﺪﺍﺷﺘﻦ ﺍﻣﻨﯿﺖ ﮐﺎﻓﯽ ﺍﺳﺖ‪.‬‬

‫ﻃﺮﺡ ﭘﯿﺸﻨﻬﺎﺩﯼ ﺩﻭﻡ‬ ‫‪۲ .۲‬‬

‫ﺩﺭ ﺍﺩﺍﻣﻪ ﺗﻼﺷﻤﺎﻥ ﺑﺮﺍﯼ ﺟﻠﻮﮔﯿﺮﯼ ﺍﺯ ﺣﻤﻠﻪ ﮔﺴﺘﺮﺵ ﻣﺘﻦ‪ ،‬ﻃﻮﻝ ﭘﯿﺎﻡ ﺭﺍ ﺩﺭ ﺍﻧﺘﻬﺎ ﺍﺿﺎﻓﻪ ﻣﯽﮐﻨﯿﻢ‪ .‬ﻭﻟﯽ ﺩﻭﺑﺎﺭﻩ ﺍﯾﻦ ﻃﺮﺡ ﻫﻢ‬
‫ﺩﺭ ﻣﻘﺎﺑﻞ ﺣﻤﻠﻪ ﮔﺴﺘﺮﺵ ﻣﺘﻦ ﻣﻘﺎﻭﻡ ﻧﯿﺴﺖ‪.‬‬

‫‪m۱‬‬ ‫‪m۲‬‬ ‫···‬ ‫‪mb‬‬ ‫|‪|m‬‬

‫···‬ ‫‪t‬‬
‫‪k‬‬ ‫‪f‬‬ ‫‪f‬‬ ‫‪f‬‬ ‫‪f‬‬
‫‪.‬‬
‫ﺍﯾﻦ ﻣﺪﻝ ﺑﻪ ﻫﯿﭻ ﻭﺟﻪ ﻣﻄﻠﻮﺏ ﻧﯿﺴﺖ‪ .‬ﺯﯾﺮﺍ ﺍﻭﻻ ﺍﻣﻨﯿﺖ ﻧﺪﺍﺭﺩ‪ .‬ﺛﺎﻧﯿﺎ ﺩﺭ ﺗﺎﺑﻊ ﭼﮑﯿﺪﻩ ﺳﺎﺯ ﺩﻭﺳﺖ ﺩﺍﺭ ﯾﻢ ﻗﺴﻤﺖ ‪ IV‬ﯾﮏ ﻋﺪﺩ‬
‫ﺛﺎﺑﺖ ﺑﺎﺷﺪ ﻧﻪ ﻣﺘﻐﯿﺮ‪.‬‬

‫ﻃﺮﺡ ﭘﯿﺸﻨﻬﺎﺩﯼ ﺳﻮﻡ‬ ‫‪۳.۲‬‬

‫ﺩﺭ ﻃﺮﺡ ﻗﺒﻠﯽ ﺩﯾﺪﯾﻢ ﮐﻪ ﻓﻘﻂ ﺑﺎ ﺍﺿﺎﻓﻪ ﮐﺮﺩﻥ ﻃﻮﻝ ﭘﯿﺎﻡ ﻧﻤﯽﺗﻮﺍﻥ ﺩﺭ ﺑﺮﺍﺑﺮ ﺣﻤﻠﻪ ﻣﻘﺎﻭﻡ ﺑﻮﺩ‪ .‬ﺩﺭ ﺍﯾﻦ ﻃﺮﺡ ﺑﺎ ﺍﺳﺘﻔﺎﺩﻩ ﺍﺯ ﺩﻭ‬
‫ﮐﻠﯿﺪ ‪ k۱‬ﻭ ‪ k۲‬ﻣﯽﺗﻮﺍﻥ ﺍﻣﻨﯿﺖ ﮐﺎﻓﯽ ﺭﺍ ﺑﺪﺳﺖ ﻣﯽﺁﻭﺭﺩ‪ .‬ﺍﯾﻦ ﻃﺮﺡ ‪ N M AC‬ﻧﺎﻣﯿﺪﻩ ﻣﯽﺷﻮﺩ‪.‬‬

‫‪m۱‬‬ ‫‪m۲‬‬ ‫···‬ ‫|‪|m‬‬

‫‪k۱‬‬ ‫‪f‬‬ ‫‪f‬‬ ‫···‬ ‫‪f‬‬


‫‪.‬‬
‫‪k۲‬‬ ‫‪f‬‬
‫‪t‬‬

‫ﻃﺮﺡ ﭘﯿﺸﻨﻬﺎﺩﯼ ﭼﻬﺎﺭﻡ‬ ‫‪۴.۲‬‬

‫ﺑﺎ ﺍﺳﺘﻔﺎﺩﻩ ﺍﺯ ﻃﺮﺡ ﻗﺒﻠﯽ ﺗﻮﺍﻧﺴﺘﯿﻢ ﺍﻣﻨﯿﺖ ﻻﺯﻡ ﺭﺍ ﺑﺪﺳﺖ ﺁﻭﺭﯾﻢ‪ .‬ﻭﻟﯽ ﻫﻤﺎﻧﻄﻮﺭ ﮐﻪ ﺩﺭ ﺗﻮﺿﯿﺤﺎﺕ ﻃﺮﺡ ﺍﻭﻝ ﮔﻔﺘﻪ ﺷﺪ‪ .‬ﺩﻭﺳﺖ‬
‫ﺩﺍﺭ ﯾﻢ ﻣﻘﺪﺍﺭ ﺍﻭﻟﯿﻪ‪ ،‬ﻣﻘﺪﺍﺭ ﺛﺎﺑﺘﯽ ﺑﺎﺷﺪ‪ .‬ﺑﺮﺍﯼ ﺭﺳﯿﺪﻥ ﺑﻪ ﺍﯾﻦ ﻫﺪﻑ ﻃﺮﺡ ﺯﯾﺮ ﺭﺍ ﭘﯿﺎﺩﻩﺳﺎﺯﯼ ﻣﯽﮐﻨﯿﻢ‪.‬‬
‫‪k‬‬ ‫‪m۱‬‬ ‫···‬ ‫‪mb‬‬ ‫|‪|m‬‬

‫···‬ ‫‪t‬‬
‫‪IV‬‬ ‫‪f‬‬ ‫‪f‬‬ ‫‪f‬‬ ‫‪f‬‬
‫‪.‬‬
‫ﻭﻟﯽ ﺑﺎ ﺗﻐﯿﯿﺮﺍﺗﯽ ﮐﻪ ﺩﺭ ﺍﯾﻦ ﻃﺮﺡ ﺩﺍﺩﯾﻢ ﺩﻭﺑﺎﺭﻩ ﺑﺎ ﺣﻤﻠﻪ ﮔﺴﺘﺮﺵ ﻣﺘﻦ‪ ،‬ﻣﯽﺗﻮﺍﻥ ﺑﻪ ﺍﯾﻦ ﻃﺮﺡ ﺣﻤﻠﻪ ﮐﺮﺩ‪.‬‬

‫‪۲۳-۲‬‬
‫ﻃﺮﺡ ﭘﯿﺸﻨﻬﺎﺩﯼ ﭘﻨﺠﻢ‬ ‫‪۵.۲‬‬

‫ﺍﯾﻦ ﻃﺮﺡ ﻫﺮ ﺩﻭ ﻭﯾﮋﮔﯽ ﻣﻄﻠﻮﺏ‪ ،‬ﺍﻣﻨﯿﺖ ﻭ ﻣﻔﺪﺍﺭ ﺍﻭﻟﯿﻪ ﺛﺎﺑﺖ‪ ،‬ﺭﺍ ﺩﺍﺭﺍ ﺍﺳﺖ‪ .‬ﺍﯾﻦ ﻣﺪﻝ ‪ HM AC‬ﻧﺎﻣﯿﺪﻩ ﻣﯽﺷﻮﺩ‪.‬‬

‫‪k ⊕ ipad‬‬ ‫‪m۱‬‬ ‫···‬ ‫|‪|m‬‬

‫‪IV‬‬ ‫‪f‬‬ ‫‪f‬‬ ‫···‬ ‫‪f‬‬


‫‪.‬‬
‫‪k ⊕ opad‬‬ ‫‪f‬‬
‫‪t‬‬

‫‪IV‬‬ ‫‪f‬‬

‫ﮐﻪ ﮐﻠﯿﺪﻫﺎ ﺑﻪ ﺻﻮﺭﺕ ﺯﯾﺮ ﺑﺪﺳﺖ ﻣﯽﺁﯾﻨﺪ‪:‬‬

‫‪k1 = k ⊕ ipad = k ⊕ 0X363636.....‬‬ ‫)‪(1‬‬

‫‪k2 = k ⊕ opad = k ⊕ 0X5c5c5c.....‬‬ ‫)‪(2‬‬

‫ﺍﻣﻨﯿﺖ ﺟﻌﻞ ﻧﺎﭘﺬﯾﺮﯼ ﻗﻮﯼ‬ ‫‪۳‬‬

‫ﻫﻤﺎﻧﻄﻮﺭ ﮐﻪ ﺩﺭ ﺟﻠﺴﺎﺕ ﻗﺒﻞ ﺧﻮﺍﻧﺪﯾﻢ‪ ،‬ﺩﺭ ﺍﻣﻨﯿﺖ ﺟﻌﻞﻧﺎﭘﺬﯾﺮﯼ ﺿﻌﯿﻒ‪ ،‬ﺑﻪ ﺳﯿﺴﺘﻢ ﮐﺪ ﺍﺻﺎﻟﺖﺳﻨﺠﯽ ﭘﯿﺎﻡ‪ ،‬ﻧﻤﯽﺗﻮﺍﻥ ﭘﯿﺎﻡ‬
‫ﺗﮑﺮﺍﺭﯼ ﺑﺎ ﺑﺮﭼﺴﺐ ﺟﺪﯾﺪ‪ ،‬ﺩﺍﺩ‪ .‬ﻭﻟﯽ ﺩﺭ ﺍﻣﻨﯿﺖ ﺟﻌﻞﻧﺎﭘﺬﯾﺮﯼ ﻗﻮﯼ‪ ،‬ﺳﯿﺴﺘﻢ ﮐﺪ ﺍﺻﺎﻟﺖ ﺳﻨﺠﯽ ﭘﯿﺎﻡ ﺑﺎﯾﺪ ﺍﻣﻨﯿﺖ ﻗﻮﯼ ﺩﺍﺷﺘﻪ‬
‫ﺑﺎﺷﺪ ﮐﻪ ﺣﺘﯽ ﺑﺎ ﭘﺮﺳﻤﺎﻥ ﭘﯿﺎﻡ ﺗﮑﺮﺍﺭﯼ ﺑﺎ ﺑﺮﭼﺴﺐ ﺟﺪﯾﺪ‪ ،‬ﺳﯿﺴﺘﻢ ﺷﮑﺴﺘﻪ ﻧﺸﻮﺩ‪ .‬ﺁﺯﻣﺎﯾﺶ ﺁﻥ ﺑﻪ ﺻﻮﺭﺕ ﺯﯾﺮ ﺍﺳﺖ‪:‬‬

‫• ﺍﻟﮕﻮﺭﯾﺘﻢ ﺗﻮﻟﯿﺪ ﮐﻠﯿﺪ‪k ← Gen(۱n ) :‬‬

‫• ﺣﻤﻠﻪ ﮐﻨﻨﺪﻩ ‪ A‬ﮐﻪ ﻭﺭﻭﺩﯼ ‪ ۱n‬ﺩﺭ ﯾﺎﻓﺖ ﻣﯽﮐﻨﺪ ﻭ ﺩﺳﺘﺮﺳﯽ ﺍﻭﺭﺍﮐﻠﯽ ﺑﻪ )‪ M ack (.‬ﺩﺍﺭﺩ ﺩﺭ ﻧﻬﺎﯾﺖ ⟩‪ ⟨m, t‬ﺭﺍ ﺑﻪ ﻋﻨﻮﺍﻥ‬
‫ﺧﺮ ﻭﺟﯽ ﺑﺪﻫﺪ‪ ⟨m, t⟩ .‬ﺧﺮ ﻭﺟﯽ ﻧﺒﺎﯾﺪ ﻫﻢ ﭘﯿﺎﻡ ﻭ ﻫﻢ ﺑﺮﭼﺴﺐ ﺗﮑﺮﺍﺭﯼ ﺑﺎﺷﺪ‪ .‬ﻣﺸﮑﻠﯽ ﻧﺪﺍﺭﺩ ﺍﮔﺮ ﭘﯿﺎﻡ ﺗﮑﺮﺍﺭﯼ ﺑﺎﺷﺪ‬
‫ﻭﻟﯽ ﺑﺮﭼﺴﺐ ﺗﮑﺮﺍﺭﯼ ﻧﺒﺎﺷﺪ‪.‬‬

‫• ﺧﺮ ﻭﺟﯽ ﺁﺯﻣﺎﯾﺶ ﺑﺮﺍﺑﺮ ‪ ۱‬ﺍﺳﺖ ﺍﮔﺮ‪ V erf yk (m, t) = ۱‬ﺩﺭ ﻏﯿﺮ ﺍﯾﻦ ﺻﻮﺭﺕ ﺑﺮﺍﺑﺮ ‪ ۰‬ﺍﺳﺖ‪.‬‬

‫ﺗﻌﺮ ﯾﻒ ‪ M ac ۱‬ﺩﺍﺭﺍﯼ ﺍﻣﻨﯿﺖ ﺟﻌﻞﻧﺎﭘﺬﯾﺮﯼ ﻗﻮﯼ ﺍﺳﺖ ﻫﺮﮔﺎﻩ ﺑﻪ ﺍﺯﺍﯼ ﻫﺮ ﺣﻤﻠﻪ ﮐﻨﻨﺪﻩ ‪ A‬ﭼﻨﺪﺟﻤﻠﻪﺍﯼ ﺗﺼﺎﺩﻓﯽ ﻏﯿﺮ ﯾﮑﻨﻮﺍﺧﺖ‬
‫‪،‬ﺗﺎﺑﻊ ﻧﺎﭼﯿﺰ )‪ ϵ(n‬ﻭﺟﻮﺩ ﺩﺍﺷﺘﻪ ﺑﺎﺷﺪ ﮐﻪ‪:‬‬

‫)‪Pr[SM acF orgeA,π (n) = 1] ≤ ϵ(n‬‬ ‫)‪(3‬‬

‫‪۲۳-۳‬‬
‫ﺍﻣﻨﯿﺖ ﻣﺘﻦ ﺭﻣﺰﯼ ﺍﻧﺘﺨﺎﺏﺷﺪﻩ‬ ‫‪۴‬‬

‫ﻫﻤﺎﻧﻄﻮﺭ ﮐﻪ ﺩﺭ ﺟﻠﺴﺎﺕ ﻗﺒﻞ ﻣﺸﺎﻫﺪﻩ ﮐﺮﺩﯾﻢ‪ ،‬ﺁﺯﻣﺎﯾﺶ ﺍﻣﻨﯿﺖ ﻣﺘﻦ ﺭﻣﺰﯼ ﺍﻧﺘﺨﺎﺑﯽ ﺍﺯ ﻗﻮﯼﺗﺮ ﯾﻦ ﺍﻣﻨﯿﺖﻫﺎ ﺩﺭ ﺑﯿﻦ ﺗﻤﺎﻡ‬
‫ﺍﻣﻨﯿﺖﻫﺎﯾﯽ ﺍﺳﺖ ﮐﻪ ﻣﻄﺎﻟﻌﻪ ﮐﺮﺩﯾﻢ‪ .‬ﺁﺯﻣﺎﯾﺶ ﻣﺮﺑﻮﻃﻪ ﺑﻪ ﺻﻮﺭﺕ ﺯﯾﺮ ﺍﺳﺖ‪:‬‬

‫• ﺍﻟﮕﻮﺭﯾﺘﻢ ﺗﻮﻟﯿﺪ ﮐﻠﯿﺪ‪K ← Gen(۱n ):‬‬

‫• ﺣﻤﻠﻪ ﮐﻨﻨﺪﻩ ‪ A‬ﻭﺭﻭﺩﯼ ‪ ۱n‬ﺭﺍ ﺩﺭ ﯾﺎﻓﺖ ﻣﯽﮐﻨﺪ‪ .‬ﺑﺎ ﺍﺳﺘﻔﺎﺩﻩ ﺍﺯ ﺩﺳﺘﺮﺳﯽ ﺍﻭﺭﺍﮐﻠﯽ ﺑﻪ ﺭﻣﺰﮔﺸﺎ ﻭ ﺭﻣﺰﮐﻨﻨﺪﻩ ﺩﻭ ﭘﯿﺎﻡ ‪m۱‬‬
‫ﻭ ‪ m۰‬ﺭﺍ ﮐﻪ ﻃﻮﻝ ﯾﮑﺴﺎﻧﯽ ﺩﺍﺭﻧﺪ ﺭﺍ ﺑﻪ ﻋﻨﻮﺍﻥ ﺧﺮ ﻭﺟﯽ ﺑﯿﺮ ﻭﻥ ﻣﯽﺩﻫﺪ‪.‬‬
‫• ﺑﯿﺖ ‪ b‬ﺑﻪ ﺻﻮﺭﺕ ﮐﺎﻣﻼ ﺗﺼﺎﺩﻓﯽ ﺍﺯ }‪ {۰, ۱‬ﺍﻧﺘﺨﺎﺏ ﻣﯽﺷﻮﺩ‪.‬‬

‫• ﭘﯿﺎﻡ ‪ mb‬ﺭﺍ ﺑﺎ ﺍﺳﺘﻔﺎﺩﻩ ﺍﺯ ) ‪ Enck (mb‬ﺑﻪ ﺭﻣﺰ ‪ c‬ﺗﺒﺪﯾﻞ ﮐﺮﺩﻩ ﻭ ﺑﻪ ﺣﻤﻠﻪ ﮐﻨﻨﺪﻩ ﻣﯽﺩﻫﯿﻢ‪.‬‬

‫• ﺣﻤﻠﻪ ﮐﻨﻨﺪﻩ ﺑﺎ ﺩﺭ ﯾﺎﻓﺖ ﻣﺘﻦ ﺭﻣﺰ ﺷﺪﻩ ‪ c‬ﺑﻪ ﻋﻨﻮﺍﻥ ﺧﺮ ﻭﺟﯽ ﻭ ﻫﻤﭽﻨﯿﻦ ﺑﺎ ﺍﺳﺘﻔﺎﺩﻩ ﺍﺯ ﻗﺎﺑﻠﯿﺖ ﺩﺳﺘﺮﺳﯽ ﺍﻭﺭﺍﮐﻠﯽ ﺑﻪ ﺭﻣﺰ‬
‫ﮐﻨﻨﺪﻩ ﻭ ﺭﻣﺰﮔﺸﺎ ﺑﯿﺖ ‪ b′‬ﺭﺍ ﺑﻪ ﻋﻨﻮﺍﻥ ﺧﺮ ﻭﺟﯽ ﻣﯽﺩﻫﺪ‪ .‬ﺣﻤﻠﻪ ﮐﻨﻨﺪﻩ ﺣﻖ ﭘﺮﺳﻤﺎﻥ ﻣﺘﻦ ﺭﻣﺰ ﺷﺪﻩ ‪ c‬ﺭﺍ ﺍﺯ ﺭﻣﺰﮔﺸﺎ ﻧﺪﺍﺭﺩ‪.‬‬

‫• ﺟﻮﺍﺏ ﺁﺯﻣﺎﯾﺶ ‪ ۱‬ﺍﺳﺖ ﺍﮔﺮ ‪ b = b′‬ﺑﺎﺷﺪ ﻭ ﺑﺮﺍﺑﺮ ‪ ۰‬ﺍﺳﺖ ﺍﮔﺮ ‪ b ̸= b′‬ﺑﺎﺷﺪ‪.‬‬

‫ﺗﻌﺮ ﯾﻒ ‪ ۲‬ﺳﯿﺴﺘﻢ ﺭﻣﺰ ﻣﺘﻘﺎﺭﻥ ﺩﺍﺭﺍﯼ ﺍﻣﻨﯿﺖ ﻣﺘﻦ ﺭﻣﺰ ﺍﻧﺘﺨﺎﺏﺷﺪﻩ ﺍﺳﺖ ﺍﮔﺮ ﺑﻪ ﺍﺯﺍﯼ ﻫﻤﻪﯼ ﺣﻤﻠﻪ ﮐﻨﻨﺪﻩﻫﺎﯼ ﭼﻨﺪﺟﻤﻠﻪﺍﯼ‬
‫ﺗﺼﺎﺩﻓﯽ ﻏﯿﺮ ﯾﮑﻨﻮﺍﺧﺖ‪ ،‬ﺗﺎﺑﻊ ﻧﺎﭼﯿﺰ )‪ ϵ(n‬ﻭﺟﻮﺩ ﺩﺍﺷﺘﻪ ﺑﺎﺷﺪ ﮐﻪ ‪:‬‬

‫‪1‬‬
‫‪P[P rivKA,π‬‬
‫‪CCA‬‬
‫‪(n) = 1] ≤ ϵ(n) +‬‬ ‫)‪(4‬‬
‫‪2‬‬

‫ﺍﻣﻨﯿﺖ ﺟﺎﻣﻌﯿﺖ ﺭﻣﺰﯼ‬ ‫‪۵‬‬

‫ﺍﻣﻨﯿﺖ ﺟﺎﻣﻌﯿﺖ ﺭﻣﺰﯼ‪ ،‬ﻗﻮﯼﺗﺮ ﯾﻦ ﻧﻮﻉ ﺍﻣﻨﯿﺖ ﺍﺳﺖ‪ .‬ﺍﯾﻦ ﺍﻣﻨﯿﺖ ﺍﯾﻦ ﻗﺎﺑﻠﯿﺖ ﺭﺍ ﻣﯽﺩﻫﺪ ﮐﻪ ﺣﻤﻠﻪ ﮐﻨﻨﺪﻩ ﻧﺘﻮﺍﻧﺪ ﻣﺘﻦ ﺭﻣﺰ ﺷﺪﻩ‬
‫ﻗﺎﺑﻞ ﻗﺒﻮﻟﯽ ﺗﻮﻟﯿﺪ ﮐﻨﺪ‪ .‬ﺁﺯﻣﺎﯾﺶ ﺑﻪ ﺻﻮﺭﺕ ﺯﯾﺮ ﺍﺳﺖ‪:‬‬

‫• ﺑﺎ ﺍﺳﺘﻔﺎﺩﻩ ﺍﺭ ﺍﻟﮕﻮﺭﯾﺘﻢ ﺗﻮﻟﯿﺪ ﮐﻠﯿﺪ ) ‪ Gen(۱n‬ﮐﻠﯿﺪ ‪ k‬ﺭﺍ ﺗﻮﻟﯿﺪ ﻣﯽﮐﻨﯿﻢ‪.‬‬

‫• ﺣﻤﻠﻪ ﮐﻨﻨﺪﻩ‪ ،A‬ﻭﺭﻭﺩﯼ ‪ ۱n‬ﺭﺍ ﺩﺭ ﯾﺎﻓﺖ ﻣﯽ ﮐﻨﺪ ﻭ ﺑﺎ ﺍﺳﺘﻔﺎﺩﻩ ﺍﺯ ﻗﺎﺑﻠﯿﺖ ﺩﺳﺘﺮﺳﯽ ﺍﻭﺭﺍﮐﻠﯽ ﺑﻪ ﺭﻣﺰﮐﻨﻨﺪﻩ ﻭ ﺭﻣﺰﮔﺸﺎ‪ ،‬ﻣﺘﻦ‬
‫ﺭﻣﺰﺷﺪﻩ ‪ c‬ﺭﺍ ﺑﻪ ﻋﻨﻮﺍﻥ ﺧﺮ ﻭﺟﯽ ﻣﯽﺩﻫﺪ‪.‬‬

‫• ﺧﺮ ﻭﺟﯽ ﺁﺯﻣﺎﯾﺶ ‪ ۱‬ﺍﺳﺖ ﺍﮔﺮ ﻭﺗﻨﻬﺎ ﺍﮔﺮ ‪ ۲‬ﺷﺮﻁ ﺯﯾﺮ ﺑﺮﻗﺮﺍﺭ ﺑﺎﺷﺪ‪:‬‬

‫– ﺍﮔﺮ ⊥≠ )‪ Deck (c‬ﺑﺎﺷﺪ‪.‬‬


‫– ﻣﺘﻦ ﺭﻣﺰﯼ ‪ c‬ﺭﺍ ﻗﺒﻼ ﺍﺯ ‪ Enc‬ﺩﺭ ﯾﺎﻓﺖ ﻧﮑﺮﺩﻩ ﺑﺎﺷﯿﻢ‪.‬‬

‫ﺗﻌﺮ ﯾﻒ ‪ ۳‬ﺳﯿﺴﺘﻢ ﺭﻣﺰ ﻣﺘﻘﺎﺭﻥ ﺩﺍﺭﺍﯼ ﺍﻣﻨﯿﺖ ﺟﺎﻣﻌﯿﺖ ﺭﻣﺰﯼ ﺍﺳﺖ ﺍﮔﺮ ﺑﻪ ﺍﺯﺍﯼ ﻫﻤﻪﯼ ﺣﻤﻠﻪ ﮐﻨﻨﺪﻩﻫﺎﯼ ﭼﻨﺪﺟﻤﻠﻪﺍﯼ ﺗﺼﺎﺩﻓﯽ‬
‫ﻏﯿﺮ ﯾﮑﻨﻮﺍﺧﺖ‪ ،‬ﺗﺎﺑﻊ ﻧﺎﭼﯿﺰ )‪ ϵ(n‬ﻭﺟﻮﺩ ﺩﺍﺷﺘﻪ ﺑﺎﺷﺪ ﮐﻪ ‪:‬‬

‫‪P[P rivKA,π‬‬
‫‪CI‬‬
‫)‪(n) = 1] ≤ ϵ(n‬‬ ‫)‪(5‬‬

‫‪۲۳-۴‬‬
‫ﻃﺮﺍﺣﯽ ﺳﯿﺴﺘﻤﯽ ﺑﺎ ﺍﻣﻨﯿﺖ ﻣﺘﻦ ﺭﻣﺰﯼ ﺍﻧﺘﺨﺎﺑﯽ ﻭ ﺟﺎﻣﻌﯿﺖ ﺭﻣﺰﯼ‬ ‫‪۶‬‬

‫ﺩﺭ ﺍﯾﻦ ﻗﺴﻤﺖ ﺑﺎ ﺍﺳﺘﻔﺎﺩﻩ ﺍﺯ ﺁﻧﭽﻪ ﺗﺎﮐﻨﻮﻥ ﺁﻣﻮﺧﺘﻪﺍﯾﻢ ﻣﯽ ﺧﻮﺍﻫﯿﻢ ﺳﯿﺴﺘﻢ ﺭﻣﺰﯼ ﻣﺘﻘﺎﺭﻥ ﺑﺎ ﺍﻣﻨﯿﺖ ﻣﺘﻦ ﺭﻣﺰﯼ ﺍﻧﺘﺨﺎﺑﯽ ﻭ‬
‫ﺟﺎﻣﻌﯿﺖ ﺭﻣﺰﯼ ﻃﺮﺍﺣﯽ ﮐﻨﯿﻢ‪ .‬ﻓﺮﺽ ﻣﯽﮐﻨﯿﻢ ﮐﻪ ﺳﯿﺴﺘﻢ ﺭﻣﺰ ﻣﺘﻘﺎﺭﻥ ‪ πE‬ﺩﺍﺭﺍﯼ ﺍﻣﻨﯿﺖ ‪ CP A‬ﺍﺳﺖ‪ .‬ﻫﻤﭽﻨﯿﻦ ‪M AC‬‬
‫ﺩﺍﺭ ﯾﻢ ﮐﻪ ﺩﺍﺭﺍﯼ ﺍﻣﻨﯿﺖ ﺟﻌﻞﻧﺎﭘﺬﯾﺮﯼ ﻗﻮﯼ ﺍﺳﺖ‪ .‬ﺑﺎ ﺗﺮﮐﯿﺐ ﺍﯾﻦ ﺩﻭ ﺳﯿﺴﺘﻢ ﻣﯽﺧﻮﺍﻫﯿﻢ ﯾﮏ ﺳﯿﺴﺘﻢ ﮐﻪ ﺩﺍﺭﺍﯼ ﺍﻣﻨﯿﺖ ﻣﺘﻦ‬
‫ﺭﻣﺰﯼ ﺍﻧﺘﺨﺎﺑﯽ ﻭ ﺟﺎﻣﻌﯿﺖ ﺭﻣﺰﯼ ﺍﺳﺖ‪ ،‬ﻃﺮﺍﺣﯽ ﮐﻨﯿﻢ‪ ۳ .‬ﺭ ﻭﺵ ﻋﻤﺪﻩ ﺑﺮﺍﯼ ﺍﻧﺠﺎﻡ ﺍﯾﻦ ﮐﺎﺭ ﻭﺟﻮﺩ ﺩﺍﺭﺩ ﮐﻪ ﻓﻘﻂ ﯾﮑﯽ ﺍﺯ ﺁﻧﻬﺎ‬
‫ﻣﻄﻠﻮﺏ ﺍﺳﺖ‪.‬‬

‫‪ ۱.۶‬ﺭ ﻭﺵ ﺍﻭﻝ‬

‫ﺩﺭ ﺍﯾﻦ ﺭ ﻭﺵ ﺍﺯ ﻫﺮ ﺩﻭ ﺳﯿﺴﺘﻢ ﺑﻪ ﺻﻮﺭﺕ ﻣﻮﺍﺯﯼ ﺍﺳﺘﻔﺎﺩﻩ ﻣﯽﮐﻨﯿﻢ‪ .‬ﺑﻪ ﺍﯾﻦ ﺭ ﻭﺵ ‪ M ac and Encrypt‬ﮔﻔﺘﻪ ﻣﯽﺷﻮﺩ‪ .‬ﺑﻪ‬
‫ﺻﻮﺭﺕ ﺟﺪﺍﮔﺎﻧﻪ ﻫﺮ ﮐﺪﺍﻡ ﺍﺯ ﺍﻟﮕﻮﺭﯾﺘﻢﻫﺎ ﺭﺍ ﭘﯿﺎﺩﻩ ﺳﺎﺯﯼ ﻣﯽﮐﻨﯿﻢ‪:‬‬

‫• ﺑﺎ ﺍﺳﺘﻔﺎﺩﻩ ﺍﺯ ﺳﯿﺴﺘﻢ ﺭﻣﺰ ﻣﺘﻘﺎﺭﻥ‪c ← Enck۱ (m) :‬‬

‫• ﺑﺎ ﺍﺳﺘﻔﺎﺩﻩ ﺍﺯ ‪t ← M ack۲ (m) :M AC‬‬

‫ﺩﺭ ﻧﺘﯿﺠﻪ‪ ،‬ﺧﺮ ﻭﺟﯽ ﺍﯾﻦ ﺭ ﻭﺵ ﻣﺘﻦ ﺭﻣﺰﺷﺪﻩ ⟩‪ c′ = ⟨c, t‬ﻣﯽﺑﺎﺷﺪ‪ .‬ﺍﯾﻦ ﺭ ﻭﺵ ﺍﻣﻦ ﻧﯿﺴﺖ ﺯﯾﺮﺍ ﺩﺭ ﺍﻟﮕﻮﺭﯾﺘﻢ ‪ M ac‬ﻣﻤﮑﻦ‬
‫ﺍﺳﺖ ﺍﻃﻼﻋﺎﺗﯽ ﺍﺯ ﻣﺘﻦ ﺍﺻﻠﯽ ﻭﺟﻮﺩ ﺩﺍﺷﺘﻪ ﺑﺎﺷﺪ ﻭ ﺣﻤﻠﻪ ﮐﻨﻨﺪﻩ ﺑﻪ ﺭﺍﺣﺘﯽ ﻣﯽﺗﻮﺍﻧﺪ ﺑﻪ ﺁﻥ ﺩﺳﺘﺮﺳﯽ ﺩﺍﺷﺘﻪ ﺑﺎﺷﺪ‪.‬‬

‫‪ ۲.۶‬ﺭ ﻭﺵ ﺩﻭﻡ‬

‫ﺩﺭ ﺍﯾﻦ ﺭ ﻭﺵ‪ ،‬ﺍﺯ ﺍﻟﮕﻮﺭﯾﺘﻢ ‪ M AC‬ﻗﺒﻞ ﺍﺯ ﺳﯿﺴﺘﻢ ﺭﻣﺰ ﻣﺘﻘﺎﺭﻥ ﺍﺳﺘﻔﺎﺩﻩ ﻣﯽﮐﻨﯿﻢ‪ .‬ﺑﻪ ﺍﯾﻦ ﺭ ﻭﺵ ‪ M ac then Encrypt‬ﮔﻔﺘﻪ‬
‫ﻣﯽﺷﻮﺩ‪ .‬ﺭ ﻭﺵ ﺑﻪ ﺻﻮﺭﺕ ﺯﯾﺮ ﺍﺳﺖ‪:‬‬
‫• ﺑﺎ ﺍﺳﺘﻔﺎﺩﻩ ﺍﺯ ‪t ← M ack۲ (m) :M ac‬‬

‫• ﺑﺎ ﺍﺳﺘﻔﺎﺩﻩ ﺍﺯ ﺳﯿﺴﺘﻢ ﺭﻣﺰ ﻣﺘﻘﺎﺭﻥ‪c ← Enck۱ (⟨m, t⟩) :‬‬

‫ﺍﯾﻦ ﺭ ﻭﺵ ﻫﻢ ﺍﻣﻨﯿﺖ ﻣﻄﻠﻮﺏ ﻣﺎ ﺭﺍ ﻧﺪﺍﺭﺩ‪.‬‬

‫ﺭ ﻭﺵ ﺳﻮﻡ‬ ‫‪۳ .۶‬‬

‫ﺩﺭ ﻧﻬﺎﯾﺖ ﺑﻪ ﺭ ﻭﺵ ﻣﻄﻠﻮﺏ ﻣﯽﺭﺳﯿﻢ‪ .‬ﺩﺭ ﺍﯾﻦ ﺭ ﻭﺵ ﺍﺯ ﺍﻟﮕﻮﺭﯾﺘﻢ ‪ M ac‬ﺑﻌﺪ ﺍﺯ ﺳﯿﺴﺘﻢ ﺭﻣﺰ ﻣﺘﻘﺎﺭﻥ ﺍﺳﺘﻔﺎﺩﻩ ﻣﯽﮐﻨﯿﻢ‪ .‬ﺑﻪ ﺍﯾﻦ‬
‫ﺭ ﻭﺵ ‪ Encrypt then M ac‬ﮔﻔﺘﻪ ﻣﯽﺷﻮﺩ‪ .‬ﺭ ﻭﺵ ﺑﻪ ﺻﻮﺭﺕ ﺯﯾﺮ ﺍﺳﺖ‪:‬‬

‫• ﺑﺎ ﺍﺳﺘﻔﺎﺩﻩ ﺍﺯ ﺳﯿﺴﺘﻢ ﺭﻣﺰ ﻣﺘﻘﺎﺭﻥ‪c ← Enck۱ (m) :‬‬

‫• ﺑﺎ ﺍﺳﺘﻔﺎﺩﻩ ﺍﺯ ‪t ← M ack۲ (c) :M ac‬‬

‫ﺧﺮ ﻭﺟﯽ ﺍﯾﻦ ﺭ ﻭﺵ ⟩‪ c′ = ⟨c, t‬ﺍﺳﺖ‪ .‬ﻣﯽﺗﻮﺍﻥ ﺍﺛﺒﺎﺕ ﮐﺮﺩ ﮐﻪ ﺍﯾﻦ ﺭ ﻭﺵ ﺍﻣﻨﯿﺖ ﺩﻟﺨﻮﺍﻩ ﻣﺎ ﺭﺍ ﺩﺍﺭﺍ ﺍﺳﺖ‪).‬ﺍﺛﺒﺎﺕ ﺍﻣﻨﯿﺖ ﺑﻪ‬
‫ﺧﻮﺍﻧﻨﺪﻩ ﻭﺍﮔﺬﺍﺭ ﻣﯽﺷﻮﺩ‪(.‬‬

‫‪۲۳-۵‬‬
‫ﺑﻪ ﻧﺎم ﺧﺪا‬

‫داﻧﺸ ﺪهی ﻋﻠﻮم رﯾﺎﺿ‬

‫‪ ١٧‬اردﯾﺒﻬﺸﺖ ‪١٣٩٢‬‬ ‫ﻣﻘﺪﻣﻪای ﺑﺮ رﻣﺰﻧ ﺎری‬

‫ﺟﻠﺴﻪی ‪ :١٩‬روشﻫﺎی ﺗﺒﺎدل ﮐﻠﯿﺪ‬


‫ﻧ ﺎرﻧﺪه‪ :‬ﻧﯿﻠﻮﻓﺮ ﺻﻔ ﺻﻤﻎ آﺑﺎدی‬ ‫ﻣﺪرس‪ :‬دﮐﺘﺮ ﺷﻬﺮام ﺧﺰاﺋ‬

‫در ﺟﻠﺴﺎت ﻗﺒﻞ دﯾﺪﯾﻢ ﮐﻪ ﭼ ﻮﻧﻪ ﺑﺎ اﺳﺘﻔﺎده از رﻣﺰﻧ ﺎری ﺗﻮﺳﻂ ﯾ ﮐﻠﯿﺪ ﺧﺼﻮﺻ ‪ ،١‬ﻣ ﺗﻮاﻧﯿﻢ در ﯾ ﮐﺎﻧﺎل ﻧﺎاﻣﻦ‪،‬‬
‫ﯾ ارﺗﺒﺎط اﻣﻦ داﺷﺘﻪ ﺑﺎﺷﯿﻢ ﮐﻪ ﺗﺤﺖ آن از دادهﻫﺎی ارﺳﺎﻟ ‪ ،‬در ﺑﺮاﺑﺮ ﺣﻤﻼت ﻣﻬﺎﺟﻢ ‪ ٢‬ﻣﺤﺎﻓﻈﺖ ﺷﻮد‪ .‬اﮐﻨﻮن‪ ،‬ﻫﺪف‪،‬‬
‫ﻣﻌﺮﻓ ﺳﯿﺴﺘﻢﻫﺎی رﻣﺰ ﻧﺎﻣﺘﻘﺎرن ‪ ٣‬ﯾﺎ ﻣﺪلﻫﺎی رﻣﺰﻧ ﺎری ﮐﻠﯿﺪ ﻋﻤﻮﻣ ‪ ۴‬اﺳﺖ‪ .‬در اﯾﻦ راﺳﺘﺎ‪ ،‬اﺑﺘﺪا‪ ،‬ﺑﻪ ﻣﻌﺮﻓ ﻣﻔﻬﻮم‬
‫ﺗﺒﺎدل ﮐﻠﯿﺪ ‪ ۵‬و ﻃﺮاﺣ ﭘﺮوﺗ ﻞﻫﺎی ﺗﺒﺎدل ﮐﻠﯿﺪ اﻣﻦ ﻣ ﭘﺮدازﯾﻢ‪.‬‬

‫ﻣﺴﺄﻟﻪ ﺗﺒﺎدل ﮐﻠﯿﺪ‬ ‫‪١‬‬


‫ﺳﺆال ﻓﺮض ﮐﻨﯿﺪ ﮐﻪ ‪ n‬ﮐﺎرﺑﺮ ﻣ ﺧﻮاﻫﻨﺪ دو ﺑﻪ دو ﺑﺎ ﻫﻢ ارﺗﺒﺎط ﺑﺮﻗﺮار ﮐﻨﻨﺪ‪ .‬ﻫﺮ ﮐﺎرﺑﺮ ﺑﺮای ارﺗﺒﺎط ﺑﺎ ﺳﺎﯾﺮﯾﻦ ﭼ ﻮﻧﻪ‬
‫از ﮐﻠﯿﺪ ﺧﺼﻮﺻ اش اﺳﺘﻔﺎده ﻣ ﮐﻨﺪ؟‬
‫روش اول ﻫﺮ ﮐﺎرﺑﺮ‪ ،‬ﺑﺎ ﻫﺮ ﯾ از ‪ n − ۱‬ﮐﺎرﺑﺮ دﯾ ﺮ ﯾ ﮐﻠﯿﺪ ﺧﺼﻮﺻ ﻣﺘﻤﺎﯾﺰ را ﺑﻪ اﺷﺘﺮاک ﮔﺬارد‪ .‬در اﯾﻦ ﺣﺎﻟﺖ‪،‬‬
‫ﺑﻄﻮر ﻣﺜﺎل‪ ،‬اﮔﺮ ﭼﻬﺎر ﮐﺎرﺑﺮ داﺷﺘﻪ ﺑﺎﺷﯿﻢ ﺗﺨﺼﯿﺺ ﮐﻠﯿﺪ ﺑﻪ ﺷ ﻞ زﯾﺮ ﺻﻮرت ﻣ ﮔﯿﺮد‪:‬‬

‫‪k۱,۲‬‬
‫‪M.۱‬‬ ‫‪M۲‬‬
‫‪k۱,۴‬‬ ‫‪k۲,۳‬‬
‫‪k۱,۳‬‬ ‫‪k۲,۴‬‬

‫‪k۳,۴‬‬
‫‪M۳‬‬ ‫‪M۴‬‬

‫ﻣﺸ ﻞ اﯾﻦ روش‪ ،‬ﻣﺪﯾﺮﯾﺖ ﺗﻌﺪاد زﯾﺎد ﮐﻠﯿﺪﻫﺎی ﺑﻪ اﺷﺘﺮاک ﮔﺬاﺷﺘﻪ ﺷﺪه اﺳﺖ‪ .‬در ﺣﻘﯿﻘﺖ‪ ،‬در ﯾ ﺷﺒ ﻪی ‪-n‬ﮐﺎرﺑﺮه‬
‫ﻫﺮ ﮐﺎرﺑﺮ ﺑﺎﯾﺪ ﺑﺮای ﺑﺮﻗﺮاری ارﺗﺒﺎط ﺑﺎ ﺳﺎﯾﺮ ﮐﺎرﺑﺮان‪ O(n) ،‬ﮐﻠﯿﺪ را ذﺧﯿﺮه ﺳﺎزد ﮐﻪ اﯾﻦ ﺧﻮب ﻧﯿﺴﺖ؛ زﯾﺮا‪ ،‬ﻫﺮ ﭼﻪ‬
‫ﺗﻌﺪاد ﮐﻠﯿﺪﻫﺎ ﺑﯿﺸﺘﺮ ﺑﺎﺷﺪ‪ ،‬ﻣﺤﺎﻓﻈﺖ از آﻧﻬﺎ دﺷﻮارﺗﺮ ﺑﻮده و اﺣﺘﻤﺎل دﺳﺘﯿﺎﺑ ﺑﻪ ﺗﻌﺪادی از آﻧﻬﺎ ﺑﺮای ﻣﻬﺎﺟﻢ ﺑﯿﺸﺘﺮ‬
‫‪١‬‬
‫‪secret key‬‬
‫‪٢‬‬
‫‪adversary‬‬
‫‪٣‬‬
‫‪asymmetric‬‬
‫‪۴‬‬
‫‪public-key encryption schemes‬‬
‫‪۵‬‬
‫‪key exchange‬‬

‫‪١٩-١‬‬
‫اﺳﺖ‪ .‬ﺑﺮای رﻓﻊ اﯾﻦ ﻣﻌﻀﻞ‪ ،‬روش دﯾ ﺮی را ﻣﻌﺮﻓ ﻣ ﮐﻨﯿﻢ‪.‬‬
‫روش دوم ﯾ ﺷﺨﺺ ﺛﺎﻟﺚ ﻣﻌﺘﻤﺪ )‪ (۶ TTP‬وارد ﻋﻤﻞ ﻣ ﺷﻮد ﮐﻪ ﻧﻘﺶ ﯾ ﻣﺮﮐﺰ ﺗﻮﻟﯿﺪ ﮐﻠﯿﺪ )‪ (٧ KDC‬را ﺑﺎزی‬
‫ﻣ ﮐﻨﺪ‪ .‬ﺑﻄﻮر ﻣﺜﺎل اﮔﺮ ﭼﻬﺎر ﮐﺎرﺑﺮ داﺷﺘﻪ ﺑﺎﺷﯿﻢ‪ ،‬ﻫﺮ ﯾ از ﮐﺎرﺑﺮان‪ ،‬ﺑﺼﻮرت زﯾﺮ ﮐﻠﯿﺪ ﺧﻮد را ﺑﺎ او ﺑﻪ اﺷﺘﺮاک‬
‫ﻣ ﮔﺬارﻧﺪ‪:‬‬

‫‪.‬‬
‫‪Alice‬‬ ‫‪Bob‬‬
‫‪kA‬‬ ‫‪kB‬‬

‫‪TTP‬‬
‫‪kE‬‬ ‫‪k۴‬‬
‫‪Eve‬‬ ‫‪M۴‬‬

‫در اﯾﻦ روش‪ ،‬ﻫﺮ ﮐﺎرﺑﺮ ﺗﻨﻬﺎ ﺑﺎﯾﺪ ﯾ ﮐﻠﯿﺪ را ذﺧﯿﺮه ﺳﺎزد‪ .‬ﻓﺮض ﮐﻨﯿﻢ ﮐﻪ ‪ Alice‬ﻣ ﺧﻮاﻫﺪ ﺑﺎ ‪ Bob‬ارﺗﺒﺎط ﺑﺮﻗﺮار ﮐﻨﺪ‪.‬‬
‫ﺑﺪﯾﻦ ﻣﻨﻈﻮر‪ ،‬ﺑﺎﯾﺪ از ﯾ ﭘﺮوﺗ ﻞ ﺗﺒﺎدل ﮐﻠﯿﺪ ﻣﻄﻤﺌﻦ اﺳﺘﻔﺎده ﮐﻨﺪ‪ ،‬ﺗﺎ ﮐﻠﯿﺪ ﺧﺼﻮﺻ ‪ KAB‬را ﺑﺎ ‪ Bob‬ﺑﻪ اﺷﺘﺮاک‬
‫ﮔﺬارد‪ .‬اﯾﻦ ﻋﻤﻞ‪ ،‬ﺑﻪ ﺷﯿﻮهی زﯾﺮ اﻧﺠﺎم ﻣ ﺷﻮد‪:‬‬
‫ﻃﺒﻖ ﺷ ﻞ ﺑﺎﻻ‪ kA ،‬و ‪ kB‬ﺑﻪ ﺗﺮﺗﯿﺐ ﮐﻠﯿﺪﻫﺎی ﺧﺼﻮﺻ ‪ Alice‬و ‪ Bob‬ﻫﺴﺘﻨﺪ‪ ،‬ﮐﻪ ﻫﺮ دو در اﺧﺘﯿﺎر ‪ TTP‬ﻗﺮار دارﻧﺪ‪.‬‬
‫اﺑﺘﺪا‪ Alice ،‬ﯾ ﭘﯿﺎم‪ ،‬ﻣﺒﻨ ﺑﺮ اﯾﻨ ﻪ ﺗﻤﺎﯾﻞ دارد ﺑﺎ ‪ Bob‬ارﺗﺒﺎط ﺑﺮﻗﺮار ﮐﻨﺪ‪ ،‬ﺑﺮای ‪ TTP‬ارﺳﺎل ﻣ ﮐﻨﺪ‪ .‬ﺳﭙﺲ ‪TTP‬‬
‫ﮐﻠﯿﺪ ﺗﺼﺎدﻓ ‪ kAB‬را ﺗﻮﻟﯿﺪ ﻣ ﮐﻨﺪ و ﺑﻌﻨﻮان ﭘﺎﺳﺦ‪ ،‬ﭘﯿﺎﻣ را ﺑﺮای ‪ Alice‬ﻣ ﻓﺮﺳﺘﺪ ﮐﻪ دارای دو ﻗﺴﻤﺖ اﺳﺖ‪ :‬ﻗﺴﻤﺖ‬
‫اول‪ EnckA (kAB ) ،‬اﺳﺖ ﮐﻪ ﺑﺎ اﺳﺘﻔﺎده از ﮐﻠﯿﺪ ﺧﺼﻮﺻ ‪ ،Alice‬ﺑﺪﺳﺖ ﻣ آﯾﺪ‪ .‬ﻗﺴﻤﺖ دوم ﭘﯿﺎﻣ ﮐﻪ ‪ TTP‬ﺑﺮای‬
‫‪ Alice‬ارﺳﺎل ﻣ ﮐﻨﺪ‪ ،‬ﮔﺬراﻧﻪ ‪ ٨‬ﻧﺎﻣﯿﺪه ﻣ ﺷﻮد و ﺑﺎ اﺳﺘﻔﺎده از ﮐﻠﯿﺪ ﺧﺼﻮﺻ ‪ ،Bob‬ﺑﺸ ﻞ زﯾﺮ ﻣﺤﺎﺳﺒﻪ ﻣ ﺷﻮد‪:‬‬

‫) ‪ticket = EnckB (kAB‬‬

‫ارﺗﺒﺎط ‪ Alice‬ﺑﺎ ‪ ،TTP‬ﭘﺲ از درﯾﺎﻓﺖ ﻣﺘﻦ رﻣﺰی ﻣﺨﺼﻮص ﺑﻪ ﺧﻮدش )ﻗﺴﻤﺖ اول ﭘﯿﺎم درﯾﺎﻓﺘ ( و ﯾ ﮔﺬراﻧﻪ‬
‫ﺑﺮای ‪) Bob‬ﻗﺴﻤﺖ دوم ﭘﯿﺎم درﯾﺎﻓﺘ (‪ ،‬ﺧﺎﺗﻤﻪ ﻣ ﯾﺎﺑﺪ‪ .‬ﺳﭙﺲ‪ Alice ،‬اﺑﺘﺪا ﻗﺴﻤﺖ اول ﭘﯿﺎم را‪ ،‬ﺑﺎ ﮐﻠﯿﺪ ﺧﺼﻮﺻ اش‬
‫رﻣﺰﮔﺸﺎﯾ ﮐﺮده و ‪ kAB‬را ﺑﺪﺳﺖ ﻣ آورد و در اداﻣﻪ ﮔﺬراﻧﻪ را ﺑﺮای ‪ Bob‬ارﺳﺎل ﻣ ﮐﻨﺪ‪ Bob .‬ﻧﯿﺰ ﺑﺎ اﺳﺘﻔﺎده از ﮐﻠﯿﺪ‬
‫ﺧﺼﻮﺻ اش‪ ،‬ﮔﺬراﻧﻪ درﯾﺎﻓﺘ را رﻣﺰﮔﺸﺎﯾ ﮐﺮده و ﮐﻠﯿﺪ ‪ kAB‬را ﺑﺪﺳﺖ ﻣ آورد‪ .‬ﺣﺎل‪ Alice ،‬و ‪ ،Bob‬ﯾ ﮐﻠﯿﺪ‬
‫اﺧﺘﺼﺎﺻ ﻣﺸﺘﺮک و اﻣﻦ دارﻧﺪ‪ ،‬ﮐﻪ ﺗﻮﺳﻂ آن ﻗﺎدرﻧﺪ ﺑﺎ ﯾ ﺪﯾ ﺮ ارﺗﺒﺎط ﺑﺮﻗﺮار ﮐﻨﻨﺪ‪ .‬ﺷﻤﺎﯾ از ﮐﻞ ﻋﻤﻠﯿﺎت ﻣﺬﮐﻮر در‬
‫ﺷ ﻞ زﯾﺮ ﻧﺸﺎن داده ﺷﺪه اﺳﺖ‪:‬‬
‫‪۶‬‬
‫‪trusted third party‬‬
‫‪٧‬‬
‫‪key distribution center‬‬
‫‪٨‬‬
‫‪ticket‬‬

‫‪١٩-٢‬‬
‫‪I want to talk to Bob‬‬
‫‪Alice‬‬ ‫) ‪EnckA (kAB‬‬ ‫‪TTP‬‬
‫‪.‬‬
‫) ‪ticket = EnckB (kAB‬‬

‫‪ticket‬‬

‫‪Bob‬‬

‫اﮔﺮ ﺳﯿﺴﺘﻢ رﻣﺰﻧ ﺎری ﻣﺘﻘﺎرن اﺳﺘﻔﺎده ﺷﺪه دارای اﻣﻨﯿﺖ ﻣﺘﻦ اﺻﻠ اﻧﺘﺨﺎﺑ )‪-CPA‬اﻣﻦ( ﺑﺎﺷﺪ‪ ،‬ﭘﺮوﺗ ﻞ ﺗﺒﺎدل ﮐﻠﯿﺪ‬
‫ﻣﻌﺮﻓ ﺷﺪه‪ ،‬در ﺑﺮاﺑﺮ ﻣﻬﺎﺟﻢ ﻣﻨﻔﻌﻞ ‪) ٩‬ﯾﺎ ﺷﻨﻮدﮔﺮ ‪ ،(١٠‬اﻣﻦ اﺳﺖ‪ .‬ﭼﺮا ﮐﻪ ﺷﻬﻮداً ﻣﻬﺎﺟﻢ ﻣﻨﻔﻌﻞ‪ ،‬ﺣﺘ ﺑﺎ دﯾﺪن ﭘﯿﺎم‬
‫ارﺳﺎﻟ ‪ TTP‬ﺑﻪ ‪ Alice‬ﻫﻢ ﻧﻤ ﺗﻮاﻧﺪ ﻣﺘﻦ رﻣﺰی ﮐﻠﯿﺪ ‪ kAB‬را از ﻣﺘﻦ رﻣﺰی ﯾ ﮐﻠﯿﺪ ﮐﺎﻣﻼ ﺗﺼﺎدﻓ ﺗﻤﯿﯿﺰ دﻫﺪ‪.‬‬
‫ﺑﻌﺒﺎرﺗ ‪ ،‬ﻧﻤ ﺗﻮاﻧﺪ ﻫﯿﭻ اﻃﻼﻋﺎﺗ در ﻣﻮرد ‪ kAB‬ﺑﺪﺳﺖ آورد‪.‬‬

‫ﺣﻤﻠﻪ ﺟﻌﻞ ﻫﻮﯾﺖ اﻣﺎ ﭘﺮوﺗ ﻞ ﻓﻮق در ﺑﺮاﺑﺮ ﻣﻬﺎﺟﻢ ﻓﻌﺎل ‪ ١١‬اﻣﻦ ﻧﯿﺴﺖ‪ .‬ﺑﻪ ﻋﻨﻮان ﻣﺜﺎل در ﭘﺮوﺗ ﻞ ﻣﺬﮐﻮر ‪ Eve‬ﺑﻪ‬
‫ﻋﻨﻮان ﯾ ﻣﻬﺎﺟﻢ ﻣ ﺗﻮاﻧﺪ ﭘﯿﺎﻣ ﻣﺒﻨ ﺑﺮ اﯾﻨ ﻪ ﺗﻤﺎﯾﻞ دارد ﺑﺎ ‪ Bob‬ارﺗﺒﺎط ﺑﺮﻗﺮار ﮐﻨﺪ‪ ،‬ﺑﺮای ‪ TTP‬ارﺳﺎل ﮐﻨﺪ‪ .‬ﺳﭙﺲ‬
‫‪ TTP‬ﮐﻠﯿﺪ ﺗﺼﺎدﻓ ‪ kBE‬را ﺗﻮﻟﯿﺪ ﻣ ﮐﻨﺪ و ﭘﯿﺎمﻫﺎی ) ‪ EnckE (kBE‬و ) ‪ ticket = EnckB (kBE‬را ﺑﺮای ‪Eve‬‬
‫ارﺳﺎل ﻣ ﮐﻨﺪ‪ Eve .‬ﺑﺎ اﺳﺘﻔﺎده از ﮐﻠﯿﺪ ﺧﺼﻮﺻ اش ﻣ ﺗﻮاﻧﺪ ﮐﻠﯿﺪ ‪ kBE‬را ﻣﺤﺎﺳﺒﻪ ﮐﻨﺪ‪ .‬ﺳﭙﺲ‪ Eve ،‬ﺑﺎ اﺳﺘﻔﺎده از‬
‫ﮔﺬراﻧﻪای ﮐﻪ از ‪ TTP‬درﯾﺎﻓﺖ ﮐﺮدهاﺳﺖ ﺧﻮد را ﺑﻪﺟﺎی ‪ Alice‬ﺑﻪ ‪ Bob‬ﻣﻌﺮﻓ ﻣ ﮐﻨﺪ و ﮐﻠﯿﺪ ‪ kBE‬را ﺑﺎ ‪ Bob‬ﺑﻪ‬
‫اﺷﺘﺮاک ﻣ ﮔﺬارد‪ .‬اﯾﻦ ﯾ ﺣﻤﻠﻪ ﻓﻌﺎل ﻣﺤﺴﻮب ﻣ ﺷﻮد ﮐﻪ ﺑﻪ آن ﺣﻤﻠﻪ ﺟﻌﻞ ﻫﻮﯾﺖ ‪ ١٢‬ﮔﻔﺘﻪ ﻣ ﺷﻮد‪ .‬ﺑﺮای ﻣﻘﺎوم‬
‫ﮐﺮدن ﭘﺮوﺗ ﻞ ﻓﻮق در ﺑﺮاﺑﺮ ﺣﻤﻠﻪ ﺟﻌﻞ ﻫﻮﯾﺖ ﻣ ﺗﻮان در ﭘﯿﺎمﻫﺎی رﻣﺰی ارﺳﺎﻟ ﺗﻮﺳﻂ ‪ TTP‬ﺑﻪ ﻓﺮد درﺧﻮاﺳﺖ‬
‫ﮐﻨﻨﺪه ارﺗﺒﺎط‪ ،‬ﻫﻮﯾﺖ اﻓﺮادی را ﮐﻪ ‪ TTP‬ﺑﺮای آﻧﻬﺎ ﮐﻠﯿﺪ ﻣﺸﺘﺮک ﺗﻮﻟﯿﺪ ﻣ ﮐﻨﺪ وارد ﮐﺮد‪ .‬ﺷ ﻞ زﯾﺮ ﻧﺤﻮه اﯾﻦ ﻣﺤﺎﺳﺒﻪ‬
‫را ﻧﺸﺎن ﻣ دﻫﺪ‪.‬‬
‫‪٩‬‬
‫‪passive‬‬
‫‪١٠‬‬
‫‪eavesdropping‬‬
‫‪١١‬‬
‫‪active attacks‬‬
‫‪١٢‬‬
‫‪impersonation attack‬‬

‫‪١٩-٣‬‬
‫‪I want to talk to Bob‬‬
‫‪Alice‬‬ ‫) ‪EnckA (“Alice, Bob”||kAB‬‬ ‫‪TTP‬‬
‫‪.‬‬
‫) ‪ticket = EnckB (“Alice, Bob”||kAB‬‬

‫‪ticket‬‬

‫‪Bob‬‬

‫‪ ،TTP‬دارای دو ﺧﺎﺻﯿﺖ اﺳﺖ‪:‬‬ ‫ﻧ ﺘﻪ ‪ ١‬ﭘﺮوﺗ ﻞ ﺗﺒﺎدل ﮐﻠﯿﺪ ﺑﻪ ﮐﻤ‬

‫• ﺑﺮای ﻫﺮ ﺗﺒﺎدل ﮐﻠﯿﺪ در ﺷﺒ ﻪ‪ TTP ،‬ﻣﻮرد ﻧﯿﺎز اﺳﺖ‪.‬‬

‫• ‪ TTP‬ﻫﻤﻪی ﮐﻠﯿﺪﻫﺎ )ﮐﻠﯿﺪﻫﺎی ﺧﺼﻮﺻ ﮐﺎرﺑﺮان و ﮐﻠﯿﺪﻫﺎی اﻣﻦ ﻣﺸﺘﺮک ﺑﯿﻦ ﻫﺮ دو ﮐﺎرﺑﺮ( را ﻣ داﻧﺪ‪.‬‬

‫اﯾﻦ ﺧﺼﻮﺻﯿﺎت ﺑﺎﻋﺚ ﻣ ﺷﻮد ﮐﻪ اﮔﺮ ‪ TTP‬ﺗﺴﺨﯿﺮ ﺷﻮد‪ ،‬ﻣﻬﺎﺟﻢ ﺑﻪ راﺣﺘ ﺑﺘﻮاﻧﺪ ﺑﻪ ﺗﻤﺎﻣ ﮐﻠﯿﺪﻫﺎی ﻣﺸﺘﺮک ﺑﯿﻦ‬
‫ﮐﺎرﺑﺮان دﺳﺖ ﯾﺎﺑﺪ‪.‬‬

‫ﺗﺒﺎدل ﮐﻠﯿﺪ ﺑﺪون اﺷﺘﺮاک ﮐﻠﯿﺪ‬ ‫‪٢‬‬


‫راﻫ ﺎرﻫﺎﯾ ﮐﻪ در ﺑﺨﺶ ﻗﺒﻞ اراﺋﻪ ﺷﺪﻧﺪ ﻣﺴﺄﻟﻪ ﺗﺒﺎدل ﮐﻠﯿﺪ را ﺑﻪ ﻃﻮر ﮐﺎﻣﻞ ﻣﺮﺗﻔﻊ ﻧﻤ ﮐﻨﻨﺪ زﯾﺮا ﮐﺎرﺑﺮان ﺑﺎﯾﺪ از ﻗﺒﻞ‬
‫ﮐﻠﯿﺪ ﯾﺎ ﮐﻠﯿﺪﻫﺎﯾ را ﺑﺎ ﯾ ﺪﯾ ﺮ و ﯾﺎ ﯾ ﺷﺨﺺ ﺛﺎﻟﺚ ﻣﻌﺘﻤﺪ ﺑﻪ اﺷﺘﺮاک ﺑ ﺬارﻧﺪ‪ .‬ﺑﺮای ﺗﺒﺎدل ﮐﻠﯿﺪ‪ ،‬ﭘﺮوﺗ ﻞﻫﺎی‬
‫دﯾ ﺮی ﻫﻢ وﺟﻮد دارﻧﺪ ﮐﻪ در آﻧﻬﺎ ﻧﯿﺎز ﺑﻪ اﺷﺘﺮاک ﮐﻠﯿﺪ از ﻗﺒﻞ و ﯾﺎ وﺟﻮد ﺷﺨﺺ ﺛﺎﻟﺚ ﻣﻌﺘﻤﺪ ﻧﯿﺴﺖ ﮐﻪ در اداﻣﻪ ﺑﻪ‬
‫ﻣﻌﺮﻓ آﻧﻬﺎ ﻣ ﭘﺮدازﯾﻢ‪ .‬اﯾﻦ راه ﺣﻞﻫﺎ ﺑﺮای ﻣﻬﺎﺟﻢ ﻣﻨﻔﻌﻞ اﻣﻦ اﺳﺖ‪ .‬ﻣﻬﺎﺟﻢ ﻓﻌﺎل ﻣ ﺗﻮاﻧﺪ ﺣﻤﻠﻪای ﻣﻮﺳﻮم ﺑﻪ ﺣﻤﻠﻪی‬
‫ﻣﺮد ﻣﯿﺎﻧ ‪ ١٣‬را ﻋﻠﯿﻪ ﻫﺮ ﭘﺮوﺗ ﻞ ﺗﺒﺎدل ﮐﻠﯿﺪی اﻋﻤﺎل ﻧﻤﺎﯾﺪ ﮐﻪ در اﻧﺘﻬﺎ ﺗﻮﺿﯿﺢ داده ﺧﻮاﻫﺪ ﺷﺪ‪.‬‬

‫ﺗﺎرﯾﺨﭽﻪ ﺷﺎﯾﺎن ذﮐﺮ اﺳﺖ ﮐﻪ اﻣ ﺎن وﺟﻮد روﺷ ﺑﺮای ﺗﺒﺎدل ﮐﻠﯿﺪ ﺑﻪ ﻫﯿﭻوﺟﻪ ﺑﺪﯾﻬ ﻧﯿﺴﺖ‪ .‬ﻃﺮح اﯾﻦ ﺳﺆال و‬
‫راه ﺣﻞﻫﺎﯾ ﮐﻪ ﺑﻪ دﻧﺒﺎل آن اراﺋﻪ ﺷﺪ‪ ،‬ﻧﻘﻄﻪ ﻋﻄﻔ در ﺗﺎرﯾﺦ ﻋﻠﻢ رﻣﺰﺷﻨﺎﺳ ﻣﺤﺴﻮب ﻣ ﺷﻮد ﮐﻪ ﻣﻨﺠﺮ ﺑﻪ ﺷ ﻞﮔﯿﺮی‬
‫رﻣﺰﻧ ﺎری ﻧﻮﯾﻦ ﺷﺪ‪ .‬اﯾﻦ ﻣﺴﺄﻟﻪ اوﻟﯿﻦ ﺑﺎر در ﺟﺎﻣﻌﻪ ﻋﻠﻤ ﺗﻮﺳﻂ ﻣﺮﮐﻞ در ﺳﺎل ‪ ١٩٧۴‬ﻫﻨ ﺎﻣ ﮐﻪ داﻧﺸﺠﻮی ﮐﺎرﺷﻨﺎﺳ‬
‫ارﺷﺪ ﺑﻮد ﻣﻄﺮح و راه ﺣﻠ ﮐﻪ اﮐﻨﻮن ﺑﻪ ﭘﺎزل ﻣﺮﮐﻞ ﻣﻌﺮف اﺳﺖ ﺑﺮای آن اراﺋﻪ ﺷﺪ‪ .‬اﻣﺎ راه ﺣﻞ وی در ﺳﺎل ‪١٩٧٨‬‬
‫ﻣﻨﺘﺸﺮ ﺷﺪ؛ ﭘﺎزل ﻣﺮﮐﻞ دو ﻃﺮﻓ را ﮐﻪ ﻫﺮﮔﺰ ﯾ ﺪﯾ ﺮ را ﻣﻼﻗﺎت ﻧ ﺮدهاﻧﺪ ﻗﺎدر ﻣ ﺳﺎزد ﮐﻪ ﺑﺎ ارﺳﺎل اﻃﻼﻋﺎت در زﻣﺎن‬
‫)‪ O(n‬ﮐﻠﯿﺪی را ﺑﻪ اﺷﺘﺮاک ﮔﺬارﻧﺪ‪ .‬وﻟ ﻣﻬﺎﺟﻤ ﮐﻪ ﻣ ﺎﻟﻤﻪ آﻧﻬﺎ را ﺷﻨﻮد ﮐﺮده اﺳﺖ‪ ،‬در زﻣﺎن ) ‪ O(n۲‬ﻗﺎدر ﺑﻪ ﮐﺸﻒ‬
‫ﮐﻠﯿﺪ ﻣﺸﺘﺮک اﺳﺖ‪ .‬ﻫﺮﭼﻨﺪ راه ﺣﻞ ﻣﺮﮐﻞ ﭼﻨﺪان ﻋﻤﻠ ﻧﯿﺴﺖ اﻣﺎ ﺳﻮال وی ﭘﺮوﺗ ﻞ دﯾﻔ ‪-‬ﻫﻠﻤﻦ را در ﺳﺎل ‪١٩٧۶‬‬
‫ﺑﺮای ﺟﺎﻣﻌﻪ رﻣﺰﻧ ﺎری ﺑﻪ ارﻣﻐﺎن آورد‪ .‬ﭘﺮوﺗ ﻞ دﯾﻔ ‪-‬ﻫﻠﻤﻦ‪ ،‬ﺗﺒﺎدل ﮐﻠﯿﺪ را ﺑﺮای دو ﻃﺮف در در زﻣﺎن ﭼﻨﺪﺟﻤﻠﻪای‬
‫اﻣ ﺎن ﭘﺬﯾﺮ ﻣ ﮐﻨﺪ‪ ،‬اﻣﺎ ﺗﺤﺖ ﻓﺮضﻫﺎﯾ ﮐﺎﻣﻼ ﭘﺬﯾﺮﻓﺘﻪ ﺷﺪه ﻣﻬﺎﺟﻢ ﺑﻪ زﻣﺎن ﻧﻤﺎﯾ ﯾﺎ زﯾﺮﻧﻤﺎﯾ ﺑﺮای ﻣﺤﺎﺳﺒﻪ ﮐﻠﯿﺪ ﻧﯿﺎز‬
‫دارد‪ .‬ﯾ ﺴﺎل ﺑﻌﺪ‪ ،‬اﯾﺪه ﺳﯿﺴﺘﻢ رﻣﺰ ﮐﻠﯿﺪﻋﻤﻮﻣ و اﻣﻀﺎی دﯾﺠﯿﺘﺎل ﺗﻮﺳﻂ رﯾﻮﺳﺖ‪ ،‬ﺷﺎﻣﯿﺮ و آدﻟﻤﻦ ﺗﺤﺖ ﺳﯿﺴﺘﻤ ﮐﻪ‬
‫‪١٣‬‬
‫‪man-in-the-middle attac‬‬

‫‪١٩-۴‬‬
‫اﮐﻨﻮن ﺑﻪ ‪ RSA‬ﻣﻌﺮوف اﺳﺖ‪ ،‬ﻣﻄﺮح ﺷﺪ‪ .‬ﺟﺎﻟﺐ اﺳﺖ ﺑﺪاﻧﯿﺪ ﻣﺴﺄﻟﻪ ﺗﺒﺎدل ﮐﻠﯿﺪ و ﺳﯿﺴﺘﻢ رﻣﺰ ﮐﻠﯿﺪ ﻋﻤﻮﻣ از ﺳﺎل‬
‫‪ ١٩۶٠‬ذﻫﻦ رﯾﺎﺿﯿﺪاﻧﺎن و رﻣﺰﻧ ﺎران ﺳﺘﺎد ارﺗﺒﺎﻃﺎت دوﻟﺖ اﻧ ﻠﯿﺲ ‪ ١۴‬را ﺑﻪ ﺧﻮد ﻣﺸﻐﻮل ﮐﺮده اﺳﺖ و ﻗﺒﻞ از ﺳﺎل‬
‫‪ ١٩٧۵‬ﺑﻪ ﮐﺸﻒ داﺧﻠ ﺳﯿﺴﺘﻢﻫﺎﯾ ﻣﺸﺎﺑﻪ دﯾﻔ ‪-‬ﻫﻠﻤﻦ و ‪ RSA‬ﻣﻨﺠﺮ ﺷﺪه اﺳﺖ‪ .‬اﺳﻨﺎد ﻣﺮﺑﻮط ﺗﻨﻬﺎ در ﺳﺎل ‪١٩٩٧‬‬
‫اﻧﺘﺸﺎر ﻋﻤﻮﻣ ﯾﺎﻓﺖ‪.‬‬

‫ﭘﺎزل ﻣﺮﮐﻞ‬ ‫‪١.٢‬‬


‫ﮐﻠﯿﺪ ﺧﺼﻮﺻ ﺑﻪ‬ ‫ﻫﺪف‪ Alice :‬و ‪ Bob‬ﻣ ﺧﻮاﻫﻨﺪ ﻣﺴﺘﻘﯿﻤﺎً و ﺑﺎ اﺳﺘﻔﺎده از ﺗ ﻨﯿ ﻫﺎی رﻣﺰﻧ ﺎری ﻣﺘﻘﺎرن‪ ،‬ﯾ‬
‫اﺷﺘﺮاک ﮔﺬارﻧﺪ‪ ،‬ﮐﻪ ﻫﯿﭻ ﻣﻬﺎﺟﻢ ﻣﻨﻔﻌﻠ ﻧﺘﻮاﻧﺪ ﺑﻪ آن دﺳﺖ ﭘﯿﺪا ﮐﻨﺪ‪.‬‬
‫ﺑﺮای دﺳﺘﯿﺎﺑ ﺑﻪ اﯾﻦ ﻫﺪف‪ ،‬در اداﻣﻪ‪ ،‬ﭘﺮوﺗ ﻞ ﭘﺎزل ﻣﺮﮐﻞ ‪ ١۵‬را ﻣﻌﺮﻓ ﻣ ﻧﻤﺎﯾﯿﻢ ﮐﻪ اﺑﺰار اﺻﻠ ﻣﻮرد اﺳﺘﻔﺎده در آن‪،‬‬
‫ﭘﺎزلﻫﺎ ﻫﺴﺘﻨﺪ‪.‬‬

‫ﺳﺮی ﺗﻼشﻫﺎ ﻗﺎﺑﻞ ﺣﻞ اﺳﺖ‪.‬‬ ‫ﺗﻌﺮﯾﻒ ‪ ١‬ﭘﺎزل ﻣﺴﺌﻠﻪای اﺳﺖ ﮐﻪ ﺣﻞ آن دﺷﻮار اﺳﺖ‪ ،‬وﻟ ﺗﻮﺳﻂ ﯾ‬

‫ﻣﺜﺎل ‪ ٢‬ﻓﺮض ﮐﻨﯿﺪ )·( ‪ ،Enck‬ﯾ اﻟ ﻮرﯾﺘﻢ رﻣﺰﻧ ﺎری ﻣﺘﻘﺎرن دارای اﻣﻨﯿﺖ ﻣﺘﻦ اﺻﻠ اﻧﺘﺨﺎﺑ )‪-CPA‬اﻣﻦ( ﺑﺎ ﮐﻠﯿﺪ‬
‫‪ ١٢٨‬ﺑﯿﺘ ‪ k‬ﺑﺎﺷﺪ‪ .‬ﮐﻠﯿﺪ اﻧﺘﺨﺎﺑ ﻣﺎ ﺑﺮای اﯾﻦ رﻣﺰ ﻣﺘﻘﺎرن دارای اﯾﻦ وﯾﮋﮔ اﺳﺖ ﮐﻪ ‪ ٩۶‬ﺑﯿﺖ اول آن ﺻﻔﺮ اﺳﺖ‬
‫و ‪ ٣٢‬ﺑﯿﺖ آﺧﺮ آن )ﮐﻪ ﺟﻮاب ﭘﺎزل ﻣﺎﺳﺖ و ﺑﺎ ‪ P‬ﻧﺸﺎن داده ﻣ ﺷﻮد( ﺑﻪ ﺷ ﻞ ﺗﺼﺎدﻓ اﻧﺘﺨﺎب ﻣ ﺷﻮد؛ ﯾﻌﻨ ‪:‬‬
‫‪ .k = ۰۹۶ ||P‬در اﯾﻨﺠﺎ )‪ puzzle = Enck (m‬ﯾ ﭘﺎزل اﺳﺖ و ﻫﺪف ﯾﺎﻓﺘﻦ ﺟﻮاب آن‪ ،P ،‬ﺑﺎ ﻓﺮض داﺷﺘﻦ‬
‫اﻃﻼﻋﺎﺗ در ﺑﺎره ﭘﯿﺎم ‪ m‬و ﺑﺎ ﺑﺮرﺳ ‪ ۲۳۲‬ﺣﺎﻟﺖ ﻣﻤ ﻦ اﺳﺖ‪ .‬ﺑﺪﯾﻦ ﻣﻨﻈﻮر ﮐﺎﻓ اﺳﺖ ﻣﺘﻦ رﻣﺰی )ﭘﺎزل( ‪puzzle‬‬
‫را ﺗﻮﺳﻂ ﻫﺮ ﯾ از ‪ ۲۳۲‬ﮐﻠﯿﺪ ﻣﻤ ﻦ رﻣﺰﮔﺸﺎﯾ ﮐﻨﯿﻢ و ﻫﺮﮔﺎه ﻧﺘﯿﺠﻪ ﺑﺎ ﻣﺘﻦ اوﻟﯿﻪ ﺳﺎزﮔﺎر ﺷﺪ‪ ،‬ﮐﻠﯿﺪ را ﯾﺎﻓﺘﻪاﯾﻢ‪ .‬ﺑﺮای‬
‫اﯾﻨ ﻪ ﺗﻨﻬﺎ ﯾ از ‪ ۲۳۲‬ﮐﻠﯿﺪ ﻣﻤ ﻦ ﺑﺎ ﻣﺘﻦ اﺻﻠ ﺳﺎزﮔﺎر ﺑﺎﺷﺪ‪ ،‬ﭘﯿﺎم ‪ m‬ﺑﺎﯾﺪ ﺑﻪ اﻧﺪازهی ﮐﺎﻓ دارای اﻓﺰوﻧ ﺑﺎﺷﺪ‪.‬‬
‫ﺑﻌﻨﻮان ﻣﺜﺎل‪ ،‬اﮔﺮ ‪ m‬ﭘﯿﺎﻣ ﺑﺎﺷﺪ ﮐﻪ ﺑﺎ ‪ t‬ﺗﺎ ﺻﻔﺮ ﺷﺮوع ﺷﺪه ﺑﺎﺷﺪ‪ ،‬ﺑﻄﻮر ﻣﺘﻮﺳﻂ ﺣﺪود ‪ ۱ + ۲۳۲−t‬ﮐﺎﻧﺪﯾﺪا ﺑﺮای‬
‫‪ P‬ﭘﯿﺪا ﺧﻮاﻫﺪ ﺷﺪ‪ .‬ﺑﻨﺎﺑﺮاﯾﻦ‪ ،‬اﮔﺮ ‪ t = ۱۲۸‬ﺑﺎﺷﺪ‪ ،‬ﺑﺎ اﺣﺘﻤﺎل ﺑﺴﯿﺎر زﯾﺎد ﺗﻨﻬﺎ ﯾ ﮔﺰﯾﻨﻪ ﺑﺮای ‪ P‬ﭘﯿﺪا ﺧﻮاﻫﺪ ﺷﺪ ﮐﻪ‬
‫ﻫﻤﺎن ﺟﻮاب درﺳﺖ ﭘﺎزل اﺳﺖ‪.‬‬

‫ﺗﻌﺮﯾﻒ ‪) ٣‬ﭘﺎزل ﻣﺮﮐﻞ( ﺑﺎ ﺗﻮﺟﻪ ﺑﻪ ﻣﺜﺎل ﺑﺎﻻ‪ ،‬ﺗﺒﺎدل ﮐﻠﯿﺪ ﺑﺎ اﺳﺘﻔﺎده از ﭘﺮوﺗ ﻞ ﭘﺎزل ﻣﺮﮐﻞ ﺑﻪ ﺻﻮرت زﯾﺮ اﻧﺠﺎم ﻣ ﺷﻮد‪:‬‬

‫• اﺑﺘﺪا ‪ ۲۳۲ ،Alice‬ﭘﺎزل را ﻓﺮاﻫﻢ ﻣ ﮐﻨﺪ‪ .‬ﻧﺤﻮهی ﺳﺎﺧﺖ ﭘﺎزلﻫﺎ ﺑﻪ اﯾﻦ ﺻﻮرت اﺳﺖ ﮐﻪ ‪ ،Alice‬ﺑﻪ ازای ﻫﺮ‬
‫‪ ،i = ۱, ..., ۲۳۲‬رﺷﺘﻪﻫﺎی ﺗﺼﺎدﻓ ‪ Pi ∈ {۰, ۱}۳۲‬و ‪ xi , ki ∈ {۰, ۱}۱۲۸‬را اﻧﺘﺨﺎب ﻣ ﮐﻨﺪ و ﭘﺎزل‬
‫‪-i‬ام را ﺑﻪ ﺷ ﻞ زﯾﺮ ﻣ ﺳﺎزد‪:‬‬

‫) ‪puzzlei ← Enc۰۹۶ ||Pi (۰۱۲۸ ||xi ||ki‬‬

‫ﮐﻪ ‪ xi‬ﻧﺸﺎندﻫﻨﺪهی ﺷﻤﺎرهی ﭘﺎزل و ‪ ki‬ﮐﻠﯿﺪ ﻣﺘﻨﺎﻇﺮ ﺑﺎ ﭘﺎزل ﺷﻤﺎره ‪ i‬اﺳﺖ‪ .‬در ﻧﻬﺎﯾﺖ‪puzzle۱ , ..., puzzle۲۳۲ ،‬‬
‫ﺑﺮای ‪ Bob‬ارﺳﺎل ﻣ ﺷﻮﻧﺪ‪.‬‬

‫• ‪ ۲۳۲ ،Bob‬ﭘﺎزل را درﯾﺎﻓﺖ ﻣ ﮐﻨﺪ‪ .‬ﺳﭙﺲ‪ ،‬ﺑﻪ ﺻﻮرت ﺗﺼﺎدﻓ ﭘﺎزل ‪-j‬ام ﯾﻌﻨ ‪ puzzlej‬را اﻧﺘﺨﺎب ﮐﺮده و‬
‫ﺣﻞ ﻣ ﮐﻨﺪ‪ .‬ﺑﻨﺎﺑﺮاﯾﻦ‪ (xj , kj ) ،‬را ﺑﺪﺳﺖ ﻣ آورد و در اﻧﺘﻬﺎ ‪ xj‬را ﺑﺮای ‪ Alice‬ﻣ ﻓﺮﺳﺘﺪ‪.‬‬
‫‪١۴‬‬
‫)‪Government Communications Headquarters (GCHQ‬‬
‫‪١۵‬‬
‫‪merkle puzzle‬‬

‫‪١٩-۵‬‬
‫• ‪ Alice‬ﭘﺎزل ﺷﻤﺎرهی ‪ xj‬را ﭘﯿﺪا ﻣ ﮐﻨﺪ و از ﮐﻠﯿﺪ ﻣﺘﻨﺎﻇﺮ ﺑﺎ آن ﯾﻌﻨ ‪ kj‬ﺑﻪ ﻋﻨﻮان ﮐﻠﯿﺪ ﺧﺼﻮﺻ ﻣﺸﺘﺮک‬
‫اﺳﺘﻔﺎده ﻣ ﮐﻨﺪ‪.‬‬
‫ﻧ ﺘﻪ ‪ ٢‬در ﺣﺎﻟﺖ ﮐﻠ اﮔﺮ ‪ n ،Alice‬ﭘﺎزل ﺑﺴﺎزد‪ ،‬ﮐﺎری ﮐﻪ اﻧﺠﺎم ﻣ دﻫﺪ از )‪ O(n‬اﺳﺖ‪ Bob .‬ﻧﯿﺰ ﺑﺎﯾﺪ ﯾ از ‪n‬‬
‫ﭘﺎزل درﯾﺎﻓﺘ را اﻧﺘﺨﺎب ﮐﺮده و آن را ﺣﻞ ﮐﻨﺪ‪ .‬اﮔﺮ ﻫﺮﯾ از ﭘﺎزلﻫﺎ در زﻣﺎن )‪ O(n‬ﻗﺎﺑﻞ ﺣﻞ ﺑﺎﺷﻨﺪ‪ ،‬ﮐﺎری ﮐﻪ ‪Bob‬‬
‫اﻧﺠﺎم ﻣ دﻫﺪ ﻫﻢ از )‪ O(n‬اﺳﺖ‪ .‬اﻣﺎ ﻣﻬﺎﺟﻢ ﺷﻨﻮدﮔﺮی ﮐﻪ ﻗﺼﺪ ﺣﻤﻠﻪ ﺑﻪ اﯾﻦ ﭘﺮوﺗ ﻞ را داﺷﺘﻪ ﺑﺎﺷﺪ‪ ،‬ﭼﻮن ﻧﻤ داﻧﺪ‬
‫ﮐﻪ ‪ xj‬ﺷﻤﺎرهی ﮐﺪام ﭘﺎزل اﺳﺖ‪ ،‬ﺑﺎﯾﺪ ‪ n‬ﭘﺎزﻟ را ﮐﻪ ‪ Alice‬ﺑﻪ ‪ Bob‬ارﺳﺎل ﻣ ﮐﻨﺪ ﺣﻞ ﮐﻨﺪ‪ .‬ﺑﻨﺎﺑﺮاﯾﻦ ﮐﺎری ﮐﻪ ﻣﻬﺎﺟﻢ‬
‫ﺑﺮای ﺣﻤﻠﻪ ﺻﻮرت ﻣ دﻫﺪ‪ ،‬از ) ‪ O(n۲‬ﺧﻮاﻫﺪ ﺑﻮد‪ .‬در ﺗﻌﺮﯾﻔ ﮐﻪ در ﺑﺎﻻ اراﺋﻪ دادﯾﻢ ‪ n = ۲۳۲‬اﺳﺖ؛ ﭘﺲ ﻣﻬﺎﺟﻢ‬
‫ﺑﺎ ‪ ۲۶۴‬رﻣﺰﮔﺸﺎﯾ ‪ ،‬ﻣ ﺗﻮاﻧﺪ ﺑﻪ ﭘﺮوﺗ ﻞ ﺣﻤﻠﻪ ﮐﻨﺪ ﮐﻪ ﻣ ﺗﻮان ﻓﺮض ﮐﺮد اﻣﺮوزه ﻗﺎﺑﻞ دﺳﺘﺮﺳ ﻧﯿﺴﺖ‪.‬‬

‫ﭘﺮوﺗ ﻞ دﯾﻔ ‪-‬ﻫﻠﻤﻦ‬ ‫‪٢.٢‬‬


‫ﺗﻌﺮﯾﻒ ‪) ۴‬ﭘﺮوﺗ ﻞ ﺗﺒﺎدل ﮐﻠﯿﺪ دﯾﻔ ‪-‬ﻫﻠﻤﻦ ‪ (١۶‬ﺗﺒﺎدل ﮐﻠﯿﺪ ﺑﺎ اﺳﺘﻔﺎده از ﭘﺮوﺗ ﻞ دﯾﻔ ‪-‬ﻫﻠﻤﻦ ﺑﯿﻦ ‪ Alice‬و ‪ Bob‬ﺑﻪ‬
‫ﺻﻮرت زﯾﺮ اﻧﺠﺎم ﻣ ﺷﻮد‪:‬‬

‫• ‪ Alice‬ﺑﺎ درﯾﺎﻓﺖ ﭘﺎراﻣﺘﺮ اﻣﻨﯿﺘ ‪ ،۱n‬ﻣﻮﻟﺪ ) ‪ GroupGen(۱n‬را ﺑﺮای ﺑﺪﺳﺖ آوردن )‪ (G, q, g‬اﺟﺮا ﻣ ﮐﻨﺪ‪.‬‬
‫ﺳﭙﺲ ‪ x ← Zq‬را ﺑﻄﻮر ﯾ ﻨﻮاﺧﺖ و ﺗﺼﺎدﻓ اﻧﺘﺨﺎب ﻣ ﮐﻨﺪ و ‪ h۱ = g x‬را ﻣﺤﺎﺳﺒﻪ ﻣ ﻧﻤﺎﯾﺪ و ) ‪(G, q, g, h۱‬‬
‫را ﺑﺮای ‪ Bob‬ارﺳﺎل ﻣ ﮐﻨﺪ‪.‬‬
‫• ‪ (G, q, g, h۱ ) ،Bob‬را درﯾﺎﻓﺖ ﮐﺮده و ‪ y ← Zq‬را ﺑﻄﻮر ﯾ ﻨﻮاﺧﺖ و ﺗﺼﺎدﻓ اﻧﺘﺨﺎب ﻣ ﮐﻨﺪ‪ .‬ﺳﭙﺲ‪،‬‬
‫‪ h۲ = g y‬را ﻣﺤﺎﺳﺒﻪ ﮐﺮده و ﺑﻪ ‪ Alice‬ارﺳﺎل ﻣ ﮐﻨﺪ و در ﻧﻬﺎﯾﺖ‪ ،‬ﮐﻠﯿﺪ ‪ kB = hy۱‬را ﺑﻪ ﺧﺮوﺟ ﻣ دﻫﺪ‪.‬‬
‫• ‪ h۲ ،Alice‬را درﯾﺎﻓﺖ ﮐﺮده و ﮐﻠﯿﺪ ‪ kA = hx۲‬را ﺗﻮﻟﯿﺪ ﻣ ﮐﻨﺪ‪.‬‬
‫ﻧﺤﻮهی ﺗﺒﺎدل ﮐﻠﯿﺪ در ﭘﺮوﺗ ﻞ دﯾﻔ ‪-‬ﻫﻠﻤﻦ‪ ،‬در ﺷ ﻞ زﯾﺮ ﻧﺸﺎن داده ﺷﺪه اﺳﺖ‪:‬‬

‫‪Alice‬‬ ‫‪Bob‬‬
‫‪.‬‬
‫‪x ← Zq‬‬
‫‪h۱ = g x‬‬
‫‪y ← Zq‬‬
‫‪h۲ = g y‬‬

‫‪kA = hx۲‬‬ ‫‪kB = hy۱‬‬

‫ﺑﺮرﺳ اﯾﻦ ﻣﺴﺌﻠﻪ ﮐﻪ اﯾﻦ ﭘﺮوﺗ ﻞ ﺻﺤﯿﺢ اﺳﺖ ﮐﺎر دﺷﻮاری ﻧﯿﺴﺖ؛ ﭼﺮا ﮐﻪ ‪ Alice‬و ‪ Bob‬ﺑﻪ ﺗﺮﺗﯿﺐ ﮐﻠﯿﺪﻫﺎی ‪kB‬‬
‫و ‪ kA‬را ﺑﻪ ﺷ ﻞ زﯾﺮ ﻣﺤﺎﺳﺒﻪ ﻣ ﮐﻨﻨﺪ‪:‬‬
‫‪kB = hy۱ = (g x )y = g xy‬‬
‫و‬
‫‪kA = h۲ = (g y )x = g xy‬‬
‫‪x‬‬

‫ﺑﻮﺿﻮح ﻣ ﺑﯿﻨﯿﻢ ﮐﻪ ‪.kB = kA‬‬


‫‪١۶‬‬
‫‪the Diffie-Hellman protocol‬‬

‫‪١٩-۶‬‬
‫اﻣﻨﯿﺖ ﭘﺮوﺗ ﻞ دﯾﻔ ‪-‬ﻫﻠﻤﻦ در ﻧ ﺎه اول ﻣﻤ ﻦ اﺳﺖ ﺑﻪ ﻧﻈﺮ ﺑﺮﺳﺪ ﮐﻪ ﻣﻬﺎﺟﻢ ﻣﻨﻔﻌﻞ ﺑﺮای ﺑﺪﺳﺖ آوردن ﮐﻠﯿﺪ‬
‫ﻣﺸﺘﺮک در ﭘﺮوﺗ ﻞ دﯾﻔ ‪-‬ﻫﻠﻤﻦ ﺑﺎﯾﺪ ﺑﺘﻮاﻧﺪ از روی ‪ g x‬ﻣﻘﺪار ‪ x‬را ﻣﺤﺎﺳﺒﻪ ﮐﻨﺪ‪ .‬اﯾﻦ ﻣﺴﺄﻟﻪ ﺗﺤﺖ ﻋﻨﻮان ﻣﺴﺄﻟﻪ ﻟ ﺎرﯾﺘﻢ‬
‫ﮔﺴﺴﺘﻪ ﺷﻨﺎﺧﺘﻪ ﻣ ﺷﻮد‪ .‬اﮔﺮ ﻣﺴﺄﻟﻪ ﻟ ﺎرﯾﺘﻢ ﮔﺴﺴﺘﻪ ﺑﺮای ﮔﺮوه ﻣﻮرد اﺳﺘﻔﺎده در ﭘﺮوﺗ ﻞ دﯾﻔ ‪-‬ﻫﻠﻤﻦ آﺳﺎن ﺑﺎﺷﺪ‪،‬‬
‫ﭘﺮوﺗ ﻞ در ﺑﺮاﺑﺮ ﻣﻬﺎﺟﻢ ﻣﻨﻔﻌﻞ اﻣﻦ ﻧﯿﺴﺖ زﯾﺮا ﺑﻪ راﺣﺘ ﻣ ﺗﻮاﻧﺪ ﮐﻠﯿﺪ ﻣﺸﺘﺮک را ﻣﺤﺎﺳﺒﻪ ﮐﻨﺪ‪.‬‬

‫ﺗﻌﺮﯾﻒ ‪) ۵‬ﻓﺮض ﻟ ﺎرﯾﺘﻢ ﮔﺴﺴﺘﻪ ‪ (١٧‬ﻣ ﮔﻮﯾﯿﻢ ﻓﺮض ﻟ ﺎرﯾﺘﻢ ﮔﺴﺴﺘﻪ )ﯾﺎ ‪ (DL‬ﺑﺮای ﮔﺮوه ‪ GroupGen‬ﺑﺮﻗﺮار اﺳﺖ‬
‫)ﯾﺎ ﻣﺴﺌﻠﻪی ‪ DL‬ﺳﺨﺖ اﺳﺖ( اﮔﺮ ﻫﯿﭻ ﻣﻬﺎﺟﻢ ﮐﺎراﯾ ﻧﺘﻮاﻧﺪ از روی ) ‪ (G, q, g, g x‬ﻣﻘﺪار ‪ x‬را وﻗﺘ ﮐﻪ ‪ x‬ﺑﻪ ﺗﺼﺎدف‬
‫از ‪ Zq‬ﺗﻮﻟﯿﺪ ﺷﺪه ﺑﺎﺷﺪ‪ ،‬ﺑﺎ اﺣﺘﻤﺎل ﻗﺎﺑﻞ ﺗﻮﺟﻬ ﻣﺤﺎﺳﺒﻪ ﮐﻨﺪ‪.‬‬

‫اﮔﺮ ﺑﺎ دﻗﺖ ﺑﯿﺸﺘﺮی ﺑﻪ ﭘﺮوﺗ ﻞ دﯾﻔ ‪-‬ﻫﻠﻤﻦ ﻧ ﺎه ﮐﻨﯿﻢ ﻣﺘﻮﺟﻪ ﺧﻮاﻫﯿﻢ ﺷﺪ ﮐﻪ ﻣﻬﺎﺟﻢ ﻣﻨﻔﻌﻞ ﺑﺮای ﺑﺪﺳﺖ آوردن ﮐﻠﯿﺪ‬
‫ﻣﺸﺘﺮک ﻟﺰﻣﺎ ﻧﺒﺎﯾﺪ ﻣﺴﺄﻟﻪ ﻟ ﺎرﯾﺘﻢ ﮔﺴﺴﺘﻪ را ﺣﻞ ﮐﻨﺪ‪ .‬ﻣﺴﺄﻟﻪای ﮐﻪ ﻣﻬﺎﺟﻢ ﺑﺎ آن ﻣﻮاﺟﻪ اﺳﺖ ﻣﺤﺎﺳﺒﻪ ‪ g xy‬از روی ‪g x‬‬
‫و ‪ g y‬اﺳﺖ وﻗﺘ ﮐﻪ ‪ x‬و ‪ y‬ﺑﻪ ﺗﺼﺎدف از ‪ Zq‬ﺗﻮﻟﯿﺪ ﺷﺪه ﺑﺎﺷﺪ‪ .‬اﯾﻦ ﻣﺴﺄﻟﻪ ﺗﺤﺖ ﻋﻨﻮان ﻣﺴﺄﻟﻪ دﯾﻔ ‪-‬ﻫﻠﻤﻦ ﻣﺤﺎﺳﺒﺎﺗ‬
‫ﺷﻨﺎﺧﺘﻪ ﻣ ﺷﻮد‪.‬‬

‫ﺗﻌﺮﯾﻒ ‪) ۶‬ﻓﺮض دﯾﻔ ‪-‬ﻫﻠﻤﻦ ﻣﺤﺎﺳﺒﺎﺗ ‪ (١٨‬ﻣ ﮔﻮﯾﯿﻢ ﻓﺮض دﯾﻔ ‪-‬ﻫﻠﻤﻦ ﻣﺤﺎﺳﺒﺎﺗ )ﯾﺎ ‪ (CDH‬ﺑﺮای ﮔﺮوه ‪GroupGen‬‬
‫ﺑﺮﻗﺮار اﺳﺖ )ﯾﺎ ﻣﺴﺌﻠﻪی ‪ CDH‬ﺳﺨﺖ اﺳﺖ( اﮔﺮ ﻫﯿﭻ ﻣﻬﺎﺟﻢ ﮐﺎراﯾ ﻧﺘﻮاﻧﺪ از روی ) ‪ (G, q, g, g x , g y‬ﻣﻘﺪار ‪g xy‬‬
‫را وﻗﺘ ﮐﻪ ‪ x‬و ‪ y‬ﺑﻪ ﺗﺼﺎدف از ‪ Zq‬ﺗﻮﻟﯿﺪ ﺷﺪه ﺑﺎﺷﺪ‪ ،‬ﺑﺎ اﺣﺘﻤﺎل ﻗﺎﺑﻞ ﺗﻮﺟﻬ ﻣﺤﺎﺳﺒﻪ ﮐﻨﺪ‪.‬‬

‫ﺑﺮای ﺗﻌﯿﯿﻦ اﻣﻨﯿﺖ ﭘﺮوﺗ ﻞ دﯾﻔ ‪-‬ﻫﻠﻤﻦ در ﺑﺮاﺑﺮ ﻣﻬﺎﺟﻢ ﻣﻨﻔﻌﻞ ﺑﺎﯾﺪ ﻣﻔﻬﻮم اﻣﻨﯿﺖ را ﺑﻪ ﻃﻮر دﻗﯿﻖ ﺑﺮای ﯾ ﭘﺮوﺗ ﻞ‬
‫ﺗﺒﺎدل ﮐﻠﯿﺪ ﺗﻌﺮﯾﻒ ﮐﺮد ﮐﻪ اﯾﻦ ﮐﺎر را در ﺑﺨﺶ ﺑﻌﺪی اﻧﺠﺎم ﻣ دﻫﯿﻢ‪ .‬اﻣﺎ ﺑﻪ ﻃﻮر ﺷﻬﻮدی در ﯾ ﭘﺮوﺗ ﻞ ﺗﺒﺎدل ﮐﻠﯿﺪ‬
‫اﻣﻦ )در ﺑﺮاﺑﺮ ﻣﻬﺎﺟﻢ ﻣﻨﻔﻌﻞ(‪ ،‬ﺣﻤﻠﻪﮐﻨﻨﺪه ﻧﺒﺎﯾﺪ اﻃﻼﻋﺎﺗ درﺑﺎرهی ﮐﻠﯿﺪ ﺑﻪ اﺷﺘﺮاک ﮔﺬاﺷﺘﻪ ﺷﺪه ﮐﺴﺐ ﮐﻨﺪ‪ .‬ﺑﺮای‬
‫اﺛﺒﺎت اﻣﻨﯿﺖ ﭘﺮوﺗ ﻞ دﯾﻔ ‪-‬ﻫﻠﻤﻦ ﺑﻪ ﻓﺮض زﯾﺮ ﻧﯿﺎز دارﯾﻢ‪.‬‬

‫ﺗﻌﺮﯾﻒ ‪) ٧‬ﻓﺮض دﯾﻔ ‪-‬ﻫﻠﻤﻦ ﺗﺼﻤﯿﻤ ‪ (١٩‬ﻣ ﮔﻮﯾﯿﻢ ﻓﺮض دﯾﻔ ‪-‬ﻫﻠﻤﻦ ﺗﺼﻤﯿﻤ )ﯾﺎ ‪ (DDH‬ﺑﺮای ﮔﺮوه ‪GroupGen‬‬
‫ﺑﺮﻗﺮار اﺳﺖ )ﯾﺎ ﻣﺴﺌﻠﻪی ‪ DDH‬ﺳﺨﺖ اﺳﺖ( اﮔﺮ دو ﺗﻮزﯾﻊ ) ‪ (G, q, g, g x , g y , g xy‬و ) ‪ (G, q, g, g x , g y , g z‬وﻗﺘ‬
‫ﮐﻪ ‪ x, y, z‬ﺑﻪ ﺗﺼﺎدف از ‪ Zq‬ﺗﻮﻟﯿﺪ ﺷﺪه ﺑﺎﺷﺪ‪ ،‬ﺗﻤﺎﯾﺰﻧﺎﭘﺬﯾﺮﻧﺪ‪.‬‬

‫ﺗﺒﺎدل ﮐﻠﯿﺪ ﺑﺎ ﺳﯿﺴﺘﻢ رﻣﺰ ﮐﻠﯿﺪ ﻋﻤﻮﻣ‬ ‫‪٣.٢‬‬


‫ﺳﯿﺴﺘﻢ رﻣﺰ ﮐﻠﯿﺪ ﻋﻤﻮﻣ اﺳﺖ ‪. ...‬‬ ‫راه ﺣﻞ دﯾ ﺮی ﺑﺮای ﺣﻞ ﻣﺴﺄﻟﻪ ﺗﺒﺎدل ﮐﻠﯿﺪ اﺳﺘﻔﺎده از ﯾ‬ ‫ﯾ‬

‫‪ ٣‬ﺣﻤﻠﻪ ﻣﺮد ﻣﯿﺎﻧ‬


‫ﻫﻤﻪ ﭘﺮوﺗ ﻞﻫﺎی ﻣﻄﺮح ﺷﺪه ﺗﻨﻬﺎ در ﺑﺮاﺑﺮ ﻣﻬﺎﺟﻢ ﻣﻨﻔﻌﻞ اﻣﻦ ﻫﺴﺘﻨﺪ‪ .‬اﮔﺮ ارﺗﺒﺎط دو ﻃﺮف از ﻃﺮﯾﻖ ﯾ ﮐﺎﻧﺎل ﻗﺎﺑﻞ‬
‫اﻋﺘﻤﺎد ‪ ٢٠‬اﻧﺠﺎم ﺷﻮد‪ ،‬ﻣﻬﺎﺟﻢ ﻧﻤ ﺗﻮاﻧﺪ ﺑﻪ ﺻﻮرت ﻓﻌﺎل ﻋﻤﻞ ﮐﻨﺪ و ﭘﯿﺎمﻫﺎی ارﺳﺎﻟ دو ﻃﺮف را ﺗﻐﯿﯿﺮ دﻫﺪ‪ .‬ﯾ راه‬
‫ﺗﺒﺪﯾﻞ ﯾ ﮐﺎﻧﺎل ﻏﯿﺮﻗﺎﺑﻞ اﻋﺘﻤﺎد ﺑﻪ ﮐﺎﻧﺎل ﻗﺎﺑﻞ اﻋﺘﻤﺎد‪ ،‬اﺳﺘﻔﺎده از ﮐﺪﻫﺎی اﺻﺎﻟﺖﺳﻨﺠ ﭘﯿﺎم اﺳﺖ‪ .‬اﻣﺎ اﯾﻦ ﺧﻮد‬
‫‪١٧‬‬
‫‪discrete logarithm assumption‬‬
‫‪١٨‬‬
‫‪Computational Diffie-Hellman‬‬
‫‪١٩‬‬
‫‪Decisional Diffie-Hellman‬‬
‫‪٢٠‬‬
‫‪authentic‬‬

‫‪١٩-٧‬‬
‫ﻧﯿﺎزﻣﻨﺪ اﯾﻦ اﺳﺖ ﮐﻪ دو ﻃﺮف ﯾ ﮐﻠﯿﺪ ﻣﺤﺮﻣﺎﻧﻪ ﺑﻪ اﺷﺘﺮاک ﺑ ﺬارﻧﺪ‪ .‬راه ﺣﻞ دﯾ ﺮ اﺳﺘﻔﺎده از اﻣﻀﺎی دﯾﺠﯿﺘﺎل اﺳﺖ‬
‫ﮐﻪ در آن ﯾ از دو ﻃﺮف ﺑﺎﯾﺪ ﮐﻠﯿﺪ ﻋﻤﻮﻣ ﻃﺮف ﻣﻘﺎﺑﻞ را ﺑﻪ ﻃﺮﯾﻘ ﺑﻪ دﺳﺖ آورده ﺑﺎﺷﺪ‪ .‬اﮔﺮ ﮐﺎﻧﺎل ﻗﺎﺑﻞ اﻋﺘﻤﺎد‬
‫ﻧﺒﺎﺷﺪ‪ ،‬ﻣﻬﺎﺟﻢ ﻓﻌﺎل ﻗﺎدر ﺑﻪ اﻋﻤﺎل ﺣﻤﻠﻪ ﻣﺮد ﻣﯿﺎﻧ ﺧﻮاﻫﺪ ﺑﻮد‪ .‬ﻣﺮد ﻣﯿﺎﻧ ﺧﻮد را ﺑﻪ ﺟﺎی ‪ Alice‬ﺑﺮای ‪ Bob‬ﺟﺎ‬
‫ﻣ زﻧﺪ و ﺑﺎﻟﻌ ﺲ‪ .‬ﺑﻪ ﻋﻨﻮان ﻣﺜﺎل ﭘﺮوﺗ ﻞ دﯾﻔ ‪-‬ﻫﻠﻤﻦ را در ﻧﻈﺮ ﺑ ﯿﺮﯾﺪ ‪...‬‬

‫‪ ۴‬ﺗﻌﺮﯾﻒ اﻣﻨﯿﺖ ﺑﺮای ﭘﺮوﺗ ﻞ ﺗﺒﺎدل ﮐﻠﯿﺪ‬


‫اﻣﻨﯿﺖ در ﺑﺮاﺑﺮ ﻣﻬﺎﺟﻢ ﻣﻨﻔﻌﻞ را ﺑﺮای ﭘﺮوﺗ ﻞ ﺗﺒﺎدل ﮐﻠﯿﺪ ﻣ ﺗﻮان ﺑﺎ اﺳﺘﻔﺎده از آزﻣﺎﯾﺶ زﯾﺮ ﺗﻌﺮﯾﻒ ﮐﺮد‪.‬‬

‫‪٢١‬‬
‫( )‪A,Π (n‬‬
‫‪KEeav‬‬ ‫ﺗﻌﺮﯾﻒ ‪) ٨‬آزﻣﺎﯾﺶ ﺗﺒﺎدل ﮐﻠﯿﺪ‬
‫‪٢٢‬‬
‫روﻧﻮﺷﺖ‬ ‫‪ .١‬ﻃﺮﻓﯿﻦ ﻣﺒﺎدﻟﻪ ﺑﺎ ﺗﻌﯿﯿﻦ ﭘﺎراﻣﺘﺮ اﻣﻨﯿﺘ ‪ ،۱n‬ﭘﺮوﺗ ﻞ ‪ Π‬را اﺟﺮا ﻣ ﮐﻨﻨﺪ‪ .‬ﭘﺲ از اﺟﺮا‪ ،‬ﺧﺮوﺟ ﯾ‬
‫ﻣﺎﻧﻨﺪ ‪ trans‬ﺷﺎﻣﻞ ﻫﻤﻪی ﭘﯿﺎمﻫﺎی ارﺳﺎﻟ ﻃﺮﻓﯿﻦ‪ ،‬و ﯾ ﮐﻠﯿﺪ ‪ k۰ ∈ {۰, ۱}n‬اﺳﺖ‪:‬‬

‫) ‪(trans, k۰ ) ← Π(۱n‬‬

‫‪ .٢‬ﺑﯿﺖ }‪ b ∈ {۰, ۱‬و ﮐﻠﯿﺪ ‪ k۱ ∈ {۰, ۱}n‬ﺑﻄﻮر ﮐﺎﻣﻼ ﺗﺼﺎدﻓ اﻧﺘﺨﺎب ﻣ ﺷﻮد‪:‬‬

‫}‪b ← {۰, ۱‬‬

‫‪k۱ ← {۰, ۱}n‬‬

‫‪ .٣‬ﻣﻬﺎﺟﻢ ‪ ،A‬روﻧﻮﺷﺖ ‪ trans‬و ﮐﻠﯿﺪ ‪ kb‬را درﯾﺎﻓﺖ ﮐﺮده و ﺑﯿﺖ ̂‪ b‬را ﺗﻮﻟﯿﺪ ﻣ ﮐﻨﺪ‪:‬‬

‫) ‪b̂ ← A(trans, kb‬‬

‫‪ KEeav‬ﻧﺸﺎن داده ﻣ ﺷﻮد و ﺑﺮاﺑﺮ ‪ ١‬ﺗﻌﺮﯾﻒ ﻣ ﺷﻮد اﮔﺮ ‪ b̂ = b‬ﺑﺎﺷﺪ‪.‬‬


‫ﺧﺮوﺟ اﯾﻦ آزﻣﺎﯾﺶ‪ ،‬ﺑﺎ ﻣﺘﻐﯿﺮ ﺗﺼﺎدﻓ )‪A,Π (n‬‬

‫ﺗﻌﺮﯾﻒ ‪) ٩‬اﻣﻨﯿﺖ ﭘﺮوﺗ ﻞ ﺗﺒﺎدل ﮐﻠﯿﺪ( ﭘﺮوﺗ ﻞ ﺗﺒﺎدل ﮐﻠﯿﺪ ‪ ،Π‬در ﺑﺮاﺑﺮ ﻣﻬﺎﺟﻢ ﻣﻨﻔﻌﻞ اﻣﻦ اﺳﺖ‪ ،‬اﮔﺮ ﺑﺮای ﻫﺮ ﻣﻬﺎﺟﻢ‬
‫اﺣﺘﻤﺎﻻﺗ ‪ A‬ﮐﻪ در زﻣﺎن ﭼﻨﺪﺟﻤﻠﻪای ﻋﻤﻞ ﻣ ﮐﻨﺪ‪ ،‬ﺗﺎﺑﻊ ﻧﺎﭼﯿﺰ )‪ ε(n‬ﻣﻮﺟﻮد ﺑﺎﺷﺪ‪ ،‬ﺑﻄﻮرﯾ ﻪ‪:‬‬

‫‪۱‬‬
‫≤ }‪A,Π (n) = ۱‬‬
‫‪Pr{KEeav‬‬ ‫)‪+ ε(n‬‬
‫‪۲‬‬
‫اﻣﻨﯿﺖ ﭘﺮوﺗ ﻞ ﺗﺒﺎدل ﮐﻠﯿﺪ در ﺑﺮاﺑﺮ ﻣﻬﺎﺟﻢ ﻓﻌﺎل ﺑﻪ ﺻﻮرت ﭘﯿﭽﯿﺪهﺗﺮی ﺗﻌﺮﯾﻒ ﻣ ﺷﻮد‪.‬‬

‫ﻗﻀﯿﻪ ‪ ١‬اﮔﺮ ﻣﺴﺌﻠﻪی ‪ DDH‬ﻧﺴﺒﺖ ﺑﻪ ‪ GroupGen‬ﺳﺨﺖ ﺑﺎﺷﺪ‪ ،‬آﻧ ﺎه ﭘﺮوﺗ ﻞ ﺗﺒﺎدل ﮐﻠﯿﺪ دﯾﻔ ‪-‬ﻫﻠﻤﻦ ‪ ،Π‬در ﺣﻀﻮر‬
‫ﻣﻬﺎﺟﻢ ﺷﻨﻮدﮔﺮ اﻣﻦ اﺳﺖ‪.‬‬

‫‪٢١‬‬
‫‪key-exchange experiment‬‬
‫‪٢٢‬‬
‫‪transcript‬‬

‫‪١٩-٨‬‬
‫ﺑﻪ ﻧﺎم ﺧﺪا‬

‫داﻧﺸ ﺪهی ﻋﻠﻮم رﯾﺎﺿ‬

‫‪ ٢٩‬ﺑﻬﻤﻦ ‪١٣٩١‬‬ ‫ﻣﻘﺪﻣﻪای ﺑﺮ رﻣﺰﻧ ﺎری‬

‫ﺟﻠﺴﻪی ‪ :٢٠‬رﻣﺰ ﻧ ﺎری ﺑﺎ ﮐﻠﯿﺪ ﻋﻤﻮﻣ و ﻣﻘﺪﻣﻪای ﺑﺮ ﻧﻈﺮﯾﻪ اﻋﺪاد‬


‫ﻧ ﺎرﻧﺪه‪ :‬آرﯾﻦ ﮐﻤﺎل‬ ‫ﻣﺪرس‪ :‬دﮐﺘﺮ ﺷﻬﺮام ﺧﺰاﺋ‬

‫ﻫﺪف ﻣﺎ در اﯾﻦ ﺟﻠﺴﻪ اراﺋﻪ ﺗﻌﺮﯾﻔ ﺑﺮای ﻣﻔﻬﻮم رﻣﺰ ﻧﺎﻣﺘﻘﺎرن ‪ ١‬و ﺑﺮﺳ اﻣﻨﯿﺖ آن ﻣ ﺑﺎﺷﺪ‪ .‬در اداﻣﻪ ﻫﻢ ﺑﻪ ﺑﯿﺎن ﻣﻔﺎﻫﯿﻢ‬
‫اوﻟﯿﻪ از ﻧﻈﺮﯾﻪ اﻋﺪاد ﻣ ﭘﺮدازﯾﻢ‪.‬‬

‫‪ ١‬ﺳﯿﺴﺘﻢ رﻣﺰ ﻧﺎﻣﺘﻘﺎرن‬


‫ﺗﺎ اﯾﻨﺠﺎ ﺑﺮای رﻣﺰﮔﺬاری و رﻣﺰﮔﺸﺎﯾ از ﯾ ﮐﻠﯿﺪ ﻣﺸﺘﺮک اﺳﺘﻔﺎده ﮐﺮدﯾﻢ‪ .‬ﺑﻪ ﻫﻤﯿﻦ ﺟﻬﺖ ﺑﻪ آن ﺳﯿﺴﺘﻢ رﻣﺰﻧ ﺎری‬
‫ﻣﺘﻘﺎرن ﮔﻮﯾﻨﺪ ﮐﻪ ﺗﻨﻬﺎ ﺑﻪ ﯾ ﮐﺎﻧﺎل اﻣﻦ ﺑﺮای اﻧﺘﻘﺎل ﮐﻠﯿﺪ ﻧﯿﺎز دارد‪ .‬در اداﻣﻪ ﺳﯿﺴﺘﻢ رﻣﺰﻧ ﺎری ﻧﺎﻣﺘﻘﺎرن ﯾﺎ ﺳﯿﺴﺘﻢ‬
‫‪۴‬‬
‫رﻣﺰﻧ ﺎری ﺑﺎ ﮐﻠﯿﺪ ﻋﻤﻮﻣ ‪ ٢‬را ﻣﻌﺮﻓ ﻣ ﮐﻨﯿﻢ‪ .‬در اﯾﻦ ﺳﯿﺴﺘﻢ دو ﮐﻠﯿﺪ ﻣﺘﻔﺎوت ﺑﻪ ﻧﺎم ﮐﻠﯿﺪ ﻋﻤﻮﻣ ‪ ٣‬و ﮐﻠﯿﺪ ﺧﺼﻮﺻ‬
‫)ﯾﺎ ﮐﻠﯿﺪ ﻣﺨﻔ ‪ (۵‬وﺟﻮد دارد‪ ،‬ﮐﻪ ﮐﻠﯿﺪ ﻋﻤﻮﻣ در دﺳﺘﺮس ﻫﻤ ﺎن اﺳﺖ وﻟ ﮐﻠﯿﺪ ﺧﺼﻮﺻ را ﺗﻨﻬﺎ ﮔﯿﺮﻧﺪه ﭘﯿﺎم دارد‪.‬‬
‫ﺗﻌﺮﯾﻒ ‪ ١‬ﺳﯿﺴﺘﻢ رﻣﺰ ﻧﺎﻣﺘﻘﺎرن ﯾ ﺳﻪﺗﺎﯾ ﻣﺮﺗﺐ ﺑﻪ ﺻﻮرت )‪ Π = (Gen, Enc, Dec‬روی ﻓﻀﺎی ﻣﺘﻦ ‪ M‬از‬
‫اﻟ ﻮرﯾﺘﻢﻫﺎی ﭼﻨﺪ ﺟﻤﻠﻪای ﺗﺼﺎدﻓ )‪ ۶ (PPT‬اﺳﺖ و اﻟ ﻮرﯾﺘﻢﻫﺎی آن ﺑﺪﯾﻦ ﺻﻮرت ﺗﻌﺮﯾﻒ ﻣ ﺷﻮﻧﺪ‪:‬‬

‫• ‪ Gen‬اﻟ ﻮرﯾﺘﻢ ﺗﻮﻟﯿﺪ ﮐﻠﯿﺪ اﺳﺖ ﮐﻪ ﺑﺎ ورودی ‪ ۱n‬زوج ﻣﺮﺗﺐ )‪ (pk, sk‬را ﮐﻪ ﺑﻪ ﺗﺮﺗﯿﺐ ﮐﻠﯿﺪ ﻋﻤﻮﻣ و ﮐﻠﯿﺪ‬
‫ﺧﺼﻮﺻ ﻫﺴﺘﻨﺪ‪ ،‬ﺗﻮﻟﯿﺪ ﻣ ﮐﻨﺪ‪.‬‬
‫) ‪(pk, sk) ← Gen(۱‬‬
‫‪n‬‬

‫• ‪ Enc‬اﻟ ﻮرﯾﺘﻢ رﻣﺰﮔﺬاری اﺳﺖ ﮐﻪ ﺑﺎ داﺷﺘﻦ ﮐﻠﯿﺪ ﻋﻤﻮﻣ ‪ pk‬و ﻣﺘﻦ ‪ m ∈ M‬ﺑﻪ ﻋﻨﻮان ورودی‪ ،‬ﻣﺘﻦ رﻣﺰ‬
‫ﺷﺪه ‪ c‬را ﺗﻮﻟﯿﺪ ﻣ ﮐﻨﺪ‪.‬‬
‫)‪c ← Encpk (m‬‬

‫• ‪ Dec‬اﻟ ﻮرﯾﺘﻢ رﻣﺰﮔﺸﺎﯾ اﺳﺖ ﮐﻪ ﻗﻄﻌ اﺳﺖ و ﺑﺎ داﺷﺘﻦ ﮐﻠﯿﺪ ﺧﺼﻮﺻ ‪ sk‬و ﻣﺘﻦ رﻣﺰ ﺷﺪه ‪ ،c‬ﻣﺘﻦ ∈ ‪m‬‬
‫}⊥{ ∪ ‪ M‬را ﺗﻮﻟﯿﺪ ﻣ ﮐﻨﺪ‪.‬‬
‫)‪m ← Decsk (c‬‬
‫‪١‬‬
‫‪asymmetric cryptography‬‬
‫‪٢‬‬
‫‪public-key cryptography‬‬
‫‪٣‬‬
‫‪public-key‬‬
‫‪۴‬‬
‫‪private-key‬‬
‫‪۵‬‬
‫‪secret-key‬‬
‫‪۶‬‬
‫‪probabilistic polynomial time‬‬

‫‪٢٠-١‬‬
‫• ﺑﻪ ازای ﻫﻤﻪی ‪ n ∈ N‬و ‪m ∈ M‬‬

‫‪Pr[(sk, pk) ← Gen(۱n ) : Decsk (Encpk (m)) = m] = ۱‬‬

‫ﻧ ﺘﻪ ‪ ١‬ﺧﺮوﺟ ﺗﺎﺑﻊ ‪ Dec‬در ﻓﻀﺎی }⊥{ ∪ ‪ M‬اﺳﺖ ﮐﻪ ⊥ ﺗﻨﻬﺎ وﻗﺘ ﺧﺮوﺟ ﺧﻮاﻫﺪ ﺑﻮد ﮐﻪ ﻣﺘﻦ ورودی ‪ c‬ﻧﺎﻣﻌﺘﺒﺮ‬
‫ﺑﺎﺷﺪ‪.‬‬

‫اﻣﻨﯿﺖ رﻣﺰ ﻧﺎﻣﺘﻘﺎرن‬ ‫‪١.١‬‬


‫ﺑﯿﺎد ﺑﯿﺎورﯾﺪ ﮐﻪ ﺷﺎﻧﻮن اﻣﻨﯿﺖ ﮐﺎﻣﻞ ﺑﺮای ﺳﯿﺴﺘﻢ رﻣﺰ ﻣﺘﻘﺎرن را ﺑﺎ اﺳﺘﻔﺎده از ﺗﻤﺎﯾﺰﻧﺎﭘﺬﯾﺮی ﺗﻮزﯾﻊﻫﺎی زﯾﺮ ﺑﺮای ﻫﺮ زوج‬
‫ﭘﯿﺎم دﻟﺨﻮاه ‪ m۰‬و ‪ m۱‬در ﻓﻀﺎی ﭘﯿﺎم ﺗﻌﺮﯾﻒ ﮐﺮد‪:‬‬

‫}) ‪{k ← Gen(۱n ) : Enck (m۰‬‬


‫}) ‪{k ← Gen(۱n ) : Enck (m۱‬‬
‫اﺑﺘﺪا ﺗﻮﺟﻪ ﮐﻨﯿﺪ ﮐﻪ ﮐﻠﯿﺪ ﻋﻤﻮﻣ ﺳﯿﺴﺘﻢ رﻣﺰ ﻧﺎﻣﺘﻘﺎرن در اﺧﺘﯿﺎر ﻫﻤﻪ‪ ،‬از ﺟﻤﻠﻪ ﻣﻬﺎﺟﻢ‪ ،‬ﻗﺮار ﻣ ﮔﯿﺮد‪ .‬ﺑﻨﺎﺑﺮاﯾﻦ اﮔﺮ‬
‫ﻋﻼﻗﻪﻣﻨﺪ ﺑﻪ ﺗﻌﺮﯾﻒ اﻣﻨﯿﺖ ﮐﺎﻣﻞ ﺑﺮای ﺳﯿﺴﺘﻢ رﻣﺰ ﻧﺎﻣﺘﻘﺎرن ﺑﺎﺷﯿﻢ‪ ،‬ﺑﻪ ﻃﻮر ﻃﺒﯿﻌ ﺑﺎﯾﺪ ﺳﯿﺴﺘﻤ را اﻣﻦ ﮐﺎﻣﻞ در ﻧﻈﺮ‬
‫ﺑ ﯿﺮﯾﻢ ﮐﻪ ﺑﺮای ﻫﺮ زوج ﭘﯿﺎم دﻟﺨﻮاه ‪ m۰‬و ‪ m۱‬در ﻓﻀﺎی ﭘﯿﺎم آن‪ ،‬ﺗﻮزﯾﻊﻫﺎی زﯾﺮ ﺗﻤﺎﯾﺰﻧﺎﭘﺬﯾﺮ ﺑﺎﺷﻨﺪ‪:‬‬

‫}⟩) ‪{(pk, sk) ← Gen(۱n ) : ⟨pk, Encpk (m۰‬‬ ‫)‪(١‬‬

‫}⟩) ‪{(pk, sk) ← Gen(۱n ) : ⟨pk, Encpk (m۱‬‬ ‫)‪(٢‬‬

‫ﻗﻀﯿﻪ ‪) ١‬اﻣ ﺎنﻧﺎﭘﺬﯾﺮی اﻣﻨﯿﺖ ﮐﺎﻣﻞ( ﺳﯿﺴﺘﻢ رﻣﺰ ﻧﺎﻣﺘﻘﺎرن ﺑﺎ اﻣﻨﯿﺖ ﮐﺎﻣﻞ وﺟﻮد ﻧﺪارد‪.‬‬

‫ﺑﺮﻫﺎن‪ .‬ﯾ زوج ﮐﻠﯿﺪ ﻋﻤﻮﻣ و ﻣﺘﻦ رﻣﺰ ﺷﺪه را در ﻧﻈﺮ ﺑ ﯿﺮﯾﺪ‪ .‬ﺑﺎ ﺗﻮﺟﻪ ﺑﻪ ﺷﺮط ﺻﺤﺖ رﻣﺰﮔﺸﺎﯾ ‪ ،‬اﻣ ﺎن رﻣﺰﮔﺸﺎﯾ‬
‫ﻣﺘﻦ رﻣﺰ ﺷﺪه ﺑﻪ دو ﻣﺘﻦ ﻣﺘﻔﺎوت وﺟﻮد ﻧﺪارد‪ .‬ﺑﻨﺎﺑﺮاﯾﻦ وﻗﺘ ﯾ ﻣﺘﻦ دﻟﺨﻮاه ﺑﺎ اﺳﺘﻔﺎده از ﯾ ﻣﻘﺎدﯾﺮ ﺗﺼﺎدﻓ ﺗﺤﺖ‬
‫ﮐﻠﯿﺪ ﻋﻤﻮﻣ ‪ pk‬ﺑﻪ ﯾ ﻣﺘﻦ رﻣﺰ ﺷﺪه ‪ c‬ﺗﺒﺪﯾﻞ ﺷﺪه ﺑﺎﺷﺪ‪ ،‬ﻫﯿﭻ ﻣﺘﻦ اﺻﻠ دﯾ ﺮی ﺗﺤﺖ ﻫﯿﭻ ﻣﻘﺪار ﺗﺼﺎدﻓ ﺑﺎ اﺳﺘﻔﺎده‬
‫از ﻫﻤﺎن ﮐﻠﯿﺪ ‪ pk‬ﺑﻪ ﻣﺘﻦ رﻣﺰﺷﺪه ‪ c‬ﺗﺒﺪﯾﻞ ﻧﺨﻮاﻫﺪ ﺷﺪ‪ .‬ﻟﺬا ﻣﻬﺎﺟﻢ ﺑﺎ ﻣﻨﺎﺑﻊ ﻧﺎﻣﺤﺪود ‪ ٧‬ﻣ ﺗﻮاﻧﺪ ﺑﻪ راﺣﺘ ﭘﯿﺎم ‪ m۰‬و‬
‫‪ m۱‬را ﺑﺎ ﻫﻤﻪ ﻣﻘﺎدﯾﺮ ﺗﺼﺎدﻓ ﮐﻪ اﻟ ﻮرﯾﺘﻢ ‪ Enc‬اﺳﺘﻔﺎده ﻣ ﮐﻨﺪ ﺗﺤﺖ ﮐﻠﯿﺪ ﻋﻤﻮﻣ درﯾﺎﻓﺘ رﻣﺰ ﮐﺮده و ﺑﺎ ﻣﻘﺎﯾﺴﻪ‬
‫آﻧﻬﺎ ﺑﺎ ﻣﺘﻦ رﻣﺰی درﯾﺎﻓﺘ ‪ ،‬ﻣﺘﻦ اﺻﻠ ﺻﺤﯿﺢ را ﺗﺸﺨﯿﺺ دﻫﺪ‪.‬‬

‫ﺑﻨﺎﺑﺮاﯾﻦ ﺑﺮای ﺳﯿﺴﺘﻢ رﻣﺰ ﻧﺎﻣﺘﻘﺎرن ﺑﺎﯾﺪ ﺑﻪ اﻣﻨﯿﺖ ﻣﺤﺎﺳﺒﺎﺗ ﺑﺴﻨﺪه ﮐﺮد‪ .‬ﻫﻤﺎﻧﻨﺪ ﺳﯿﺴﺘﻢ رﻣﺰ ﻣﺘﻘﺎرن ﻣ ﺗﻮان اﻣﻨﯿﺖ‬
‫ﺗ ﭘﯿﺎﻣ ﻣﺤﺎﺳﺒﺎﺗ را ﺑﺮ ﻣﺒﻨﺎی ﺗﻤﺎﯾﺰﻧﺎﭘﺬﯾﺮی ﻣﺤﺎﺳﺒﺎﺗ ﺗﻮزﯾﻊﻫﺎی )‪ (١‬و )‪ (٢‬ﺗﻌﺮﯾﻒ ﻧﻤﻮد‪ .‬ﺑﺠﺎی اﯾﻦ ﮐﺎر‪ ،‬اﻣﻨﯿﺖ‬
‫را ﺑﺎ اﺳﺘﻔﺎده از آزﻣﺎﯾﺶ ﮐﻪ ﺑﻪ دﻧﺒﺎل ﻣ آﯾﺪ ﺗﻌﺮﯾﻒ ﻣ ﮐﻨﯿﻢ ﮐﻪ اﻣﻨﯿﺖ ﺗ ﭘﯿﺎﻣ ﻣﺤﺎﺳﺒﺎﺗ را ﻧﺘﯿﺠﻪ ﻣ دﻫﺪ‪.‬‬

‫‪٧‬‬
‫‪unbounded adversary‬‬

‫‪٢٠-٢‬‬
‫‪ [PubKeav‬آزﻣﺎﯾﺶ اﻣﻨﯿﺖ ﺗ ﭘﯿﺎﻣ ﺑﺮای ﺳﯿﺴﺘﻢ رﻣﺰ ﻧﺎﻣﺘﻘﺎرن ‪ Π‬در ﺑﺮاﺑﺮ ﻣﻬﺎﺟﻢ ‪ A‬ﺑﻪ ﺻﻮرت زﯾﺮ اﺳﺖ‪:‬‬
‫آزﻣﺎﯾﺶ‪A,Π ].‬‬

‫‪ .١‬ﭼﺎﻟﺸ ﺮ ﺑﺎ اﺟﺮای اﻟ ﻮرﯾﺘﻢ ﺗﻮﻟﯿﺪ ﮐﻠﯿﺪ‪ ،‬ﮐﻠﯿﺪ ﻋﻤﻮﻣ ‪ pk‬و ﮐﻠﯿﺪ ﺧﺼﻮﺻ ‪ ،sk‬را ﺗﻮﻟﯿﺪ ﻣ ﮐﻨﺪ‪.‬‬

‫) ‪(pk, sk) ← Gen(۱n‬‬

‫‪ .٢‬ﻣﻬﺎﺟﻢ ‪ A‬ﺑﺎ درﯾﺎﻓﺖ ﮐﻠﯿﺪ ‪ pk‬دو ﭘﯿﺎم ‪ m۰‬و ‪ m۱‬از ﻓﻀﺎی ‪ ،M‬ﮐﻪ | ‪ ،|m۰ | = |m۱‬را ﺗﻮﻟﯿﺪ ﻣ ﮐﻨﺪ و ﺑﻪ‬
‫ﭼﺎﻟﺸ ﺮ ﺑﺮ ﻣ ﮔﺮداﻧﺪ‪.‬‬
‫)‪(m۰ , m۱ ) ← A(pk‬‬

‫ﺑﯿﺖ ﺗﺼﺎدﻓ اﻧﺘﺨﺎب ﻣ ﮐﻨﺪ‪.‬‬ ‫‪ .٣‬ﭼﺎﻟﺸ ﺮ ﯾ‬

‫}‪b ← {۰, ۱‬‬

‫‪ .۴‬ﭼﺎﻟﺸ ﺮ ﻣﺘﻦ رﻣﺰی ‪ ،c‬ﮐﻪ رﻣﺰ ﺷﺪه ﻣﺘﻦ اﺻﻠ ‪ mb‬ﺗﺤﺖ ﮐﻠﯿﺪ ‪ pk‬اﺳﺖ را ﻣﺤﺎﺳﺒﻪ ﻣ ﮐﻨﺪ و ﺑﺮای ﭼﺎﻟﺸ ﺮ‬
‫ﻣ ﻓﺮﺳﺘﺪ‪.‬‬
‫) ‪c ← Encpk (mb‬‬

‫‪ .۵‬ﻣﻬﺎﺟﻢ ﺑﺎ ﮔﺮﻓﺘﻦ ﻣﺘﻦ رﻣﺰ ﺷﺪه ‪ ،c‬ﺑﯿﺖ ̂‪ b‬را ﺗﻮﻟﯿﺪ ﻣ ﮐﻨﺪ‪.‬‬

‫)‪b̂ ← A(c‬‬

‫‪ PubKeav‬ﻧﺸﺎن داده ﻣ ﺷﻮد ﺑﺮاﺑﺮ ‪ ١‬اﺳﺖ اﮔﺮ ̂‪ b = b‬و ﺻﻔﺮ اﺳﺖ اﮔﺮ ‪.b̂ ̸= b‬‬
‫ﺧﺮوﺟ آزﻣﺎﯾﺶ ﮐﻪ ﺑﺎ )‪A,Π (n‬‬

‫ﺗﻌﺮﯾﻒ ‪) ٢‬اﻣﻨﯿﺖ ﺗ ﭘﯿﺎﻣ در ﺳﯿﺴﺘﻢ رﻣﺰ ﻧﺎﻣﺘﻘﺎرن( ﺳﯿﺴﺘﻢ رﻣﺰ ﻧﺎﻣﺘﻘﺎرن )‪ Π = (Gen, Enc, Dec‬دارای اﻣﻨﯿﺖ‬
‫ﺗ ﭘﯿﺎﻣ اﺳﺖ اﮔﺮ ﺑﺮای ﻫﺮ ﻣﻬﺎﺟﻢ ﭼﻨﺪﺟﻤﻠﻪای اﺣﺘﻤﺎﻻﺗ ﻣﺎﻧﻨﺪ ‪ A‬ﺗﺎﺑﻊ ﻧﺎﭼﯿﺰ )‪ ϵ(n‬وﺟﻮد داﺷﺘﻪ ﺑﺎﺷﺪ ﮐﻪ‬

‫‪۱‬‬
‫≤ }‪A,Π (n) = ۱‬‬
‫‪Pr{PubKeav‬‬ ‫)‪+ ϵ(n‬‬
‫‪۲‬‬
‫ﺗﻔﺎوت ﺗﻌﺮﯾﻒ ﺑﺎﻻ‪ ،‬ﺑﺎ ﺗﻌﺮﯾﻒﻫﺎی ﻣﺸﺎﺑﻪ در ﺳﯿﺴﺘﻢ رﻣﺰﻫﺎی ﻣﺘﻘﺎرن‪ ،‬در اﯾﻦ اﺳﺖ ﮐﻪ ﮐﻠﯿﺪ ﻋﻤﻮﻣ ﺑﻪ ﻣﻬﺎﺟﻢ داده‬
‫ﻣ ﺷﻮد ﮐﻪ ﺧﻮدﺑﻪﺧﻮد دﺳﺘﺮﺳ اوراﮐﻠ ﺑﻪ اﻟ ﻮرﯾﺘﻢ رﻣﺰﻧ ﺎری را ﺑﺮای او ﻓﺮاﻫﻢ ﻣ ﺳﺎزد‪ .‬ﺑﻨﺎﺑﺮاﯾﻦ‪ ،‬اﻣﻨﯿﺖ ﺗ ﭘﯿﺎﻣ ‪،‬‬
‫اﻣﻨﯿﺖ ﻣﺘﻦ اﺻﻠ اﻧﺘﺨﺎﺑ را ﻧﯿﺰ ﻧﺘﯿﺠﻪ ﻣ دﻫﺪ‪ .‬ﻫﻤﺎﻧﻨﺪ ﺳﯿﺴﺘﻢ رﻣﺰﻧ ﺎری ﻣﺘﻘﺎرن‪ ،‬ﻣ ﺗﻮان ﺗﻌﺎرﯾﻒ را ﺑﻪ اﻣﻨﯿﺖ‬
‫ﭼﻨﺪﭘﯿﺎﻣ ﮔﺴﺘﺮش داد‪ .‬ﻣ ﺗﻮان ﻧﺸﺎن داد دارﯾﻢ در ﺳﯿﺴﺘﻢ رﻣﺰ ﻧﺎﻣﺘﻘﺎرن اﻣﻨﯿﺖ ﭼﻨﺪﭘﯿﺎﻣ ﺑﺎ اﻣﻨﯿﺖ ﺗ ﭘﯿﺎﻣ ﻣﻌﺎدل‬
‫اﺳﺖ‪.‬‬

‫ﻗﻀﯿﻪ ‪) ٢‬ﻣﻌﺎدلﺑﻮدن اﻣﻨﯿﺖﻫﺎ( ﺳﯿﺴﺘﻢ رﻣﺰ ﻧﺎﻣﺘﻘﺎرن اﻣﻦ ﺗ ﭘﯿﺎﻣ ‪ ،‬داری اﻣﻨﯿﺖ ﭼﻨﺪﭘﯿﺎﻣ و ﻣﺘﻦ اﺻﻠ اﻧﺘﺨﺎﺑ‬
‫اﺳﺖ‪.‬‬

‫در ﺳﯿﺴﺘﻢﻫﺎی رﻣﺰ ﻧﺎﻣﺘﻘﺎرن ﻧﻤ ﺗﻮان از اﻟ ﻮرﯾﺘﻢﻫﺎی رﻣﺰﻧ ﺎری ﻗﻄﻌ اﺳﺘﻔﺎده ﮐﺮد‪ ،‬زﯾﺮا اﮔﺮ اﻟ ﻮرﯾﺘﻢ رﻣﺰﻧ ﺎری‬
‫ﻗﻄﻌ ﺑﺎﺷﺪ آﻧ ﺎه ﭼﻮن ﻣﻬﺎﺟﻢ ﮐﻠﯿﺪ ﻋﻤﻮﻣ را در اﺧﺘﯿﺎر دارد‪ ،‬ﻣ ﺗﻮاﻧﺪ رﻣﺰ ﺷﺪهی ‪ m۰‬و ‪ m۱‬را ﺑﺪﺳﺖ آورد و ﺑﺎ ﻣﺘﻦ‬
‫رﻣﺰ ﺷﺪه ﻣﻘﺎﯾﺴﻪ ﮐﻨﺪ و ﺑﻪ اﺣﺘﻤﺎل ‪ ١‬ﺟﻮاب ﺻﺤﯿﺢ را ﺑﺮﮔﺮداﻧﺪ‪.‬‬

‫ﻗﻀﯿﻪ ‪) ٣‬ﻟﺰوم رﻣﺰﻧ ﺎریﺗﺼﺎدﻓ ( ﺳﯿﺴﺘﻢ رﻣﺰ ﻧﺎﻣﺘﻘﺎرن ﺑﺎ اﻟ ﻮرﯾﺘﻢ رﻣﺰﻧ ﺎری ﺗﺼﺎدﻓ ‪ ،‬اﻣﻨﯿﺖ ﺗ ﭘﯿﺎﻣ ﻧﺪارد‪.‬‬

‫‪٢٠-٣‬‬
‫‪ ٢‬ﻣﻘﺪﻣﻪای ﺑﺮ ﻧﻈﺮﯾﻪ اﻋﺪاد‬
‫ﻋﺪد ﺻﺤﯿﺢ ﻣﺜﺒﺖ ﺑﺎﺷﺪ‪ ،‬اﻋﺪاد ﺻﺤﯿﺢ ‪ a‬و ‪ b‬را ﻫﻤﻨﺸﺖ ﺑﻪ ﭘﯿﻤﺎﻧﻪ ‪ N‬ﮔﻮﯾﯿﻢ‬ ‫ﺗﻌﺮﯾﻒ ‪) ٣‬ﻫﻤﻨﻬﺸﺘ ( اﮔﺮ ‪ N‬ﯾ‬
‫ﻫﺮﮔﺎه‬
‫‪N |a − b‬‬
‫ﻫﻤﭽﻨﯿﻦ ﻫﻤﻨﻬﺸﺘ را ﺑﺪﯾﻦ ﮔﻮﻧﻪ ﻧﺸﺎن ﻣ دﻫﯿﻢ‪:‬‬

‫) ‪a ≡ b (mod N‬‬

‫راﺑﻄﻪ ﻫﻢارزی روی ‪ Z‬اﺳﺖ‪.‬‬ ‫ﻗﻀﯿﻪ ‪ ۴‬راﺑﻄﻪ ﻫﻤﻨﻬﺸﺘ ﺑﻪ ﭘﯿﻤﺎﻧﻪ ﻋﺪد ﺻﺤﯿﺢ ﻣﺜﺒﺖ ‪ ،N‬ﯾ‬

‫ﻧ ﺘﻪ ‪ ٢‬راﺑﻄﻪ ﻫﻢ ارزی ﺑﻪ ﭘﯿﻤﺎﻧﻪ ‪ ،N‬ﻣﺠﻤﻮﻋﻪ اﻋﺪاد ﺻﺤﯿﺢ ‪ ،Z‬را ﺑﻪ ﮐﻼسﻫﺎی ﻫﻢارزی اﻓﺮاز ﻣ ﮐﻨﺪ ﮐﻪ ﻣﺠﻤﻮﻋﻪی‬
‫اﯾﻦ ﮐﻼسﻫﺎ ﺑﺎ ‪ ZN‬ﻧﺸﺎن داده ﻣ ﺷﻮد‪.‬‬

‫ﻋﺪد ﺻﺤﯿﺢ ﻣﺜﺒﺖ ﺑﺎﺷﺪ‪ ،‬ﮐﻼسﻫﺎی ﻫﻢارزی ‪ Z‬ﺑﻪ ﺻﻮرت زﯾﺮ ﻣ ﺑﺎﺷﺪ‪:‬‬ ‫ﻧﺘﯿﺠﻪ ‪ ۴‬اﮔﺮ ‪ N‬ﯾ‬

‫}]‪ZN = {[۰], [۱], ..., [N − ۱‬‬

‫ﮐﻪ از اﯾﻦ ﭘﺲ آنﻫﺎ را ﺑﻪ ﺻﻮرت زﯾﺮ ﻧﺸﺎن ﻣ دﻫﯿﻢ‪:‬‬

‫}‪ZN = {۰, ۱, ..., N − ۱‬‬

‫ﻣﺜﺎل ‪ ۵‬رواﺑﻂ ﻫﻢﻧﻬﺸﺘ زﯾﺮ ﺑﻪ وﺿﻮح ﺑﺮﻗﺮاراﻧﺪ‬

‫‪۹ + ۷ = −۸ (mod ۱۲) .١‬‬

‫‪۵ × ۷ = ۱۱ (mod ۱۲) .٢‬‬

‫‪۵ − ۷ = ۱۰ (mod ۱۲) .٣‬‬

‫ﻧ ﺘﻪ ‪ ٣‬اﮔﺮ ‪ N‬ﯾ ﻋﺪد ﺻﺤﯿﺢ ﻣﺜﺒﺖ ‪-n‬ﺑﯿﺘ ﺑﺎﺷﺪ و ‪ ،x, y ∈ ZN‬آﻧ ﺎه ﺣﺎﺻﻞ ﺟﻤﻊ و ﺣﺎﺻﻞ ﺗﻔﺮﯾﻖ آنﻫﺎ ‪y + x‬‬
‫) ‪ (mod N‬و ) ‪ x − y (mod N‬در ﻣﺮﺗﺒﻪ زﻣﺎﻧ )‪ O(n‬ﻗﺎﺑﻞ ﻣﺤﺎﺳﺒﻪ اﺳﺖ‪ .‬ﻫﻤﭽﻨﯿﻦ ﺣﺎﺻﻞﺿﺮب آنﻫﺎ را ‪x · y‬‬
‫) ‪ (mod N‬در ﻣﺮﺗﺒﻪ زﻣﺎﻧ ) ‪ O(n۲‬ﻣ ﺗﻮان ﻣﺤﺎﺳﺒﻪ ﮐﺮد‪ .‬اﻟﺒﺘﻪ ﺑﺎ اﺳﺘﻔﺎده از اﻟ ﻮرﯾﺘﻢ ﮐﺎراﺗﺴﻮﺑﺎ ‪ ٨‬ﻣ ﺗﻮان ﻣﺮﺗﺒﻪ زﻣﺎﻧ‬
‫ﻣﺤﺎﺳﺒﻪ آن را ﺑﻪ ) ‪ O(nlog۲ ۳‬ﮐﺎﻫﺶ داد‪.‬‬

‫‪ ١.٢‬ﺑﺰرﮔﺘﺮﯾﻦ ﻣﻘﺴﻮم ﻋﻠﯿﻪ ﻣﺸﺘﺮک‬


‫ﺗﻌﺮﯾﻒ ‪) ۶‬ﺑﺰرﮔﺘﺮﯾﻦ ﻣﻘﺴﻮم ﻋﻠﯿﻪ ﻣﺸﺘﺮک( اﮔﺮ ‪ x, y‬دو ﻋﺪد ﺻﺤﯿﺢ و ﻣﺜﺒﺖ ﺑﺎﺷﻨﺪ ﮐﻪ ﺣﺪاﻗﻞ ﯾ از آنﻫﺎ ﻧﺎﺻﻔﺮ‬
‫ﺑﺎﺷﺪ‪ ،‬در اﯾﻦ ﺻﻮرت ﻋﺪد ﺻﺤﯿﺢ و ﻣﺜﺒﺖ ‪ d‬را ﺑﺰرﮔﺘﺮﯾﻦ ﻣﻘﺴﻮمﻋﻠﯿﻪ ﻣﺸﺘﺮک )ب‪.‬م‪.‬م‪ (.‬آﻧﻬﺎ ﻣ ﻧﺎﻣﯿﻢ و ﺑﺎ )‪gcd(x, y‬‬
‫ﻧﻤﺎﯾﺶ ﻣ دﻫﯿﻢ‪ ،‬ﻫﺮﮔﺎه ﺷﺮاﯾﻂ زﯾﺮ ﺑﺮﻗﺮار ﺑﺎﺷﺪ‪:‬‬

‫• ‪ d|x‬و ‪d|y‬‬
‫‪٨‬‬
‫‪karatsuba algorithm‬‬

‫‪٢٠-۴‬‬
‫• اﮔﺮ ‪ c|x‬و ‪ c|y‬آﻧ ﺎه ‪.c|d‬‬

‫ﻣﺜﺎل ‪ ٧‬ﺑﻪ وﺿﻮح ‪ ۶‬ﺑﺰرﮔﺘﺮﯾﻦ ﻋﺪدی اﺳﺖ ﮐﻪ ﺑﺮ ‪ ١٢‬و ‪ ١٨‬ﺑﺨﺶﭘﺬﯾﺮ اﺳﺖ‪ ،‬ﭘﺲ‪:‬‬

‫‪gcd(۱۲, ۱۸) = ۶‬‬

‫ﺑﺮای ﻣﺤﺎﺳﺒﻪ ب‪.‬م‪.‬م‪ .‬ﻣ ﺗﻮان از اﻟ ﻮرﯾﺘﻢ ﺳﺎده زﯾﺮ اﺳﺘﻔﺎده ﮐﺮد‪:‬‬

‫‪Algorithm 1 Algorithm: Greatest Common Divisor‬‬


‫‪Input: two positive integers x, y‬‬
‫)‪Output: d = gcd(x, y‬‬
‫‪function gcd(x,‬‬
‫(‬ ‫)‪y‬‬ ‫)‬
‫)‪(x, y) ← max(x, y), min(x, y‬‬
‫‪if y|x then‬‬
‫‪return y‬‬
‫‪else‬‬
‫)‪return gcd(x − y, y‬‬

‫ﭘﯿﭽﯿﺪﮔ اﯾﻦ اﻟ ﻮرﯾﺘﻢ در ﺑﺪﺗﺮﯾﻦ ﺣﺎﻟﺖ ﻧﻤﺎﯾ اﺳﺖ‪ ،‬زﯾﺮا ﻓﺮض ﮐﻨﯿﺪ ﮐﻪ ‪ x = ۲n − ۱‬ﺑﺎﺷﺪ و ‪ ،y = ۲‬آﻧ ﺎه‬
‫ﭘﯿﭽﯿﺪﮔ اﻟ ﻮرﯾﺘﻢ از ﻣﺮﺗﺒﻪ ) ‪ O(۲n‬اﺳﺖ‪.‬‬
‫اﻟ ﻮرﯾﺘﻢ دﯾ ﺮی ﻫﻢ ﺑﺮای ﻣﺤﺎﺳﺒﻪ ب‪.‬م‪.‬م وﺟﻮد دارد ﮐﻪ ﻧﺴﺒﺖ ﺑﻪ اﻟ ﻮرﯾﺘﻢ ﻗﺒﻠ ﮐﺎراﺗﺮ و از ﻣﺮﺗﺒﻪ زﻣﺎﻧ ) ‪O(n۲‬‬
‫اﺳﺖ‪ .‬اﯾﻦ اﻟ ﻮرﯾﺘﻢ ﮐﻪ ﺑﻪ اﻟ ﻮرﯾﺘﻢ اﻗﻠﯿﺪس ﻣﻌﺮوف اﺳﺖ‪ ،‬ﺗﻨﻬﺎ ﺗﻐﯿﯿﺮ ﮐﻮﭼ در اﻟ ﻮرﯾﺘﻢ ﺑﺎﻻ ﻣ دﻫﺪ‪.‬‬

‫‪Algorithm 2 Algorithm: Euclid Algorithms‬‬


‫‪Input: two positive integers x ≤ y‬‬
‫)‪Output: d = gcd(x, y‬‬
‫)‪function gcd(x, y‬‬
‫‪if x = 0 then‬‬
‫‪return y‬‬
‫‪else‬‬
‫)‪return gcd(x mod y, y‬‬

‫ﺻﺤﺖ اﻟ ﻮرﯾﺘﻢ اﻗﻠﯿﺪس از ﻟﻢ زﯾﺮ ﻧﺘﯿﺠﻪ ﻣ ﺷﻮد‪.‬‬

‫ﻟﻢ ‪ ۵‬اﮔﺮ ‪ x = yq + r‬ﺑﺎﺷﺪ‪ ،‬آﻧ ﺎه )‪gcd(x, y) = gcd(y, r‬‬

‫ﻗﻀﯿﻪ ‪ ۶‬ﻓﺮض ﮐﻨﯿﺪ ‪ x, y‬دو ﻋﺪد ﺻﺤﯿﺢ و ﻣﺜﺒﺖ ﺑﺎﺷﻨﺪ آﻧ ﺎه اﻋﺪاد ﺻﺤﯿﺢ ‪ |a| ≤ ۲y‬و ‪ |b| ≤ ۲x‬وﺟﻮد دارﻧﺪ ﮐﻪ‬
‫)‪ .ax + by = gcd(x, y‬ﺑﻪ ﻋﻼوه )‪ gcd(x, y‬ﮐﻮﭼ ﺘﺮﯾﻦ ﻋﺪد ﺻﺤﯿﺢ ﻣﺜﺒﺘ اﺳﺖ ﮐﻪ ﺑﻪ اﯾﻦ ﺻﻮرت ﻗﺎﺑﻞ ﺑﯿﺎن‬
‫اﺳﺖ‪.‬‬

‫‪٢٠-۵‬‬
‫ﻣﺤﺎﺳﺒﻪ ﺿﺮاﯾﺐ ‪ a, b‬ﺑﺎ اﺳﺘﻔﺎده از ﺗﻌﻤﯿﻤ از اﻟ ﻮرﯾﺘﻢ اﻗﻠﯿﺪس ﺑﻪ ﺻﻮرت زﯾﺮ و ﺑﺎ ﻫﻤﺎن ﭘﯿﭽﯿﺪﮔ ) ‪ O(n۲‬اﻣ ﺎنﭘﺬﯾﺮ‬
‫اﺳﺖ‪.‬‬

‫‪Algorithm 3 Algorithm: extended-Euclid‘s algorithm‬‬


‫‪Input: two positive integers x, y with x ≥ y ≥ 0‬‬
‫‪Output: integers (a, b, d) such that d = gcd(x, y) and ax + by = d‬‬
‫)‪function Extended-Euclid(x, y‬‬
‫‪if y = 0 then‬‬
‫)‪(a, b, d) ← (1, 0, x‬‬
‫‪else‬‬
‫)‪ˆ = Extended-Euclid(y, x mod y‬‬
‫)‪(â, b̂, d‬‬
‫ˆ‬
‫)‪(a, b, d) ← (b̂, â − ⌊ a ⌋b̂, d‬‬
‫‪b‬‬
‫)‪return (a, b, d‬‬

‫ﺗﻌﺮﯾﻒ ‪ ٨‬ﻣ ﮔﻮﯾﯿﻢ ‪ x, y‬ﻧﺴﺒﺖ ﺑﻪ ﻫﻢ اول ﻫﺴﺘﻨﺪ‪ ،‬اﮔﺮ و ﺗﻨﻬﺎ اﮔﺮ ‪.gcd(x, y) = ۱‬‬

‫ﻗﻀﯿﻪ ‪ ٧‬دو ﻋﺪد ‪ x, y‬ﻧﺴﺒﺖ ﺑﻪ ﻫﻢ اول ﻫﺴﺘﻨﺪ‪ ،‬اﮔﺮ و ﺗﻨﻬﺎ اﮔﺮ ‪∃a, b : ax + by = ۱‬‬

‫ﮔﺮوهﻫﺎی ﻫﻤﻨﻬﺸﺘ‬ ‫‪٢.٢‬‬


‫ﮔﺮوه‬ ‫ﮔﺮوه ﻣ دﻫﺪ ﺣﺎل ﺑﺮای ﺳﺎﺧﺘﻦ ﯾ‬ ‫ﻃﺒﻖ ﺗﻌﺮﯾﻒ ﮔﺮوه ﺑﻪ راﺣﺘ ﻣ ﺗﻮان ﻧﺸﺎن داد ﮐﻪ )‪ (ZN , +‬ﺗﺸ ﯿﻞ ﯾ‬
‫ﺿﺮﺑ روی ‪ ZN‬ﺑﺎﯾﺪ ﺗﻌﺮﯾﻒ دﻗﯿﻘ از ﻣﻌ ﻮس داﺷﺘﻪ ﺑﺎﺷﯿﻢ‪.‬‬
‫ﺗﻌﺮﯾﻒ ‪ ٩‬ﻓﺮض ﮐﻨﯿﺪ ‪ x ∈ ZN‬ﺑﺎﺷﺪ‪ ،‬ﻣﻌ ﻮس ‪) x‬در ﺻﻮرت وﺟﻮد( ﻋﻀﻮی ﻣﺎﻧﻨﺪ ‪ y ∈ ZN‬اﺳﺖ ﺑﻪ ﻃﻮرﯾ ﻪ‪:‬‬

‫) ‪x · y = ۱ (mod N‬‬

‫‪ y‬را ﺑﻪ ﺻﻮرت ‪ x−۱‬ﻧﯿﺰ ﻧﺸﺎن ﻣ دﻫﯿﻢ‪ .‬ﻣﻌ ﻮس ‪ x‬در ﺻﻮرت وﺟﻮد ﯾ ﺘﺎﺳﺖ‪.‬‬

‫ﻋﺪد ﻓﺮد ﺑﺎﺷﺪ‪ ،‬در اﯾﻦ ﺻﻮرت ﻣﻌ ﻮس ‪ ۲ ∈ ZN‬ﺑﺮاﺑﺮ اﺳﺖ ﺑﺎ ‪ . N ۲+۱‬زﯾﺮا‪:‬‬ ‫ﻣﺜﺎل ‪ ١٠‬ﻓﺮض ﮐﻨﯿﺪ ‪ N‬ﯾ‬
‫‪N +۱‬‬
‫(·‪۲‬‬ ‫‪)=N +۱=۱‬‬ ‫) ‪(mod N‬‬
‫‪۲‬‬
‫ﻟﻢ ‪ x ∈ ZN ٨‬ﻣﻌ ﻮس دارد‪ ،‬اﮔﺮ و ﺗﻨﻬﺎ اﮔﺮ ‪.gcd(x, N ) = ۱‬‬

‫ﺑﺮﻫﺎن‪ .‬اﺑﺘﺪا ﻓﺮض ﮐﻨﯿﺪ ‪ gcd(x, N ) = ۱‬ﺑﺎﺷﺪ‪ ،‬در اﯾﻦ ﺻﻮرت ﺑﻨﺎ ﺑﻪ ﻗﻀﯿﻪ ‪ ،۴‬وﺟﻮد دارد ‪ a, b‬ﮐﻪ ‪ax + bN = ۱‬‬
‫ﺑﻨﺎﺑﺮاﯾﻦ ) ‪ ax = ۱ (mod N‬ﭘﺲ ) ‪ .x−۱ = a (mod N‬دﻗﺖ ﮐﻨﯿﺪ ﺗﻤﺎﻣ ﻣﺮاﺣﻞ اﺳﺘﺪﻻل ﻗﺴﻤﺖ اول ﺑﺮﮔﺸﺖ‬
‫ﭘﺬﯾﺮ اﺳﺖ‪ ،‬ﭘﺲ ﺑﺎ ﺗﻮﺟﻪ ﺑﻪ آن ﺣ ﻢ ﺛﺎﺑﺖ ﻣ ﺷﻮد‪.‬‬

‫ﻧﺘﯿﺠﻪ ‪ ١١‬ﻣﺤﺎﺳﺒﻪ وارون ﺿﺮﺑ ﺑﺎ اﺳﺘﻔﺎده از اﻟ ﻮرﯾﺘﻢ اﻗﻠﯿﺪس در زﻣﺎن ) ‪ O(n۲‬اﻣ ﺎنﭘﺬﯾﺮ اﺳﺖ‪.‬‬

‫ﺗﻌﺮﯾﻒ ‪ ZN∗ ١٢‬را ﻣﺠﻤﻮﻋﻪ ﺗﻤﺎم اﻋﺪادی از ‪ ZN‬ﮐﻪ ﻧﺴﺒﺖ ﺑﻪ ‪ N‬اول ﺑﺎﺷﺪ ﺗﻌﺮﯾﻒ ﻣ ﮐﻨﯿﻢ‪ ،‬ﺑﻪ ﻋﺒﺎرت دﯾ ﺮ‪:‬‬

‫}‪ZN∗ = {x : gcd(x, N ) = ۱‬‬

‫‪٢٠-۶‬‬
‫ﻫﻤﺎن ﻃﻮر ﮐﻪ ﮔﻔﺘﯿﻢ )‪ (Z∗N , +‬ﺗﺸ ﯿﻞ ﯾ ﮔﺮوه را ﻣ دﻫﺪ‪ .‬ﺣﺎل ﺳﺆاﻟ ﮐﻪ ﻣﻄﺮح ﻣ ﺷﻮد اﯾﻦ اﺳﺖ ﮐﻪ آﯾﺎ )× ‪(Z∗N ,‬‬
‫ﺗﺸ ﯿﻞ ﯾ ﮔﺮوه ﻣ دﻫﻨﺪ؟ ﺟﻮاب ﻣﺜﺒﺖ اﺳﺖ‪.‬‬
‫ﻣﺜﺎل ‪ ١٣‬ﻓﺮض ﮐﻨﯿﺪ ‪ p‬ﻋﺪدی اول ﺑﺎﺷﺪ‪ ،‬آﻧ ﺎه دارﯾﻢ‪:‬‬
‫}‪Z∗p = {x : gcd(x, p) = ۱} = {۱, ۲, ..., p − ۱‬‬
‫ﻣﺜﺎل ‪١۴‬‬
‫‪Z∗۱۲‬‬ ‫}‪= {۱, ۵, ۷, ۱۱‬‬
‫ﺗﻌﺮﯾﻒ ‪ ١۵‬ﺗﻌﺪاد اﻋﻀﺎی ﻣﺠﻤﻮﻋﻪ ‪ Z∗N‬را ﺑﺎ ) ‪ ϕ(N‬ﻧﺸﺎن ﻣ دﻫﯿﻢ‪:‬‬
‫) ‪|Z∗N | = ϕ(N‬‬
‫ﻣﺜﺎل ‪ ١۶‬ﻓﺮض ﮐﻨﯿﺪ ‪ p‬ﻋﺪدی اول اﺳﺖ‪ ،‬آﻧ ﺎه‬
‫‪ϕ(p) = p − ۱‬‬
‫ﻣﺜﺎل ‪ ١٧‬ﻓﺮض ﮐﻨﯿﺪ ‪ N = pq‬ﺑﺎﺷﺪ ﮐﻪ ‪ p, q‬اﻋﺪادی اول ﻫﺴﺘﻨﺪ‪ ،‬آﻧ ﺎه‬
‫)‪ϕ(N ) = (p − ۱)(q − ۱‬‬

‫اﻋﺪاد اول‬ ‫‪٣‬‬


‫ﺑﺮای ﮐﺎرﺑﺮدﻫﺎی رﻣﺰﻧ ﺎری ﻧﯿﺎز ﺑﺎ ﺗﻮﻟﯿﺪ اﻋﺪاد اول ﺑﺰرگ ﻫﺴﺘﯿﻢ‪ .‬اوﻟﯿﻦ اﻟ ﻮرﯾﺘﻢ ﻗﻄﻌ ﭼﻨﺪﺟﻤﻠﻪای ﺑﺮای ﺗﺸﺨﯿﺺ‬
‫اول ﺑﻮدن ﯾ ﻋﺪد در ﺳﺎل ‪ ٢٠٠٨‬اراﺋﻪ ﺷﺪ‪ .‬اﻣﺎ اﻟ ﻮرﯾﺘﻢﻫﺎی ﺗﺼﺎدﻓ از دﯾﺮﺑﺎز ﻣﻄﺮح ﺑﻮدهاﻧﺪ ﮐﻪ ﻫﻢ اﮐﻨﻮن ﻧﯿﺰ در‬
‫ﻋﻤﻞ ﻧﺴﺒﺖ ﺑﻪ اﻟ ﻮرﯾﺘﻢ ﻗﻄﻌ ﺑﯿﺸﺘﺮ اﺳﺘﻔﺎده ﻣ ﺷﻮﻧﺪ‪.‬‬

‫ﺗﻌﺪاد اﻋﺪاد اول‬ ‫‪١.٣‬‬


‫ﻗﻀﯿﻪ ‪) ٩‬ﻗﻀﯿﻪ اﻋﺪاد اول ﻻﮔﺮاﻧﮋ( ﺗﻌﺪاد اﻋﺪاد اول ﮐﻮﭼ ﺗﺮ از ‪ x‬را ﺑﺎ )‪ π(x‬ﻧﺸﺎد دﻫﯿﺪ‪ ،‬در اﯾﻦ ﺻﻮرت‪:‬‬
‫)‪π(x‬‬
‫‪lim‬‬ ‫‪x‬‬ ‫‪=۱‬‬
‫∞→‪x‬‬
‫‪ln x‬‬

‫ﮐﺮان ﭘﺎﯾﯿﻦ ﻧﯿﺰ ﺗﻮﺳﻂ ﭼﺒﯿﺸﻒ ‪ ٩‬ﺑﺮای ﺗﻌﺪاد اﻋﺪاد اول ﮐﻮﭼ ﺗﺮ از ‪ x‬داده ﺷﺪه اﺳﺖ‪:‬‬
‫‪x‬‬
‫≥ )‪π(x‬‬
‫‪۲ logx۲‬‬
‫‪ ۲n‬اﺳﺖ‪.،‬ﻟﺬا اﮔﺮ اﻟ ﻮرﯾﺘﻤ ﺑﺮای ﺗﺸﺨﯿﺺ اول ﺑﻮدن ﯾ‬
‫‪۱‬‬
‫ﭘﺲ اﺣﺘﻤﺎل اﯾﻨ ﻪ ﻋﺪد ﺗﺼﺎدﻓ ‪-n‬ﺑﯿﺘ اول ﺑﺎﺷﺪ‪ ،‬ﺣﺪاﻗﻞ‬
‫ﻋﺪد در دﺳﺘﺮس ﺑﺎﺷﺪ‪ ،‬ﺑﺎﯾﺪ ﺑﻪ ﻃﻮر ﻣﺘﻮﺳﻂ آﻧﺮا ﺑﺮ روی ﺣﺪود ‪ ۲n‬ﻋﺪد ﺗﺼﺎدﻓ اﺟﺮا ﮐﺮد ﺗﺎ ﯾ ﻋﺪد اول ﺗﻮﻟﯿﺪ ﮐﻨﺪ‪.‬‬
‫ﺑﻪ ﻃﻮر دﻗﯿﻖﺗﺮ اﮔﺮ ﭼﻨﯿﻦ اﻟ ﻮرﯾﺘﻤ ‪ ۲cn‬ﺑﺎر اﺟﺮا ﺷﻮد‪ ،‬اﺣﺘﻤﺎل اﯾﻨ ﻪ در ﻫﯿﭻ ﯾ از ﻣﺮاﺣﻞ ﻋﺪد اوﻟ ﺗﻮﻟﯿﺪ ﻧﺸﻮد‬
‫ﺣﺪاﮐﺜﺮ ﺑﺮاﺑﺮ اﺳﺖ ﺑﺎ‪:‬‬
‫‪۱ ۲cn‬‬
‫‪(۱ −‬‬ ‫)‬ ‫‪≤ e−c‬‬
‫‪۲n‬‬
‫‪٩‬‬
‫‪Chebyshev‬‬

‫‪٢٠-٧‬‬
‫آزﻣﻮن اول ﺑﻮدن ﻋﺪد‬ ‫‪٢.٣‬‬
‫در اﯾﻦ ﺑﺨﺶ اﻟ ﻮرﯾﺘﻤ ﮐﺎرا ﺑﺮای ﭘﯿﺪا ﮐﺮدن اﻋﺪاد اول ﻣﻌﺮﻓ ﻣ ﺷﻮد‪.‬‬
‫ﻗﻀﯿﻪ ‪) ١٠‬ﻗﻀﯿﻪ ﻓﺮﻣﺎ( اﮔﺮ ‪ p‬ﻋﺪدی اول ﺑﺎﺷﺪ‪ ،‬آﻧ ﺎه ﺑﻪ ازای ﻫﺮ ‪ x ∈ Z∗p‬دارﯾﻢ‪:‬‬
‫)‪xp−۱ = ۱ (mod p‬‬
‫ﻣﺜﺎل ‪ ١٨‬ﻓﺮض ﮐﻨﯿﺪ ‪ ،p = ۵‬آﻧ ﺎه‪:‬‬
‫‪۳۵−۱ = ۳۴ = ۸۱ = ۱‬‬ ‫)‪(mod ۵‬‬
‫ﻧﺘﯿﺠﻪ ‪ ١٩‬ﺑﻪ ازای ﻫﺮ ‪ ،x ∈ Z∗p‬وارون ﺿﺮﺑ ‪ x‬در ‪ Z∗p‬ﺑﺮاﺑﺮ اﺳﺖ ﺑﺎ ‪.xp−۲‬‬
‫ﺑﺮﻫﺎن‪ .‬ﺑﻪ ازای ﻫﺮ ‪ x‬ﮐﻪ ﻋﻀﻮ ‪ Z∗p‬اﺳﺖ‪ ،‬دارﯾﻢ )‪ .xp−۱ = ۱ (mod p‬ﺣﺎل اﮔﺮ اﯾﻦ راﺑﻄﻪ را ﺑﺪﯾﻦ ﺻﻮرت ﺑﻨﻮﯾﺴﯿﻢ‬
‫ﮐﻪ )‪ x · xp−۲ = ۱ (mod p‬ﻧﺸﺎن دﻫﻨﺪه اﯾﻦ اﺳﺖ ﮐﻪ وارون ﺿﺮﺑ ﺑﺮاﺑﺮ اﺳﺖ ﺑﺎ ‪.xp−۲‬‬
‫دﻗﺖ ﮐﻨﯿﺪ ﮐﻪ ﻟﻢ ﻓﻮق ﯾ روش ﺑﺮای ﻣﺤﺎﺳﺒﻪ ﻣﻌ ﻮس ﺿﺮﺑ در ﻫﻨ ﯾ ﻋﺪد اول ﺑﺎ ﭘﯿﭽﯿﺪﮔ ) ‪ O(n۳‬ﭘﯿﺸﻨﻬﺎد‬
‫ﻣ ﮐﻨﺪ‪ .‬ﻟﺬا در ﻋﻤﻞ ﺑﻬﺘﺮ اﺳﺖ از ﺗﻌﻤﯿﻢ اﻟ ﻮرﯾﺘﻢ اﻗﻠﯿﺪس اﺳﺘﻔﺎده ﺷﻮد‪.‬‬
‫ﺗﻌﺮﯾﻒ ‪) ٢٠‬آزﻣﻮن ﻓﺮﻣﺎ( اﮔﺮ ‪ m‬ﯾ ﻋﺪد ﺻﺤﯿﺢ ﺑﺎﺷﺪ‪ ،‬ﮔﻮﯾﯿﻢ ‪ m‬از آزﻣﻮن ﻓﺮﻣﺎ ﻋﺒﻮر ﻣ ﮐﻨﺪ اﮔﺮ ﺑﻪ ازای ﻫﺮ‬
‫‪ ۱ ≤ a ≤ m − ۱‬ﮐﻪ ‪ gcd(a, m) = ۱‬داﺷﺘﻪ ﺑﺎﺷﯿﻢ )‪.am−۱ = ۱ (mod m‬‬

‫ﻧﺘﯿﺠﻪ ‪ ٢١‬اﮔﺮ ﻋﺪد ﺻﺤﯿﺢ ‪ m‬از آزﻣﻮن ﻓﺮﻣﺎ ﻋﺒﻮر ﻧ ﻨﺪ‪ ،‬ﻗﻄﻌﺎً ﻣﺮﮐﺐ اﺳﺖ‪ .‬وﻟ اﮔﺮ از آزﻣﻮن ﻓﺮﻣﺎ ﻋﺒﻮر ﮐﻨﺪ‪ ،‬ﻟﺰوﻣﺎً‬
‫اول ﻧﯿﺴﺖ‪.‬‬
‫ﺗﻌﺮﯾﻒ ‪) ٢٢‬ﻋﺪد ﮐﺎرﻣﺎﯾﻞ( ﺑﻪ ﻋﺪد ﺻﺤﯿﺢ ﻣﺮﮐﺐ ‪ m‬ﮐﻪ از آزﻣﻮن ﻓﺮﻣﺎ ﻋﺒﻮر ﻣ ﮐﻨﺪ‪ ،‬ﻋﺪد ﮐﺎرﻣﺎﯾﻞ ‪ ١٠‬ﻣ ﮔﻮﯾﯿﻢ‪ ،‬ﯾﺎ‬
‫ﺑﻪ ﻋﺒﺎرت دﯾ ﺮ ﺑﻪ ﻋﺪد ﺻﺤﯿﺢ ﻣﺮﮐﺐ ‪ m‬ﮐﺎرﻣﺎﯾﻞ ﻣ ﮔﻮﯾﯿﻢ اﮔﺮ‪:‬‬
‫)‪∀a, ۱ ≤ a ≤ m − ۱, gcd(a, m) = ۱ : am−۱ = ۱ (mod m‬‬
‫ﻗﻀﯿﻪ ‪ ١١‬اﮔﺮ ﻋﺪد ﺻﺤﯿﺢ ﻣﺮﮐﺐ ‪ m‬ﮐﺎرﻣﺎﯾﻞ ﻧﺒﺎﺷﺪ‪ ،‬آﻧ ﺎه ﺑﻪ ازای ﺣﺪاﻗﻞ ﻧﺼﻒ ‪۱ ≤ a ≤ m − ۱‬ﻫﺎ‬
‫‪am−۱ ̸= ۱‬‬
‫ﻧ ﺘﻪ ‪ ۴‬ﺗﻨﻬﺎ اﻋﺪاد ﻣﺮﮐﺒ ﮐﻪ از آزﻣﻮن ﻓﺮﻣﺎ ﻋﺒﻮر ﻣ ﮐﻨﻨﺪ‪ ،‬اﻋﺪاد ﮐﺎرﻣﺎﯾ ﻞ ﻫﺴﺘﻨﺪ‪ .‬ﺑﺎ اﯾﻨ ﻪ ﺗﻌﺪاد اﻋﺪاد ﮐﺎرﻣﺎﯾ ﻞ‬
‫ﻧﺎﻣﺘﻨﺎﻫ اﺳﺖ اﻣﺎ ﮐﺴﺮ ﻧﺎﭼﯿﺰی از اﻋﺪاد ﮐﺎرﻣﺎﯾ ﻞ ﻫﺴﺘﻨﺪ‪ .‬ﮐﺮانﻫﺎی زﯾﺮ در ﻣﻮرد )‪ ،C(x‬ﺗﻌﺪاد اﻋﺪاد ﮐﺎرﻣﺎﯾ ﻞ‬
‫ﮐﻮﭼ ﺘﺮ از ‪ ،x‬وﺟﻮد دارد‪:‬‬
‫) ‪( ln x ln ln ln x‬‬
‫‪x۲/۷ < C(x) < x exp −‬‬
‫‪ln ln x‬‬
‫ﻋﻼوه ﺑﺮ آزﻣﻮن ﻓﺮﻣﺎ‪ ،‬آزﻣﻮن دﯾ ﺮی ﺑﻪ ﻧﺎم ﻣﯿﻠﺮ‪-‬راﺑﯿﻦ وﺟﻮد دارد ﮐﻪ ﻓﻘﻂ اﻋﺪاد اول از آن ﻋﺒﻮر ﻣ ﮐﻨﻨﺪ و اﻋﺪاد ﻣﺮﮐﺐ‬
‫از آن ﻋﺒﻮر ﻧﻤ ﮐﻨﻨﺪ‪.‬‬
‫در ﻋﻤﻞ ﺑﺮای ﺗﺸﺨﯿﺺ اول ﺑﻮدن ﯾ ﻋﺪد ‪ m‬ﻧﻤ ﺗﻮان ﺑﺎ اﻣﺘﺤﺎن ﻫﻤﻪ ﻣﻘﺎدﯾﺮ ‪ ۱ ≤ a ≤ m − ۱‬آزﻣﻮن ﻓﺮﻣﺎ را‬
‫اﻋﻤﺎل ﮐﺮد‪ .‬در ﻋﻮض‪ ،‬ﺑﺮای ﺗﻌﺪاد ﻣﻌﺪودی ‪ a‬ﮐﻪ ﺑﻪ ﺗﺼﺎدف اﻧﺘﺨﺎب ﻣ ﺷﻮﻧﺪ ﺑﺮﻗﺮاری راﺑﻄﻪﻫﺎی ‪gcd(a, m) ̸= ۱‬‬
‫و )‪ am−۱ = ۱ (mod m‬ﺑﺮرﺳ ﻣ ﺷﻮﻧﺪ‪ .‬اﮔﺮ ﺑﺮای ﻫﻤﻪ آﻧﻬﺎ اﯾﻦ رواﺑﻂ ﺑﺮﻗﺮار ﺑﺎﺷﺪ‪ ،‬ﺗﺼﻤﯿﻢ ﺑﺮ اول ﺑﻮدن ‪m‬‬
‫ﮔﺮﻓﺘﻪ ﻣ ﺷﻮد‪ .‬در ﻏﯿﺮ اﯾﻦﺻﻮرت ‪ m‬ﻣﺮﮐﺐ اﺳﺖ‪ .‬اﮔﻪ ﺑﻪ ﺗﻌﺪاد ‪ ۸۰‬ﺗﺎ ﻣﻘﺪار ﺗﺼﺎدﻓ ‪ a‬اﻣﺘﺤﺎن ﺷﻮد‪ ،‬اﺣﺘﻤﺎل اﯾﻨ ﻪ‬
‫اﻟ ﻮرﯾﺘﻢ ﺑﻪ اﺷﺘﺒﺎه ﯾ ﻋﺪد ﺗﺼﺎدﻓ ﻣﺮﮐﺐ را اول اﻋﻼم ﻧﻤﺎﯾﺪ ﮐﻤﺘﺮ از ‪ ۲−۸۰‬اﺳﺖ‪.‬‬
‫‪١٠‬‬
‫‪Carmichael Number‬‬

‫‪٢٠-٨‬‬
‫اﻟ ﻮرﯾﺘﻢ ﺗﻮﻟﯿﺪ ﻋﺪد اول‬ ‫‪٣.٣‬‬
‫ﻓﺮض ﮐﻨﯿﺪ ‪ A‬اﻟ ﻮرﯾﺘﻤ ﺗﺼﺎدﻓ ﺑﺎﺷﺪ ﺑﺎ ورودی ﻋﺪد ﺻﺤﯿﺢ ‪ m‬ﮐﻪ‪:‬‬
‫• اﮔﺮ ‪ m‬اول ﺑﺎﺷﺪ‪ ،‬ﻫﻤﻮراه ‪ ١‬ﺑﺮﻣ ﮔﺮداﻧﺪ‪.‬‬
‫• اﮔﺮ ‪ m‬ﻣﺮﮐﺐ ﺑﺎﺷﺪ‪ ،‬ﺑﺎ اﺣﺘﻤﺎل ﻧﺎﭼﯿﺰی )ﻣﺜﻼ ‪ (۲−۸۰‬ﺧﺮوﺟ ‪ ١‬ﺑﺮﻣ ﮔﺮداﻧﺪ‪.‬‬
‫ﻋﺪد اول ﺗﺼﺎدﻓ ‪ n‬ﺑﯿﺘ ﺑﻪ ﺻﻮرت زﯾﺮ ﺗﻮﻟﯿﺪ‬ ‫ﺑﺎ اﺳﺘﻔﺎده از ﭼﻨﯿﻦ اﻟ ﻮرﯾﺘﻤ ﺑﺮای آزﻣﻮن اوﻟﯿﻪ ﺑﻮدن اﻋﺪاد ﻣ ﺗﻮان ﯾ‬
‫ﮐﺮد‪.‬‬
‫ﻋﺪد رﺷﺘﻪ ‪ n − ۱‬ﺑﯿﺘ ﺗﺼﺎدﻓ را ﺗﻮﻟﯿﺪ و آﻧﺮا ̂‪ m‬ﺑﻨﺎﻣﯿﺪ‪ .‬ﯾﻌﻨ ‪.m̂ ← {۰, ۱}n−۱ :‬‬ ‫‪ .١‬ﯾ‬
‫‪ .٢‬ﻗﺮار دﻫﯿﺪ ̂‪.m ← ۱||m‬‬
‫‪ .٣‬اﮔﺮ ﺧﺮوﺟ ‪ A(m) = ۱‬ﺑﻮد‪ ،‬ﻋﺪد ‪ m‬را ﺑﻪ ﻋﻨﻮان ﺧﺮوﺟ اﻟ ﻮرﯾﺘﻢ ﺑﺮﻣ ﮔﺮداﻧﯿﻢ‪.‬‬

‫ﺗﻮﻟﯿﺪ ﻣﻮﻟﺪ ﺑﺮای ﮔﺮوه ‪Z∗p‬‬ ‫‪۴.٣‬‬


‫اﮔﺮ ‪ p‬ﯾ ﻋﺪد اول ﺑﺎﺷﺪ‪ ،‬ﮔﺮوه ‪ Z∗p‬ﯾ ﮔﺮوه دوری اﺳﺖ و دارای )‪ ϕ(p − ۱‬ﻣﻮﻟﺪ اﺳﺖ‪ .‬در ﺣﺎل ﺣﺎﺿﺮ اﻟ ﻮرﯾﺘﻢ‬
‫ﮐﺎراﯾ ﺑﺮای ﺗﻮﻟﯿﺪ ﯾ ﻣﻮﻟﺪ ﺑﺮای ﮔﺮوه ‪ Z∗p‬وﺟﻮد ﻧﺪارد ﻣ ﺮ اﯾﻨ ﻪ ﺗﺠﺰﯾﻪ ﺑﻪ ﻋﻮاﻣﻞ اول ‪ p − ۱‬را ﺑﺪاﻧﯿﻢ‪ .‬ﺑﺎ اﯾﻦ وﺟﻮد‬
‫ﻣ ﺗﻮان ﻋﺪد اول ‪ p‬و ﻣﻮﻟﺪ ‪ g‬را ﺑﺮای ‪ Z∗p‬ﺑﻪ ﻃﻮر ﻫﻤﺰﻣﺎن ﺗﻮﻟﯿﺪ ﮐﺮد‪ .‬ﯾ روش ﺑﺮای اﻧﺠﺎم اﯾﻦ ﮐﺎر اﻧﺘﺨﺎب ﻋﺪد ‪ p‬ﺑﻪ‬
‫ﺻﻮرت ‪ p = ۲q + ۱‬ﺑﻪ ﻃﻮرﯾ ﻪ ‪ q‬ﺧﻮد ﯾ ﻋﺪد اول ﺑﺎﺷﺪ‪ .‬ﯾ ﻋﺪد ﺗﺼﺎدﻓ ‪-n‬ﺑﯿﺘ ﺑﺎ اﺣﺘﻤﺎل ‪ ۱/۴n۲‬دارای‬
‫اﯾﻦ وﯾﮋﮔ اﺳﺖ‪.‬‬

‫ﺗﺠﺰﯾﻪ و ﻟ ﺎرﯾﺘﻢ ﮔﺴﺴﺘﻪ‬ ‫‪۴‬‬


‫اﻣﻨﯿﺖ ﺑﺴﯿﺎری از ﺳﯿﺴﺘﻢﻫﺎی رﻣﺰ ﮐﻠﯿﺪﻋﻤﻮﻣ ﻣﺒﺘﻨ ﺑﺮ ﻣﺴﺎﺋﻞ ﻣﺮﺗﺒﻂ ﺑﺎ دو ﻣﺴﺄﻟﻪ ﺗﺠﺰﯾﻪ و ﻟ ﺎرﯾﺘﻢ ﮔﺴﺴﺘﻪ اﺳﺖ‪.‬‬

‫ﺗﻌﺮﯾﻒ ‪) ٢٣‬ﻣﺴﺄﻟﻪ ﺗﺠﺰﯾﻪ( در ﻣﺴﺄﻟﻪ ﺗﺠﺰﯾﻪ ﻫﺪف ﭘﯿﺪا ﮐﺮدن ﻋﻮاﻣﻞ اول ﻋﺪد ‪ N‬اﺳﺖ ﮐﻪ ﺣﺎﺻﻞﺿﺮب دو ﻋﺪد اول‬
‫ﺑﯿﺘ ﺗﺼﺎدﻓ ﻫﻢ اﻧﺪازه اﺳﺖ‪.‬‬

‫( ﻫﺪف ﭘﯿﺪا ﮐﺮدن ‪ x‬از روی ‪ g x mod p‬اﺳﺖ ﮐﻪ ‪g‬‬ ‫ﺗﻌﺮﯾﻒ ‪) ٢۴‬ﻣﺴﺄﻟﻪ ﻟ ﺎرﯾﺘﻢ ﮔﺴﺴﺘﻪ روی ﮔﺮوه ﺿﺮﺑ ﻫﻨ‬
‫ﻋﺎﻣﻞ اول ﺗﻘﺮﯾﺒﺎً ﻫﻢاﻧﺪازه ﺑﺎ ‪ p‬اﺳﺖ‪.‬‬ ‫ﻣﻮﻟﺪ ﮔﺮوه ﺿﺮﺑ ‪ Z∗p‬اﺳﺖ و ‪ p − ۱‬دارای ﯾ‬
‫‪١١‬‬
‫ﺑﻪ ﻃﻮر اﻋﺠﺎبآوری ﺑﻬﺘﺮﯾﻦ روشﻫﺎی ﺷﻨﺎﺧﺘﻪ ﺷﺪه ﺣﻞ اﯾﻦ دو ﻣﺴﺄﻟﻪ ﺑﻪﻇﺎﻫﺮ ﻣﺘﻔﺎوت ﻣﺸﺎﺑﻪ ﻫﺴﺘﻨﺪ‪ .‬اﻟ ﻮرﯾﺘﻢ ‪NFS‬‬
‫ﮐﻪ در ﺳﺎل ‪ ١٩٨٨‬ﺗﻮﺳﻂ ﭘﻮﻻرد ‪ ١٢‬ﺑﺮای ﻣﺴﺄﻟﻪ ﺗﺠﺰﯾﻪ اراﺋﻪ ﺷﺪ دارای ﭘﯿﭽﯿﺪﮔ زﻣﺎﻧ زﯾﺮ اﺳﺖ‪:‬‬
‫√ (‬‫‪۳ ۶۴‬‬ ‫)‪۲‬‬
‫) ‪L(N ) = O e ۹ ln N (ln ln N‬‬
‫ﻧﺴﺨﻪ ﻟ ﺎرﯾﺘﻢ ﮔﺴﺴﺘﻪ اﯾﻦ اﻟ ﻮرﯾﺘﻢ در زﻣﺎن )‪ L(p‬ﻣﺴﺄﻟﻪ ﻟ ﺎرﯾﺘﻢ ﮔﺴﺴﺘﻪ روی ‪ Z∗p‬را ﺣﻞ ﻣ ﮐﻨﺪ‪ .‬ﺟﺪول زﯾﺮ ﻣﻘﺎدﯾﺮ‬
‫ﺗﺎﺑﻊ ‪ L‬را ﺑﺮای وﻗﺘ ﮐﻪ ‪ N‬ﯾﺎ ‪ p‬ﯾ ﻋﺪد ‪-n‬ﺑﯿﺘ ﺑﺎﺷﺪ‪ ،‬ﺑﺎ ﺻﺮفﻧﻈﺮ از ﻣﻘﺪار ﺛﺎﺑﺖ ﻣﻮﺟﻮد در )·(‪ O‬ﻧﺸﺎن ﻣ دﻫﺪ‪:‬‬
‫‪١١‬‬
‫)‪Number Field Sieve (NFS‬‬
‫‪١٢‬‬
‫‪Pollard‬‬

‫‪٢٠-٩‬‬
‫‪n‬‬ ‫) ‪log2 L(2n‬‬
‫‪256‬‬ ‫‪47‬‬
‫‪512‬‬ ‫‪64‬‬
‫‪1024‬‬ ‫‪87‬‬
‫‪2048‬‬ ‫‪117‬‬

‫ﺑﺰرگﺗﺮﯾﻦ ﻋﺪد ﻣﺮﮐﺐ ﺗﺠﺰﯾﻪ ﺷﺪه ﮐﻪ ﺣﺎﺻﻞﺿﺮب دو ﻋﺪد اول ﻫﻢاﻧﺪازه ﺑﺎﺷﺪ ﯾ ﻋﺪد ‪ ٧١٣‬ﺑﯿﺘ اﺳﺖ ﮐﻪ ﻣﻘﺪار‬
‫ﺗﺎﺑﻊ ‪ L‬ﺑﺮای آن ‪ ۲۷۴‬اﺳﺖ‪ ،‬ﮐﻪ ﺗﺠﺰﯾﻪ آن ﭘﺲ از ‪ ٢‬ﺳﺎل ﻣﺤﺎﺳﺒﻪ ﺑﺎ ﭘﺮدازش ﻣﻮازی روی ﮐﺎﻣﭙﯿﻮﺗﺮﻫﺎی ﭼﻨﺪﯾﻦ ﻣﺮﮐﺰ‬
‫داﻧﺸ ﺎﻫ در ﺳﺎل ‪ ٢٠١٠‬اﻧﺠﺎم ﺷﺪ‪.‬‬

‫ﻧ ﺘﻪ ‪ ۵‬ﻣ ﺗﻮان ﻣﺴﺄﻟﻪ ﻟ ﺎرﯾﺘﻢ ﮔﺴﺴﺘﻪ را ﺑﺮای ﻫﺮ ﮔﺮوه ﻣﺘﻨﺎﻫ ‪ G‬ﻧﯿﺰ درﻧﻈﺮ ﮔﺮﻓﺖ‪ .‬ﺑﺮ ﺧﻼف ﮔﺮوه ‪ ،Z∗p‬ﺑﺮای ﺑﺴﯿﺎری‬
‫از ﮔﺮوهﻫﺎ از ﺟﻤﻠﻪ ﮔﺮوهﻫﺎﯾ ﮐﻪ ﻣﺒﺘﻨ ﺑﺮ ﺧﻢﻫﺎی ﺑﯿﻀﻮی ﺗﻌﺮﯾﻒ ﻣ ﺷﻮﻧﺪ‪ ،‬ﺑﻬﺘﺮﯾﻦ اﻟ ﻮرﯾﺘﻢ ﺷﻨﺎﺧﺘﻪ ﺷﺪه ﻧﻤﺎﯾ ﺑﺎ‬
‫√‬
‫ﻣﺮﺗﺒﻪ )‪ O( q‬اﺳﺖ ﮐﻪ ‪ q‬ﺑﺰرﮔﺘﺮﯾﻦ ﻋﺎﻣﻞ اول |‪ |G‬اﺳﺖ‪ .‬اﯾﻦ اﻟ ﻮرﯾﺘﻢ ﻣﺒﺘﻨ ﺑﺮ ﺗﻨﺎﻗﺾ روز ﺗﻮﻟﺪ اﺳﺖ و ﺑﻪ ﺻﻮرت‬
‫زﯾﺮ ﮐﺎر ﻣ ﮐﻨﺪ ‪...‬‬

‫‪٢٠-١٠‬‬
‫ﺑﻪ ﻧﺎم ﺧﺪا‬

‫داﻧﺸ ﺪهی ﻋﻠﻮم رﯾﺎﺿ‬

‫ﻣﻘﺪﻣﻪای ﺑﺮ رﻣﺰﻧ ﺎری‬

‫ﺟﻠﺴﻪی ‪ :٢١‬ﻣﺴﺎﺋﻞ ﺳﺨﺖ رﻣﺰﻧ ﺎری‬


‫ﻧ ﺎرﻧﺪه‪ :‬رﺿﺎ ﮐﺎﺑﻠ‬ ‫ﻣﺪرس‪ :‬دﮐﺘﺮ ﺷﻬﺮام ﺧﺰاﺋ‬

‫در اﯾﻦ ﺟﻠﺴﻪ ﻣﻘﺪﻣﺎﺗ از ﻧﻈﺮﯾﻪ ﮔﺮوهﻫﺎ اراﺋﻪ ﮐﺮده ﺳﭙﺲ ﭼﻨﺪ ﻣﺴﺄﻟﻪی ﺳﺨﺖ ﻧﻈﺮﯾﻪ اﻋﺪاد ﻣﺎﻧﻨﺪ ﻣﺴﺄﻟﻪ ﺗﺠﺰﯾﻪ و ﻟ ﺎرﯾﺘﻢ‬
‫ﮔﺴﺴﺘﻪ را ﻣﻌﺮﻓ ﻣ ﮐﻨﯿﻢ‪ .‬اﯾﻦ ﻣﺴﺎﺋﻞ‪ ،‬اﺻﻮل اوﻟﯿﻪ رﻣﺰﻧ ﺎری را ﺗﺸ ﯿﻞ ﻣ دﻫﻨﺪ ﮐﻪ ﻣ ﺗﻮان ﺑﺎ اﺳﺘﻔﺎده از آﻧﻬﺎ‪ ،‬اﻣﻨﯿﺖ‬
‫ﺳﯿﺴﺘﻢﻫﺎی رﻣﺰﻧ ﺎری را اﺛﺒﺎت ﻧﻤﻮد‪.‬‬

‫ﻣﻘﺪﻣﺎﺗ از ﮔﺮوه‬
‫ﻗﻀﯿﻪ ‪) ١‬ﻗﻀﯿﻪ ﻻﮔﺮاﻧﮋ( ﺑﺮای ﻫﺮ ﮔﺮوه ﻣﺘﻨﺎﻫ ‪ G‬و ﻫﺮ زﯾﺮﮔﺮوه ‪ H‬از آن‪.|H| | |G| ،‬‬

‫ﺗﻌﺮﯾﻒ ‪ ١‬ﻓﺮض ﮐﻨﯿﺪ ‪ G‬ﯾ ﮔﺮوه ﺑﺎ ﻋﻀﻮ ﺧﻨﺜ ‪ ۱‬و ‪ a‬ﻋﻀﻮی از ‪ G‬ﺑﺎﺷﺪ‪ .‬ﻣﺮﺗﺒﻪ ‪ ،a‬ﮐﻪ ﺑﺎ )‪ o(a‬ﻧﻤﺎﯾﺶ ﻣ دﻫﯿﻢ‪،‬‬
‫ﮐﻮﭼ ﺘﺮﯾﻦ ﻋﺪد ﺻﺤﯿﺢ ‪ t‬اﺳﺖ ﮐﻪ ‪.at = ۱‬‬

‫ﺗﻌﺮﯾﻒ ‪ ٢‬ﺑﺮای ﻫﺮ ﮔﺮوه ‪ G‬و ﻋﻨﺼﺮ دﻟﺨﻮاه ‪ a‬از آن ﻣﺠﻤﻮﻋﻪ ﻫﻤﻪی ﺗﻮانﻫﺎی ‪ a‬زﯾﺮ ﮔﺮوه ﺗﻮﻟﯿﺪ ﺷﺪه ﺗﻮﺳﻂ ‪ a‬ﻧﺎﻣﯿﺪه‬
‫ﻣ ﺷﻮد و ﺑﺎ ⟩‪ ⟨a‬ﻧﺸﺎن داده ﻣ ﺷﻮد‪ .‬ﯾﻌﻨ ‪،‬‬

‫} ‪⟨a⟩ = {۱, a, . . . , ao(a)−۱‬‬

‫ﻗﻀﯿﻪ ‪ ٢‬ﻣﺮﺗﺒﻪ ﻫﺮ ﻋﻨﺼﺮ‪ ،‬ﻣﺮﺗﺒﻪ ﮔﺮوه را ﻋﺎد ﻣ ﮐﻨﺪ‪.‬‬

‫ﺑﺮﻫﺎن‪ .‬ﻣﺮﺗﺒﻪ ﯾ ﻋﻨﺼﺮ ﻫﻤﻮاره ﺑﺎ ﻣﺮﺗﺒﻪی زﯾﺮﮔﺮوه ﺗﻮﻟﯿﺪ ﺷﺪه ﺗﻮﺳﻂ آن ﺑﺮاﺑﺮ اﺳﺖ ﻟﺬا از ﻗﻀﯿﻪ ﻗﺒﻞ ﻣ ﺗﻮان ﻧﺘﯿﺠﻪ‬
‫ﮔﺮﻓﺖ ﻣﺮﺗﺒﻪ ﻋﻨﺼﺮ‪ ،‬ﻣﺮﺗﺒﻪ ﮔﺮوه را ﻋﺎد ﻣ ﮐﻨﺪ‪.‬‬

‫ﻧﺘﯿﺠﻪ ‪ ٣‬ﺑﺮای ﻫﺮ ‪ ،a ∈ G‬دارﯾﻢ ‪.a|G| = ۱‬‬

‫ﻧﺘﯿﺠﻪ ‪) ۴‬ﻗﻀﯿﻪی اوﯾﻠﺮ( ﺑﺮای ﻫﺮ ﻋﺪد ﻃﺒﯿﻌ ‪ N‬و ‪ a‬ﮐﻪ ‪ gcd(a, N ) = ۱‬راﺑﻄﻪ ‪ aφ(N ) ≡ ۱ mod N‬ﺑﺮﻗﺮار‬
‫اﺳﺖ زﯾﺮا ﻣﺠﻤﻮﻋﻪ اﻋﺪاد ﻃﺒﯿﻌ ﮐﻤﺘﺮ از ‪ N‬ﮐﻪ ﻧﺴﺒﺖ ﺑﻪ ‪ N‬اوﻟﻨﺪ ﺑﺎ ﻋﻤﻞ ﺿﺮب ﯾ ﮔﺮوه از ﻣﺮﺗﺒﻪ ) ‪φ(N‬ﺗﺸ ﯿﻞ‬
‫ﻣ دﻫﻨﺪ‪.‬‬

‫ﻓﺮﻣﺎ( ﺑﺮای ﻫﺮ ﻋﺪد اول ‪ p‬و ﻫﺮ ﻋﺪد ﻃﺒﯿﻌ ‪ a‬راﺑﻄﻪ ‪ ap−۱ ≡ ۱ mod p‬ﺑﺮﻗﺮار اﺳﺖ‬ ‫ﻧﺘﯿﺠﻪ ‪) ۵‬ﻗﻀﯿﻪی ﮐﻮﭼ‬
‫زﯾﺮا ‪.φ(p) = p − ۱‬‬

‫‪٢١-١‬‬
‫ﺗﻌﺮﯾﻒ ‪) ۶‬ﮔﺮوه دوری و ﻣﻮﻟﺪ ﮔﺮوه( ﻓﺮض ﮐﻨﯿﻢ ﮔﺮوه ﻣﺘﻨﺎﻫ ‪ G‬دارای ﻋﻨﺼﺮی ﻣﺜﻞ ‪ g‬ﺑﺎﺷﺪ ﮐﻪ زﯾﺮﮔﺮوه ﺗﻮﻟﯿﺪ ﺷﺪه‬
‫ﺗﻮﺳﻂ ‪ g‬ﺑﺎ ﮔﺮوه ‪ G‬ﺑﺮاﺑﺮ ﺷﻮد؛ ﯾﻌﻨ ⟩‪ .G = ⟨g‬در اﯾﻦ ﺻﻮرت ﮔﺮوه را دوری و ‪ g‬را ﻣﻮﻟﺪ ﮔﺮوه ﻣ ﻧﺎﻣﯿﻢ‪.‬‬

‫ﻣﻮﻟﺪ ﺑﺮای ‪ G‬اﺳﺖ اﮔﺮ وﺗﻨﻬﺎ اﮔﺮ |‪.o(g) = |G‬‬ ‫ﻧ ﺘﻪ ‪ ١‬ﻋﻨﺼﺮ ‪ g‬ﯾ‬

‫ﻗﻀﯿﻪ ‪ Z∗p ٣‬دوری اﺳﺖ ‪(Z∗p = Zp − {۰}) .‬‬

‫ﻗﻀﯿﻪ ‪ ۴‬اﮔﺮ ﮔﺮوه ‪ G‬دوری ﺑﺎﺷﺪ‪ ،‬آﻧ ﺎه ﮔﺮوه ‪ G‬دارای )|‪ φ(|G‬ﻣﻮﻟﺪ ﻣﺘﻤﺎﯾﺰ اﺳﺖ‪.‬‬

‫ﻧﺘﯿﺠﻪ ‪ ٧‬ﮔﺮوه ‪Z∗p‬دارای )‪ φ(p − ۱‬ﻣﻮﻟﺪ اﺳﺖ‪.‬‬

‫ﺳﺆال ‪ ٨‬ﺑﻪ ﻧﻈﺮ ﺷﻤﺎ ‪ Z∗N‬ﺑﺮای ﭼﻪ ‪N‬ﻫﺎﯾ دوری اﺳﺖ؟‬

‫ﻣﺤﺎﺳﺒﻪ رﯾﺸﻪ ‪−e‬ام‬


‫در ‪ Z∗N‬ﻣ ﺗﻮان ﺑﻪ ﺻﻮرت ﮐﺎراﯾ ﻋﻨﺎﺻﺮ را ﺑﻪ ﺗﻮان رﺳﺎﻧﺪ‪ .‬ﺳﻮاﻟ ﮐﻪ در اﯾﻦ ﺟﺎ ﻣﻄﺮح ﻣ ﺷﻮد اﯾﻦ اﺳﺖ ﮐﻪ آﯾﺎ ﻋ ﺲ‬
‫اﯾﻦ ﮐﺎر )ﯾﻌﻨ ﻣﺤﺎﺳﺒﻪ رﯾﺸﻪ( ﻧﯿﺰ ﺑﻪ ﺻﻮرت ﮐﺎرا اﻣ ﺎن ﭘﺬﯾﺮ اﺳﺖ؟‬

‫ﺗﻌﺮﯾﻒ ‪ ٩‬ﻋﻨﺼﺮ ‪ y ∈ Z∗N‬را ﻣﺎﻧﺪه ﻣﺮﺑﻌ ﻣ ﻧﺎﻣﯿﻢ ﻫﺮﮔﺎه ‪ x ∈ Z∗N‬ﻣﻮﺟﻮد ﺑﺎﺷﺪ ﺑﻪ ﻃﻮری ﮐﻪ ‪.x۲ = y mod N‬‬

‫زﯾﺮ را دارﯾﻢ‪:‬‬ ‫ﻋﻨﺼﺮ ﻣﺤ‬ ‫در ‪ Z∗p‬ﺑﺮای ﺗﺸﺨﯿﺺ ﻣﺎﻧﺪه ﻣﺮﺑﻌ ﺑﻮدن ﯾ‬

‫ﻋﺪد اول و ‪ y ∈ Z∗p‬ﺑﺎﺷﺪ‪ .‬آﻧ ﺎه‪:‬‬ ‫ﻗﻀﯿﻪ ‪ ۵‬ﻓﺮض ﮐﻨﯿﺪ ‪ p‬ﯾ‬


‫{‬
‫‪p−۱‬‬ ‫‪۱‬‬ ‫‪ y‬ﻣﺎﻧﺪه ﻣﺮﺑﻌ اﺳﺖ‬
‫‪y‬‬ ‫‪۲‬‬ ‫=‬ ‫)‪(mod p‬‬
‫‪−۱‬‬ ‫‪ y‬ﻧﺎﻣﺎﻧﺪه ﻣﺮﺑﻌ اﺳﺖ‬

‫ﻓﻮق ﺻﺮﻓﺎ وﺟﻮدی اﺳﺖ و روﺷ ﺑﺮای ﻣﺤﺎﺳﺒﻪ رﯾﺸﻪ اراﺋﻪ ﻧﻤ ﮐﻨﺪ‪ .‬ﺑﺮای اﯾﻦ ﻣﻨﻈﻮر از‬ ‫دﻗﺖ داﺷﺘﻪ ﺑﺎﺷﯿﺪ ﮐﻪ ﻣﺤ‬
‫ﻗﻀﯿﻪ زﯾﺮ اﺳﺘﻔﺎده ﻣ ﮐﻨﯿﻢ‪:‬‬
‫‪p+۱‬‬
‫‪.x = y‬‬ ‫‪۴‬‬ ‫ﻣﺎﻧﺪه ﻣﺮﺑﻌ ﺑﺎﺷﺪ آﻧ ﺎه رﯾﺸﻪ دوم ‪ y‬ﺑﺮاﺑﺮ اﺳﺖ ﺑﺎ‬ ‫ﻗﻀﯿﻪ ‪ ۶‬اﮔﺮ ‪ p = ۴k + ۳‬و ‪ y‬ﯾ‬

‫ﺑﺮﻫﺎن‪ .‬دارﯾﻢ‪:‬‬
‫‪p+۱‬‬ ‫‪p+۱‬‬ ‫‪p−۱‬‬
‫‪x۲ = (y‬‬ ‫‪۴‬‬ ‫‪)۲ = y‬‬ ‫‪۲‬‬ ‫‪=y‬‬ ‫‪۲‬‬ ‫‪y=y‬‬

‫رﯾﺸﻪ دوم ﺑﺮای ‪ y‬ﯾﺎﻓﺖ‪ .‬ﭘﯿﺪا ﮐﺮدن‬ ‫اﮔﺮ ‪ ،p = ۴k + ۱‬ﺑﺎز ﻫﻢ ﻣ ﺗﻮان ﺑﺎ ﯾ اﻟ ﻮرﯾﺘﻢ ﺗﺼﺎدﻓ ﭼﻨﺪﺟﻤﻠﻪای‪ ،‬ﯾ‬
‫ﯾ اﻟ ﻮرﯾﺘﻢ ﻗﻄﻌ ﺑﺮای اﯾﻦ ﺣﺎﻟﺖ ﯾ ﻣﺴﺄﻟﻪ ﺑﺎز اﺳﺖ‪.‬‬

‫ﻧ ﺘﻪ ‪ ٢‬اﮔﺮ ‪ x‬رﯾﺸﻪ ای ﺑﺮای ‪ y‬ﺑﺎﺷﺪ ﺑﻪ روﺷﻨ ‪ −x = p − x‬ﻧﯿﺰ رﯾﺸﻪ ای از ‪ y‬اﺳﺖ‪.‬‬

‫‪٢١-٢‬‬
‫ﺣﺎل اﮔﺮ ‪ y ∈ Z∗N‬دﻟﺨﻮاه ﺑﺎﺷﺪ ﭼ ﻮﻧﻪ ﻣ ﺗﻮان ﻣﺎﻧﺪه ﻣﺮﺑﻌ ﺑﻮدن ‪ y‬را ﺗﺸﺨﯿﺺ داد؟ ﭼ ﻮﻧﻪ ﻣ ﺗﻮان رﯾﺸﻪ ای ﺑﺮای‬
‫آن ﯾﺎﻓﺖ؟‬
‫ﻓﺮض ﮐﻨﯿﻢ ﺗﺠﺰﯾﻪ ‪ N‬ﺑﻪ ﺻﻮرت ﺣﺎﺻﻞﺿﺮب ﻋﻨﺎﺻﺮ اول را در اﺧﺘﯿﺎر دارﯾﻢ‪ .‬ﺑﺮای ﺳﺎدﮔ ﻓﺮض ﮐﻨﯿﻢ ‪ N = pq‬ﮐﻪ‬
‫‪ p‬و ‪ q‬اول و ﻣﺘﻤﺎﯾﺰﻧﺪ‪ .‬اﮔﺮ ‪ y‬در ‪ Z∗p‬و ‪ Z∗q‬ﻣﺎﻧﺪه ﻣﺮﺑﻌ ﺑﺎﺷﺪ ﻧﺸﺎن ﻣ دﻫﯿﻢ ‪ y‬در ∗‪ ZN‬ﻧﯿﺰ ﻣﺎﻧﺪه ﻣﺮﺑﻌ اﺳﺖ‪ .‬ﺑﺮای‬
‫اﯾﻦ ﻣﻨﻈﻮر ﺑﻪ ﺗﺮﺗﯿﺐ ‪ x۱‬و ‪ x۲‬را رﯾﺸﻪﻫﺎﯾ ﺑﺮای ‪ y‬در ‪ Z∗p‬و ‪ Z∗q‬ﻣ ﮔﯿﺮﯾﻢ‪ .‬ﺑﺎ اﺳﺘﻔﺎده از ﻗﻀﯿﻪ ﺑﺎﻗﯿﻤﺎﻧﺪه ﭼﯿﻨ ﻋﻨﺼﺮ‬
‫‪ z ∈ N‬را ﻃﻮری ﻣ ﯾﺎﺑﯿﻢ ﮐﻪ در ﻣﻌﺎدﻻت زﯾﺮ ﺻﺪق ﮐﻨﺪ‪:‬‬

‫‪z ≡ x۱‬‬ ‫‪mod p‬‬


‫‪z ≡ x۲‬‬ ‫‪mod q‬‬

‫در اﯾﻦ ﺻﻮرت‬

‫‪z۲ ≡ y‬‬ ‫‪mod p‬‬


‫‪z۲ ≡ y‬‬ ‫‪mod q‬‬

‫در ﻧﺘﯿﺠﻪ ‪ z ۲ ≡ y mod N‬ﭘﺲ ‪ y‬در ‪ Z∗N‬ﻣﺎﻧﺪه ﻣﺮﺑﻌ اﺳﺖ‪ .‬ﺑﺮﻋ ﺲ اﮔﺮ ‪ y ∈ Z∗N‬ﻣﺎﻧﺪه ﻣﺮﺑﻌ ﺑﺎﺷﺪ ﺑﻪ وﺿﻮح‬
‫‪ y‬در ‪ Z∗p‬و ‪ Z∗q‬ﻧﯿﺰ ﻣﺎﻧﺪه ﻣﺮﺑﻌ ﺧﻮاﻫﺪ ﺑﻮد‪.‬‬

‫ﻧﺘﯿﺠﻪ ‪ ١٠‬اﮔﺮ ‪ y ∈ Z∗N‬ﻣﺎﻧﺪه ﻣﺮﺑﻌ ﺑﺎﺷﺪ‪ ،‬آﻧ ﺎه دﻗﯿﻘﺎً ﭼﻬﺎر رﯾﺸﻪ ﻣﺘﻤﺎﯾﺰ در ‪ Z∗N‬دارد‪.‬‬

‫ﺳﺆال ‪ ١١‬ﺑﻪ ﻧﻈﺮ ﺷﻤﺎ ﺗﺸﺨﯿﺺ ﻣﺎﻧﺪه ﻣﺮﺑﻌ ﺑﻮدن در ‪ y ∈ Z∗N‬دﻟﺨﻮاه ﺑﺪون داﺷﺘﻦ ﺗﺠﺰﯾﻪ ‪ N‬آﺳﺎن اﺳﺖ؟‬

‫ﻋﺪد اول را ﭼ ﻮﻧﻪ ﻣ ﺗﻮان ﺣﻞ ﮐﺮد؟‬ ‫ﺗﻮاﻧ از ﯾ‬ ‫ﺳﺆال ‪ ١٢‬ﻣﺴﺄﻟﻪ ﭘﯿﺪا ﮐﺮدن رﯾﺸﻪ در ﻫﻨ‬

‫ﻧﺘﯿﺠﻪ اﯾﻨ ﻪ ﺑﺎ اﺳﺘﻔﺎده از ﺗﺠﺰﯾﻪ در ‪ ،Z‬ﻣ ﺗﻮان ﻣﺴﺄﻟﻪ ﻣﺤﺎﺳﺒﻪ رﯾﺸﻪ دوم در ‪ Z∗N‬را ﺣﻞ ﮐﺮد‪.‬‬
‫ﺑﺮﻋ ﺲ‪ ،‬ﻣ ﺧﻮاﻫﯿﻢ ﺑﻪ ﮐﻤ ﻣﺤﺎﺳﺒﻪ رﯾﺸﻪ دوم‪ ،‬ﻣﺴﺄﻟﻪ ﺗﺠﺰﯾﻪ را ﺣﻞ ﮐﻨﯿﻢ‪ .‬ﻓﺮض ﮐﻨﯿﻢ ﻋﺪد ﻃﺒﯿﻌ ‪ N‬دﻟﺨﻮاه ﺑﺎﺷﺪ؛‬
‫ﻋﻨﺼﺮی ﺑﻪ ﺗﺼﺎدف ﻣﺜﻞ ‪ z‬اﻧﺘﺨﺎب ﻣ ﮐﻨﯿﻢ‪ .‬ﻋﻨﺼﺮ ‪ y = z ۲ mod N‬ﻣﺎﻧﺪه ﻣﺮﺑﻌ اﺳﺖ ﭘﺲ رﯾﺸﻪ ای ﭼﻮن ‪x‬‬
‫دارد‪ .‬از اﯾﻦ رو‬
‫)‪x۲ = z ۲ mod N ⇒ N |x۲ − z ۲ ⇒ N |(x + z)(x − z‬‬
‫ﭘﺲ ‪ N‬ﺑﺎ )‪ (x − z‬ﯾﺎ )‪ (x + z‬ﻋﺎﻣﻞ ﻣﺸﺘﺮک دارد ﮐﻪ ﺑﻪ ﺻﻮرت ﮐﺎراﯾ ﻗﺎﺑﻞ ﻣﺤﺎﺳﺒﻪ اﺳﺖ؛ ﭘﺲ ﯾ ﺗﺠﺰﯾﻪ ﺑﺮای ‪N‬‬
‫ﺑﻪ ﺻﻮرت ﺣﺎﺻﻞﺿﺮب ﻋﻮاﻣﻞ ﮐﻮﭼ ﺘﺮ ﭘﯿﺪا ﻣ ﮐﻨﯿﻢ ﮐﻪ ﺑﺎ اداﻣﻪ اﯾﻦ روﻧﺪ ﺗﺠﺰﯾﻪ ‪ N‬ﺑﻪ ﻋﻮاﻣﻞ اوﻟﺶ ﺑﺪﺳﺖ ﻣ آﯾﺪ‪.‬‬

‫ﻧﺘﯿﺠﻪ ‪ ١٣‬ﻣﺴﺄﻟﻪ ﺗﺠﺰﯾﻪ در ‪ ،Z‬ﺑﺎ ﻣﺴﺄﻟﻪ ﻣﺤﺎﺳﺒﻪ رﯾﺸﻪ دوم در ‪ Z∗N‬ﻣﻌﺎدل اﺳﺖ‪.‬‬

‫ﺳﺆال ‪ ١۴‬در ﻣﻮرد ﻣﻌﺎدل ﺑﻮدن ﺗﺠﺰﯾﻪ در ‪ Z‬و ﻣﺴﺄﻟﻪ ﻣﺤﺎﺳﺒﻪ رﯾﺸﻪ ‪−e‬ام در ‪ Z∗N‬ﭼﻪ ﻣ ﺗﻮان ﮔﻔﺖ؟‬

‫رﯾﺸﻪ ‪−e‬ام ﯾ ﺘﺎ ﺑﻪ ﺻﻮرت ‪ y d‬اﺳﺖ ﮐﻪ‬ ‫ﺗﻮﺟﻪ ﮐﻨﯿﺪ ﮐﻪ اﮔﺮ ‪ gcd(e, φ(n)) = ۱‬ﺑﺎﺷﺪ‪ ،‬ﻫﺮ ‪ y ∈ Z∗N‬دارای ﯾ‬
‫)‪.d = e−۱ mod φ(n‬‬

‫‪٢١-٣‬‬
‫ﻓﺮﺿﯿﺎت رﻣﺰﻧ ﺎری‬
‫• ﻓﺮض ﺗﺠﺰﯾﻪ‪ :‬اﮔﺮ ‪ p‬و ‪ q‬دوﻋﺪد اول ﺗﺼﺎدﻓ ﻫﻢاﻧﺪازه ﺑﺎﺷﻨﺪ‪ ،‬ﻣﺤﺎﺳﺒﻪ ‪ p‬ﯾﺎ ‪ q‬از روی ‪ N = pq‬ﺳﺨﺖ اﺳﺖ‪.‬‬

‫• ﻓﺮض ‪) RSA‬ﻓﺮض رﯾﺸﻪ ‪−e‬ام(‪ :‬ﻣﺤﺎﺳﺒﻪ ‪ x‬از روی ‪ xe mod N‬ﮐﻪ ‪ N‬ﺣﺎﺻﻠﻀﺮب دو ﻋﺪد اول‬
‫ﺗﺼﺎدﻓ ﻫﻢاﻧﺪازه اﺳﺖ و ‪ gcd(e, φ(N )) = ۱‬ﺑﺮای ‪ x‬ﺗﺼﺎدﻓ ﺳﺨﺖ اﺳﺖ‪.‬‬

‫• ﻓﺮض ﻟ ﺎرﯾﺘﻢ ﮔﺴﺴﺘﻪ‪ :‬در ﮔﺮوه ‪ G‬ﺑﺎ ﻣﻮﻟﺪ ‪ ،g‬ﻣﺤﺎﺳﺒﻪ ‪ x‬از روی ‪ g x‬ﺑﺮای ‪ x‬ﺗﺼﺎدﻓ ﺳﺨﺖ اﺳﺖ‪.‬‬

‫• ﻓﺮض دﯾﻔ ﻫﻠﻤﻦ ﻣﺤﺎﺳﺒﺎﺗ ‪ :‬در ﮔﺮوه ‪ G‬ﺑﺎ ﻣﻮﻟﺪ ‪ ،g‬ﻣﺤﺎﺳﺒﻪ ‪ g xy‬از روی ‪ g x‬و ‪ g y‬ﺑﺮای ‪ x‬و ‪ y‬ﺗﺼﺎدﻓ‬
‫ﺳﺨﺖ اﺳﺖ‪.‬‬

‫• ﻓﺮض دﯾﻔ ﻫﻠﻤﻦ ﺗﺼﻤﯿﻤ ‪ :‬در ﮔﺮوه ‪ G‬ﺑﺎ ﻣﻮﻟﺪ ‪ ،g‬ﺗﻤﺎﯾﺰ ) ‪ (g, g x , g y , g xy‬از ) ‪ (g, g x , g y , g r‬ﺑﺮای ‪ x،y‬و‬
‫‪r‬ﺗﺼﺎدﻓ ﺳﺨﺖ اﺳﺖ‪.‬‬

‫ﻓﺮضﻫﺎی ﻟ ﺎرﯾﺘﻢ ﮔﺴﺴﺘﻪ‪ ،‬دﯾﻔ ﻫﻠﻤﻦ ﻣﺤﺎﺳﺒﺎﺗ و دﯾﻔ ﻫﻠﻤﻦ ﺗﺼﻤﯿﻤ ﺑﺮای ﻫﻤﻪ ﮔﺮوهﻫﺎ درﺳﺖ ﻧﯿﺴﺘﻨﺪ وﺑﺮای ﻫﺮ‬
‫ﯾ ‪ ،‬ﺑﺎﯾﺪ ﮔﺮوﻫ ﻣﻨﺎﺳﺐ اﺧﺘﯿﺎر ﺷﻮد‪.‬‬
‫ﺑﺮای ﻣﺜﺎل ﺑﺎور ﻋﻤﻮﻣ ﺑﺮ اﯾﻦ اﺳﺖ ﮐﻪ در ‪ Zp‬ﻣﺴﺎﻟﻪ ﻟ ﺎرﯾﺘﻢ ﮔﺴﺴﺘﻪ و ﻣﺴﺎﻟﻪ دﯾﻔ ﻫﻠﻤﻦ ﻣﺤﺎﺳﺒﺎﺗ ﻣﺴﺎﺋﻠ ﺳﺨﺖ‬
‫⋆‬

‫ﻫﺴﺘﻨﺪ‪ .‬اﻣﺎ در ﻫﻤﯿﻦ ‪ Z⋆p‬ﻓﺮض دﯾﻔ ﻫﻠﻤﻦ ﺗﺼﻤﯿﻤ ﺑﺮﻗﺮار ﻧﯿﺴﺖ زﯾﺮا ﺑﺮای )‪ (u, v, w, z‬داده ﺷﺪه ﻣ ﺗﻮان ﺗﻤﺎﯾﺰﮔﺮ‬
‫‪ D‬را ﮐﻪ ﺑﻪ ﺻﻮرت زﯾﺮ ﺗﺼﻤﯿﻢ ﻣ ﮔﯿﺮد اراﺋﻪ ﮐﺮد‪:‬‬
‫{‬
‫اﮔﺮ ‪ z‬ﻣﺎﻧﺪه ﻣﺮﺑﻌ ﺑﺎﺷﺪ ‪۱‬‬
‫= )‪D(u, v, w, z‬‬
‫‪۰‬‬ ‫درﻏﯿﺮاﯾﻨﺼﻮرت‬
‫اﺳﺖ‪.‬‬ ‫‪۱‬‬
‫‪۴‬‬
‫ﺗﻤﺎﯾﺰﮔﺮ ‪ D‬داری ﻣﺰﯾﺖ ﻏﯿﺮ ﻧﺎﭼﯿﺰ‬

‫ﺳﺆال ‪ ١۵‬ﮔﺮوﻫ ﺑﯿﺎﺑﯿﺪ ﮐﻪ ﻣﺴﺄﻟﻪ دﯾﻔ ﻫﻠﻤﻦ ﺗﺼﻤﯿﻤ در آن ﺳﺨﺖ ﺑﺎﺷﺪ‪.‬‬

‫ﭘﺎﺳﺦ‪ .‬ﺗﻤﺎﯾﺰﮔﺮی ﮐﻪ ﺑﺮای ﻣﺴﺄﻟﻪ دﯾﻔ ﻫﻠﻤﻦ ﺗﺼﻤﯿﻤ روی ‪ Z∗p‬اراﺋﻪ ﮐﺮدﯾﻢ از اﯾﺪه ﻣﺎﻧﺪه ﻣﺮﺑﻌ ﺑﺮای ﺗﻤﺎﯾﺰ اﺳﺘﻔﺎده‬
‫ﮐﺮد‪ .‬ﭘﺲ اﮔﺮ ﺑﻪ ﻧﺤﻮی ﺑﺘﻮاﻧﯿﻢ اﯾﻦ ﺷﺮط را ﺣﺬف ﮐﻨﯿﻢ اﺣﺘﻤﺎﻻ ﻓﺮض دﯾﻔ ﻫﻠﻤﻦ ﺗﺼﻤﯿﻤ ﺑﺮﻗﺮار ﺧﻮاﻫﺪ ﺑﻮد‪ .‬ﻋﺪد‬
‫اول ‪ p‬را ﻃﻮری اﻧﺘﺨﺎب ﻣ ﮐﻨﯿﻢ ﮐﻪ ‪ p = ۲q + ۱‬و ‪ q‬ﺧﻮد اول ﺑﺎﺷﺪ‪ .‬ﻣ ﺗﻮان ﻧﺸﺎن داد ﻣﺠﻤﻮﻋﻪی ﻣﺎﻧﺪهﻫﺎی ﻣﺮﺑﻌ‬
‫در ﻫﻨ ‪ ،p‬ﯾﻌﻨ ﻣﺠﻤﻮﻋﻪ‬
‫∗‬
‫‪QR = {x | x ∈ Zp } ,‬‬
‫‪۲‬‬

‫ﺧﻮد ﯾ ﮔﺮوه از ﻣﺮﺗﺒﻪ ‪ q‬ﺗﺸ ﯿﻞ ﻣ دﻫﻨﺪ‪ .‬ﺑﺎور ﻋﻤﻮﻣ ﺑﺮ اﯾﻦ اﺳﺖ ﮐﻪ ﻓﺮض دﯾﻔ ﻫﻠﻤﻦ ﺗﺼﻤﯿﻤ ﺑﺮای اﯾﻦ ﮔﺮوه‬
‫ﺳﺨﺖ اﺳﺖ‪.‬‬

‫ﻧ ﺘﻪ ‪ ٣‬اﮔﺮ ‪ g‬ﻣﻮﻟﺪی ﺑﺮای ‪ Z∗p‬ﺑﺎﺷﺪ‪ ،‬آﻧ ﺎه ‪ g ۲‬ﻣﻮﻟﺪی ﺑﺮای ﮔﺮوه ﻣﺎﻧﺪهﻫﺎی ﻣﺮﺑﻌ ‪ Z∗p‬اﺳﺖ‪ ،‬ﯾﻌﻨ ⟩ ‪.QR = ⟨g ۲‬‬

‫‪٢١-۴‬‬
‫ﺑﻪ ﻧﺎم ﺧﺪا‬

‫داﻧﺸ ﺪهی ﻋﻠﻮم رﯾﺎﺿ‬

‫‪ ٢٩‬اردﻳﺒﻬﺸﺖ ‪١٣٩٢‬‬ ‫ﻣﻘﺪﻣﻪای ﺑﺮ رﻣﺰﻧ ﺎری‬

‫ﺟﻠﺴﻪی ‪ :٢٢‬ﺳﻴﺴﺘﻢﻫﺎی رﻣﺰ ﻧﺎﻣﺘﻘﺎرن ‪ RSA‬و اﻟ ﻤﺎل‬


‫ﻧ ﺎرﻧﺪه‪ :‬ﻣﺮﻳﻢ ﻏﺮﻗﺎﻧ و ﻣﺤﻤﺪﺟﻮاد اﻛﺒﺮى‬ ‫ﻣﺪرس‪ :‬دﮐﺘﺮ ﺷﻬﺮام ﺧﺰاﺋ‬

‫‪ ١‬ﻓﺮﺿﻴﺎت رﻣﺰﻧ ﺎرى‬


‫ﭼﻨﺪ ﻓﺮض ذﯾﻞ ﮐﻪ در ﺟﻠﺴﺎت ﮔﺬﺷﺘﻪ ﺑﺪانﻫﺎ ﭘﺮداﺧﺘﻪ ﺷﺪ‪ ،‬ﺑﻪ ﻃﺮاﺣ ﭼﻨﺪ ﺳﻴﺴﺘﻢ رﻣﺰ‬ ‫در آﻏﺎز اﯾﻦ ﺟﻠﺴﻪ ﺑﻪ ﮐﻤ‬
‫ﮐﻠﯿﺪ ﻋﻤﻮﻣ ﻣ ﭘﺮدازﯾﻢ‪:‬‬

‫‪ .١‬ﻓﺮض ﺗﺠﺰﯾﻪ‪ :‬اﮔﺮ ‪ p‬و ‪ q‬دو ﻋﺪد اول ﺗﺼﺎدﻓ ‪ n‬ﺑﯿﺘ ﺑﺎﺷﻨﺪ‪ ،‬آنﮔﺎه ﻣﺤﺎﺳﺒﻪ ‪ p‬ﻳﺎ ‪ q‬از روى ﺣﺎﺻﻞﺿﺮب‬
‫‪ N = pq‬ﺳﺨﺖ اﺳﺖ‪.‬‬

‫‪ .٢‬ﻓﺮض ‪ :RSA‬ﻣﺤﺎﺳﺒﻪ ‪ x‬از روى ‪ xe mod N‬ﮐﻪ ‪ N‬ﺣﺎﺻﻠﻀﺮب دو ﻋﺪد ﺗﺼﺎدﻓ ‪ n‬ﺑﯿﺘ اﺳﺖ و ‪ e‬ﺑﻪ‬
‫ﺗﺼﺎدف از ) ‪ Z∗ϕ(N‬اﻧﺘﺨﺎب ﻣ ﺷﻮد‪ ،‬ﺳﺨﺖ اﺳﺖ‪.‬‬

‫‪ .٣‬ﻓﺮض ﻟ ﺎرﯾﺘﻢ ﮔﺴﺴﺘﻪ ‪ :١‬در ﮔﺮوه ‪ G‬ﺑﺎ ﻣﻮﻟﺪ ‪ g‬ﻣﺤﺎﺳﺒﻪ ‪ logg h‬از روى ﻋﻨﺼﺮ ﺗﺼﺎدﻓ ‪ h ∈ G‬ﺳﺨﺖ اﺳﺖ‪.‬‬

‫‪ .۴‬ﻓﺮض دﯾﻔ ‪-‬ﻫﻠﻤﻦ ﻣﺤﺎﺳﺒﺎﺗ )‪ :(٢ CDH‬در ﮔﺮوه ‪ G‬ﺑﺎ ﻣﻮﻟﺪ ‪ g‬و ﻣﺮﺗﺒﻪ ‪ ،q‬وﻗﺘ ‪ x‬و ‪ y‬ﺑﻪ ﺗﺼﺎدف از ‪Zq‬‬
‫اﻧﺘﺨﺎب ﺷﻮﻧﺪ‪ ،‬ﻣﺤﺎﺳﺒﻪی ‪ g xy‬از روی ‪ g x‬و ‪ g y‬ﺳﺨﺖ اﺳﺖ‪.‬‬

‫‪ .۵‬ﻓﺮض دﻳﻔ ‪-‬ﻫﻠﻤﻦ ﺗﺼﻤﻴﻤ )‪ :(٣ DDH‬در ﮔﺮوه ‪ G‬ﺑﺎ ﻣﻮﻟﺪ ‪ g‬و ﻣﺮﺗﺒﻪ ‪ ،q‬دو ﺗﻮزﻳﻊ ) ‪ (g x , g y , g xy‬و‬
‫) ‪ (g x , g y , g r‬وﻗﺘ ﻛﻪ ‪ x, y, r‬ﺑﻪ ﺗﺼﺎدف از ‪ Zq‬ﺗﻮﻟﻴﺪ ﺷﻮد‪ ،‬ﺗﻤﺎﻳﺰﻧﺎﭘﺬﻳﺮﻧﺪ‪.‬‬

‫‪ .۶‬ﻓﺮض دﻳﻔ ‪-‬ﻫﻠﻤﻦ ﭼ ﻴﺪهاى )‪ :(۴ HDH‬در ﮔﺮوه ‪ G‬ﺑﺎ ﻣﻮﻟﺪ ‪ g‬و ﻣﺮﺗﺒﻪ ‪ ،q‬وﻗﺘ ‪ x‬و ‪ y‬ﺑﻪ ﺗﺼﺎدف از ‪Zq‬‬
‫اﻧﺘﺨﺎب ﺷﻮﻧﺪ‪ ،‬دو ﺗﻮزﻳﻊ )) ‪ (g x , g y , H(g xy‬و )‪ (g x , g y , r‬ﺗﻤﺎﻳﺰﻧﺎﭘﺬﻳﺮﻧﺪ ﮐﻪ ﺗﺎﺑﻊ درﻫﻢﺳﺎزى ‪ H‬ﯾ اوراﻛﻞ‬
‫ﺗﺼﺎدﻓ و ‪ r‬ﻳﻚ ﻣﻘﺪار ﺗﺼﺎدﻓ از ﺑﺮد ‪ H‬اﺳﺖ‪.‬‬

‫ﻧ ﺘﻪ ‪ ١‬ﻓﺮض ‪ RSA‬ﺑﺮاى ﺣﺎﻟﺘ ﺑﯿﺎن ﺷﺪه اﺳﺖ ﻛﻪ ‪ e‬ﺑﻪ ﺗﺼﺎدف از ) ‪ Z∗ϕ(N‬اﻧﺘﺨﺎب ﺷﺪه ﺑﺎﺷﺪ‪ ،‬وﻟ ﻣ ﺗﻮان ‪RSA‬‬
‫را ﺑﺮاى ‪ e‬ﺛﺎﺑﺖ ﻧﻴﺰ ﻣﻄﺮح ﻛﺮد‪ .‬ﻣﺜﻼ ﻣ ﺗﻮان ﻓﺮض ﻛﺮد ﻣﺤﺎﺳﺒﻪ رﻳﺸﻪ ﺳﻮم وﻗﺘ ﻛﻪ ‪ gcd(۳, ϕ(N )) = ۱‬ﻣﺴﺌﻠﻪ‬
‫ﺳﺨﺘ اﺳﺖ‪.‬‬
‫‪١‬‬
‫‪Discrete Logarithm Assumption‬‬
‫‪٢‬‬
‫‪Computational Diffie-Hellman Assumption‬‬
‫‪٣‬‬
‫‪Decisional Diffie-Hellman Assumption‬‬
‫‪۴‬‬
‫‪Hash Diffie-Hellman Assumption‬‬

‫‪٢٢-١‬‬
‫ﻓﺮﺿﻴﺎت ﻓﻮق ﺑﻪ ﺻﻮرت ﻏﻴﺮ رﺳﻤ اراﺋﻪ ﺷﺪه اﻧﺪ‪ ،‬اﻣﺎ ﻫﻤﻪ آﻧﻬﺎ را ﻣ ﺗﻮان ﺑﻪ ﺻﻮرت رﺳﻤ ﺑﻴﺎن ﻛﺮد‪ .‬ﺑﻪ ﻋﻨﻮان ﻣﺜﺎل‬
‫ﺑﺮاى رﺳﻤ ﻛﺮدن ﻓﺮض ﺗﺠﺰﻳﻪ ﻣ ﺗﻮان آزﻣﺎﻳﺶ زﻳﺮ را ﺗﻌﺮﻳﻒ ﻛﺮد‪:‬‬
‫ﺗﻌﺮﯾﻒ ‪ ١‬آزﻣﺎﻳﺶ ﺗﺠﺰﻳﻪ )‪ FactorA (n‬ﺑﻪ ﺻﻮرت زﻳﺮ اﺳﺖ‪:‬‬
‫‪ .١‬اﻋﺪاد اول ﺗﺼﺎدﻓ ‪-n‬ﺑﯿﺘ ‪ p‬و ‪ q‬ﺗﻮﻟﻴﺪ ﻣ ﺷﻮﻧﺪ و ‪ N = pq‬ﻣﺤﺎﺳﺒﻪ ﻣ ﺷﻮد‪.‬‬
‫‪p′ ← A(N ) .٢‬‬
‫ﺧﺮوﺟ اﻳﻦ آزﻣﺎﻳﺶ‪ ،‬ﻛﻪ ﺑﺎ )‪ FactorA (n‬ﻧﺸﺎن داده ﻣ ﺷﻮد ﺑﺮاﺑﺮ اﺳﺖ ﺑﺎ ‪ ،١‬اﮔﺮ }‪ p′ ∈ {p, q‬و در ﻏﻴﺮ اﻳﻦ ﺻﻮرت‪،‬‬
‫ﺧﺮوﺟ آزﻣﺎﻳﺶ ‪ ٠‬اﺳﺖ‪.‬‬
‫ﺗﻌﺮﯾﻒ ‪) ٢‬ﻓﺮض ﺗﺠﺰﻳﻪ( ﺑﺮاى ﻫﺮ ﻣﻬﺎﺟﻢ ﭼﻨﺪﺟﻤﻠﻪاى ﺗﺼﺎدﻓ ‪ ،A‬ﺗﺎﺑﻊ ﻧﺎﭼﻴﺰ )‪ ε(n‬وﺟﻮد دارد ﻛﻪ‪:‬‬

‫)‪Pr{FactorA (n) = ۱} ≤ ε(n‬‬


‫ﻟﻢ ‪ ١‬اﮔﺮ ﻓﺮض ‪ RSA‬ﺑﺮﻗﺮار ﺑﺎﺷﺪ‪ ،‬ﻓﺮض ﺗﺠﺰﻳﻪ ﻧﯿﺰ ﺑﺮﻗﺮار اﺳﺖ‪.‬‬

‫ﻧ ﺘﻪ ‪ ٢‬ﻣﻤ ﻦ اﺳﺖ ﻣﺴﺌﻠﻪ ﺗﺠﺰﻳﻪ ﺳﺨﺖ ﺑﺎﺷﺪ وﻟ ‪ RSA‬آﺳﺎن ﺑﺎﺷﺪ؛ درواﻗﻊ ﻧﻤ داﻧﻴﻢ ﻛﻪ ﻣﺴﺌﻠﻪ ﺗﺠﺰﻳﻪ و ‪RSA‬‬
‫ﻣﻌﺎدل ﻫﻢ ﻫﺴﺘﻨﺪ ﻳﺎ ﻧﻪ‪.‬‬

‫ﻟﻢ ‪ ٢‬اﮔﺮ ﻓﺮض ‪ DDH‬ﺑﺮﻗﺮار ﺑﺎﺷﺪ‪ ،‬ﻓﺮض ‪ CDH‬ﻧﯿﺰ ﺑﺮﻗﺮار اﺳﺖ‪.‬‬

‫ﺑﺮﻫﺎن‪ .‬اﮔﺮ ﺑﺘﻮاﻧﻴﻢ ﻣﺴﺌﻠﻪ دﻳﻔ ‪-‬ﻫﻠﻤﻦ ﻣﺤﺎﺳﺒﺎﺗ را ﺣﻞ ﻛﻨﻴﻢ )ﻳﻌﻨ از روى ‪ g x‬و ‪ g y‬ﺑﺘﻮاﻧﻴﻢ ‪ g xy‬را ﺑﺪﺳﺖ آورﻳﻢ(‪،‬‬
‫ﻳﻘﻴﻨﺎ ﻣ ﺗﻮاﻧﻴﻢ دو ﺗﻮزﻳﻊ ) ‪ (g, g x , g y , g xy‬و ) ‪ (g, g x , g y , g r‬را ﺗﻤﺎﻳﺰ دﻫﻴﻢ و در ﻧﺘﻴﺠﻪ ﻣ ﺗﻮاﻧﻴﻢ ﻣﺴﺌﻠﻪ ‪ DDH‬را‬
‫ﺣﻞ ﻛﻨﻴﻢ‪.‬‬
‫ﻟﻢ ‪ ٣‬ﻓﺮض ‪ DDH‬روى ‪ Z∗p‬ﺑﺮﻗﺮار ﻧﻴﺴﺖ‪.‬‬

‫ﺑﺮﻫﺎن‪ .‬ﺑﺎ آزﻣﺎﻳﺶ زﻳﺮ ﻣ ﺗﻮاﻧﻴﻢ ﺗﺸﺨﻴﺺ دﻫﻴﻢ ﻛﻪ ‪ y ∈ Z∗p‬ﻣﺎﻧﺪه ﻣﺮﺑﻌ ﻫﺴﺖ ﻳﺎ ﻧﻪ‪:‬‬
‫‪p−۱‬‬
‫اﮔﺮ ‪ y ۲ = ۱ mod p‬ﺑﺎﺷﺪ‪ y ،‬ﻣﺎﻧﺪه ﻣﺮﺑﻌ اﺳﺖ‪.‬‬
‫‪p−۱‬‬
‫اﮔﺮ ‪ y ۲ = −۱ mod N‬ﺑﺎﺷﺪ‪ y ،‬ﻣﺎﻧﺪه ﻧﺎﻣﺮﺑﻌ اﺳﺖ‪.‬‬

‫از روى اﻳﻦ ﻧ ﺘﻪ ﻣ ﺗﻮاﻧﻴﻢ ﻳﻚ ﺗﻤﺎﻳﺰﮔﺮ ﺑﺮاى ﺗﺸﺨﻴﺺ ﺗﻮزﻳﻊﻫﺎى ) ‪ D۱ = (g x , g y , g xy‬و ) ‪D۰ = (g x , g y , g r‬‬
‫ﺑﺴﺎزﻳﻢ‪.‬‬
‫اﮔﺮ ﺣﺪاﻗﻞ ﻳ از ‪ x‬و ‪ y‬ﻣﺎﻧﺪه ﻣﺮﺑﻌ ﺑﺎﺷﻨﺪ )ﻛﻪ ﺑﺎ اﺣﺘﻤﺎل ‪ ۴‬اﻳﻦ اﺗﻔﺎق ﻣ اﻓﺘﺪ(‪ g ،‬ﺣﺘﻤﺎ ﻣﺎﻧﺪه ﻣﺮﺑﻌ اﺳﺖ‪ ،‬وﻟ‬
‫‪xy‬‬ ‫‪۳‬‬

‫‪ g r‬ﺑﺎ اﺣﺘﻤﺎل ‪ ۱۲‬ﻣﺎﻧﺪه ﻣﺮﺑﻌ اﺳﺖ‪ .‬ﺣﺎل ﻣ ﺗﻮاﻧﻴﻢ ﺗﻤﺎﻳﺰﮔﺮ ‪ D‬را ﺑﻪ ﺻﻮرت زﻳﺮ ﺑﺴﺎزﻳﻢ‪:‬‬

‫{‬ ‫‪p−۱‬‬
‫‪۱, w ۲ = ۱‬‬
‫= )‪D(u, v, w‬‬ ‫‪p−۱‬‬
‫‪۰ , w ۲ = −۱‬‬
‫دارﻳﻢ‪| Pr{D(D۰ ) = ۱} − Pr{D(D۱ ) = ۱}| = |۱/۲ − ۳/۴| = ۱/۴ :‬‬

‫ﺗﻤﺎﻳﺰﮔﺮ ﻣﺎ دارای ﻣﺰﯾﺖ ﻗﺎﺑﻞﺗﻮﺟﻪ اﺳﺖ‪ ،‬ﭘﺲ ﻓﺮض ‪ DDH‬ﺑﺮاى ‪ Z∗p‬ﺑﺮﻗﺮار ﻧﻴﺴﺖ‪.‬‬

‫‪٢٢-٢‬‬
‫ﻓﺮﺿﯿﻪ ‪ ٣‬ﻓﺮض ‪ CDH‬روى ‪ Z∗p‬ﺑﺮﻗﺮار اﺳﺖ‪.‬‬

‫ﻓﺮﺿﯿﻪ ‪ ۴‬اﮔﺮ ‪ G‬زﻳﺮﮔﺮوه ﺑﺎ ﻣﺮﺗﺒﻪ ‪ q‬از ‪ Z∗۲q+۱‬ﺑﺎﺷﺪ )ﻛﻪ ‪ q‬و ‪ ۲q + ۱‬اوﻟﻨﺪ(‪ ،‬ﻓﺮض ‪ DDH‬ﺑﺮاى ‪ G‬ﺑﺮﻗﺮار اﺳﺖ‪.‬‬

‫ﻓﺮﺿﯿﻪ ‪ ۵‬ﻓﺮض ‪ HDH‬ﺑﺮاى ﮔﺮوه ‪ Z∗p‬ﺑﺮﻗﺮار اﺳﺖ‪.‬‬

‫‪ ٢‬ﺳﻴﺴﺘﻢ رﻣﺰ ‪RSA‬‬


‫ﺑﺮاى ﺳﺎدﮔ ﻧﻤﺎﻳﺶ اﻟ ﻮرﻳﺘﻢ ‪ GenRSA‬را ﻛﻪ ﻣﺎژولﻫﺎى ‪ RSA‬را ﺗﻮﻟﻴﺪ ﻣ ﻛﻨﺪ ﺑﻪ ﺻﻮرت زﻳﺮ ﺗﻌﺮﻳﻒ ﻣ ﻛﻨﻴﻢ‪.‬‬
‫اﻟ ﻮرﯾﺘﻢ ‪ :GenRSA‬ﺑﺎ ورودى ‪ ،۱n‬اﺑﺘﺪا دو ﻋﺪد اول ‪ n‬ﺑﻴﺘ ﺗﺼﺎدﻓ ‪ p‬و ‪ q‬ﺗﻮﻟﻴﺪ و ‪ N = pq‬را ﻣﺤﺎﺳﺒﻪ ﻣ ﻛﻨﺪ‪.‬‬
‫ﺳﭙﺲ ﻋﺪد ﺗﺼﺎدﻓ ‪ e‬را ﺗﻮﻟﻴﺪ ﻣ ﻛﻨﺪ ﻛﻪ ‪ gcd(e, ϕ(N )) = ۱‬ﺑﺎﺷﺪ‪ .‬در ﻧﻬﺎﻳﺖ ) ‪ d = e−۱ mod ϕ(N‬را‬
‫ﻣﺤﺎﺳﺒﻪ ﻣ ﻛﻨﺪ‪ .‬ﺧﺮوﺟ اﻟ ﻮرﯾﺘﻢ )‪ (N, e, d‬اﺳﺖ‪.‬‬
‫اوﻟﻴﻦ اﻳﺪهاى ﻛﻪ ﺑﺮای ﺳﺎﺧﺖ ﺳﯿﺴﺘﻢ رﻣﺰ ﻧﺎﻣﺘﻘﺎرن ﺑﻪ ذﻫﻦ ﻣ رﺳﺪ ﺑﻪ ﺻﻮرت زﯾﺮ اﺳﺖ ﻛﻪ ﺑﻪ ﺳﻴﺴﺘﻢ رﻣﺰ ‪RSA‬‬
‫ﺳﺎده ‪ ۵‬ﻣﻌﺮوف اﺳﺖ‪:‬‬

‫‪(pk, sk) ← Gen(۱n ) .١‬‬


‫اﻟ ﻮرﻳﺘﻢ ﺗﻮﻟﻴﺪ ﻛﻠﻴﺪ ‪ Gen‬ﺑﺎ ورودى ‪ ،۱n‬اﺑﺘﺪا ) ‪ (N, e, d) ← GenRSA(۱n‬را اﺟﺮا ﻣ ﻛﻨﺪ و ﺳﭙﺲ‬
‫ﻛﻠﻴﺪﻫﺎى ﻋﻤﻮﻣ و ﺧﺼﻮﺻ را ﺑﻪ ﺻﻮرت )‪ pk = (N, e‬و )‪ sk = (N, d‬ﻣﺤﺎﺳﺒﻪ ﻣ ﻛﻨﺪ‪.‬‬

‫‪c ← Encpk (m) .٢‬‬


‫اﻟ ﻮرﻳﺘﻢ رﻣﺰﻧ ﺎرى ﺗﺤﺖ ﻛﻠﻴﺪ ﻋﻤﻮﻣ )‪ pk = (N, e‬ﭘﻴﺎم ‪ m ∈ Z∗N‬را ﺑﻪ ﻣﺘﻦ رﻣﺰی ‪c = me mod N‬‬
‫ﻣ ﻧ ﺎرد‪.‬‬

‫‪m ← Decsk (c) .٣‬‬


‫اﻟ ﻮرﻳﺘﻢ رﻣﺰﮔﺸﺎﻳ ﺗﺤﺖ ﻛﻠﻴﺪ ﺧﺼﻮﺻ )‪ sk = (N, d‬ﻣﺘﻦ رﻣﺰى ‪ c ∈ Z∗N‬را ﺑﻪ ﭘﻴﺎم ‪m = cd mod N‬‬
‫ﻣ ﻧ ﺎرد‪.‬‬

‫ﮔﻔﺘﻴﻢ اﻳﻦ ﺳﻴﺴﺘﻢ رﻣﺰ اﻣﻨﻴﺖ ‪ CPA‬ﻧﺪارد‪ ،‬ﭼﻮن اﻟ ﻮرﻳﺘﻢ رﻣﺰﻧ ﺎرى ﺗﺼﺎدﻓ ﻧﻴﺴﺖ‪.‬‬

‫ﺳﻴﺴﺘﻢ رﻣﺰ ‪ RSA‬ﭘﺪ ﺷﺪه‬ ‫‪١.٢‬‬


‫ﺑﻪ دﻧﺒﺎل ﻳﻚ ﺳﻴﺴﺘﻢ رﻣﺰ ﻛﻠﻴﺪ ﻋﻤﻮﻣ ﻫﺴﺘﻴﻢ ﻛﻪ داراى اﻣﻨﻴﺖ ‪ CPA‬ﺑﺎﺷﺪ‪ .‬اوﻟﻴﻦ ﻧ ﺘﻪ اﻳﻦ اﺳﺖ ﻛﻪ اﻟ ﻮرﻳﺘﻢ رﻣﺰﻧ ﺎرى‬
‫ﺗﺼﺎدﻓ ﺑﺎﺷﺪ‪ .‬ﻣ ﺗﻮاﻧﻴﻢ ﺑﺎ ﻗﺮار دادن ﻣﻘﺪار ﺗﺼﺎدﻓ ‪ r‬در اﺑﺘﺪای ﭘﯿﺎم ‪ ،m‬ﭘﯿﺎم ‪ x = r m‬را ﺗﻮﻟﻴﺪ ﻛﻨﻴﻢ و ﺳﭙﺲ‬
‫‪ x‬را ﺑﺎ اﻟ ﻮرﻳﺘﻢ رﻣﺰﻧ ﺎرى ‪ RSA‬رﻣﺰ ﻛﻨﻴﻢ‪ .‬اﻳﻦ ﺷﻴﻮه رﻣﺰﻧ ﺎرى ﻣﻮﺳﻮم ﺑﻪ ﺳﻴﺴﺘﻢ رﻣﺰ ‪ RSA‬ﭘﺪ ﺷﺪه ‪ ۶‬اﺳﺖ ﻛﻪ‬
‫ﺗﻮﺻﻴﻒ رﺳﻤ آن در زﻳﺮ آورده ﺷﺪه اﺳﺖ‪:‬‬
‫ﻓﺮض ﻛﻨﻴﺪ ﻣﻮﻟﺪ ‪ GenRSA‬ﻣﺎﻧﻨﺪ ﻗﺴﻤﺖ ﻗﺒﻞ ﺑﺎﺷﺪ و ‪ l‬ﺗﺎﺑﻌ ﺑﺎﺷﺪ ﻛﻪ ﺑﻪ ازاى ﻫﺮ ‪ n‬در ﺷﺮط ‪l(n) ≤ ۲n − ۲‬‬
‫ﺻﺪق ﻛﻨﺪ‪.‬‬
‫‪۵‬‬
‫‪Plain RSA‬‬
‫‪۶‬‬
‫‪Padded RSA‬‬

‫‪٢٢-٣‬‬
‫‪(N, e, d) ← GenRSA(۱n ) .١‬‬
‫)‪pk = (N, e‬‬
‫)‪sk = (N, d‬‬

‫‪ Encpk (m) .٢‬ﭘﻴﺎم )‪ m ∈ {۰, ۱}l(n‬را ﻣ ﮔﻴﺮد‪ ،‬ﺳﭙﺲ ﻳﻚ رﺷﺘﻪ ﺗﺼﺎدﻓ ‪ r ∈ {۰, ۱}|N |−l(n)−۱‬ﺗﻮﻟﻴﺪ‬
‫ﻣ ﻛﻨﺪ و در ﻧﻬﺎﻳﺖ ﻣﺘﻦ رﻣﺰ ﺷﺪه ‪ c‬را ﺑﺮﻣ ﮔﺮداﻧﺪ ﻛﻪ ‪ c‬ﺑﻪ ﺻﻮرت زﻳﺮ ﻣﺤﺎﺳﺒﻪ ﻣ ﺷﻮد‪:‬‬
‫‪x = r||m‬‬
‫‪c = xe mod N‬‬

‫‪ m ← Decsk (c) .٣‬ﻛﻪ ‪ m‬ﺑﻪ ﺻﻮرت زﻳﺮ ﻣﺤﺎﺳﺒﻪ ﻣ ﺷﻮد‪:‬‬


‫‪m̂ = cd mod N‬‬
‫‪ m‬ﺑﺮاﺑﺮﺳﺖ ﺑﺎ )‪ l(n‬ﺑﻴﺖ ﻛﻢارزش ̂‪m‬‬

‫ﻃﻮل ﻣﻘﺪار اﻓﺰوده ﺷﺪهی ‪ r‬ﺗﺎﺛﯿﺮ ﻣﺴﺘﻘﯿﻢ ﺑﺮ اﻣﻨﯿﺖ ﺳﯿﺴﺘﻢ دارد‪ .‬اﮔﺮ اﯾﻦ ﻃﻮل ﻧﺴﺒﺖ ﺑﻪ ﻃﻮل ﮐﻞ ﭘﯿﺎم ﻧﺎﭼﯿﺰ ﺑﺎﺷﺪ‬
‫)ﻣﺜﻼ ))‪ (|r| = O(log(n‬آنﮔﺎه ﻣﻬﺎﺟﻢ ‪ ٧‬ﻣ ﺗﻮاﻧﺪ ﺑﺎ ﺟﺴﺘﺠﻮی ﮐﺎﻣﻞ روی ﺗﻤﺎم ‪ r‬ﻫﺎ ﺑﻪ ﺳﯿﺴﺘﻢ ﺣﻤﻠﻪ ﮐﻨﺪ‪.‬‬
‫در ﺣﺎﻟﺘ ﮐﻪ ﺑﻪ ازاى ﻳﻚ ﺛﺎﺑﺖ ‪ l(n) = c · n ،c < ۱‬ﺑﺎﺷﺪ‪ ،‬ﮔﺮﭼﻪ ﺗﺎﺑﻪﺣﺎل ﮐﺴ ﻣﻮﻓﻖ ﺑﻪ ﺷ ﺴﺘﻦ ﺳﯿﺴﺘﻢ ﻧﺸﺪه‪ ،‬اﻣﺎ‬
‫اﺛﺒﺎﺗ ﻧﯿﺰ )ﺗﺤﺖ ﻓﺮض ‪ (RSA‬ﺑﺮ اﻣﻨﯿﺖ ﺳﯿﺴﺘﻢ اراﺋﻪ ﻧﺸﺪه اﺳﺖ‪ .‬در ﺣﺎﻻﺗ ﮐﻪ ﻃﻮل ﭘﯿﺎم ‪ m‬از ﻣﺮﺗﺒﻪی ﻟ ﺎرﯾﺘﻤ‬
‫ﺑﺮﺣﺴﺐ ﭘﺎراﻣﺘﺮ اﻣﻨﯿﺘ ﺑﺎﺷﺪ‪ ،‬ﺳﯿﺴﺘﻢ ﺗﺤﺖ ﻓﺮض ‪ RSA‬دارای اﻣﻨﯿﺖ ‪ CPA‬اﺳﺖ‪.‬‬

‫ﻗﻀﯿﻪ ‪ ۴‬ﺳﻴﺴﺘﻢ رﻣﺰ ‪ RSA‬ﭘﺪ ﺷﺪه ﺑﺎ ))‪ ،l(n) = O(log(n‬ﺗﺤﺖ ﻓﺮض ‪ RSA‬داراى اﻣﻨﻴﺖ ‪ CPA‬اﺳﺖ‪.‬‬

‫ﺗﻌﺮﻳﻒ اﻣﻨﻴﺖ ‪ CCA‬در ﺳﻴﺴﺘﻢﻫﺎى رﻣﺰ ﻧﺎﻣﺘﻘﺎرن ﻣﺸﺎﺑﻪ اﻣﻨﻴﺖ ‪ CPA‬اﺳﺖ‪ ،‬ﺑﺎ اﻳﻦ ﺗﻔﺎوت ﻛﻪ ﻣﻬﺎﺟﻢ ﻋﻼوه ﺑﺮ‬
‫دﺳﺘﺮﺳ ﺑﻪ ﮐﻠﯿﺪ ﻋﻤﻮﻣ ‪ ،‬ﺑﻪ اﻟ ﻮرﻳﺘﻢ رﻣﺰﮔﺸﺎﻳ ﻧﻴﺰ دﺳﺘﺮﺳ اوراﻛﻠ دارد‪ .‬در اداﻣﻪ آزﻣﺎﻳﺶ ﺣﻤﻠﻪ ﻣﺘﻦ رﻣﺰﺷﺪه‬
‫ﻣﻨﺘﺨﺐ و اﻣﻨﻴﺖ ‪ CCA‬را ﺑﺮاى ﺳﻴﺴﺘﻢﻫﺎى رﻣﺰ ﻧﺎﻣﺘﻘﺎرن ﺗﻌﺮﻳﻒ ﻣ ﻛﻨﻴﻢ‪:‬‬
‫‪٨‬‬
‫ﺗﻌﺮﯾﻒ ‪ ۶‬آزﻣﺎﯾﺶ ﺣﻤﻠﻪی ﻣﺘﻦ رﻣﺰﺷﺪه ﻣﻨﺘﺨﺐ )‪A,Π (n‬‬
‫‪PubKcca‬‬

‫‪(pk, sk) ← Gen(۱n ) .١‬‬

‫‪ m۰ , m۱ ← ADecsk (·) (۱n , pk) .٢‬ﮐﻪ | ‪|m۰ | = |m۱‬‬

‫‪b ← {۰, ۱} .٣‬‬

‫‪c ← Encpk (mb ) .۴‬‬

‫‪ b̂ ← ADecsk (·) (c) .۵‬ﮐﻪ ‪ A‬ﻣﺠﺎز ﺑﻪ درﺧﻮاﺳﺖ رﻣﺰﮔﺸﺎﯾ ‪ c‬ﻧﯿﺴﺖ‪.‬‬

‫‪ PubKcca‬ﻧﺸﺎن داده ﻣ ﺷﻮد‪ ،‬ﺑﺮاﺑﺮﺳﺖ ﺑﺎ ‪ ،١‬اﮔﺮ ‪ ،b̂ = b‬در ﻏﻴﺮ اﻳﻦ ﺻﻮرت ﺧﺮوﺟ‬
‫ﺧﺮوﺟ آزﻣﺎﯾﺶ ﻛﻪ ﺑﺎ )‪A,Π (n‬‬
‫آزﻣﺎﻳﺶ ‪ ٠‬اﺳﺖ‪.‬‬
‫‪٧‬‬
‫‪Adversary‬‬
‫‪٨‬‬
‫‪Chosen Ciphertext Attack‬‬

‫‪٢٢-۴‬‬
‫ﺗﻌﺮﯾﻒ ‪ ٧‬ﺳﯿﺴﺘﻢ رﻣﺰ ﻧﺎﻣﺘﻘﺎرن )‪ Π = (Gen, Enc, Dec‬را‪ ،‬دارای اﻣﻨﯿﺖ ﻣﺘﻦ رﻣﺰﺷﺪه اﻧﺘﺨﺎﺑ )ﯾﺎ ‪-CCA‬اﻣﻦ ‪(٩‬‬
‫ﮔﻮﯾﯿﻢ‪ ،‬اﮔﺮ ﺑﺮای ﻫﺮ ﻣﻬﺎﺟﻢ ﭼﻨﺪﺟﻤﻠﻪاى و ﺗﺼﺎدﻓ ‪ A‬ﻛﻪ در آزﻣﺎﻳﺶ ﻓﻮق ﺷﺮﻛﺖ ﻣ ﻛﻨﺪ‪ ،‬ﺗﺎﺑﻊ ﻧﺎﭼﯿﺰ )‪ ε(n‬وﺟﻮد‬
‫داﺷﺘﻪ ﺑﺎﺷﺪ ﮐﻪ‪:‬‬
‫‪۱‬‬
‫≤ }‪A,Π (n) = ۱‬‬
‫‪Pr{PubKcca‬‬ ‫)‪+ ε(n‬‬
‫‪۲‬‬

‫ﺳﻴﺴﺘﻢ رﻣﺰ ‪PKCS#1‬‬ ‫‪١.١.٢‬‬

‫روﺷ ﻣﺸﺎﺑﻪ رﻣﺰﻧ ﺎری ‪ RSA‬ﭘﺪ ﺷﺪه در ﻋﻤﻞ ﻧﯿﺰ در ﺳﻴﺴﺘﻢ رﻣﺰى ﺑﻪ ﻧﺎم ‪ PKCS#1‬ﮐﻪ ﻧﺴﺨﻪی ﻧﺨﺴﺖ آن در‬
‫‪ https‬ﺑﻪ ﮐﺎر رﻓﺘﻪ‪ ،‬ﭘﯿﺎده ﺷﺪه اﺳﺖ‪ .‬ﻧﺤﻮهی اﻓﺰودن ﻣﻘﺪار ﺗﺼﺎدﻓ ‪ r‬در اﯾﻦ روش در ﺷ ﻞ زﯾﺮ آورده ﺷﺪه اﺳﺖ‪.‬‬
‫در اﺑﺘﺪای ﭘﯿﺎم ﺑﺎﯾﺖ ‪ 02‬ﻗﺮار دارد‪ ،‬ﺳﭙﺲ ﻣﻘﺪار ﺗﺼﺎدﻓ ‪ r‬ﮐﻪ در آن ﺑﺎﻳﺖ ‪ ff‬ﺑﻪ ﮐﺎر ﻧﺮﻓﺘﻪ اﺳﺖ‪ ،‬ﺳﭙﺲ ﺑﺎﻳﺖ ‪ ff‬و‬
‫ﻧﻬﺎﯾﺘﺎ ﭘﯿﺎم ‪.m‬‬

‫‪x = 02 r ff m‬‬
‫‪c = xe‬‬
‫ﺳﻴﺴﺘﻢ رﻣﺰ ‪ PKCS#1‬دارای اﻣﻨﯿﺖ ‪ CCA‬ﻧﯿﺴﺖ‪ .‬ﻳﻚ ﺣﻤﻠﻪ واﻗﻌ ﺑﻪ اﻳﻦ ﺳﻴﺴﺘﻢ وﺟﻮد دارد ﻛﻪ در آن ﻣﻬﺎﺟﻢ ﺑﺮای‬
‫ﯾﺎﻓﺘﻦ ﭘﯿﺎم اﺻﻠ ‪ ١٠‬ﻣﺘﻨﺎﻇﺮ ﺑﺎ ﯾ ﻣﺘﻦ رﻣﺰﺷﺪه ‪ ،١١‬ﺗﻌﺪادی ﻣﺘﻦ رﻣﺰﺷﺪه ﺑﻪ ﭼﺎﻟﺸ ﺮ ﻓﺮﺳﺘﺎده و ﺑﺎ اﺳﺘﻔﺎده از ﭘﺎﺳﺦ وی‬
‫ﻣﻮﻓﻖ ﺑﻪ ﺷ ﺴﺘﻦ ﺳﯿﺴﺘﻢ ﻣ ﺷﻮد‪ .‬اﮔﺮ در اﺑﺘﺪای ﯾ از ﭘﺮﺳﺶﻫﺎی ﻣﻬﺎﺟﻢ ﺑﺎﻳﺖ ‪ 02‬ﻧﺒﺎﺷﺪ‪ ،‬ﭼﺎﻟﺸ ﺮ ﭘﻴﻐﺎﻣ ﻣﺒﻨ ﺑﺮ‬
‫ﻧﺎﻣﻌﺘﺒﺮ ﺑﻮدن ﻣﺘﻦ رﻣﺰﺷﺪه ﺑﻪ ﻣﻬﺎﺟﻢ ﻣ ﻓﺮﺳﺘﺪ و ﻣﻬﺎﺟﻢ ﻣﺘﻮﺟﻪ ﻧﺎﻣﻌﺘﺒﺮ ﺑﻮدن ﭘﯿﺎم رﻣﺰﺷﺪهی اوﻟﯿﻪ ﻣ ﺷﻮد‪ .‬ﺑﺪﯾﻦﺗﺮﺗﯿﺐ‬
‫ﺑﺎ ارﺳﺎل ﺗﻌﺪاد ﺑﯿﺶﺗﺮ ﭘﯿﺎم رﻣﺰﺷﺪه و ﺑﺮرﺳ اﻋﺘﺒﺎر آنﻫﺎ ﺑﻪ ﻧﺘﯿﺠﻪ ﻣﻮردﻧﻈﺮ ﻣ رﺳﺪ‪.‬‬

‫ﺳﻴﺴﺘﻢ رﻣﺰ ‪ RSA‬ﺑﺎ ﺗﺎﺑﻊ درﻫﻢﺳﺎزى‬ ‫‪٢.٢‬‬


‫روﯾ ﺮدی دﯾ ﺮ در ﺑﻪﮐﺎرﮔﯿﺮی ﻓﺮض ‪ ،RSA‬اﺳﺘﻔﺎده از ﺗﺎﺑﻊ درﻫﻢﺳﺎزى ‪ ١٢‬و ﺳﯿﺴﺘﻢ رﻣﺰ ﻣﺘﻘﺎرن اﺳﺖ‪ .‬در اداﻣﻪ ﺑﻪ‬
‫ﺷﺮح ﭼﻨﯿﻦ ﺳﯿﺴﺘﻤ ﻣ ﭘﺮدازﯾﻢ ﮐﻪ ﺑﺎ ﭘﯿﺶﻓﺮض درﺳﺘ ﻓﺮض ‪ RSA‬دارای اﻣﻨﯿﺖ ‪ CCA‬اﺳﺖ‪.‬‬
‫ﻓﺮض ﮐﻨﯿﺪ )‪ Π = (G, E, D‬ﯾ ﺳﯿﺴﺘﻢ رﻣﺰ ﻣﺘﻘﺎرن ﺑﺎ ﻓﻀﺎی ﮐﻠﯿﺪ ﯾ ﻨﻮاﺧﺖ ‪ K‬و ‪ HN : Z∗N → K‬ﺧﺎﻧﻮادهای‬
‫از ﺗﻮاﺑﻊ درﻫﻢﺳﺎزی ﺑﺎﺷﺪ‪.‬‬
‫ﻫﻤﺎﻧﻨﺪ ﻗﺒﻞ ﻣﻮﻟﺪ ) ‪ GenRSA(۱n‬ﻣﺎژولﻫﺎى ‪ RSA‬را ﺗﻮﻟﻴﺪ ﻣ ﻛﻨﺪ‪.‬‬
‫‪(N, e, d) ← GenRSA(۱n ) .١‬‬
‫)‪pk = (N, e‬‬
‫)‪sk = (N, d‬‬

‫‪ ⟨y, Ek (m)⟩ ← Encpk (m) .٢‬ﻛﻪ ‪ y‬و ‪ k‬ﺑﻪ ﺻﻮرت زﻳﺮ ﻣﺤﺎﺳﺒﻪ ﻣ ﺷﻮﻧﺪ‪:‬‬
‫‪ r) r ← Z∗N‬ﺑﻪ ﺗﺼﺎدف از ‪ Z∗N‬اﻧﺘﺨﺎب ﻣ ﺷﻮد‪(.‬‬
‫)‪k = HN (r‬‬
‫‪y = re mod N‬‬
‫‪٩‬‬
‫‪chosen ciphertext attack secure‬‬
‫‪١٠‬‬
‫‪Plaintext‬‬
‫‪١١‬‬
‫‪Ciphertext‬‬
‫‪١٢‬‬
‫‪Hash Function‬‬

‫‪٢٢-۵‬‬
‫‪ Dk (c۲ ) ← Decsk ⟨c۱ , c۲ ⟩ .٣‬ﻛﻪ ‪ k‬ﺑﻪ ﺻﻮرت زﻳﺮ ﻣﺤﺎﺳﺒﻪ ﻣ ﺷﻮد‪:‬‬
‫‪r = cd۱ mod N‬‬
‫)‪k = HN (r‬‬
‫اﻳﻦ اﺳﺘﺎﻧﺪاردى اﺳﺖ ﺑﻪ ﻧﺎم ‪ ISO‬ﻛﻪ در ﻋﻤﻞ ﺧﻴﻠ از آن اﺳﺘﻔﺎده ﻧﻤ ﺷﻮد‪.‬‬
‫‪١٣‬‬
‫ﺑﻮده و ﺗﺎﺑﻊ درﻫﻢﺳﺎزی ﻧﯿﺰ اوراﮐﻞ‬ ‫ﺛﺎﺑﺖ ﻣ ﺷﻮد اﮔﺮ ﺳﯿﺴﺘﻢ رﻣﺰ ﻣﺘﻘﺎرن اﺳﺘﻔﺎده ﺷﺪه دارای اﻣﻨﯿﺖ اﺻﺎﻟﺖﺳﻨﺠ‬
‫ﺗﺼﺎدﻓ ﺑﺎﺷﺪ‪ ،‬ﺳﻴﺴﺘﻢ رﻣﺰ ﻋﻤﻮﻣ ﺗﻮﻟﯿﺪﺷﺪه دارای اﻣﻨﯿﺖ ‪ CCA‬ﺧﻮاﻫﺪ ﺑﻮد‪ .‬در اﯾﻦﺟﺎ ﻓﺮض ﺑﺮ اﯾﺪهآل ﺑﻮدن ﺗﺎﺑﻊ‬
‫درﻫﻢﺳﺎزی اﺳﺖ ﮐﻪ ﻣﺼﺪاﻗ ﻧﺪارد؛ درﻧﺘﯿﺠﻪ ﺑﺮای ﺣﻞ اﯾﻦ ﻣﺸ ﻞ از ﺗﻮاﺑﻊ درﻫﻢﺳﺎزی ﻣﻌﺮوف اﺳﺘﻔﺎده ﻣ ﺷﻮد ﮐﻪ‬
‫ﻧﻤ ﺗﻮان اﻣﻨﯿﺘﺶ را اﺛﺒﺎت ﮐﺮد‪ ،‬اﻣﺎ ﺗﺎﺑﻪﺣﺎل ﻧﻴﺰ ﺷ ﺴﺘﻪ ﻧﺸﺪه اﺳﺖ‪.‬‬

‫ﺳﻴﺴﺘﻢ رﻣﺰ ‪RSA-OAEP‬‬ ‫‪١.٢.٢‬‬

‫روﺷ دﯾ ﺮ ﮐﻪ اﺳﺘﺎﻧﺪارد ﺑﻮده و اﻣﺮوزه ﭘﺮﮐﺎرﺑﺮد ﮔﺸﺘﻪ روﺷ اﺳﺖ ﺑﻪ ﻧﺎم ‪ .OAEP‬در زﯾﺮ ﺑﻪ ﻋﻨﻮان ﻧﻤﻮﻧﻪای از اﯾﻦ‬
‫روش‪ ،‬ﻧﺴﺨﻪی ‪ OAEP PKCS 1 v.2.‬ﺗﺸﺮﯾﺢ ﻣ ﺷﻮد‪:‬‬
‫در اﯾﻦ ﺳﯿﺴﺘﻢ دو ﺗﺎﺑﻊ درﻫﻢﺳﺎزی ‪ H‬و ‪ G‬اﺳﺘﻔﺎده ﻣ ﺷﻮد‪ .‬ﭘﯿﺎم اوﻟﯿﻪ ﺑﺎ اﻓﺰوده ﺷﺪن ‪ ۰۱‬و ﺗﻌﺪاد ﻣﺸﺨﺼ ﺻﻔﺮ ﺑﻪ‬
‫اﻧﺘﻬﺎی ﺳﻤﺖ راﺳﺖ آن ﺑﺎ )‪ xor ،H(r‬ﺷﺪه )‪ r‬ﭘﯿﺎﻣ ﺗﺼﺎدﻓ اﺳﺖ( و ﺣﺎﺻﻞ‪ ،‬ﻧﯿﻤﻪی اول ﺧﺮوﺟ ‪ ،x‬ﻳﻌﻨ ‪ x۱‬را‬
‫ﺗﻮﻟﯿﺪ ﻣ ﮐﻨﺪ‪ ،x۲ .‬ﻧﯿﻤﻪی دوم ‪ ،x‬ﺑﺮاﺑﺮ اﺳﺖ ﺑﺎ ) ‪ .r ⊕ G(x۱‬ﻧﻬﺎﯾﺘﺎ ﭘﯿﺎم رﻣﺰﺷﺪه ﺑﺮاﺑﺮ ‪ c = xe mod N‬ﺧﻮاﻫﺪ‬
‫ﺑﻮد‪ .‬ﻧﻤﻮدار اﻳﻦ ﺳﻴﺴﺘﻢ در زﻳﺮ آﻣﺪه اﺳﺖ‪:‬‬

‫‪.‬‬
‫‪m ۰۱‬‬ ‫‪۰···۰‬‬ ‫‪r‬‬

‫⊕‬ ‫‪H‬‬

‫‪G‬‬ ‫⊕‬

‫‪x‬‬ ‫‪x۱‬‬ ‫‪x۲‬‬

‫در اﯾﻨﺠﺎ ﻧﯿﺰ اﮔﺮ ﺳﯿﺴﺘﻢ رﻣﺰ ‪-CCA‬اﻣﻦ ﺑﺎﺷﺪ و دو ﺗﺎﺑﻊ درﻫﻢﺳﺎزى اﯾﺪهآل ﺑﺎﺷﻨﺪ‪ ،‬ﻧﻬﺎﯾﺘﺎ ﺳﯿﺴﺘﻢ ﺗﺤﺖ ﻓﺮض ‪RSA‬‬
‫دارای اﻣﻨﯿﺖ ‪ CCA‬ﺧﻮاﻫﺪ ﺑﻮد‪ .‬ﻧﺴﺨﻪﻫﺎی ﻣﺸﺎﺑﻪ ﺑﺎ ﯾ ﺗﺎﺑﻊ درﻫﻢﺳﺎزی ﻧﯿﺰ وﺟﻮد دارﻧﺪ‪ ،‬اﻣﺎ ﮐﺎرﺑﺮد ﭼﻨﺪاﻧ ﻧﺪارﻧﺪ‪.‬‬

‫ﺳﻴﺴﺘﻢ رﻣﺰ اﻟ ﻤﺎل‬ ‫‪٣‬‬


‫ﺳﻴﺴﺘﻢ رﻣﺰ اﻟ ﻤﺎل ﺑﺎ ﺗﺎﺑﻊ درﻫﻢﺳﺎزى‬ ‫‪١.٣‬‬
‫ﺳﯿﺴﺘﻢ رﻣﺰ دﯾ ﺮی ﮐﻪ در اﯾﻦ ﺟﻠﺴﻪ ﺑﻪ آن اﺷﺎره ﻣ ﻛﻨﻴﻢ‪ ،‬ﺳﯿﺴﺘﻢ اﻟ ﻤﺎل ‪ ١۴‬اﺳﺖ ﮐﻪ در آن از ﻓﺮض ﻟ ﺎرﯾﺘﻢ ﮔﺴﺴﺘﻪ‬
‫اﺳﺘﻔﺎده ﻣ ﺷﻮد‪ .‬در اداﻣﻪ ﺳﻴﺴﺘﻢ رﻣﺰ اﻟ ﻤﺎل را ﺑﺎ اﺳﺘﻔﺎده از ﻳﻚ ﺗﺎﺑﻊ درﻫﻢﺳﺎزى ‪ H‬و ﻳﻚ ﺳﻴﺴﺘﻢ رﻣﺰ ﻣﺘﻘﺎرن‬
‫‪١٣‬ﻣﺸﺎﺑﻪ اﻣﻨﯿﺖ ‪ CCA‬اﺳﺖ‪ ،‬اﻣﺎ ﻣﻬﺎﺟﻢ ﻧﻤ ﺗﻮاﻧﺪ ﻫﯿﭻ ﭘﯿﺎم رﻣﺰﺷﺪهی ﻣﻌﺘﺒﺮی ﺗﻮﻟﯿﺪ ﮐﻨﺪ‬
‫‪١۴‬‬
‫‪El Gamal‬‬

‫‪٢٢-۶‬‬
‫)‪ Π = (G, E, D‬ﻣﻌﺮﻓ ﻣ ﻛﻨﻴﻢ‪:‬‬

‫‪) (G, q, g) ← GroupGen(۱n ) .١‬ﻳﻚ ﮔﺮوه دورى ‪ G‬ﺑﺎ ﻣﺮﺗﺒﻪ ‪ q‬و ﻣﻮﻟﺪ ‪ g‬ﺗﻮﻟﻴﺪ ﻣ ﻛﻨﺪ‪(.‬‬
‫‪ x)x ← Zq‬را ﺑﻪ ﺗﺼﺎدف از ‪ Zq‬اﻧﺘﺨﺎب ﻣ ﻛﻨﺪ‪(.‬‬
‫‪h = gx‬‬
‫)‪pk = (G, q, g, h‬‬
‫)‪sk = (G, q, g, x‬‬

‫‪ ⟨u, c⟩ ← Encpk (m) .٢‬ﻛﻪ ‪ u‬و ‪ c‬ﺑﻪ ﺻﻮرت زﻳﺮ ﻣﺤﺎﺳﺒﻪ ﻣ ﺷﻮﻧﺪ‪:‬‬
‫‪) r ← Zq‬ﻳﻚ ﻋﺪد ﺗﺼﺎدﻓ ‪ r‬از ‪ Zq‬اﻧﺘﺨﺎب ﻣ ﺷﻮد‪(.‬‬
‫‪u = g r , v = hr‬‬
‫)‪k = H(u, v‬‬
‫)‪c = Ek (m‬‬

‫‪ m ← Decsk (⟨u, c⟩) .٣‬ﻛﻪ ‪ m‬ﺑﻪ ﺻﻮرت زﻳﺮ ﻣﺤﺎﺳﺒﻪ ﻣ ﺷﻮد‪:‬‬


‫‪v = ux‬‬
‫)‪k = H(u, v‬‬
‫)‪m = Dk (c‬‬

‫ﻟﻢ ‪ ۵‬اﮔﺮ ﺗﺎﺑﻊ درﻫﻢﺳﺎزى ‪ H‬اوراﻛﻞ ﺗﺼﺎدﻓ ﺑﺎﺷﺪ و اﮔﺮ ﺳﻴﺴﺘﻢ رﻣﺰ ﻣﺘﻘﺎرن ‪ Π‬داراى اﻣﻨﻴﺖ ‪ CCA‬ﺑﺎﺷﺪ‪ ،‬ﺗﺤﺖ‬
‫ﻓﺮض دﻳﻔ ‪-‬ﻫﻠﻤﻦ ﻣﺤﺎﺳﺒﺎﺗ ﻧﺘﻴﺠﻪ ﻣ ﮔﻴﺮﻳﻢ اﻳﻦ ﺳﻴﺴﺘﻢ رﻣﺰ داراى اﻣﻨﻴﺖ ‪ CPA‬اﺳﺖ‪ .‬ﻫﻤﭽﻨﯿﻦ اﮔﺮ ﺳﻴﺴﺘﻢ رﻣﺰ‬
‫ﻣﺘﻘﺎرن ‪ Π‬داراى اﻣﻨﻴﺖ ‪ CCA‬ﺑﺎﺷﺪ‪ ،‬ﺗﺤﺖ ﻓﺮض ‪ HDH‬ﺳﻴﺴﺘﻢ رﻣﺰ اﻟ ﻤﺎل ﺑﺎ ﺗﺎﺑﻊ درﻫﻢﺳﺎزى‪ ،‬داراى اﻣﻨﻴﺖ ‪CPA‬‬
‫اﺳﺖ‪.‬‬

‫ﻧ ﺘﻪ ‪ ٣‬ﺗﺤﺖ ﻓﺮض ‪ HDH‬ﻧﻤ ﺗﻮاﻧﻴﻢ اﻣﻨﻴﺖ ‪ CCA‬را ﺑﺮاى ﺳﻴﺴﺘﻢ رﻣﺰ اﻟ ﻤﺎل ﺑﺎ ﺗﺎﺑﻊ درﻫﻢﺳﺎزى اﺛﺒﺎت ﻛﻨﻴﻢ‪.‬‬
‫‪١۵‬‬
‫ﻣ ﺗﻮان ﺛﺎﺑﺖ ﻛﺮد ﻛﻪ اﻳﻦ ﺳﻴﺴﺘﻢ رﻣﺰ ﺗﺤﺖ ﻓﺮض دﻳ ﺮى ﺑﻪ ﻧﺎم ﻓﺮض دﻳﻔ ‪-‬ﻫﻠﻤﻦ ﭼ ﯿﺪهای ﺗﻌﺎﻣﻠ )‪(IHDH‬‬
‫داراى اﻣﻨﻴﺖ ‪ CCA‬اﺳﺖ‪.‬‬

‫ﺳﻴﺴﺘﻢ رﻣﺰ اﻟ ﻤﺎل‬ ‫‪٢.٣‬‬


‫در ﻓﺮﺿﻴﺎت ﻣﻄﺮح ﺷﺪه در ﺑﺨﺶ ﻗﺒﻞ ﻻزم اﺳﺖ ﻛﻪ ﺗﺎﺑﻊ درﻫﻢﺳﺎزى اوراﻛﻞ ﺗﺼﺎدﻓ ﺑﺎﺷﺪ؛ وﻟ در ﻋﻤﻞ ﺗﺎﺑﻊ‬
‫درﻫﻢﺳﺎزى اﻳﺪهال ﻳﺎ اوراﻛﻞ ﺗﺼﺎﻓ وﺟﻮد ﻧﺪارد‪ .‬ﻣﺎ ﺗﻤﺎﻳﻞ دارﻳﻢ ﻓﺮضﻫﺎى ﺳﺎدهﺗﺮ و ﻣﻌﻘﻮلﺗﺮى در رﻣﺰﻧ ﺎرى‬
‫ﻣﻄﺮح ﻛﻨﻴﻢ‪ .‬ﺣﺎل ﻣ ﺧﻮاﻫﻴﻢ ﻳﻚ ﺳﻴﺴﺘﻢ رﻣﺰ ﻛﻠﻴﺪ ﻋﻤﻮﻣ ﺑﺴﺎزﻳﻢ ﻛﻪ اﻣﻨﻴﺖ ﻣﺘﻦ اﺻﻠ ﻣﻨﺘﺨﺐ داﺷﺘﻪﺑﺎﺷﺪ وﻟ از‬
‫ﻓﺮض ﺳﺎدهﺗﺮى اﺳﺘﻔﺎده ﻛﻨﺪ‪ .‬ﺑﻪ ﻫﻤﻴﻦ ﻣﻨﻈﻮر ﺑﻪ ﺟﺎىاﺳﺘﻔﺎده از ﻓﺮض ‪ HDH‬ﻛﻪ ﻧﻴﺎز ﺑﻪ اوراﻛﻞ ﺗﺼﺎدﻓ ﺑﻮدن ﺗﺎﺑﻊ‬
‫درﻫﻢﺳﺎزى دارد‪ ،‬از ﻓﺮض ‪ DDH‬اﺳﺘﻔﺎده ﻣ ﻛﻨﻴﻢ‪.‬‬
‫ﻣ ﺧﻮاﻫﻴﻢ ﺑﺮ ﻣﺒﻨﺎى ﻓﺮض ‪ DDH‬و ﺑﺪون اﺳﺘﻔﺎده از ﺗﺎﺑﻊ درﻫﻢﺳﺎزى‪ ،‬ﻳﻚ ﺳﻴﺴﺘﻢ رﻣﺰ ﺑﺴﺎزﻳﻢ ﻛﻪ اﻣﻨﻴﺖ ﻣﺘﻦ اﺻﻠ‬
‫ﻣﻨﺘﺨﺐ داﺷﺘﻪ ﺑﺎﺷﺪ‪ .‬ﺳﻴﺴﺘﻢ رﻣﺰى ﻛﻪ در اداﻣﻪ ﻣﻌﺮﻓ ﻣ ﻛﻨﻴﻢ ﺳﻴﺴﺘﻢ رﻣﺰ اﻟ ﻤﺎل اﺳﺖ‪:‬‬

‫‪) (G, q, g) ← GroupGen(۱n ) .١‬ﻳﻚ ﮔﺮوه دورى ‪ G‬ﺑﺎ ﻣﺮﺗﺒﻪ ‪ q‬و ﻣﻮﻟﺪ ‪ g‬ﺗﻮﻟﻴﺪ ﻣ ﻛﻨﺪ‪(.‬‬
‫‪) x ← Zq‬ﺑﻪ ﺗﺼﺎدف ‪ x‬را از ‪ Zq‬اﻧﺘﺨﺎب ﻣ ﻛﻨﺪ‪(.‬‬
‫‪h = gx‬‬
‫‪١۵‬‬
‫‪Interactive Hash Diffie-Hellman‬‬

‫‪٢٢-٧‬‬
‫)‪pk = (G, q, g, h‬‬
‫)‪sk = (G, q, g, x‬‬

‫‪ ⟨g r , m · hr ⟩ ← Encpk (m) .٢‬ﻛﻪ ‪ r‬ﺑﻪ ﺗﺼﺎدف از ‪ Zq‬اﻧﺘﺨﺎب ﻣ ﺷﻮد‪.‬‬


‫‪c۱‬‬
‫‪← Decsk (⟨c۱ , c۲ ⟩) .٣‬‬
‫‪cx۲‬‬

‫ﻟﻢ ‪ ۶‬ﺳﻴﺴﺘﻢ رﻣﺰ اﻟ ﻤﺎل ﺗﺤﺖ ﻓﺮض ‪ ،DDH‬اﻣﻨﻴﺖ ﻣﺘﻦ اﺻﻠ ﻣﻨﺘﺨﺐ دارد‪.‬‬

‫ﺑﺮﻫﺎن‪ .‬اﻳﻦ ﻟﻢ را ﺑﺎ اﺳﺘﻔﺎده از ﻛﺎﻫﺶ اﺛﺒﺎت ﻣ ﻛﻨﻴﻢ‪:‬‬


‫ﻓﺮض ﻛﻨﻴﺪ ﺳﻴﺴﺘﻢ رﻣﺰ اﻟ ﻤﺎل ﺗﺤﺖ ﻓﺮض ‪ ،DDH‬اﻣﻨﻴﺖ ‪ CPA‬ﻧﺪارد‪ .‬در اﻳﻦ ﺻﻮرت ﻳﻚ ﻣﻬﺎﺟﻢ ﭼﻨﺪﺟﻤﻠﻪاى ‪A‬‬
‫ﺑﺮاى ﺣﻤﻠﻪ ﺑﻪ اﻳﻦ ﺳﻴﺴﺘﻢ وﺟﻮد دارد ﻛﻪ ﺑﺎ اﺣﺘﻤﺎل ﻏﻴﺮﻧﺎﭼﻴﺰ )‪ µ(n‬در آزﻣﺎﻳﺶ ﺗﻤﺎﻳﺰ ﻣﻮﻓﻖ ﻣ ﺷﻮد‪ .‬ﺗﻤﺎﻳﺰﮔﺮ ‪ D‬را ﺑﻪ‬
‫ﺻﻮرت زﻳﺮ از روى ﻣﻬﺎﺟﻢ ‪ A‬ﻣ ﺳﺎزﻳﻢ‪:‬‬
‫‪.‬‬

‫‪D‬‬

‫⟩‪⟨G, g, c۱ , h, u‬‬ ‫)‪pk = (G, g, h‬‬

‫‪m۰ , m ۱‬‬

‫‪c۱ = g r‬‬ ‫‪A‬‬


‫}‪b ← {۰, ۱‬‬
‫‪h = gx‬‬
‫‪ g y‬ﻳﺎ ‪u = g rx‬‬ ‫⟩‪c = ⟨c۱ , mb · u‬‬
‫ﻛﻪ ‪ r‬و ‪ y‬ﺗﺼﺎدﻓ ﻫﺴﺘﻨﺪ‬
‫̂‪b‬‬

‫‪if b̂ = b output ۱‬‬


‫‪else output ۰‬‬

‫ﺗﻤﺎﻳﺰﮔﺮ ‪ D‬ﺗﻮزﻳﻊﻫﺎى ⟩ ‪ DH = ⟨G, g, g r , g x , g rx‬و ⟩ ‪ R = ⟨G, g, g r , g x , g y‬را ﺑﺎ اﺣﺘﻤﺎل ﻏﻴﺮﻧﺎﭼﻴﺰ )‪µ(n‬‬


‫ﺗﺸﺨﻴﺺ ﻣ دﻫﺪ‪ ،‬زﯾﺮا‪:‬‬

‫)‪Pr{D = ۱|DH} = Pr{b̂ = b} ≥ ۱/۲ + µ(n‬‬


‫‪Pr{D = ۱|R} = ۱/۲‬‬
‫)‪⇒ | Pr{D = ۱|DH} − Pr{D = ۱|R}| ≥ µ(n‬‬

‫ﺑﺎ ﻓﺮض ‪ DDH‬ﺑﻪ ﺗﻨﺎﻗﺾ رﺳﻴﺪﻳﻢ‪ .‬ﭘﺲ ﻓﺮض ﺧﻠﻒ ﺑﺎﻃﻞ و ﺣ ﻢ ﺑﺮﻗﺮار اﺳﺖ‪.‬‬

‫‪٢٢-٨‬‬
‫از دﻻﻳﻞ آن اﻳﻦ اﺳﺖ ﻛﻪ اﻳﻦ ﺳﻴﺴﺘﻢ‬ ‫ﻧ ﺘﻪ ‪ ۴‬اﻳﻦ ﺳﻴﺴﺘﻢ ﺗﺤﺖ ﻓﺮض ‪ ،DDH‬اﻣﻨﻴﺖ ﻣﺘﻦ رﻣﺰﺷﺪه ﻣﻨﺘﺨﺐ ﻧﺪارد‪ .‬ﻳ‬
‫داراى ﺧﺎﺻﻴﺖ ﻫﻤﻮﻣﻮرﻓﻴﻚ اﺳﺖ‪.‬‬

‫ﺗﻌﺮﯾﻒ ‪ ٨‬ﻣ ﮔﻮﻳﻴﻢ ﻳﻚ ﺳﻴﺴﺘﻢ رﻣﺰ داراى ﺧﺎﺻﻴﺖ ﻫﻤﻮﻣﻮرﻓﻴﻚ اﺳﺖ‪ ،‬اﮔﺮ ﺑﺮاى ﻫﺮ ﭘﻴﺎم ‪ m۱‬و ‪ m۲‬در ﻓﻀﺎى ﭘﻴﺎم‬
‫ﺑﺎ ﻣﺘﻦﻫﺎى رﻣﺰﺷﺪه ‪ c۱‬و ‪ ،c۲‬راﺑﻄﻪ ) ‪ c۱ · c۲ = Enck (m۱ · m۲‬ﺑﺮﻗﺮار ﺑﺎﺷﺪ‪.‬‬

‫ﻗﻀﯿﻪ ‪ ٧‬اﮔﺮ ﻳﻚ ﺳﻴﺴﺘﻢ رﻣﺰ ﻛﻠﻴﺪ ﻋﻤﻮﻣ داراى وﻳﮋﮔ ﻫﻤﻮﻣﻮرﻓﻴﻚ ﺑﺎﺷﺪ‪ ،‬داراى اﻣﻨﻴﺖ ‪ CCA‬ﻧﻴﺴﺖ‪.‬‬

‫از اﻳﻦ وﻳﮋﮔ در ﺳﺎﺧﺖ ﭘﺮوﺗ ﻞﻫﺎ اﺳﺘﻔﺎده ﻣ ﺷﻮد‪.‬‬


‫ﻳ از ﻛﺎرﺑﺮدﻫﺎى اﻳﻦ وﻳﮋﮔ اﻳﻦ اﺳﺖ ﻛﻪ اﮔﺮ ﻣﺘﻦ رﻣﺰﺷﺪه ﻳﻚ ﭘﻴﺎم را داﺷﺘﻪ ﺑﺎﺷﻴﻢ‪ ،‬ﻣ ﺗﻮاﻧﻴﻢ ﻳﻚ ﻣﺘﻦ رﻣﺰﺷﺪه ﺟﺪﻳﺪ‬
‫ﺑﺮاى ﻫﻤﺎن ﭘﻴﺎم ﺗﻮﻟﻴﺪ ﻛﻨﻴﻢ‪ ،‬ﺑﺪون اﻳﻨ ﻪ ﺑﺪاﻧﻴﻢ ﭘﻴﺎم اﺻﻠ ﯾﺎ ﮐﻠﯿﺪ ﺧﺼﻮﺻ ﭼﻴﺴﺖ‪ .‬ﻓﺮض ﻛﻨﻴﺪ )‪ c = Encpk (m‬را‬
‫دارﻳﻢ‪ .‬ﻛﺎﻓﻴﺴﺖ ‪ c‬را در ﻳﻚ ﻣﺘﻦ رﻣﺰﺷﺪه از ‪ ١‬ﺿﺮب ﻛﻨﻴﻢ‪ ،‬ﺗﺎ ﺑﻪ ﻳﻚ ﻣﺘﻦ رﻣﺰﺷﺪه ﺟﺪﻳﺪ ﺑﺮاى ‪ m‬ﺑﺮﺳﻴﻢ‪.‬‬
‫اﻳﻦ ﻣﻮﺿﻮع ﻛﺎرﺑﺮدﻫﺎى زﻳﺎدى دارد؛ ﻣﺜﻼ در راىﮔﻴﺮى اﻟ ﺘﺮوﻧﻴ ﭼﻨﻴﻦ ﻛﺎرى اﻧﺠﺎم ﻣ ﺷﻮد‪.‬‬

‫‪٢٢-٩‬‬
‫ﺑﻪ ﻧﺎم ﺧﺪا‬

‫داﻧﺸ ﺪهی ﻋﻠﻮم رﯾﺎﺿ‬

‫‪ ٢٨‬اردﯾﺒﻬﺸﺖ ‪١٣٩٣‬‬ ‫ﻣﻘﺪﻣﻪای ﺑﺮ رﻣﺰﻧ ﺎری‬

‫ﺟﻠﺴﻪی ‪ :٢٣‬ﺳﯿﺴﺘﻢ رﻣﺰ اﻟﺠﻤﺎل و اﻣﻀﺎی دﯾﺠﯿﺘﺎل‬


‫ﻧ ﺎرﻧﺪه‪ :‬ﺳﺠﺎد ﺻﺎدﻗ‬ ‫ﻣﺪرس‪ :‬دﮐﺘﺮ ﺷﻬﺮام ﺧﺰاﺋ‬

‫در اﯾﻦ ﺟﻠﺴﻪ اﺑﺘﺪا ﺳﯿﺴﺘﻢ رﻣﺰی را ﻣﺒﺘﻨ ﺑﺮ ﻓﺮض دﯾﻔ ‪-‬ﻫﻠﻤﻦ ﺗﺼﻤﯿﻤ ﻃﺮاﺣ ﻣ ﮐﻨﯿﻢ ﮐﻪ ‪ cpa‬اﻣﻦ اﺳﺖ )اﻣﻨﯿﺖ‬
‫ﻣﺘﻦ اﻧﺘﺨﺎب ﺷﺪه( و ﺳﭙﺲ ﺑﻪ ﺳﺮاغ ﺑﺤﺚ اﻣﻀﺎی دﯾﺠﯿﺘﺎل ﻣ روﯾﻢ‪.‬‬

‫‪ ١‬ﺳﯿﺴﺘﻢ رﻣﺰ اﻟﺠﻤﺎل‬


‫ﮔﺮوه ﺑﺎ ﻣﻮﻟﺪ ‪ g‬ﺑﺎﺷﺪ آﻧ ﺎه ﺗﻮزﯾﻊ ﻫﺎی زﯾﺮ در زﻣﺎن ﭼﻨﺪﺟﻤﻠﻪ ای‬ ‫ﺗﻌﺮﯾﻒ ‪ ١‬ﻓﺮض دﯾﻔ ‪-‬ﻫﻠﻤﻦ ﺗﺼﻤﯿﻤ اﮔﺮ ‪ G‬ﯾ‬
‫از ﻫﻢ ﺗﻤﺎﯾﺰﻧﺎﭘﺬﯾﺮﻧﺪ‪:‬‬

‫) ‪(G, g, g x , g y , g r ) ≈ (G, g, g x , g y , g xy‬‬

‫ﮐﻪ در اﯾﻦ ﺟﺎ ‪ r‬ﯾ ﻋﺪد ﺗﺼﺎدﻓ اﺳﺖ‪ .‬ﯾﺎ ﺑﻪ ﻋﺒﺎرﺗ دﯾ ﺮ ﻣ ﮔﻮﯾﯿﻢ ‪ DDH‬ﻧﺴﺒﺖ ﺑﻪ ‪ G‬ﺳﺨﺖ اﺳﺖ اﮔﺮ ﺑﻪ ازای‬
‫ﻫﺮ اﻟ ﻮرﯾﺘﻢ ﺗﺼﺎدﻓ ‪ A‬ﮐﻪ در زﻣﺎن ﭼﻨﺪﺟﻤﻠﻪ ای اﺟﺮا ﻣ ﺷﻮد داﺷﺘﻪ ﺑﺎﺷﯿﻢ‪:‬‬

‫)‪Pr[A(G, g, g x , g y , g r ) = ۱] − Pr[A(G, g, g x , g y , g xy ) = ۱] < ε(n‬‬

‫ﺗﺎﺑﻊ ﻧﺎﭼﯿﺰ اﺳﺖ‪.‬‬ ‫ﮐﻪ در آن )‪ ε(.‬ﯾ‬

‫ﻧﺤﻮه ی ﺳﺎﺧﺖ‬ ‫‪١.١‬‬


‫اﻟ ﻮرﯾﺘﻢ رﻣﺰ ﮔﺸﺎﯾ اراﺋﻪ دﻫﯿﻢ‪:‬‬ ‫اﻟ ﻮرﯾﺘﻢ رﻣﺰ ﮐﺮدن و ﯾ‬ ‫اﻟ ﻮرﯾﺘﻢ ﺗﻮﻟﯿﺪ ﮐﻠﯿﺪ‪ ،‬ﯾ‬ ‫ﺑﺎﯾﺪ ﯾ‬

‫اﻟ ﻮرﯾﺘﻢ ﺗﻮﻟﯿﺪ ﮐﻠﯿﺪ روی ورودی ‪:۱n‬‬

‫ﮔﺮوه دوری ‪ G‬ﺑﺎ ﻣﺮﺗﺒﻪ ی ‪ q‬و ﻣﻮﻟﺪ ‪ g‬ﺗﻮﻟﯿﺪ ﻣ ﮐﻨﺪ(‬ ‫• ) ‪) (G, q, g) ← GroupGen(۱n‬ﯾ‬

‫• ‪ x ) x ← Zq‬را ﺑﻪ ﺗﺼﺎدف از ‪ Zq‬اﻧﺘﺨﺎب ﻣ ﮐﻨﺪ(‬

‫• ‪h = gx‬‬

‫• )‪pk = (G, q, g, h‬‬

‫‪٢٣-١‬‬
‫• )‪sk = (G, q, g, x‬‬

‫اﻟ ﻮرﯾﺘﻢ رﻣﺰﻧ ﺎری روی ورودی ﮐﻠﯿﺪ ﻋﻤﻮﻣ )‪ pk = (G, q, g, h‬و ﭘﯿﺎم ‪:m ∈ G‬‬

‫• ‪ r ) r ← Zq‬را ﺑﻪ ﺗﺼﺎدف از ‪ Zq‬اﻧﺘﺨﺎب ﻣ ﮐﻨﺪ(‬


‫• ⟩‪ ⟨g r , hr · m‬را ﺑﻪ ﻋﻨﻮان ﺧﺮوﺟ ﺑﺪه‬

‫اﻟ ﻮرﯾﺘﻢ رﻣﺰ ﮔﺸﺎﯾ روی ورودی ﮐﻠﯿﺪ ﺧﺼﻮﺻ )‪ sk = (G, q, g, x‬و ﻣﺘﻦ رﻣﺰ ﺷﺪه ⟩ ‪:⟨c۱ , c۲‬‬

‫• ‪m = c۲ /c۱ x‬‬
‫ﻣﺘﻦ ﺗﺼﺎدﻓ ﻣ دﻫﺪ‪ .‬ب ﯾﺎد دارﯾﺪ‬ ‫واﺿﺢ اﺳﺖ ﮐﻪ اﻟ ﻮرﯾﺘﻢ رﻣﺰﻧ ﺎری ﺗﺼﺎدﻓ اﺳﺖ و ﻫﺮ ﺑﺎر ﮐﻪ رﻣﺰ ﻣ ﮐﻨﯿﻢ ﯾ‬
‫ﮐﻪ اﮔﺮ اﻟ ﻮرﯾﺘﻢ رﻣﺰﻧ ﺎری ﺗﺼﺎدﻓ ﻧﺒﺎﺷﺪ ‪ cpa‬اﻣﻦ ﻧﯿﺴﺖ‪.‬‬
‫ﺑﺮای اﯾﻦ ﮐﻪ ﺑﺮرﺳ ﮐﻨﯿﻢ ﮐﻪ اﻟ ﻮرﯾﺘﻢ رﻣﺰﮔﺸﺎﯾ درﺳﺖ ﮐﺎر ﻣ ﮐﻨﺪ ﻓﺮض ﮐﻨﯿﺪ‪:‬‬
‫‪⟨c۱ , c۲ ⟩ = ⟨g , h · m⟩ ، h = g x .‬‬
‫‪r‬‬ ‫‪r‬‬

‫آﻧ ﺎه ﺧﻮاﻫﯿﻢ داﺷﺖ‪:‬‬


‫‪c۲‬‬ ‫‪hr · m‬‬ ‫‪(g x )r · m‬‬ ‫‪g xr · m‬‬
‫= ‪⟨ ⟩= r x‬‬ ‫=‬ ‫‪=m‬‬
‫‪c۱‬‬ ‫) ‪(g‬‬ ‫‪g xr‬‬ ‫‪g xr‬‬

‫ﻗﻀﯿﻪ ‪ ١‬اﮔﺮ ﻣﺴﺌﻠﻪ ی دﯾﻔ ‪-‬ﻫﻠﻤﻦ ﻣﺤﺎﺳﺒﺎﺗ ﻧﺴﺒﺖ ﺑﻪ ‪ G‬ﺳﺨﺖ ﺑﺎﺷﺪ آﻧ ﺎه ﺳﯿﺴﺘﻢ رﻣﺰ اﻟﺠﻤﺎل در ﻣﻘﺎﺑﻞ ﺣﻤﻠﻪ ی‬
‫ﻣﺘﻦ اﻧﺘﺨﺎب ﺷﺪه‪ ،‬اﻣﻦ اﺳﺖ‪.‬‬

‫ﺣﻤﻠﻪ ﮐﻨﻨﺪه ی ﻏﯿﺮﻓﻌﺎل‬ ‫ﺑﺮﻫﺎن‪ .‬ﻓﺮض ﮐﻨﯿﻢ ‪ Π‬ﯾ ﻃﺮح ﺳﯿﺴﺘﻢ اﻟﺠﻤﺎل ﺑﺎﺷﺪ‪ .‬ﺛﺎﺑﺖ ﻣ ﮐﻨﯿﻢ ﮐﻪ ‪ Π‬در ﺣﻀﻮر ﯾ‬
‫)ﺷﻨﻮﻧﺪه( دارای اﻣﻨﯿﺖ ‪ cpa‬ﻣ ﺑﺎﺷﺪ‪.‬‬
‫ﻓﺮض ﮐﻨﯿﺪ ‪ A‬ﯾ ﺣﻤﻠﻪ ﮐﻨﻨﺪه ی ﭼﻨﺪﺟﻤﻠﻪ ای ﺗﺼﺎدﻓ ﺑﺎﺷﺪ و ﺗﻌﺮﯾﻒ ﮐﻨﯿﺪ‪:‬‬

‫‪.ϵ(n) = Pr[P ubKA,Π‬‬


‫‪eav‬‬
‫]‪(n) = ۱‬‬

‫ﺣﺎل ﺳﯿﺴﺘﻢ رﻣﺰ ﺗﻐﯿﯿﺮ ﯾﺎﻓﺘﻪ ی ‪ Π′‬را در ﻧﻈﺮ ﻣ ﮔﯿﺮﯾﻢ ﮐﻪ اﻟ ﻮرﯾﺘﻢ ﺗﻮﻟﯿﺪ ﮐﻠﯿﺪ آن )‪ (Gen‬ﻫﻤﺎن اﻟ ﻮرﯾﺘﻢ ﺗﻮﻟﯿﺪ ﮐﻠﯿﺪ‬
‫‪ Π‬اﺳﺖ وﻟ اﻟ ﻮرﯾﺘﻢ رﻣﺰ ﮐﺮدن آن روی ﭘﯿﺎم ‪ m‬و ﮐﻠﯿﺪ ﻋﻤﻮﻣ )‪ pk = (G, q, g, h‬ﺑﻪ اﯾﻦ ﺻﻮرت اﺳﺖ‪:‬‬
‫• ‪ r ) r ← Zq‬را ﺑﻪ ﺗﺼﺎدف از ‪ Zq‬اﻧﺘﺨﺎب ﻣ ﮐﻨﺪ(‬
‫• ‪ z ) z ← Zq‬را ﺑﻪ ﺗﺼﺎدف از ‪ Zq‬اﻧﺘﺨﺎب ﻣ ﮐﻨﺪ(‬
‫• ⟩‪ ⟨g r , g z · m‬را ﺑﻪ ﻋﻨﻮان ﺧﺮوﺟ ﺑﺪه‬
‫آزﻣﺎﯾﺶ )‪′ (n‬‬ ‫اﮔﺮ ﭼﻪ ‪ Π′‬در واﻗﻊ ﯾ ﻃﺮح رﻣﺰ ﻧﯿﺴﺖ )ﭼﻮن راﻫ ﺑﺮای رﻣﺰ ﮔﺸﺎﯾ وﺟﻮد ﻧﺪارد( وﻟ‬
‫‪eav‬‬
‫‪P ubKA,Π‬‬
‫ﻫﻨﻮز ﻣﻌﺘﺒﺮ اﺳﺖ ﭼﻮن ﻓﻘﻂ ﺑﻪ اﻟ ﻮرﯾﺘﻢ ﺗﻮﻟﯿﺪ ﮐﻠﯿﺪ و رﻣﺰ ﮐﺮدن ﻣﺮﺑﻮط اﺳﺖ‪ .‬ﻗﺴﻤﺖ دوم ﻣﺘﻦ رﻣﺰ ﺷﺪه در ‪ Π′‬ﺑﻪ‬
‫ﺻﻮرت ﯾ ﻨﻮاﺧﺖ ﺗﻮزﯾﻊ ﺷﺪه اﺳﺖ و ﺑﻪ ﭘﯿﺎم ‪ m‬واﺑﺴﺘﻪ ﻧﯿﺴﺖ )ﭼﻮن ‪ z‬ﺑﻪ ﻃﻮر ﺗﺼﺎدﻓ اﻧﺘﺨﺎب ﺷﺪه و ‪ g z‬ﯾ ﻋﻨﺼﺮ‬
‫ﺗﺼﺎدﻓ از ‪ G‬اﺳﺖ(‪.‬ﻗﺴﻤﺖ اول ﻣﺘﻦ رﻣﺰ ﺷﺪه ﻫﻢ ﺑﻪ وﺿﻮح ﺑﻪ ﭘﯿﺎم ‪ m‬رﺑﻄ ﻧﺪارد ﺑﻨﺎﺑﺮاﯾﻦ ﮐﻞ ﻣﺘﻦ رﻣﺰ ﺷﺪه رﺑﻄ‬
‫ﺑﻪ ‪ m‬ﻧﺪارد‪:‬‬

‫‪٢٣-٢‬‬
‫‪.Pr[P ubKA,Π‬‬
‫‪eav‬‬
‫]‪′ (n) = ۱/۲‬‬

‫ﺣﺎل اﻟ ﻮرﯾﺘﻢ ﭼﻨﺪﺟﻤﻠﻪ ای اﺣﺘﻤﺎﻟ ‪ D‬زﯾﺮ را در ﻧﻈﺮ ﺑ ﯿﺮﯾﺪ ﮐﻪ ﺗﻼش ﻣ ﮐﻨﺪ ﺗﺎ ﻣﺴﺌﻠﻪ ی دﯾﻔ ‪-‬ﻫﻠﻤﻦ ﺗﺼﻤﯿﻤ را‬
‫ﻧﺴﺒﺖ ﺑﻪ ‪ G‬ﺣﻞ ﮐﻨﺪ‪:‬‬
‫ﻣ داﻧﯿﻢ ﮐﻪ ‪ D‬ﺑﻪ ﻋﻨﻮان ورودی ) ‪ (G, q, g, g۱ , g۲ , g۳‬را درﯾﺎﻓﺖ ﻣ ﮐﻨﺪ ﮐﻪ ‪ g۱ = g‬و ‪ g۲ = g‬و ‪ g۳‬ﺑﺮاﺑﺮ ﺑﺎ‬
‫‪r‬‬ ‫‪x‬‬

‫‪ g xr‬ﯾﺎ ‪ g z‬ﻣ ﺑﺎﺷﺪ)ﺑﺮای ‪ x, r, z‬ﺗﺼﺎدﻓ (‪:‬‬

‫اﻟ ﻮرﯾﺘﻢ ‪: D‬‬


‫روی ورودی ) ‪: (G, q, g, g۱ , g۲ , g۳‬‬

‫• ﻗﺮار ﺑﺪه ) ‪ pk = (G, q, g, g۱ , g۲ , g۳‬و )‪ A(pk‬را اﺟﺮا ﮐﻦ ﺗﺎ دو ﭘﯿﺎم ‪ m۱ , m۲‬را ﺑﻪ دﺳﺖ ﺑﯿﺎورد‪.‬‬

‫ﺑﯿﺖ ﺗﺼﺎدﻓ ‪ b‬اﻧﺘﺨﺎب ﮐﻦ و ﻗﺮار ﺑﺪه ‪ c۱ := g۲‬و ‪c۲ := g۳ · mb‬‬ ‫• ﯾ‬

‫• ﻣﺘﻦ رﻣﺰ ﺷﺪه ی ⟩ ‪ ⟨c۱ , c۲‬را ﺑﻪ ‪ A‬ﺑﺪه و از آن ﺑﯿﺖ ‪ b′‬را ﺑ ﯿﺮ‬

‫ﺑﻪ ﺧﺮوﺟ ﺑﺪه وﮔﺮﻧﻪ ﺻﻔﺮ را ﺑﻪ ﺧﺮوﺟ ﺑﺪه‬ ‫• اﮔﺮ ‪ b = b′‬ﺑﻮد ﯾ‬

‫ﺣﺎل رﻓﺘﺎر ‪ D‬را ﺑﺮرﺳ ﻣ ﮐﻨﯿﻢ دو ﺣﺎﻟﺖ ﻣﻤ ﻦ اﺳﺖ ﺑﻪ وﺟﻮد ﺑﯿﺎﯾﺪ‪:‬‬

‫ﺣﺎﻟﺖ‪ textbf‬اول‪ :‬ﻓﺮض ﮐﻨﯿﻢ ورودی ) ‪ (G, q, g, g۱ , g۲ , g۳‬ﺑﻪ ‪ D‬داده ﺷﺪه ﺑﺎﺷﺪ ﮐﻪ ‪ g۱ = g x‬و ‪g۲ = g r‬‬
‫و ‪ g۳‬ﺑﺮاﺑﺮ ﺑﺎ ‪ g z‬ﺑﺎﺷﺪ‪ ،‬آﻧ ﺎه ‪ A ، D‬را روی ﮐﻠﯿﺪ ﻋﻤﻮﻣ ) ‪ pk = (G, q, g, g x‬اﺟﺮا ﻣ ﮐﻨﺪ و ﻣﺘﻦ رﻣﺰ ﺷﺪه ی‬
‫⟩ ‪ ⟨c۱ , c۲ ⟩ = ⟨g r , g z · mb‬را ﺑﻪ دﺳﺖ ﻣ آورد‪ .‬در اﯾﻦ ﺟﺎ اﮔﺮ ﺧﺮوﺟ ‪ b′‬ﻣﺮﺑﻮط ﺑﻪ ‪ A‬ﺑﺮاﺑﺮ ﺑﺎ ‪ b‬ﺑﻮد ‪ D‬ﯾ را ﺑﻪ‬
‫ﺧﺮوﺟ ﻣ دﻫﺪ و ﺑﻨﺎ ﺑﺮاﯾﻦ دارﯾﻢ‪:‬‬

‫‪۱‬‬
‫‪.Pr[D(G, q, g, g x , g r , g z ) = ۱] = Pr[P ubKA,Π‬‬
‫‪eav‬‬
‫= ]‪′ (n) = ۱‬‬
‫‪۲‬‬

‫ﺣﺎﻟﺖ‪ textbf‬دوم‪ :‬ﻓﺮض ﮐﻨﯿﻢ ورودی ) ‪ (G, q, g, g۱ , g۲ , g۳‬ﺑﻪ ‪ D‬داده ﺷﺪه ﺑﺎﺷﺪ ﮐﻪ ‪ g۱ = g x‬و ‪g۲ = g r‬‬
‫و ‪ g۳‬ﺑﺮاﺑﺮ ﺑﺎ ‪ g xr‬ﺑﺎﺷﺪ‪ ،‬آﻧ ﺎه ‪ A ، D‬را روی ﮐﻠﯿﺪ ﻋﻤﻮﻣ ) ‪ pk = (G, q, g, g x‬اﺟﺮا ﻣ ﮐﻨﺪ و ﻣﺘﻦ رﻣﺰ ﺷﺪه ی‬
‫⟩ ‪ ⟨c۱ , c۲ ⟩ = ⟨g r , g xr · mb‬را ﺑﻪ دﺳﺖ ﻣ آورد‪ .‬در اﯾﻦ ﺟﺎ اﮔﺮ ﺧﺮوﺟ ‪ b′‬ﻣﺮﺑﻮط ﺑﻪ ‪ A‬ﺑﺮاﺑﺮ ﺑﺎ ‪ b‬ﺑﻮد ‪ D‬ﯾ را ﺑﻪ‬
‫ﺧﺮوﺟ ﻣ دﻫﺪ و ﺑﻨﺎ ﺑﺮاﯾﻦ دارﯾﻢ‪:‬‬

‫‪.Pr[D(G, q, g, g x , g r , g xr ) = ۱] = Pr[P ubKA,Π‬‬


‫‪eav‬‬
‫)‪(n) = ۱] = ϵ(n‬‬

‫ﭼﻮن ﻣﺴﺌﻠﻪ ی دﯾﻔ ‪-‬ﻫﻠﻤﻦ ﺗﺼﻤﯿﻤ ﺳﺨﺖ اﺳﺖ ﭘﺲ ﺑﺎﯾﺪ داﺷﺘﻪ ﺑﺎﺷﯿﻢ‪:‬‬

‫‪۱‬‬
‫| = ]‪.negl(n) ≥ Pr[D(G, q, g, g x , g y , g xy ) = ۱] − Pr[D(G, q, g, g x , g y , g z ) = ۱‬‬ ‫|)‪− ϵ(n‬‬
‫‪۲‬‬
‫‪۱‬‬
‫≤ )‪ ϵ(n‬و ﺑﻪ اﯾﻦ ﺗﺮﺗﯿﺐ اﺛﺒﺎت ﮐﺎﻣﻞ ﻣ ﺷﻮد‪.‬‬ ‫و ﺑﻨﺎ ﺑﺮاﯾﻦ دارﯾﻢ )‪+ negl(n‬‬
‫‪۲‬‬

‫‪٢٣-٣‬‬
‫ﻣﻘﺎوﻣﺖ در ﺑﺮاﺑﺮ ﺣﻤﻠﻪ ی ﻣﺘﻦ رﻣﺰی اﻧﺘﺨﺎﺑ‬ ‫‪٢.١‬‬
‫ﺣﺎل اﯾﻦ ﺳﻮال ﭘﯿﺶ ﻣ آﯾﺪ ﮐﻪ آﯾﺎ اﻟﺠﻤﺎل ﺗﺤﺖ ﺣﻤﻠﻪ ی ‪ cca‬اﻣﻦ اﺳﺖ ﯾﺎ ﻧﻪ؟‬

‫ﺗﻌﺮﯾﻒ ﻣ آورﯾﻢ‪:‬‬ ‫ﺑﺮای ﺑﺮرﺳ آن اﺑﺘﺪا ﯾ‬

‫ﺗﻌﺮﯾﻒ ‪ ٢‬ﺧﺎﺻﯿﺖ ﻫﻤﻮﻣﻮرﻓﯿ ﯾ ﺳﯿﺴﺘﻢ رﻣﺰ ﺑﺎ ﮐﻠﯿﺪ ﻋﻤﻮﻣ دارای ﺧﺎﺻﯿﺖ ﻫﻤﻮﻣﻮرﻓﯿ اﺳﺖ اﮔﺮ ﺑﺮای ﻫﺮ ‪n‬‬
‫و ﺑﺮای ﻫﺮ )‪ (sk،pk‬ﮐﻪ ﺑﻪ وﺳﯿﻠﻪ ی اﻟ ﻮرﯾﺘﻢ ﺗﻮﻟﯿﺪ ﮐﻠﯿﺪ ﺑﻪ ﻋﻨﻮان ﺧﺮوﺟ داده ﻣ ﺷﻮﻧﺪ‪ ،‬ﺑﺘﻮان ﮔﺮوه ﻫﺎی ‪ M‬و ‪C‬‬
‫را ﺗﻌﺮﯾﻒ ﮐﺮد ﮐﻪ‪:‬‬

‫• ﻓﻀﺎی ﭘﯿﺎم ‪ M‬اﺳﺖ و ﻫﻤﻪ ی ﻣﺘﻦ ﻫﺎی رﻣﺰی ﮐﻪ ﺑﻪ ﻋﻨﻮان ﺧﺮوﺟ اﻟ ﻮرﯾﺘﻢ ‪ Encpk‬داده ﻣ ﺷﻮﻧﺪ ﻋﻀﻮ ‪C‬‬
‫ﺑﺎﺷﻨﺪ‪.‬‬

‫• ﺑﺮای ﻫﺮ ‪ m۱ , m۲ ∈ M‬و ‪ c۱ , c۲ ∈ C‬ﮐﻪ ) ‪ m۱ = Decsk (c۱‬و ) ‪ m۲ = Decsk (c۲‬داﺷﺘﻪ ﺑﺎﺷﯿﻢ‪:‬‬

‫‪.Decsk (c۱ · c۲ ) = m۱ .m۲‬‬

‫ﺳﯿﺴﺘﻢ رﻣﺰ اﻟﺠﻤﺎل ﻧﯿﺰ دارای ﺧﺎﺻﯿﺖ ﻫﻤﻮﻣﻮرﻓﯿ اﺳﺖ‪:‬‬


‫اﮔﺮ ﻣﺘﻦ رﻣﺰ ﺷﺪه ی ﭘﯿﺎم ﻫﺎی ‪ m۱‬و ‪ m۲‬ﺑﺮاﺑﺮ ﺑﺎ ‪ C۱‬و ‪ C۲‬ﺑﺎﺷﻨﺪ آﻧ ﺎه‪:‬‬

‫⇒ ⟩‪C۱ = Encsk (m۱ ) = ⟨g r , hr · m⟩ , C۲ = Encsk (m۲ ) = ⟨g s , hs · m‬‬


‫⟩ ‪C۳ = Encsk (m۳ ) = Encsk (m۱ · m۲ ) = ⟨g r+s , hr+s · m۱ · m۲‬‬

‫ﻫﻢ ﭼﻨﯿﻦ اﯾﻦ ﺳﯿﺴﺘﻢ دارای ﺧﺎﺻﯿﺖ رﻣﺰﮔﺬاری ﻣﺠﺪد ﻫﻢ ﻫﺴﺖ‪:‬‬

‫ﭘﯿﺎم ﺑﺎﺷﺪ‪ ،‬ﻣ ﺗﻮان از روی آن‬ ‫ﺗﻌﺮﯾﻒ ‪ ٣‬رﻣﺰﮔﺬاری ﻣﺠﺪد اﮔﺮ ﯾ ﻣﺘﻦ رﻣﺰ ﺷﺪه داﺷﺘﻪ ﺑﺎﺷﯿﻢ ﮐﻪ رﻣﺰ ﺷﺪه ی ﯾ‬
‫دوﺑﺎره ﻣﺘﻦ را رﻣﺰ ﮐﺮد و ﻣﺘﻦ رﻣﺰی ﺟﺪﯾﺪی ﺑﺪﺳﺖ آورد‪.‬‬
‫در ﺳﯿﺴﺘﻢ رﻣﺰ اﻟﺠﻤﺎل دارﯾﻢ‪:‬‬

‫⟩‪C = Encsk (m) = ⟨g r , hr · m⟩ ⇒ C ′ = ⟨g r g s , hr hs · m‬‬

‫ﺑﻪ ﻋﺒﺎرﺗ دﯾ ﺮ ﻣﺘﻦ رﻣﺰ ﺷﺪه ی ‪ C‬را در )‪ Encsk (۱‬ﺿﺮب ﻣ ﮐﻨﯿﻢ و ﻣﺘﻦ رﻣﺰ ﺷﺪه ی ﺟﺪﯾﺪی ﺑﺪﺳﺖ ﻣ آﯾﺪ‪.‬‬

‫ﺑﻨﺎﺑﺮاﯾﻦ ﺑﻪ وﺿﻮح ﺳﯿﺴﺘﻢ رﻣﺰ اﻟﺠﻤﺎل ‪ cca‬اﻣﻦ ﻧﯿﺴﺖ ‪).‬ﺣﻤﻠﻪ ﮐﻨﻨﺪه دو ﭘﯿﺎم ﻣﻮرد ﭼﺎﻟﺶ ‪ m۱ , m۲‬را ﺑﻪ ﭼﺎﻟﺸ ﺮ‬
‫ﻣ دﻫﺪ و ﭼﺎﻟﺸ ﺮ ﯾ ﻣﺘﻦ رﻣﺰ ﺷﺪه ی ‪ c‬ﺑﺮﻣ ﮔﺮداﻧﺪ ﮐﻪ ﺣﻤﻠﻪ ﮐﻨﻨﺪه ﺑﺎﯾﺪ ﺑ ﻮﯾﺪ ﻣﺘﻦ رﻣﺰ ﺷﺪه ی ﮐﺪام ﭘﯿﺎم اﺳﺖ‪.‬‬
‫ﺣﻤﻠﻪ ﮐﻨﻨﺪه ﻣﺘﻦ ‪ m۳‬را ﺑﻪ ﭼﺎﻟﺸ ﺮ ﻣ دﻫﺪ و ﻣﺘﻦ رﻣﺰی ‪ c۳‬را درﯾﺎﻓﺖ ﻣ ﮐﻨﺪ و ﺳﭙﺲ ﻣﺘﻦ رﻣﺰ ﺷﺪه ی ‪ c.c۳‬را ﺑﻪ‬
‫ﭼﺎﻟﺸ ﺮ ﻣ دﻫﺪ و ﭼﺎﻟﺸ ﺮ ﺑﻪ ﺣﻤﻠﻪ ﮐﻨﻨﺪه ‪ m۳ .mb‬را ﺑﺮﻣ ﮔﺮداﻧﺪ و ﺣﻤﻠﻪ ﮐﻨﻨﺪه ﺑﺎ اﺳﺘﻔﺎده از اﯾﻦ ‪ b‬ﻣ ﺗﻮاﻧﺪ ﺑﻪ راﺣﺘ‬
‫ﺑﻔﻬﻤﺪ ﮐﻪ ‪ c‬ﻣﺘﻦ رﻣﺰ ﺷﺪه ی ﮐﺪام ﭘﯿﺎم ﺑﻮده اﺳﺖ(‬

‫ﺳﯿﺴﺘﻢ اﻟﺠﻤﺎل ﺑﺎ اﺳﺘﻔﺎده از ﺗﺎﺑﻊ درﻫﻢ ﺳﺎزی و رﻣﺰ ﻣﺘﻘﺎرن ﻣ ﺗﻮاﻧﺪ اﻣﻨﯿﺖ ‪ cca‬را ﺑﺮای ﻣﺎ ﻓﺮاﻫﻢ ﮐﻨﺪ و دو ﻧﻮع رﻣﺰ‬
‫‪ RSA‬ی درﻫﻢ ﺳﺎزی ﺷﺪه و اﻟ ﻮی درﻫﻢ ﺳﺎزی‪-‬ﺑﻌﺪ‪-‬اﻣﻀﺎ در ﻋﻤﻞ اﯾﻦ ﻧﻮع اﻣﻨﯿﺖ را ﺑﺮای ﻣﺎ ﻓﺮاﻫﻢ ﻣ ﮐﻨﻨﺪ‪.‬‬

‫‪٢٣-۴‬‬
‫‪ ٢‬اﻣﻀﺎی دﯾﺠﯿﺘﺎل‬
‫در اﯾﻦ ﻗﺴﻤﺖ اﻣﻀﺎی دﯾﺠﯿﺘﺎل ‪ ١‬را ﺗﻮﺿﯿﺢ ﻣ دﻫﯿﻢ ﮐﻪ دارای وﯾﮋﮔ ﻫﺎی زﯾﺮ اﺳﺖ‪:‬‬

‫• ﺑﺎﯾﺪ ﺑﺮای ﻣﺎ ﺟﺎﻣﻌﯿﺖ ‪ ٢‬ﻓﺮاﻫﻢ ﮐﻨﺪ‬

‫• اﻧ ﺎر ﻧﺎﭘﺬﯾﺮ ﺑﺎﺷﺪ ‪ : ٣‬اﮔﺮ ﻓﺮدی ﭘﯿﺎﻣ را اﻣﻀﺎ ﮐﺮد ﻧﺘﻮاﻧﺪ آن را اﻧ ﺎر ﮐﻨﺪ‬

‫وﯾﮋﮔ ﻫﺎﯾ ﮐﻪ اﻣﻀﺎی دﯾﺠﯿﺘﺎل را از ﮐﺪ اﺻﺎﻟﺖ ﺳﻨﺠ ﭘﯿﺎم ﻣﺘﻤﺎﯾﺰ ﻣ ﮐﻨﺪ‪:‬‬

‫ﮐﻠﯿﺪ ﺧﺼﻮﺻ داﺷﺘﻪ ﺑﺎﺷﯿﻢ ﺗﺎ ﺑﺘﻮاﻧﯿﻢ آن را اﺛﺒﺎت‬ ‫• ﺑﻪ ﻃﻮر ﻋﻤﻮﻣ ﻗﺎﺑﻞ اﺛﺒﺎت اﺳﺖ ‪:۴‬ﻻزم ﻧﯿﺴﺖ ﺣﺘﻤﺎ ﯾ‬
‫ﮐﻨﯿﻢ‪.‬‬

‫ﭘﯿﺎم ﺑﻪ ﻣﺎ ﺑﺪﻫﻨﺪ ﻣ ﺗﻮان آن را ﺑﻪ ﻧﺰدﺷﺨﺺ دﯾ ﺮ ﺑﺮد و ﻧﺸﺎن داد ﮐﻪ ﻣﺜﻼ اﻣﻀﺎی‬ ‫• ﻗﺎﺑﻞ اﻧﺘﻘﺎل اﺳﺖ ‪:۵‬اﮔﺮ ﯾ‬
‫ﮐﺴ اﺳﺖ‪.‬‬

‫ﺳﻪ ﺗﺎﯾ از ﺳﻪ اﻟ ﻮرﯾﺘﻢ ﭼﻨﺪﺟﻤﻠﻪ ای اﺣﺘﻤﺎﻟ )‪ (Gen, Sign, Vrfy‬اﺳﺖ ﮐﻪ دارای‬ ‫ﺗﻌﺮﯾﻒ ‪ ۴‬ﯾ ﻃﺮح اﻣﻀﺎ ﯾ‬
‫ﺷﺮاﯾﻂ زﯾﺮ اﺳﺖ‪:‬‬

‫‪ .١‬اﻟ ﻮرﯾﺘﻢ ﺗﻮﻟﯿﺪ ﮐﻠﯿﺪ )‪ (Gen‬ﺑﻪ ﻋﻨﻮان ورودی ﭘﺎراﻣﺘﺮ اﻣﻨﯿﺖ ‪ ۱n‬را ﻣ ﮔﯿﺮﯾﺪ و دو ﮐﻠﯿﺪ )‪ (pk, sk‬ﺑﺎ ﻃﻮل ‪ n‬را‬
‫ﺑﻪ ﺧﺮوﺟ ﻣ دﻫﺪ ﮐﻪ ‪ pk‬ﮐﻠﯿﺪ ﻋﻤﻮﻣ و ‪ sk‬ﮐﻠﯿﺪ ﺧﺼﻮﺻ اﺳﺖ‪.‬‬

‫‪ .٢‬اﻟ ﻮرﯾﺘﻢ اﻣﻀﺎ )‪ (Sign‬ﺑﻪ ﻋﻨﻮان ورودی ﮐﻠﯿﺪ ﺧﺼﻮﺻ ‪ sk‬و ﭘﯿﺎم ‪ m‬را ﻣ ﮔﯿﺮد و ﺑﻪ ﻋﻨﻮان ﺧﺮوﺟ اﻣﻀﺎی‬
‫‪ σ‬را ﺑﯿﺮون ﻣ دﻫﺪ ﮐﻪ ﺑﺎ )‪ σ ← Signsk (m‬ﻧﻤﺎﯾﺶ ﻣ دﻫﯿﻢ‬

‫‪ .٣‬اﻟ ﻮرﯾﺘﻢ ﻣﻌﯿﻦ ﺗﺼﺪﯾﻖ )‪ (Vrfy‬ﺑﻪ ﻋﻨﻮان ورودی ﮐﻠﯿﺪ ﻋﻤﻮﻣ ‪ pk‬و ﭘﯿﺎم ‪ m‬و اﻣﻀﺎی ‪ σ‬را ﻣ ﮔﯿﺮد و ﺧﺮوﺟ‬
‫آن ﯾ ﺑﯿﺖ ‪ b‬اﺳﺖ اﮔﺮ ‪ b = ۱‬ﺑﺎﺷﺪ ﯾﻌﻨ اﻣﻀﺎ ﻣﻌﺘﺒﺮ اﺳﺖ و اﮔﺮ ‪ b = ۰‬ﺑﺎﺷﺪ اﻣﻀﺎ ﻧﺎﻣﻌﺘﺒﺮ اﺳﺖ‪ .‬اﯾﻦ را‬
‫ﺑﺎ )‪ b = Vrfypk (m, σ‬ﻧﻤﺎﯾﺶ ﻣ دﻫﯿﻢ‪.‬‬

‫ﺷﺮط ﻫﻤﻮاره ﺑﺎﯾﺪ ﺑﺮﻗﺮار ﺑﺎﺷﺪ‪:‬‬ ‫ﯾ‬

‫‪.Vrfypk (m, Signsk (m)) = ۱‬‬

‫آزﻣﺎﯾﺶ ﻃﺮاﺣ ﻣ ﮐﻨﯿﻢ‪:‬‬ ‫ﺣﺎل اﻣﻨﯿﺖ را ﺑﺮای اﯾﻦ ﺳﯿﺴﺘﻢ ﺗﻌﺮﯾﻒ ﻣ ﮐﻨﯿﻢ‪ .‬ﺑﺮای اﯾﻦ ﮐﺎر اﺑﺘﺪا ﯾ‬

‫‪SignforgeA,Π (n) :‬‬

‫• ) ‪ (sk, pk) ← Gen(۱n‬ﺑﻪ وﺳﯿﻠﻪ ی اﻟ ﻮرﯾﺘﻢ ‪ Gen‬دو ﮐﻠﯿﺪ ‪ sk, pk‬را ﺗﻮﻟﯿﺪ ﮐﻦ‬
‫‪١‬‬
‫‪Digital Signature‬‬
‫‪٢‬‬
‫‪Integrity‬‬
‫‪٣‬‬
‫‪Non-repudation‬‬
‫‪۴‬‬
‫‪Publicly verifiable‬‬
‫‪۵‬‬
‫‪Transferable‬‬

‫‪٢٣-۵‬‬
‫• )‪=Q ، (m, σ) ← ASignsk (pk‬ﻣﺠﻤﻮﻋﻪ ی ﻫﻤﻪ ی ﭘﯿﺎم ﻫﺎﯾ ﮐﻪ اﻣﻀﺎی آن ﻫﺎ ﺑﻪ وﺳﯿﻠﻪ ی ‪ A‬در ﻃﻮل اﺟﺮا‬
‫درﺧﻮاﺳﺖ ﺷﺪه اﻧﺪ‬
‫• ﺧﺮوﺟ ‪ ١‬را ﺑﺪه اﮔﺮ و ﺗﻨﻬﺎ اﮔﺮ ‪ Vrfypk (m, σ) = ۱‬و ‪/ Q‬‬
‫∈‪m‬‬
‫اﺑﺘﺪا اﻟ ﻮرﯾﺘﻢ ﺗﻮﻟﯿﺪ ﮐﻠﯿﺪ ‪ ،‬ﮐﻠﯿﺪ ﻋﻤﻮﻣ و ﺧﺼﻮﺻ را ﺗﻮﻟﯿﺪ ﻣ ﮐﻨﺪ ‪ .‬ﺳﭙﺲ ﺑﻪ ﺣﻤﻠﻪ ﮐﻨﻨﺪه دﺳﺘﺮﺳ اوراﮐﻠ ﺑﻪ‬
‫اﻟ ﻮرﯾﺘﻢ اﻣﻀﺎ ﻣ دﻫﯿﻢ ﯾﻌﻨ ﻫﺮ ﭘﯿﺎﻣ را ﮐﻪ ﺑﺨﻮاﻫﺪ ﺑﺮاﯾﺶ رﻣﺰ ﻣ ﮐﻨﯿﻢ و در ﻧﻬﺎﯾﺖ ﺣﻤﻠﻪ ﮐﻨﻨﺪه ﯾ ﭘﯿﺎم را ﮐﻪ ﻗﺒﻼ‬
‫اﻣﻀﺎی آن را از ﻣﺎ ﻧﭙﺮﺳﯿﺪه اﺳﺖ ﺑﻪ ﻫﻤﺮاه اﻣﻀﺎﯾﺶ ﺑﻪ ﻣﺎ)ﭼﺎﻟﺸ ﺮ( ﻣ دﻫﺪ و اﮔﺮ اﻣﻀﺎی ﻣﻌﺘﺒﺮی ﺑﺮای ﭘﯿﺎم ﺑﺎﺷﺪ‬
‫ﺣﻤﻠﻪ ﮐﻨﻨﺪه ﭘﯿﺮوز ﻣ ﺷﻮد‪.‬‬

‫ﺗﻌﺮﯾﻒ ‪ ۵‬اﻣﻨﯿﺖ ﺟﻌﻞ ﻧﺎﭘﺬﯾﺮی اﻣﻀﺎ‪ :‬ﻣ ﮔﻮﯾﯿﻢ ﺳﯿﺴﺘﻢ اﻣﻀﺎی دﯾﺠﯿﺘﺎل ‪ Π‬داراری اﻣﻨﯿﺖ ﺟﻌﻞ ﻧﺎﭘﺬﯾﺮی اﺳﺖ اﮔﺮ‬
‫ﺑﺮای ﻫﺮ ﻣﻬﺎﺟﻢ ﭼﻨﺪﺟﻤﻠﻪ ای اﺣﺘﻤﺎﻟ ‪ ،‬ﺗﺎﺑﻊ ﻧﺎﭼﯿﺰ )(‪ ϵ‬وﺟﻮد داﺷﺘﻪ ﺑﺎﺷﺪ ﮐﻪ ‪:‬‬
‫‪Pr{SignforgeΠ,A (n) = ۱} ≤ ϵ(n).‬‬

‫ﺳﯿﺴﺘﻢ اﻣﻀﺎی دﯾﺠﯿﺘﺎل اﻣﻦ ﻃﺮاﺣ ﮐﻨﯿﻢ؟‬ ‫ﺣﺎل ﺑﺎ ﺳﻮال ﺑﻌﺪ رو ﺑﻪ رو ﻣ ﺷﻮﯾﻢ‪ :‬ﭼﻄﻮر ﯾ‬

‫اﺳﺘﻔﺎده از ‪ RSA‬ﺑﺮای اﻣﻀﺎی دﯾﺠﯿﺘﺎل‬ ‫‪١.٢‬‬


‫اﺑﺘﺪا ﺑﻪ ﺳﺮاغ اﺳﺘﻔﺎده از ‪) RSA‬ﮐﺘﺎﺑ ( ﺑﺮای اﻣﻀﺎی دﯾﺠﯿﺘﺎل ﻣ روﯾﻢ ‪:۶‬‬

‫اﻟ ﻮرﯾﺘﻢ ﺗﺼﺪﯾﻖ اﻣﻀﺎ را اراﺋﻪ ﺑﺪﻫﯿﻢ‪:‬‬ ‫اﻟ ﻮرﯾﺘﻢ اﻣﻀﺎ و ﯾ‬ ‫اﻟ ﻮرﯾﺘﻢ ﺗﻮﻟﯿﺪ ﮐﻠﯿﺪ ‪ ،‬ﯾ‬ ‫ﺑﺮای ﻃﺮاﺣ ﺳﯿﺴﺘﻢ ﺑﺎﯾﺪ ﯾ‬

‫• ‪ : Gen‬روی ورودی ‪ ۱n‬اﻟ ﻮرﯾﺘﻢ ) ‪ GenRSA(۱n‬را اﺟﺮا ﮐﻦ ﺗﺎ )‪ (N, e, d‬را ﺑﺪﺳﺖ آوری‪ .‬ﮐﻠﯿﺪ ﻋﻤﻮﻣ‬
‫ﺑﺮاﺑﺮ ﺑﺎ ⟩‪ ⟨N, e‬اﺳﺖ و ﮐﻠﯿﺪ ﺧﺼﻮﺻ ﺑﺮاﺑﺮ ﺑﺎ ⟩‪ ⟨N, d‬ﻣ ﺑﺎﺷﺪ‪.‬‬
‫• ‪ : Sign‬روی ورودی ﮐﻠﯿﺪ ﺧﺼﻮﺻ ⟩‪ sk = ⟨N, d‬و ﭘﯿﺎم ∗‪ ZN‬اﻣﻀﺎ را ﻣﺤﺎﺳﺒﻪ ﮐﻦ‪:‬‬

‫‪σ = [md mod N ].‬‬

‫• ‪ : Vrfy‬روی ورودی ﮐﻠﯿﺪ ﻋﻤﻮﻣ ⟩‪ pk = ⟨N, e‬و ﭘﯿﺎم ∗‪ m ∈ ZN‬و اﻣﻀﺎی ∗‪ σ ∈ ZN‬ﺧﺮوﺟ ‪ ١‬را ﺑﺪه‬
‫اﮔﺮ و ﺗﻨﻬﺎ اﮔﺮ ‪:‬‬

‫] ‪m = [σ e mod N‬‬

‫اﯾﻦ ﺳﯿﺴﺘﻢ دارای اﻣﻨﯿﺖ ﺟﻌﻞ ﻧﺎﭘﺬﯾﺮی ﻧﯿﺴﺖ ﭼﻮن ﺧﺎﺻﯿﺖ ﻫﻤﻮﻣﻮرﻓﯿ دارد‪.‬‬
‫ﺑﺮای اﻣﻦ ﮐﺮدن اﯾﻦ ﺳﯿﺴﺘﻢ از ﺗﺎﺑﻊ درﻫﻢ ﺳﺎزی اﺳﺘﻔﺎده ﻣ ﮐﻨﯿﻢ ﮐﻪ دو وﯾﮋﮔ ﻣﻬﻢ دارد‪:‬‬
‫• اﻣﻨﯿﺖ ﺟﻌﻞ ﻧﺎﭘﺬﯾﺮی را ﺑﺮای ﻣﺎ ﻓﺮاﻫﻢ ﻣ ﮐﻨﺪ‬

‫• اﮔﺮ ﻃﻮل ﭘﯿﺎم ﺧﯿﻠ ﺑﺰرگ ﺑﺎﺷﺪ ﺧﻮد اﻣﻀﺎ ﻫﻢ ﺧﯿﻠ ﺑﺰرگ ﻣ ﺷﻮد وﻟ ﺑﺎ اﺳﺘﻔﺎده از ﺗﺎﺑﻊ درﻫﻢ ﺳﺎزی ﻣ ﺗﻮاﻧﯿﻢ‬
‫ﻃﻮل اﻣﻀﺎ را ﮐﺎﻫﺶ دﻫﯿﻢ‪.‬‬
‫‪۶‬‬
‫‪Textbook RSA digital signature‬‬

‫‪٢٣-۶‬‬
‫اﻣﻀﺎی دﯾﺠﯿﺘﺎل ﺑﺎ ‪ RSA‬و ﺗﺎﺑﻊ درﻫﻢ ﺳﺎزی‬ ‫‪٢.٢‬‬
‫ﺣﺎل از ﺗﺎﺑﻊ درﻫﻢ ﺳﺎزی در اﻟ ﻮرﯾﺘﻢ ‪ RSA‬اﺳﺘﻔﺎده ﻣ ﮐﻨﯿﻢ‪:‬‬

‫• ‪ : Gen‬روی ورودی ‪ ۱n‬اﻟ ﻮرﯾﺘﻢ ) ‪ GenRSA(۱n‬را اﺟﺮا ﮐﻦ ﺗﺎ )‪ (N, e, d‬را ﺑﺪﺳﺖ آوری‪ .‬ﮐﻠﯿﺪ ﻋﻤﻮﻣ‬
‫ﺑﺮاﺑﺮ ﺑﺎ ⟩‪ ⟨N, e‬اﺳﺖ و ﮐﻠﯿﺪ ﺧﺼﻮﺻ ﺑﺮاﺑﺮ ﺑﺎ ⟩‪ ⟨N, d‬ﻣ ﺑﺎﺷﺪ‪.‬‬
‫• ‪ : Sign‬روی ورودی ﮐﻠﯿﺪ ﺧﺼﻮﺻ ⟩‪ sk = ⟨N, d‬و ﭘﯿﺎم ∗‪ ZN‬اﻣﻀﺎ را ﻣﺤﺎﺳﺒﻪ ﮐﻦ‪:‬‬

‫‪σ = [H(m)d mod N ].‬‬

‫• ‪ : Vrfy‬روی ورودی ﮐﻠﯿﺪ ﻋﻤﻮﻣ ⟩‪ pk = ⟨N, e‬و ﭘﯿﺎم ∗‪ m ∈ ZN‬و اﻣﻀﺎی ∗‪ σ ∈ ZN‬ﺧﺮوﺟ ‪ ١‬را ﺑﺪه‬
‫اﮔﺮ و ﺗﻨﻬﺎ اﮔﺮ ‪:‬‬

‫] ‪H(m) = [σ e mod N‬‬

‫در اﯾﻦ ﻣﺪل ﺗﺎﺑﻊ درﻫﻢ ﺳﺎزی ﺑﺎﯾﺪ ﮐﺎﻣﻼ ﺗﺼﺎدﻓ ﺑﺎﺷﺪ ﮐﻪ در ﻣﺪل اوراﮐﻞ ﺗﺼﺎدﻓ ﻣﺤﻘﻖ ﻣ ﺷﻮد‪.‬‬
‫‪٧‬‬
‫ﺳﯿﺴﺘﻢ دﯾ ﺮی ﮐﻪ اﺳﺘﺎﻧﺪارد اﺳﺖ و در ﻋﻤﻞ ﻣﻮرد اﺳﺘﻔﺎده ﻗﺮار ﻣ ﮔﯿﺮد ﺳﯿﺴﺘﻢ اﻣﻀﺎی دﯾﺠﯿﺘﺎل اﺳﺘﺎﻧﺪارد ﻣ ﺑﺎﺷﺪ ‪:‬‬

‫ﺳﯿﺴﺘﻢ اﻣﻀﺎی دﯾﺠﯿﺘﺎل اﺳﺘﺎﻧﺪارد )‪(DSS‬‬ ‫‪٣.٢‬‬


‫ﺳﯿﺴﺘﻢ اﻣﻀﺎی دﯾﺠﯿﺘﺎل اﺳﺘﺎﻧﺪارد )‪ (DSS‬ﯾﺎ اﻟ ﻮرﯾﺘﻢ اﻣﻀﺎی دﯾﺠﯿﺘﺎل )‪ (DSA‬را ‪ NIST‬در ﺳﺎل ‪ ١٩٩١‬ﻃﺮاﺣ‬
‫ﮐﺮد ﮐﻪ ﻣﺒﺘﻨ ﺑﺮ ﻟ ﺎرﯾﺘﻢ ﮔﺴﺴﺘﻪ اﺳﺖ و اﻣﻨﯿﺖ آن ﺗﺎ ﺑﻪ ﺣﺎل اﺛﺒﺎت ﯾﺎ رد ﻧﺸﺪه اﺳﺖ‪.‬‬
‫اﮔﺮ ‪ G‬ﯾ اﻟ ﻮرﯾﺘﻢ ﭼﻨﺪ ﺟﻤﻠﻪ ای اﺣﺘﻤﺎﻟ ﺑﺎﺷﺪ ﮐﻪ روی ورودی ‪ ۱n‬ﺧﺮوﺟ )‪ (p, q, g‬را ﻣ دﻫﺪ ﮐﻪ ﺑﻪ ﺟﺰ ﺑﺎ‬
‫اﺣﺘﻤﺎل ﻧﺎﭼﯿﺰ‪ p (۱):‬و ‪ q‬ﻧﺴﺒﺖ ﺑﻪ ﻫﻢ اول ﻫﺴﺘﻨﺪ و ‪ ||q|| = n‬؛ )‪ q|(p − ۱) (۲‬وﻟ )‪ q ۲ ∤ (p − ۱‬؛ و )‪g (۳‬‬
‫ﯾ ﻣﻮﻟﺪ از زﯾﺮﮔﺮوه ∗‪ Zp‬ﺑﺎ درﺟﻪ ی ‪ q‬ﺑﺎﺷﺪ ؛‬

‫• ‪ : Gen‬روی ورودی ‪ ۱n‬اﻟ ﻮرﯾﺘﻢ ‪ G‬را اﺟﺮا ﮐﻦ ﺗﺎ )‪ (p, q, g‬را ﺑﺪﺳﺖ آوری‪ .‬ﻓﺮض ﮐﻨﯿﻢ → ∗}‪H : {۰, ۱‬‬
‫‪ Zq‬ﯾ ﺗﺎﺑﻊ ﺑﺎﺷﺪ‪ .‬ﯾ ‪ x ← Zq‬ﺑﻪ ﻃﻮر ﯾ ﻨﻮاﺧﺖ و ﺗﺼﺎدﻓ اﻧﺘﺨﺎب ﮐﻦ و ﻗﺮار ﺑﺪه ]‪.y = [g x mod p‬‬
‫ﮐﻠﯿﺪ ﻋﻤﻮﻣ ﺑﺮاﺑﺮ اﺳﺖ ﺑﺎ ⟩‪ ⟨H, p, q, g, y‬و ﮐﻠﯿﺪ ﺧﺼﻮﺻ ﺑﺮاﺑﺮ اﺳﺖ ﺑﺎ ⟩‪.⟨H, p, q, g, x‬‬
‫• ‪ : Sign‬روی ورودی ﮐﻠﯿﺪ ﺧﺼﻮﺻ ⟩‪ ⟨H, p, q, g, x‬و ﭘﯿﺎم ∗}‪ k ← Zq ∗ ، m ∈ {o, ۱‬را ﺑﻪ ﻃﻮر ﯾ ﻨﻮاﺧﺖ‬
‫و ﺗﺼﺎدﻓ اﻧﺘﺨﺎب ﮐﻦ و ﻗﺮار ﺑﺪه ]‪ s = [(H(m) + xr).k −۱ mod q] .r = [[g k mod p] mod q‬را‬
‫ﻣﺤﺎﺳﺒﻪ ﮐﻦ و اﻣﻀﺎی )‪ (r, s‬را ﺑﻪ ﻋﻨﻮان ﺧﺮوﺟ ﺑﺪه‪.‬‬
‫• ‪ : Vrfy‬روی ورودی ﮐﻠﯿﺪ ﻋﻤﻮﻣ ⟩‪ ⟨H, p, q, g, y‬و ﭘﯿﺎم ∗}‪ m ∈ {o, ۱‬و اﻣﻀﺎی )‪ (r, s‬ﮐﻪ ‪ r ∈ Zq‬و‬
‫∗ ‪ s ∈ Zq‬اﺳﺖ ‪ ،‬ﻣﻘﺎدﯾﺮ ]‪ u۱ = [H(m).s−۱ mod q‬و ]‪ u۲ = [r.s−۱ mod q‬را ﻣﺤﺎﺳﺒﻪ ﮐﻦ‪ .‬ﺧﺮوﺟ‬
‫‪ ١‬ﺑﺪه اﮔﺮ و ﺗﻨﻬﺎ اﮔﺮ ‪:‬‬

‫]‪.r = [[g u۱ y u۲ mod p] mod q‬‬

‫‪٧‬‬
‫‪Digital Signature Standard‬‬

‫‪٢٣-٧‬‬
‫ﺑﻪ ﻧﺎﻡ ﺧﺪﺍ‬

‫ﺩﺍﻧﺸﮑﺪﻩﯼ ﻋﻠﻮﻡ ﺭ ﯾﺎﺿﯽ‬

‫‪ ۳۰‬ﺍﺭﺩﯾﺒﻬﺸﺖ ‪۹۲‬‬ ‫ﻣﻘﺪﻣﻪﺍﯼ ﺑﺮ ﺭﻣﺰﻧﮕﺎﺭﯼ‬

‫ﺟﻠﺴﻪﯼ ﺑﯿﺴﺖﻭﭼﻬﺎﺭﻡ‪ :‬ﺭﺃﯼﮔﯿﺮﯼ ﺍﻟﻜﺘﺮ ﻭﻧﯿﻜﯽ‬


‫ﻧﮕﺎﺭﻧﺪﻩ‪ :‬ﺷﻔﯿﻊ ﻗﻠﯿﺰﺍﺩﻩ‬ ‫ﻣﺪﺭﺱ‪ :‬ﺩﮐﺘﺮ ﺷﻬﺮﺍﻡ ﺧﺰﺍﺋﯽ‬

‫‪ ۱‬ﻣﻘﺪﻣﻪ‬

‫ﺑﺮﮔﺰﺍﺭﯼ ﺍﻧﺘﺨﺎﺑﺎﺕ ﺍﺯ ﻣﻬﻤﺘﺮ ﯾﻦ ﻭﻇﺎﯾﻒ ﻫﺮ ﺩﻭﻟﺖ ﻣﺮﺩﻡﺳﺎﻻﺭ ﺍﺳﺖ‪ .‬ﺍﺯ ﺳﻮﯼ ﺩﯾﮕﺮ ﺍﻣﺎ ﺑﻪ ﺩﺭﺳﺘﯽ ﺍﻧﺠﺎﻡ ﺩﺍﺩﻥ ﺍﯾﻦ ﻭﻇﯿﻔﻪ‪،‬‬
‫ﺑﺮﺍﯼ ﻫﺮ ﺩﻭﻟﺘﯽ ﻣﯽﺗﻮﺍﻧﺪ ﯾﻚ ﭼﺎﻟﺶ ﻣﻬﻢ ﻧﯿﺰ ﻣﺤﺴﻮﺏ ﺷﻮﺩ؛ ﭼﻪ ﺍﯾﻨﻜﻪ ﺑﺮﺁﻭﺭﺩﻩ ﺳﺎﺧﺘﻦ ﻣﻠﺰ ﻭﻣﺎﺕ ﻭ ﺭﻋﺎﯾﺖ ﻣﺤﺪﻭﺩﯾﺖﻫﺎﯼ‬
‫ﺁﻥ ﺑﻪ ﺳﺎﺩﮔﯽ ﻣﯿﺴﺮ ﻧﯿﺴﺖ‪ .‬ﻣﻤﻜﻦ ﺍﺳﺖ ﺩﺭ ﻧﮕﺎﻩ ﺍﻭﻝ ﭼﻨﯿﻦ ﺑﻪ ﻧﻈﺮ ﺁﯾﺪ ﻛﻪ ﺑﺮﮔﺰﺍﺭﯼ ﺭﺃﯼﮔﯿﺮﯼ ﺑﺎ ﺩﺳﺘﮕﺎﻩﻫﺎﯼ ﺭﺃﯼﮔﯿﺮﯼ‬
‫ﻣﺴﺘﻘﯿﻢ ﺍﻟﻜﺘﺮ ﻭﻧﯿﻜﯽ‪ ،۱ DRE ،‬ﻣﺸﻜﻼﺕ ﻭ ﻣﺤﺪﻭﺩﯾﺖﻫﺎﯼ ﻣﻮﺭﺩ ﺑﺤﺚ ﺭﺍ ﺑﻪ ﺳﺎﺩﮔﯽ ﻣﺮﺗﻔﻊ ﻣﯽﺳﺎﺯﺩ ﻭ ﺩﺭ ﻋﯿﻦ ﺣﺎﻝ ﺳﺮﻋﺖ‬
‫ﺍﻧﺠﺎﻡ ﻋﻤﻠﯿﺎﺕ ﺭﺍ ﻧﯿﺰ ﺑﻬﺒﻮﺩ ﻣﯽﺑﺨﺸﺪ‪ .‬ﺍﻣﺎ ﺭﺃﯼﮔﯿﺮﯼ ﺍﻟﻜﺘﺮ ﻭﻧﯿﻜﯽ ﻧﯿﺰ ﻣﻠﺰ ﻭﻣﺎﺕ ﺍﻣﻨﯿﺘﯽ ﺧﺎﺹ ﺧﻮﺩ ﺭﺍ ﺩﺍﺭﺩ ﻛﻪ ﺑﺴﯿﺎﺭ ﻣﺘﻨﻮﻉ‬
‫ﻭ ﮔﺎﻫﯽ ﺣﺘﯽ ﻣﺘﻨﺎﻗﺾ ﻫﺴﺘﻨﺪ‪ .‬ﺑﺮﺍﯼ ﻧﻤﻮﻧﻪ‪ ،‬ﻫﺮ ﺭﺃﯼﺩﻫﻨﺪﻩ ﺑﺎﯾﺪ ﺍﯾﻦ ﺍﻣﻜﺎﻥ ﺭﺍ ﺩﺍﺷﺘﻪ ﺑﺎﺷﺪ ﺗﺎ ﻣﻄﻤﺌﻦ ﺷﻮﺩ ﺭﺃﯼﺍﺵ ﺑﻪ ﺩﺭﺳﺘﯽ‬
‫ﻭ ﭼﻨﺎﻥ ﻛﻪ ﻣﻮﺭﺩ ﻧﻈﺮﺵ ﺑﻮﺩﻩ ﺛﺒﺖ ﺷﺪﻩ ﺍﺳﺖ‪ .‬ﺍﻣﺎ ﺩﺭ ﻋﯿﻦ ﺣﺎﻝ ﺑﺮﺍﯼ ﺟﻠﻮﮔﯿﺮﯼ ﺍﺯ ﺧﺮ ﯾﺪ ﻭ ﻓﺮ ﻭﺵ ﺭﺃﯼ‪ ،‬ﻫﻤﯿﻦ ﺭﺃﯼﺩﻫﻨﺪﻩ‬
‫ﻧﺒﺎﯾﺪ ﺑﺘﻮﺍﻧﺪ ﺑﻪ ﺩﯾﮕﺮﺍﻥ ﺛﺎﺑﺖ ﻛﻨﺪ ﻛﻪ ﭼﻪ ﺭﺃﯾﯽ ﺩﺍﺩﻩ ﺍﺳﺖ‪ .‬ﺑﻪﻛﺎﺭﮔﯿﺮﯼ ﺗﻜﻨﯿﻚﻫﺎﯼ ﺭﻣﺰﻧﮕﺎﺭﯼ ﺩﺭ ﺭﺃﯼﮔﯿﺮﯼ ﺍﻟﻜﺘﺮ ﻭﻧﯿﻜﯽ‬
‫ﺑﺮﺍﯼ ﭘﺎﺳﺦﮔﻮﯾﯽ ﺑﻪ ﭼﻨﯿﻦ ﺩﻏﺪﻏﻪﻫﺎﯾﯽ ﺍﺳﺖ‪.‬‬
‫ﺩﺭ ﺍﺩﺍﻣﻪ ﺑﻪ ﺑﺮ ﺭﺳﯽ ﺍﺻﻮﻝ ﻛﻠﯽ ﺭﺃﯼﮔﯿﺮﯼ ﺍﻟﻜﺘﺮ ﻭﻧﯿﻜﯽ ﺧﻮﺍﻫﯿﻢ ﭘﺮﺩﺍﺧﺖ‪ .‬ﺩﺭ ﺣﺎﻟﺖ ﻛﻠﯽ ﺩﺭ ﺍﯾﻦ ﺑﺤﺚ ﺩﻭ ﻣﻮﺿﻮﻉ ﺩﺭ ﻛﺎﻧﻮﻥ‬
‫ﺗﻮﺟﻪ ﻗﺮﺍﺭ ﻣﯽﮔﯿﺮﺩ‪ :‬ﺻﺤﺖ ‪ ۲‬ﺭﺃﯼﮔﯿﺮﯼ ﻭ ﺣﻔﻆ ﺣﺮ ﯾﻢ ﺧﺼﻮﺻﯽ ‪.۳‬‬

‫ﻣﻌﺮﻓﯽ ﯾﻚ ﺳﯿﺴﺘﻢ ﺭﺃﯼﮔﯿﺮﯼ ﻣﻘﺪﻣﺎﺗﯽ‬ ‫‪۲‬‬

‫ﺩﺭ ﺍﯾﻨﺠﺎ ﻗﺼﺪ ﺩﺍﺭ ﯾﻢ ﺗﺎ ﺑﺎ ﺍﺳﺘﻔﺎﺩﻩ ﺍﺯ ﺳﺎﺩﻩﺗﺮ ﯾﻦ ﻓﺮﺽﻫﺎﯼ ﻣﻤﻜﻦ‪ ،‬ﻃﺮﺣﯽ ﻣﻘﺪﻣﺎﺗﯽ ﺑﺮﺍﯼ ﺍﻧﺠﺎﻡ ﯾﻚ ﺭﺃﯼﮔﯿﺮﯼ ﺍﻟﻜﺘﺮ ﻭﻧﯿﻜﯽ‬
‫ﺍﺭﺍﺋﻪ ﻛﻨﯿﻢ‪ .‬ﺩﺭ ﺍﺩﺍﻣﻪ ﺑﻪ ﺑﺮ ﺭﺳﯽ ﻣﻼﺣﻈﺎﺕ ﺍﻣﻨﯿﺘﯽ ﻣﻬﻤﯽ ﺧﻮﺍﻫﯿﻢ ﭘﺮﺩﺍﺧﺖ ﻛﻪ ﻣﯽﺗﻮﺍﻧﺪ ﺍﯾﻦ ﻃﺮﺡ ﻣﻘﺪﻣﺎﺗﯽ ﺭﺍ ﻣﻮﺭﺩ ﭼﺎﻟﺶ‬
‫ﻗﺮﺍﺭ ﺩﻫﺪ‪ .‬ﻓﺮﺽ ﻣﯽﻛﻨﯿﻢ ﺩﺭ ﺳﯿﺴﺘﻢ ﺭﺃﯼﮔﯿﺮﯼ ﻣﻮﺭﺩ ﻧﻈﺮ‪ N ،‬ﺭﺃﯼﺩﻫﻨﺪﻩ ﺩﺍﺭ ﯾﻢ ﻭ ﺭﺃﯼ ﻫﺮ ﯾﻚ ﺍﺯ ﺁﻧﺎﻥ ﻧﯿﺰ ﺗﻨﻬﺎ ﻣﯽﺗﻮﺍﻧﺪ‬
‫ﺻﻔﺮ ﯾﺎ ﯾﻚ ﺑﺎﺷﺪ‪ .‬ﭼﻨﯿﻦ ﻓﺮﺿﯽ ﺑﻪ ﻃﻮﺭ ﺧﺎﺹ ﺩﺭ ﻫﻤﻪﭘﺮﺳﯽﻫﺎﯾﯽ ﺑﺮﻗﺮﺍﺭ ﺍﺳﺖ ﻛﻪ ﺑﻪ ﺻﻮﺭﺕ ﺑﻠﯽ ﻭ ﺧﯿﺮ ﺑﺮﮔﺰﺍﺭ ﻣﯽﮔﺮﺩﻧﺪ‪.‬‬
‫ﺭﺃﯼ ﺷﺨﺺ ‪i‬ﺍﻡ ﺭﺍ ﺑﺎ ‪ vi‬ﻧﺸﺎﻥ ﻣﯽﺩﻫﯿﻢ ﻛﻪ }‪ vi ∈ {۰, ۱‬ﺑﺮﺍﯼ ‪.i = ۱, ۲, . . . , N‬‬
‫‪۱ Direct‬‬ ‫‪Record Electronic‬‬
‫‪۲ Correctness‬‬
‫‪۳ Privacy‬‬

‫ﺑﯿﺴﺖﻭﭼﻬﺎﺭﻡ‪۱-‬‬
‫ﻣﯽﺧﻮﺍﻫﯿﻢ ﺍﺯ ﺳﯿﺴﺘﻢ ﺭﻣﺰ ﺍﻟﮕﻤﺎﻝ ‪ ۴‬ﺩﺭ ﻃﺮﺡ ﺭﺃﯼﮔﯿﺮﯼ ﺍﺳﺘﻔﺎﺩﻩ ﻧﻤﺎﯾﯿﻢ‪ .‬ﺑﺎ ﺍﯾﻦ ﺳﯿﺴﺘﻢ ﺭﻣﺰ ﺩﺭ ﺟﻠﺴﺎﺕ ﮔﺬﺷﺘﻪ ﺁﺷﻨﺎ ﺷﺪﻩﺍﯾﻢ‪.‬‬
‫ﺑﻪ ﻃﻮﺭ ﻣﺨﺘﺼﺮ ﺍﯾﻦ ﺳﯿﺴﺘﻢ ﺭﻣﺰ ﺭﺍ ﻣﺮ ﻭﺭ ﻣﯽﻛﻨﯿﻢ‪.‬‬

‫ﺍﻟﮕﻮﺭ ﯾﺘﻢ ﺗﻮﻟﯿﺪ ﻛﻠﯿﺪ‪:‬‬


‫) ‪) (G, q, g) ← GroupGen(۱‬ﯾﻚ ﮔﺮ ﻭﻩ ﺩﻭﺭﯼ ‪ G‬ﺑﺎ ﻣﺮﺗﺒﻪ ‪ q‬ﻭ ﻣﻮﻟﺪ ‪ g‬ﺗﻮﻟﯿﺪ ﻣﯽﻛﻨﺪ‪(.‬‬ ‫‪n‬‬

‫‪x ← Zq‬‬
‫‪h = gx‬‬
‫)‪pk = (G, q, g, h‬‬
‫)‪sk = (G, q, g, x‬‬
‫ﺍﻟﮕﻮﺭ ﯾﺘﻢ ﺭﻣﺰﮔﺬﺍﺭﯼ‪:‬‬
‫‪r ← Zq‬‬
‫)‪⟨g r , m · hr ⟩ = Encpk (m‬‬
‫ﺍﻟﮕﻮﺭ ﯾﺘﻢ ﺭﻣﺰﮔﺸﺎﯾﯽ‪:‬‬
‫‪c۲‬‬
‫)⟩ ‪= Decsk (⟨c۱ , c۲‬‬
‫‪cx۱‬‬
‫ﺩﺭ ﺍﯾﻦ ﺳﯿﺴﺘﻢ ﺭﻣﺰ‪ ،‬ﻓﺮﺽ ﺑﺮ ﺍﯾﻦ ﺍﺳﺖ ﻛﻪ ﻣﺴﺎﻟﻪ ﺩﯾﻔﯽ‪-‬ﻫﻠﻤﻦ ﺗﺼﻤﯿﻤﯽ ‪ ۵‬ﺑﺮﺍﯼ ﮔﺮ ﻭﻩ ﻣﻮﺭﺩ ﺍﺳﺘﻔﺎﺩﻩ ﺳﺨﺖ ﺍﺳﺖ‪.‬‬
‫ﺑﺮﺍﯼ ﺍﺳﺘﻔﺎﺩﻩ ﺍﺯ ﺳﯿﺴﺘﻢ ﺍﻟﮕﻤﺎﻝ ﺩﺭ ﺍﯾﻦ ﻃﺮﺡ ﺑﺎﯾﺪ ﺗﻐﯿﯿﺮ ﻣﺨﺘﺼﺮﯼ ﺩﺭ ﺳﯿﺴﺘﻢ ﺍﻟﮕﻤﺎﻝ ﺍﻋﻤﺎﻝ ﻛﻨﯿﻢ؛ ﺑﺪﯾﻦ ﺻﻮﺭﺕ ﻛﻪ ﺑﻪ ﺟﺎﯼ‬
‫ﺁﻧﻜﻪ ﻫﺮ ﭘﯿﺎﻡ ) ‪ (mi‬ﺭﺍ ﺑﺮﺍﺑﺮ ﺑﺎ ﺭﺃﯼ ﻣﺘﻨﺎﻇﺮ ) ‪ (vi‬ﻗﺮﺍﺭ ﺩﻫﯿﻢ‪ ،‬ﺁﻥ ﺭﺍ ﺑﺮﺍﺑﺮ ﺑﺎ ‪ g vi‬ﻗﺮﺍﺭ ﻣﯽﺩﻫﯿﻢ‪ .‬ﯾﻌﻨﯽ‪:‬‬

‫⟩ ‪⟨g ri , g vi · hri‬‬ ‫) ‪= Encpk (mi‬‬


‫) ‪= Encpk (g vi‬‬
‫) ‪= Enc′pk (vi‬‬

‫ﺑﺪﯾﻦ ﺗﺮﺗﯿﺐ ﺭﺃﯼﺩﻫﻨﺪﻩﻫﺎ ﻣﺘﻦﻫﺎﯼ ﺭﻣﺰﺷﺪﻩ ﺯﯾﺮ ﺭﺍ ﺗﻮﻟﯿﺪ ﻭ ﻣﻨﺘﺸﺮ ﻣﯽﻛﻨﻨﺪ‪ ،‬ﺑﻪ ﻃﻮﺭﯼ ﻛﻪ ﻋﻤﻮﻡ ﺍﻓﺮﺍﺩ ﻣﯽﺗﻮﺍﻧﻨﺪ ﺑﺮ ﺭﺳﯽ ﻛﻨﻨﺪ‬
‫ﻛﻪ ﻫﺮ ﺷﺨﺺ ﭼﻪ ﺭﺃﯼ ﺭﻣﺰﺷﺪﻩﺍﯼ ﺭﺍ ﺍﺭﺳﺎﻝ ﻛﺮﺩﻩ ﺍﺳﺖ‪.‬‬

‫) ‪C۱ = Enc′pk (v۱‬‬


‫) ‪C۲ = Enc′pk (v۲‬‬
‫‪..‬‬ ‫‪..‬‬
‫‪.‬‬ ‫‪.‬‬
‫) ‪CN = Enc′pk (vN‬‬

‫ﺩﻗﺖ ﮐﻨﯿﺪ ﮐﻪ ﺑﺎ ﺗﻮﺟﻪ ﺑﻪ ﺍﻣﻨﯿﺖ ﺳﯿﺴﺘﻢ ﺭﻣﺰ ﺍﻟﮕﻤﺎﻝ‪ ،‬ﺭﺃﯼﻫﺎﯼ ﺭﻣﺰﺷﺪﻩ ﺍﻃﻼﻋﺎﺗﯽ ﺩﺭ ﻣﻮﺭﺩ ﻣﻘﺪﺍﺭ ﺭﺃﯼ ﻧﺸﺖ ﻧﻤﯽﺩﻫﻨﺪ‪.‬‬
‫ﻫﻤﭽﻨﯿﻦ ﺑﺎ ﺗﻐﯿﯿﺮ ﻛﻮﭼﻜﯽ ﻛﻪ ﺩﺭ ﺳﯿﺴﺘﻢ ﺭﻣﺰ ﺍﻟﮕﻤﺎﻝ ﺣﺎﺻﻞ ﻛﺮﺩﻩﺍﯾﻢ‪ ،‬ﺧﺎﺻﯿﺖ ﻫﻤﻮﻣﻮﺭﻓﯿﻚ ﺿﺮﺑﯽ ﺁﻥ ﺭﺍ ﺑﻪ ﺧﺎﺻﯿﺖ‬
‫ﻫﻤﻮﻣﻮﺭﻓﯿﻚ ﺟﻤﻌﯽ ﺗﺒﺪﯾﻞ ﻛﺮﺩﯾﻢ‪ .‬ﺯﯾﺮﺍ‪:‬‬

‫‪C۱ · C۲ · · · CN‬‬ ‫) ‪= Enc(m۱ · m۲ · · · mN‬‬


‫) ‪= Enc(g v۱ +v۲ +···+vN‬‬
‫) ‪= Enc′ (v۱ + v۲ + · · · + vN‬‬

‫ﺑﻨﺎﺑﺮﺍﯾﻦ ﺑﺎ ﺩﺍﻧﺴﺘﻦ ﺁﺭﺍﯼ ﺭﻣﺰﺷﺪﻩ ﺧﻮﺍﻫﯿﻢ ﺗﻮﺍﻧﺴﺖ ﺣﺎﺻﻞﺿﺮﺏ ﺁﻥﻫﺎ ﺭﺍ ﻣﺤﺎﺳﺒﻪ ﻭ ﺭﻣﺰﮔﺸﺎﯾﯽ ﻛﻨﯿﻢ ﺗﺎ ﺑﻪ ﻣﺠﻤﻮﻉ ﺁﺭﺍء ﻣﻮﺍﻓﻖ‬
‫)ﺑﺮﺍﺑﺮ ﺑﺎ ﯾﻚ( ﺩﺳﺖ ﭘﯿﺪﺍ ﻛﻨﯿﻢ‪ .‬ﺩﺭ ﻋﻤﻞ ﺍﯾﻦ ﻛﺎﺭ ﺗﻮﺳﻂ ﯾﻚ ﻧﻬﺎﺩ ﻣﻌﺘﻤﺪ ﻛﻪ ﺳﺮ ﻭﺭ ‪ ۶‬ﻧﯿﺰ ﻧﺎﻣﯿﺪﻩ ﻣﯽﺷﻮﺩ ﺍﻧﺠﺎﻡ ﻣﯽﮔﺮﺩﺩ‪.‬‬
‫‪۴ El‬‬ ‫‪Gamal‬‬
‫‪۵ Decisional‬‬ ‫‪Diffie-Hellman‬‬
‫‪۶ Server‬‬

‫ﺑﯿﺴﺖﻭﭼﻬﺎﺭﻡ‪۲-‬‬
‫⟩ ‪C۱ = ⟨g r۱ , g v۱ · hr۱‬‬

‫ﺳﺮ ﻭﺭ‬
‫ﻣﺠﻤﻮﻉ ﺁﺭﺍء = ‪v۱ + v۲ + · · · + vN‬‬
‫)ﺑﺮﮔﺰﺍﺭﻛﻨﻨﺪﻩ ﺭﺃﯼﮔﯿﺮﯼ(‬

‫⟩ ‪CN = ⟨g rN , g vN · hrN‬‬
‫‪.‬‬

‫ﻣﺸﻜﻼﺕ ﺳﯿﺴﺘﻢ ﺭﺃﯼﮔﯿﺮﯼ ﻣﻌﺮﻓﯽ ﺷﺪﻩ‬ ‫‪۳‬‬

‫ﺩﺭ ﻃﺮﺡ ﻣﻌﺮﻓﯽ ﺷﺪﻩ ﺑﺮﺍﯼ ﺭﺃﯼﮔﯿﺮﯼ ﻣﺸﻜﻼﺕ ﻣﺘﻌﺪﺩﯼ ﻭﺟﻮﺩ ﺩﺍﺭﺩ ﻛﻪ ﺑﺎﯾﺪ ﺑﺮﻃﺮﻑ ﮔﺮﺩﻧﺪ‪ .‬ﻓﻬﺮﺳﺖ ﺑﺮﺧﯽ ﺍﺯ ﺍﯾﻦ ﻣﺸﻜﻼﺕ‬
‫ﺩﺭ ﺫﯾﻞ ﺁﻣﺪﻩ ﺍﺳﺖ‪.‬‬

‫• � ﺍﻣﻜﺎﻥ ﺗﻘﻠﺐ ﻧﻬﺎﺩ ﺑﺮﮔﺰﺍﺭﻛﻨﻨﺪﻩ‪ :‬ﺩﺭ ﺍﯾﻦ ﺳﯿﺴﺘﻢ ﺷﺎﯾﺪ ﻧﻬﺎﺩ ﺑﺮﮔﺰﺍﺭﻛﻨﻨﺪﻩ ﺭﺃﯼﮔﯿﺮﯼ‪ ،‬ﺁﺭﺍء ﺭﺍ ﺑﻪ ﺩﺭﺳﺘﯽ ﺭﻣﺰﮔﺸﺎﯾﯽ ﻧﻜﻨﺪ‪.‬‬

‫• � ﺍﻣﻜﺎﻥ ﺗﻘﻠﺐ ﺭﺃﯼﺩﻫﻨﺪﻩ ﺑﺎ ﺍﺭﺳﺎﻝ ﺭﺃﯼ ﻏﯿﺮ ﺻﻔﺮ ﯾﺎ ﯾﮏ‪ :‬ﻣﻤﻜﻦ ﺍﺳﺖ ﺭﺃﯼﺩﻫﻨﺪﻩ ﺑﻪ ﺟﺎﯼ ﺻﻔﺮ ﯾﺎ ﯾﻚ ﻋﺪﺩ ﺩﯾﮕﺮﯼ‬
‫ﺭﺍ ﺭﻣﺰ ﻛﻨﺪ‪ .‬ﺩﺭ ﺍﯾﻦ ﺣﺎﻟﺖ ﺍﮔﺮ ﺷﺨﺼﯽ ﻋﺪﺩ ﻣﺜﺒﺖ ‪ n‬ﺭﺍ ﺭﻣﺰ ﻛﻨﺪ‪ ،‬ﺩﺭ ﺣﻘﯿﻘﺖ ‪ n‬ﺑﺎﺭ ﺭﺃﯼ ﻣﻮﺍﻓﻖ )ﺑﺮﺍﺑﺮ ﯾﻚ( ﺩﺍﺩﻩ ﻭ‬
‫ﺍﮔﺮ ﻋﺪﺩ ﻣﻨﻔﯽ ‪ n‬ﺭﺍ ﺭﻣﺰ ﻛﻨﺪ‪ ،‬ﺩﺭ ﺣﻘﯿﻘﺖ ‪ n‬ﺗﺎ ﺍﺯ ﺁﺭﺃﯼ ﻣﻮﺍﻓﻖ ﺭﺍ ﺣﺬﻑ ﮐﺮﺩﻩ ﺍﺳﺖ‪ .‬ﺍﯾﻦ ﺩﺭﺣﺎﻟﯽﺍﺳﺖ ﮐﻪ ﺗﻌﺪﺍﺩ ﻛﻞ‬
‫ﺭﺃﯼﺩﻫﻨﺪﻩﻫﺎ ﺛﺎﺑﺖ ﻣﺎﻧﺪﻩ ﺍﺳﺖ‪.‬‬

‫• � ﺍﻣﻜﺎﻥ ﺍﻓﺸﺎﯼ ﺣﺮ ﯾﻢ ﺧﺼﻮﺻﯽ ﺭﺃﯼﺩﻫﻨﺪﮔﺎﻥ ﺗﻮﺳﻂ ﻧﻬﺎﺩ ﺑﺮﮔﺰﺍﺭﮐﻨﻨﺪﻩ‪ :‬ﺩﺭ ﺍﯾﻦ ﺳﯿﺴﺘﻢ ﻧﻬﺎﺩ ﺑﺮﮔﺰﺍﺭﻛﻨﻨﺪﻩ ﻋﻤﻼً ﺑﻪ‬
‫ﻣﺤﺘﻮﺍﯼ ﯾﻜﺎﯾﻚ ﺁﺭﺍء ﺩﺳﺘﺮﺳﯽ ﺧﻮﺍﻫﺪ ﺩﺍﺷﺖ ﻭ ﺗﻮﺍﻧﺪ ﺗﺸﺨﯿﺺ ﺩﻫﺪ ﻛﻪ ﻫﺮ ﺭﺃﯼﺩﻫﻨﺪﻩ ﭼﻪ ﺭﺃﯾﯽ ﺩﺍﺩﻩ ﺍﺳﺖ‪.‬‬

‫• � ﺍﻣﻜﺎﻥ ﺍﺭﺳﺎﻝ ﺭﺃﯼ ﻣﺸﺎﺑﻪ ﺍﺯ ﻃﺮﻑ ﺭﺃﯼﺩﻫﻨﺪﻩ‪ :‬ﭼﻨﺎﻧﭽﻪ ﺭﺃﯼﮔﯿﺮﯼ ﻣﻄﺎﺑﻖ ﺳﯿﺴﺘﻢ ﻣﻌﺮﻓﯽ ﺷﺪﻩ ﺑﺮﮔﺰﺍﺭ ﮔﺮﺩﺩ‪ ،‬ﺍﻓﺮﺍﺩ‬
‫ﻣﯽﺗﻮﺍﻧﻨﺪ ﺭﺃﯼ ﺷﺨﺼﯽ ﺩﯾﮕﺮ )ﻣﺜﻼ ﺷﺨﺼﯽ ﻣﻬﻢ ﯾﺎ ﻣﻌﺮ ﻭﻑ( ﺭﺍ ﻋﯿﻨﺎً ﺗﻘﻠﯿﺪ ﻛﻨﻨﺪ ﺑﺪﻭﻥ ﺁﻧﻜﻪ ﺍﺯ ﻣﺤﺘﻮﺍﯼ ﺁﻥ ﺁ ﮔﺎﻫﯽ‬
‫ﺩﺍﺷﺘﻪ ﺑﺎﺷﻨﺪ‪ .‬ﺩﻟﯿﻞ ﺍﯾﻦ ﻛﺎﺭ ﻣﯽﺗﻮﺍﻧﺪ ﺳﺮﺳﭙﺮﺩﮔﯽ ‪ ،۷‬ﻋﻼﻗﻪ ﺷﺨﺼﯽ ﻭ ﯾﺎ ﻫﺮ ﻣﻮﺭﺩ ﺩﯾﮕﺮﯼ ﺑﺎﺷﺪ‪ .‬ﻗﺎﺑﻞ ﺗﻮﺟﻪ ﺍﺳﺖ ﻛﻪ‬
‫ﺩﺭ ﺣﺎﻟﺖ ﺧﺎﺻﯽ ﻛﻪ ﺗﻨﻬﺎ ﺳﻪ ﺭﺃﯼﺩﻫﻨﺪﻩ ﺩﺍﺷﺘﻪ ﺑﺎﺷﯿﻢ‪ ،‬ﺍﯾﻦ ﺍﻣﺮ ﻣﯽﺗﻮﺍﻧﺪ ﺑﻪ ﻓﺎﺵ ﺷﺪﻥ ﺁﺭﺍﯼ ﺩﻭ ﺷﺨﺺ ﺩﯾﮕﺮ ﺑﺮﺍﯼ‬
‫ﻫﺮ ﯾﻚ ﺍﺯ ﺭﺃﯼﺩﻫﻨﺪﻩﻫﺎ ﻣﻨﺠﺮ ﺷﻮﺩ‪.‬‬

‫ﺍﺯ ﻣﯿﺎﻥ ﻣﺸﻜﻞﻫﺎﯼ ﯾﺎﺩﺷﺪﻩ‪ ،‬ﻣﻮﺍﺭﺩ ﺍﻭﻝ ﻭ ﺩﻭﻡ ﺑﻪ ﻣﺴﺎﻟﻪ ﺻﺤﺖ ﺭﺃﯼﮔﯿﺮﯼ ﻣﺮﺑﻮﻁ ﻫﺴﺘﻨﺪ‪ .‬ﺳﻪ ﻣﻮﺭﺩ ﺩﯾﮕﺮ ﺍﻣﺎ ﺑﻪ ﻣﺴﺎﻟﻪ‬
‫ﺣﻔﻆ ﺣﺮ ﯾﻢ ﺧﺼﻮﺻﯽ ﺭﺃﯼﺩﻫﻨﺪﮔﺎﻥ ﺑﺎﺯ ﻣﯽﮔﺮﺩﺩ‪ .‬ﺍﯾﻦ ﺳﯿﺴﺘﻢ ﯾﮏ ﻣﺸﮑﻞ ﺩﯾﮕﺮ ﻧﯿﺰ ﺩﺍﺭﺩ ﮐﻪ ﺍﻟﺒﺘﻪ ﻭﯾﮋﮔﯽ ﮐﻠﯽ ﺳﯿﺴﺘﻢﻫﺎﯼ‬
‫ﺭﺃﯼﮔﯿﺮﯼ ﺍﻟﮑﺘﺮ ﻭﻧﯿﮑﯽ ﺍﺳﺖ‪:‬‬

‫• � ﺍﻣﻜﺎﻥ ﺑﺮ ﻭﺯ ﺍﺟﺒﺎﺭ‪ ،‬ﺗﻬﺪﯾﺪ ﻭ ﺗﻄﻤﯿﻊ ﺭﺃﯼﺩﻫﻨﺪﻩ‪ :‬ﺩﺭ ﺍﯾﻦ ﺳﯿﺴﺘﻢ ﺟﻠﻮﯼ ﺍﺟﺒﺎﺭ ﻭ ﺗﻬﺪﯾﺪ ﻭ ﻓﺮ ﻭﺵ ﺭﺃﯼ ﮔﺮﻓﺘﻪ ﻧﻤﯽﺷﻮﺩ؛‬
‫ﭼﺮﺍ ﻛﻪ ﻋﺪﺩ ﺗﺼﺎﺩﻓﯽ ‪ r‬ﻛﻪ ﻫﻨﮕﺎﻡ ﺭﻣﺰﻛﺮﺩﻥ ﺭﺃﯼ ﻫﺮ ﺭﺃﯼﺩﻫﻨﺪﻩ ﺍﻧﺘﺨﺎﺏ ﻣﯽﮔﺮﺩﺩ‪ ،‬ﻋﻤﻼً ﻣﻤﻜﻦ ﺍﺳﺖ ﺑﻪ ﻋﻨﻮﺍﻥ ﯾﻚ‬
‫‪۷ Devotion‬‬

‫ﺑﯿﺴﺖﻭﭼﻬﺎﺭﻡ‪۳-‬‬
‫ﺭﺳﯿﺪ ﺍﺯ ﺳﻮﯼ ﻫﻤﺎﻥ ﺭﺃﯼﺩﻫﻨﺪﻩ ﺑﻪ ﻛﺎﺭ ﺭ ﻭﺩ‪ .‬ﺩﺭ ﺣﻘﯿﻘﺖ ﺍﺯ ﺍﯾﻦ ﻃﺮ ﯾﻖ‪ ،‬ﻫﺮ ﺭﺃﯼﺩﻫﻨﺪﻩ ﻣﯽﺗﻮﺍﻧﺪ ﺛﺎﺑﺖ ﻛﻨﺪ ﻛﻪ ﺑﻪ ﭼﻪ‬
‫ﻛﺴﯽ ﺭﺃﯼ ﺩﺍﺩﻩ ﺍﺳﺖ‪ .‬ﺑﺎ ﺍﯾﻦ ﺣﺴﺎﺏ‪ ،‬ﻣﻤﻜﻦ ﺍﺳﺖ ﺭﺃﯼﺩﻫﻨﺪﻩ ﻣﻮﺭﺩ ﺗﻬﺪﯾﺪ ﻗﺮﺍﺭ ﮔﺮﻓﺘﻪ ﻭ ﯾﺎ ﭘﯿﺸﺎﭘﯿﺶ ﺍﻗﺪﺍﻡ ﺑﻪ ﻓﺮ ﻭﺵ‬
‫ﺭﺃﯼ ﺧﻮﺩ ﺑﻨﻤﺎﯾﺪ‪.‬‬
‫ﺁﻧﭽﻪ ﺩﺭ ﭘﯽ ﻣﯽﺁﯾﺪ ﺭﺍﻩﺣﻞﻫﺎﯾﯽ ﻛﻠﯽ ﻫﺴﺘﻨﺪ ﻛﻪ ﺑﺮﺍﯼ ﺑﺮﻃﺮﻑ ﺳﺎﺧﺘﻦ ﻣﺸﻜﻼﺕ ﻣﺮﺑﻮﻁ ﺑﻪ ﺻﺤﺖ ﻭ ﺣﺮ ﯾﻢ ﺧﺼﻮﺻﯽ‪،‬‬
‫ﻣﯽﺗﻮﺍﻧﻨﺪ ﻣﻮﺭﺩ ﺍﺳﺘﻔﺎﺩﻩ ﻗﺮﺍﺭ ﮔﯿﺮﻧﺪ‪ .‬ﻣﺸﮑﻞ ﻣﺮﺑﻮﻁ ﺑﻪ ﺍﻣﻜﺎﻥ ﺑﺮ ﻭﺯ ﺍﺟﺒﺎﺭ‪ ،‬ﺗﻬﺪﯾﺪ ﻭ ﺗﻄﻤﯿﻊ ﺭﺃﯼﺩﻫﻨﺪﻩ ﺑﺎﯾﺪ ﺑﻪ ﻧﺤﻮ ﺩﯾﮕﺮﯼ‬
‫ﺣﻞ ﺷﻮﺩ ﮐﻪ ﻣﻮﺿﻮﻉ ﺍﯾﻦ ﺑﺤﺚ ﻧﯿﺴﺖ‪.‬‬

‫‪ ۱.۳‬ﺍﺛﺒﺎﺕ ﺩﺍﻧﺶ ﺩﺭ ﻣﻮﺭﺩ ﻣﺤﺘﻮﺍﯼ ﺭﺃﯼ‬

‫ﭼﻨﺎﻥﻛﻪ ﮔﻔﺘﻪ ﺷﺪ ﻣﻤﻜﻦ ﺍﺳﺖ ﺭﺃﯼﺩﻫﻨﺪﻩﺍﯼ ﺑﺨﻮﺍﻫﺪ ﺭﺃﯼ ﺷﺨﺺ ﻣﻬﻤﯽ ﺭﺍ ﻣﺴﺘﻘﯿﻤﺎً ﻛﭙﯽ ﻛﻨﺪ ﺑﺪﻭﻥ ﺁﻧﻜﻪ ﺍﺯ ﻣﺤﺘﻮﺍﯼ ﺁﻥ‬
‫ﺁ ﮔﺎﻫﯽ ﺩﺍﺷﺘﻪ ﺑﺎﺷﺪ‪ .‬ﻣﻤﻜﻦ ﺍﺳﺖ ﺑﻪ ﻧﻈﺮ ﺑﺮﺳﺪ ﻛﻪ ﺑﺎ ﺣﺬﻑ ﺁﺭﺍﯼ ﺭﻣﺰﺷﺪﻩ ﺗﻜﺮﺍﺭﯼ‪ ،‬ﻣﯽﺗﻮﺍﻥ ﺟﻠﻮﯼ ﺍﯾﻦ ﻣﺴﺎﻟﻪ ﺭﺍ ﮔﺮﻓﺖ‪ .‬ﺍﻣﺎ‬
‫ﺣﺘﯽ ﺑﺎ ﺍﺿﺎﻓﻪ ﻛﺮﺩﻥ ﺍﯾﻦ ﻣﺮﺣﻠﻪ ﻧﯿﺰ ﺑﺎﺯ ﺩﺭ ﺳﯿﺴﺘﻢ ﯾﺎﺩﺷﺪﻩ ﭼﻨﯿﻦ ﻋﻤﻠﯽ ﺍﻣﻜﺎﻥﭘﺬﯾﺮ ﺍﺳﺖ؛ ﭼﺮﺍ ﻛﻪ ﺳﯿﺴﺘﻢ ﺭﻣﺰ ﺍﻟﮕﻤﺎﻝ ﻗﺎﺑﻠﯿﺖ‬
‫ﺭﻣﺰﮔﺬﺍﺭﯼ ﻣﺠﺪﺩ ‪ ۸‬ﺭﺍ ﺩﺍﺭﺍ ﺍﺳﺖ ﻭ ﺩﺭ ﺻﻮﺭﺗﯽ ﻛﻪ ﺭﺃﯼﺩﻫﻨﺪﻩﺍﯼ ﻣﺘﻦ ﺭﻣﺰﺷﺪﻩ ﯾﻚ ﺭﺃﯼﺩﻫﻨﺪﻩ ﺩﯾﮕﺮ ﺭﺍ ﻣﺠﺪﺩﺍً ﺭﻣﺰﮔﺬﺍﺭﯼ‬
‫ﻛﻨﺪ‪ ،‬ﻣﺘﻦ ﺭﻣﺰﺷﺪﻩ ﺗﻐﯿﯿﺮ ﻣﯽﻛﻨﺪ‪ ،‬ﺍﻣﺎ ﺭﺃﯼ ﺩﺍﺩﻩ ﺷﺪﻩ ﻋﻮﺽ ﻧﻤﯽﮔﺮﺩﺩ‪.‬‬
‫ﺑﺮﺍﯼ ﺣﻞ ﻣﺸﻜﻞ ﺍﻣﻜﺎﻥ ﺍﺭﺳﺎﻝ ﺭﺃﯼ ﻣﺸﺎﺑﻪ‪ ،‬ﺭﺃﯼﺩﻫﻨﺪﻩ ﺑﺎﯾﺪ ﺑﺘﻮﺍﻧﺪ ﺩﺍﻧﺶ ﺧﻮﺩ ﺭﺍ ﺩﺭ ﻣﻮﺭﺩ ﻣﺤﺘﻮﺍﯼ ﺭﺃﯼ ﺩﺍﺩﻩ ﺷﺪﻩ ﺛﺎﺑﺖ‬
‫ﻛﻨﺪ‪ .‬ﺍﯾﻦ ﺍﺛﺒﺎﺕ ﺑﺎﯾﺪ ﻧﺎﺗﺮﺍﻭﺍ ‪ ۹‬ﺑﺎﺷﺪ‪ .‬ﯾﻌﻨﯽ ﺭﺃﯼﺩﻫﻨﺪﻩ ﺩﺭ ﻋﯿﻦ ﺣﺎﻝ ﻛﻪ ﺩﺍﻧﺶ ﺧﻮﺩ ﺭﺍ ﺩﺭﺑﺎﺭﻩ ﺭﺃﯾﯽ ﻛﻪ ﺩﺍﺩﻩ ﺛﺎﺑﺖ ﻣﯽﻛﻨﺪ‪،‬‬
‫ﻧﺒﺎﯾﺪ ﻫﯿﭻ ﺍﻃﻼﻋﺎﺕ ﺍﺿﺎﻓﯽ ﺩﺭ ﻣﻮﺭﺩ ﻣﺤﺘﻮﺍﯼ ﺭﺃﯼ ﺑﺮ ﻭﺯ ﺩﻫﺪ‪ .‬ﺩﺭ ﺍﯾﻦ ﻣﻮﺭﺩ ﻛﺎﻓﯽ ﺍﺳﺖ ﺗﺎ ﺭﺃﯼﺩﻫﻨﺪﻩ ‪i‬ﺍﻡ ﺑﻪ ﺟﺎﯼ ﺍﺛﺒﺎﺕ‬
‫ﺩﺍﻧﺶ ﺩﺭ ﻣﻮﺭﺩ ‪ ،mi‬ﺩﺍﻧﺶ ﺧﻮﺩ ﺭﺍ ﺩﺭ ﻣﻮﺭﺩ ‪ ri‬ﺛﺎﺑﺖ ﻛﻨﺪ‪ .‬ﭼﺮﺍ ﻛﻪ ﺑﺎ ﺗﻮﺟﻪ ﺑﻪ ﺭﺍﺑﻄﻪ ﺯﯾﺮ‪ ،‬ﺩﺍﻧﺶ ﺩﺭ ﻣﻮﺭﺩ ‪ ri‬ﺑﯿﺎﻧﮕﺮ ﺩﺍﻧﺶ‬
‫ﺩﺭ ﻣﻮﺭﺩ ‪ mi‬ﺍﺳﺖ‪.‬‬
‫‪g ri‬‬
‫= ‪mi‬‬
‫‪hri‬‬
‫‪۱۱‬‬ ‫‪۱۰‬‬
‫ﺑﺎ ﻭﺭ ﻭﺩﯼ ‪ h‬ﺩﺭ ﻧﻈﺮ‬ ‫ﺑﺎ ﻭﺭ ﻭﺩﯼ ‪ x‬ﻭ ﺗﺄﯾﯿﺪﻛﻨﻨﺪﻩ‬ ‫ﺑﺮﺍﯼ ﺍﯾﻦ ﻣﻨﻈﻮﺭ ﺑﺎ ﻓﺮﺽ ‪ h = g x‬ﭘﺮ ﻭﺗﻜﻞ ﺯﯾﺮ ﺭﺍ ﺑﯿﻦ ﺍﺛﺒﺎﺕﻛﻨﻨﺪﻩ‬
‫ﺑﮕﯿﺮ ﯾﺪ‪.‬‬

‫‪ P‬ﺍﺛﺒﺎﺕﻛﻨﻨﺪﻩ‬ ‫‪ V‬ﺗﺄﯾﯿﺪﻛﻨﻨﺪﻩ‬
‫)‪P (h; x‬‬ ‫)‪V (h‬‬

‫‪a ← Zq‬‬
‫‪A‬‬
‫‪A = ga‬‬
‫‪b‬‬
‫}‪b ← {۰, ۱‬‬
‫{‬
‫‪a‬‬ ‫‪�b=۰‬‬ ‫‪z‬‬ ‫?‬
‫=‪z‬‬
‫‪a+x‬‬ ‫‪�b=۱‬‬ ‫‪g z = A · hb‬‬

‫‪.‬‬
‫‪۸ Re-encryption‬‬
‫‪۹ Zero-knowledge‬‬
‫‪۱۰ Prover‬‬
‫‪۱۱ Verifier‬‬

‫ﺑﯿﺴﺖﻭﭼﻬﺎﺭﻡ‪۴-‬‬
‫ﺩﺭ ﺍﯾﻦ ﺁﺯﻣﻮﻥ‪ ،‬ﺍﺛﺒﺎﺕﻛﻨﻨﺪﻩ ﻗﺮﺍﺭ ﺍﺳﺖ ﻧﺸﺎﻥ ﺩﻫﺪ ﻛﻪ ﻣﻘﺪﺍﺭ ‪ x‬ﺭﺍ ﻣﯽﺩﺍﻧﺪ‪ .‬ﺑﺮﺍﯼ ﺍﯾﻦ ﻣﻨﻈﻮﺭ ﻋﺪﺩ ﺗﺼﺎﺩﻓﯽ ‪ a‬ﺭﺍ ﺍﺯ ‪ Zq‬ﺍﻧﺘﺨﺎﺏ‬
‫ﻣﯽﻛﻨﺪ ﻭ ﺳﭙﺲ ﻣﻘﺪﺍﺭ ‪ g a‬ﺭﺍ ﺑﺮﺍﯼ ﺗﺄﯾﯿﺪﻛﻨﻨﺪﻩ ﻣﯽﻓﺮﺳﺘﺪ‪ .‬ﺗﺄﯾﯿﺪﻛﻨﻨﺪﻩ ﺑﯿﺖ ﺗﺼﺎﺩﻓﯽ ‪ b‬ﺭﺍ ﺗﻮﻟﯿﺪ ﻛﺮﺩﻩ ﻭ ﺑﺮﺍﯼ ﺍﺛﺒﺎﺕﻛﻨﻨﺪﻩ ﺍﺭﺳﺎﻝ‬
‫ﻣﯽﻛﻨﺪ‪ .‬ﺑﺮ ﺍﺳﺎﺱ ﻣﻘﺪﺍﺭ ﺑﯿﺖ ‪ ،b‬ﺍﺛﺒﺎﺕﻛﻨﻨﺪﻩ ﻣﻘﺪﺍﺭ ‪ z‬ﺭﺍ ﻣﺤﺎﺳﺒﻪ ﻛﺮﺩﻩ ﻭ ﺁﻥ ﺭﺍ ﺑﻪ ﺗﺄﯾﯿﺪﻛﻨﻨﺪﻩ ﺑﺎﺯﻣﯽﮔﺮﺩﺍﻧﺪ‪ .‬ﻧﻬﺎﯾﺘﺎً ﻛﺎﻓﯽ‬
‫ﺍﺳﺖ ﺗﺄﯾﯿﺪﻛﻨﻨﺪﻩ ﻛﻪ ﻣﻘﺎﺩﯾﺮ ‪ b ،h ،A‬ﻭ ‪ z‬ﺭﺍ ﻣﯽﺩﺍﻧﺪ‪ ،‬ﺑﺮ ﺍﺳﺎﺱ ﺍﯾﻦ ﻣﻘﺎﺩﯾﺮ‪ A · hb ،‬ﺭﺍ ﻣﺤﺎﺳﺒﻪ ﻛﺮﺩﻩ ﻭ ﺑﺎ ﻣﻘﺪﺍﺭ ‪ g z‬ﻣﻘﺎﯾﺴﻪ‬
‫ﻛﻨﺪ‪.‬‬
‫ﺩﺭ ﺍﯾﻦ ﺁﺯﻣﺎﯾﺶ ﺣﺎﻟﺖ ‪ b = ۰‬ﺑﻪ ﺍﯾﻦ ﺩﻟﯿﻞ ﺗﻌﺒﯿﻪ ﺷﺪﻩ ﺍﺳﺖ ﻛﻪ ﺍﮔﺮ ﺗﺄﯾﯿﺪﻛﻨﻨﺪﻩ ﻫﻤﻮﺍﺭﻩ ﻗﺮﺍﺭ ﺑﺎﺷﺪ ﺑﯿﺖ ﯾﻚ ﺭﺍ ﺑﺮﺍﯼ ﺍﺛﺒﺎﺕﻛﻨﻨﺪﻩ‬
‫ﺑﻔﺮﺳﺘﺪ‪ ،‬ﺍﺛﺒﺎﺕﻛﻨﻨﺪﻩ ﻣﯽﺗﻮﺍﻧﺪ ﺩﻭ ﻣﻘﺪﺍﺭ ‪ z‬ﻭ ‪ A‬ﺭﺍ ﻃﻮﺭﯼ ﺍﻧﺘﺨﺎﺏ ﻛﻨﺪ ﻛﻪ ‪ g z = A · hb‬ﻭ ﺩﺭ ﻣﺮﺣﻠﻪ ﻧﺨﺴﺖ ﺁﺯﻣﺎﯾﺶ ﻫﻤﺎﻥ‬
‫ﻣﻘﺪﺍﺭ ‪ A‬ﺭﺍ ﺑﺮﺍﯼ ﺗﺄﯾﯿﺪﻛﻨﻨﺪﻩ ﺑﻔﺮﺳﺘﺪ‪ .‬ﻗﺎﺑﻞ ﺗﻮﺟﻪ ﺍﺳﺖ ﻛﻪ ﺍﯾﻦ ﺁﺯﻣﺎﯾﺶ ﺑﺎ ﺍﺣﺘﻤﺎﻝ ‪ ۲۱‬ﺩﺍﻧﺶ ﺍﺛﺒﺎﺕﻛﻨﻨﺪﻩ ﺭﺍ ﻣﯽﺁﺯﻣﺎﯾﺪ‪ .‬ﯾﻌﻨﯽ‬
‫ﺍﮔﺮ ﺍﺛﺒﺎﺕﻛﻨﻨﺪﻩ ﻣﻘﺪﺍﺭ ‪ x‬ﺭﺍ ﻫﻢ ﻧﺪﺍﻧﺪ ﺑﺎﺯ ﻫﻢ ﺑﺎ ﺍﺣﺘﻤﺎﻝ ‪ ۲۱‬ﺷﺎﻧﺲ ﭘﯿﺮ ﻭﺯﯼ ﺩﺍﺭﺩ‪ .‬ﺍﻣﺎ ﺍﮔﺮ ﺍﯾﻦ ﺁﺯﻣﺎﯾﺶ ﭼﻨﺪ ﺑﺎﺭ ﺗﻜﺮﺍﺭ ﺷﻮﺩ ﺑﻪ‬
‫ﭘﺮ ﻭﺗﻜﻠﯽ ﺧﻮﺍﻫﯿﻢ ﺭﺳﯿﺪ ﻛﻪ ﺍﻣﻜﺎﻥ ﺗﻘﻠﺐ ﺍﺯ ﺳﻮﯼ ﺗﺄﯾﯿﺪﻛﻨﻨﺪﻩ ﺭﺍ ﺑﻪ ﺍﻧﺪﺍﺯﻩ ﺩﻟﺨﻮﺍﻩ ﻧﺎﭼﯿﺰ ﻣﯽﺳﺎﺯﺩ‪ .‬ﭘﺮ ﻭﺗﻜﻞ ﺯﯾﺮ‪ ،‬ﮐﻪ ﺑﻪ ﭘﺮ ﻭﺗﻜﻞ‬
‫ﺍﺷﻨﻮﺭ ‪ ۱۲‬ﻣﻌﺮ ﻭﻑ ﺍﺳﺖ‪ ،‬ﻫﻤﯿﻦ ﺍﻣﻜﺎﻥ ﺭﺍ ﺩﺭ ﯾﻚ ﺍﺟﺮﺍ ﻓﺮﺍﻫﻢ ﻣﯽﻛﻨﺪ‪.‬‬

‫‪ P‬ﺍﺛﺒﺎﺕﻛﻨﻨﺪﻩ‬ ‫‪ V‬ﺗﺄﯾﯿﺪﻛﻨﻨﺪﻩ‬
‫)‪P (h; x‬‬ ‫)‪V (h‬‬

‫‪a ← Zq‬‬
‫‪A‬‬
‫‪A = ga‬‬
‫‪c‬‬ ‫‪c ← Zq‬‬

‫‪z‬‬ ‫?‬
‫‪z = a + cx‬‬ ‫‪g z = A · hc‬‬

‫‪.‬‬

‫ﺗﻮﺟﯿﻬﯽ ﻛﻪ ﻛﺎﺭﺁﻣﺪﯼ ﺍﯾﻦ ﭘﺮ ﻭﺗﻜﻞ ﺭﺍ ﻧﺸﺎﻥ ﻣﯽﺩﻫﺪ ﺁﻥ ﺍﺳﺖ ﻛﻪ ﺍﮔﺮ ﺍﺛﺒﺎﺕﻛﻨﻨﺪﻩ ﺑﻪ ﺍﺯﺍﯼ ﺩﻭ ﻣﻘﺪﺍﺭ ﻣﺘﻔﺎﻭﺕ ‪ c‬ﺑﺘﻮﺍﻧﺪ ﺁﺯﻣﺎﯾﺶ‬
‫ﺭﺍ ﺑﺎ ﻣﻮﻓﻘﯿﺖ ﺑﮕﺬﺭﺍﻧﺪ‪ ،‬ﺣﺘﻤﺎ ﻣﻘﺪﺍﺭ ‪ x‬ﺭﺍ ﻣﯽﺩﺍﻧﺪ‪ .‬ﻫﺮ ﭼﻨﺪ ﺑﺎﯾﺪ ﺗﻮﺟﻪ ﺩﺍﺷﺖ ﻛﻪ ﻋﻤﻼ ﺍﺛﺒﺎﺕﻛﻨﻨﺪﻩ ﺑﻪ ﺍﺯﺍﯼ ﺩﻭ ﻣﻘﺪﺍﺭ ﻣﺘﻔﺎﻭﺕ‬
‫‪ c‬ﺁﺯﻣﺎﯾﺶ ﺭﺍ ﺗﻜﺮﺍﺭ ﻧﻤﯽﻛﻨﺪ‪ ،‬ﺯﯾﺮﺍ ﺩﺭ ﻏﯿﺮ ﺍﯾﻦ ﺻﻮﺭﺕ ﺗﺄﯾﯿﺪﻛﻨﻨﺪﻩ ﻣﯽﺗﻮﺍﻧﺪ ﻣﺴﺘﻘﯿﻤﺎ ﻣﻘﺪﺍﺭ ‪ x‬ﺭﺍ ﻣﺤﺎﺳﺒﻪ ﻧﻤﺎﯾﺪ‪.‬‬
‫ﻓﺮﺽ ﻛﻨﯿﺪ ﺍﺛﺒﺎﺕﻛﻨﻨﺪﻩ ﭘﺲ ﺍﺯ ﺍﺭﺳﺎﻝ ﻣﻘﺪﺍﺭ ‪ A‬ﺩﺭ ﻣﺮﺣﻠﻪ ﺍﻭﻝ ﻭ ﺩﺭ ﯾﺎﻓﺖ ﻣﻘﺎﺩﯾﺮ ‪ c‬ﻭ ‪ c′‬ﺩﺭ ﻣﺮﺣﻠﻪ ﺩﻭﻡ‪ ،‬ﺑﺘﻮﺍﻧﺪ ﺩﺭ ﻣﺮﺣﻠﻪ ﺳﻮﻡ‬
‫ﭘﺮ ﻭﺗﻜﻞ ﺭﺍ ﺑﻪ ﺗﺮﺗﯿﺐ ﺑﺎ ﺍﺭﺳﺎﻝ ﻣﻘﺎﺩﯾﺮ ‪ z‬ﻭ ‪ z ′‬ﺑﺎ ﻣﻮﻓﻘﯿﺖ ﺑﻪ ﺍﺗﻤﺎﻡ ﺑﺮﺳﺎﻧﺪ‪ .‬ﯾﻌﻨﯽ‪:‬‬

‫‪g z = A · hc‬‬
‫‪′‬‬ ‫‪′‬‬
‫‪g z = A · hc‬‬
‫‪۱۲ Schnorr‬‬ ‫‪Protocol‬‬

‫ﺑﯿﺴﺖﻭﭼﻬﺎﺭﻡ‪۵-‬‬
‫ﺑﺪﯾﻦ ﺗﺮﺗﯿﺐ‪ ،‬ﻣﻘﺪﺍﺭ ‪ x‬ﺑﺎ ﺍﺳﺘﻔﺎﺩﻩ ﺍﺯ ﺍﯾﻦ ﺩﻭ ﺍﺟﺮﺍﯼ ﭘﺮ ﻭﺗﻜﻞ ﺑﻪ ﺭﺍﺣﺘﯽ ﻗﺎﺑﻞ ﻣﺤﺎﺳﺒﻪ ﺍﺳﺖ‪:‬‬

‫‪′‬‬ ‫‪′‬‬ ‫‪′‬‬ ‫‪′ −۱‬‬ ‫‪z − z′‬‬


‫‪g z−z = hc−c‬‬ ‫) ‪⇒ h = g (z−z )(c−c‬‬ ‫=‪⇒x‬‬ ‫‪mod q‬‬
‫‪c − c′‬‬
‫ﺗﻮﺟﻪ ﻛﻨﯿﺪ ﻛﻪ ﺩﺭ ﭘﺮ ﻭﺗﻜﻞ ﺍﺷﻨﻮﺭ‪ ،‬ﺗﺄﯾﯿﺪﻛﻨﻨﺪﻩ ﻧﻤﯽﺗﻮﺍﻧﺪ ﺍﻃﻼﻋﺎﺕ ﺧﺎﺻﯽ ﺭﺍ ﺩﺭ ﺣﯿﻦ ﺁﺯﻣﺎﯾﺶ ﻛﺴﺐ ﻛﻨﺪ‪ ،‬ﭼﺮﺍ ﻛﻪ ﺑﻪ ﺗﻨﻬﺎﯾﯽ‬
‫ﻧﯿﺰ ﻣﯽﺗﻮﺍﻧﺴﺘﻪ ﺍﺯ ﺍﺑﺘﺪﺍ ﺑﺎ ﺷﺒﯿﻪﺳﺎﺯﯼ‪ ،‬ﯾﮏ ﺳﻪﺗﺎﯾﯽ )‪ (A, c, z‬ﺭﺍ ﻃﻮﺭﯼ ﺗﻮﻟﯿﺪ ﮐﻨﺪ ﮐﻪ ﺗﻮﺯﯾﻊ ﺁﻥ ﺑﺎ ﺁﻧﭽﻪ ﮐﻪ ﺩﺭ ﯾﮏ ﺗﻌﺎﻣﻞ‬
‫ﺑﺎ ﺍﺛﺒﺎﺕﮐﻨﻨﺪﻩ ﻣﯽﺑﯿﻨﺪ‪ ،‬ﯾﮑﺴﺎﻥ ﺑﺎﺷﺪ‪ .‬ﺑﺮﺍﯼ ﺍﯾﻦ ﮐﺎﺭ‪ ،‬ﻛﺎﻓﯽ ﺍﺳﺖ ﺍﺑﺘﺪﺍ ‪ z‬ﻭ ‪ c‬ﺭﺍ ﺑﻪ ﺻﻮﺭﺕ ﺗﺼﺎﺩﻓﯽ ﺗﻮﻟﯿﺪ ﻭ ﺳﭙﺲ ﻣﻘﺪﺍﺭ ‪A‬‬
‫ﺭﺍ ﺑﺮ ﺣﺴﺐ ﺁﻧﻬﺎ ﻣﺤﺎﺳﺒﻪ ﻧﻤﺎﯾﺪ‪.‬‬
‫�‬
‫‪c ← Zq‬‬
‫‪z ← Zq‬‬
‫‪gz‬‬
‫←‪A‬‬
‫‪hc‬‬
‫�‬
‫‪۱۳‬‬
‫ﺩﺭ ﯾﻚ ﺗﻌﺎﻣﻞ ﺑﺎ ﺍﺛﺒﺎﺕﻛﻨﻨﺪﻩ ﺑﻪ ﺩﺳﺖ ﻣﯽﺁﻭﺭﺩ‪،‬‬ ‫ﺍﯾﻦ )‪ (A, c, z‬ﺗﻮﻟﯿﺪ ﺷﺪﻩ ﺗﻮﺯﯾﻌﯽ ﻋﯿﻨﺎً ﺑﺮﺍﺑﺮ ﺑﺎ ﺁﻧﭽﻪ ﺗﺄﯾﯿﺪﻛﻨﻨﺪﻩ ﺻﺎﺩﻕ‬
‫ﺩﺍﺭﺩ‪ .‬ﺩﻗﺖ ﻛﻨﯿﺪ ﻛﻪ ﺗﺄﯾﯿﺪﻛﻨﻨﺪﻩ ﻧﺎﺻﺎﺩﻕ ‪ ۱۴‬ﻣﯽﺗﻮﺍﻧﺪ ﻣﻘﺪﺍﺭ ‪ c‬ﺭﺍ ﻛﺎﻣﻼ ﺗﺼﺎﺩﻓﯽ ﺍﻧﺘﺨﺎﺏ ﻧﻜﻨﺪ ﻭ ﻣﺜﻼ ﺁﻥ ﺭﺍ ﻭﺍﺑﺴﺘﻪ ﺑﻪ ﻣﻘﺪﺍﺭ‬
‫ﺩﺭ ﯾﺎﻓﺘﯽ ‪ A‬ﻛﻨﺪ‪ .‬ﺑﺎ ﺍﯾﻦ ﻭﺟﻮﺩ‪ ،‬ﻫﻨﻮﺯ ﻫﯿﭻ ﺷﺎﻫﺪﯼ ﻣﺒﻨﯽ ﺑﺮ ﺍﯾﻦ ﻛﻪ ﺍﯾﻦ ﻧﻜﺘﻪ ﻣﯽﺗﻮﺍﻧﺪ ﯾﻚ ﺿﻌﻒ ﺩﺭ ﭘﺮ ﻭﺗﻜﻞ ﯾﺎﺩﺷﺪﻩ ﺑﺎﺷﺪ‪،‬‬
‫ﮔﺰﺍﺭﺵ ﻧﺸﺪﻩ ﺍﺳﺖ‪.‬‬

‫ﺍﺛﺒﺎﺕ ﺻﺤﺖ ﺭﻣﺰﮔﺸﺎﯾﯽ‬ ‫‪۲.۳‬‬

‫ﭼﻨﺎﻥ ﻛﻪ ﭘﯿﺸﺘﺮ ﺍﺷﺎﺭﻩ ﺷﺪ ﯾﻜﯽ ﺍﺯ ﻣﺸﻜﻼﺗﯽ ﻛﻪ ﻣﻤﻜﻦ ﺍﺳﺖ ﺩﺭ ﺳﯿﺴﺘﻢ ﺭﻣﺰﮔﺬﺍﺭﯼ ﻣﻌﺮﻓﯽ ﺷﺪﻩ ﺑﻪ ﻭﻗﻮﻉ ﺑﭙﯿﻮﻧﺪﺩ ﺍﯾﻦ ﺍﺳﺖ‬
‫ﻛﻪ ﻧﻬﺎﺩ ﺑﺮﮔﺰﺍﺭﻛﻨﻨﺪﻩ ﺭﺃﯼﮔﯿﺮﯼ ﺁﺭﺍء ﺭﺍ ﺑﻪ ﺩﺭﺳﺘﯽ ﺭﻣﺰﮔﺸﺎﯾﯽ ﻧﻜﻨﺪ‪ .‬ﺩﺭ ﺍﯾﻦ ﻣﻮﺭﺩ ﺑﺮﮔﺰﺍﺭﻛﻨﻨﺪﻩ ﺑﺎﯾﺪ ﺛﺎﺑﺖ ﻛﻨﺪ ﻛﻪ ﺁﺭﺍء ﺭﺍ ﺑﻪ‬
‫ﺩﺭﺳﺘﯽ ﺭﻣﺰﮔﺸﺎﯾﯽ ﻧﻤﻮﺩﻩ ﺍﺳﺖ‪.‬‬
‫ﻓﺮﺽ ﻛﻨﯿﺪ ⟩‪ ⟨u, v‬ﺣﺎﺻﻞ ﺿﺮﺏ ﻛﻠﯿﻪ ﺁﺭﺍء ﺭﻣﺰﺷﺪﻩ ﺍﺭﺳﺎﻟﯽ ﺑﺎﺷﺪ‪ .‬ﺩﻗﺖ ﮐﻨﯿﺪ ﮐﻪ ﻫﺮ ﻓﺮﺩﯼ ﻣﯽﺗﻮﺍﻧﺪ ﺑﺎ ﺿﺮﺏ ﻛﺮﺩﻥ ﻫﻤﻪ‬
‫ﺁﺭﺍء ﻛﻪ ﺩﺭ ﺩﺳﺘﺮﺱ ﻋﻤﻮﻡ ﻗﺮﺍﺭ ﺩﺍﺭﻧﺪ‪ ،‬ﻣﻘﺎﺩﯾﺮ ‪ u‬ﻭ ‪ v‬ﺭﺍ ﻣﺤﺎﺳﺒﻪ ﻛﻨﺪ‪ .‬ﺑﻨﺎﺑﺮﺍﯾﻦ ﭼﻬﺎﺭﺗﺎﯾﯽ ﺯﯾﺮ ﺍﻃﻼﻋﺎﺗﯽ ﺍﺳﺖ ﻛﻪ ﺩﺭ ﺍﺧﺘﯿﺎﺭ‬
‫ﻋﻤﻮﻡ ﺍﺳﺖ‪ ،‬ﺍﻣﺎ ﺗﻨﻬﺎ ﺳﺮ ﻭﺭ ﺑﺮﮔﺰﺍﺭﻛﻨﻨﺪﻩ ﻛﻠﯿﺪ ﺧﺼﻮﺻﯽ ‪ x‬ﺭﺍ ﺩﺭ ﻣﯽﺩﺍﻧﺪ‪.‬‬

‫) ‪(g, h, u, v) = (g, g x , g r , m · g rx‬‬

‫‪∑N‬‬ ‫ﮐﻪ‬
‫‪vi‬‬
‫‪m=g‬‬ ‫‪i=۱‬‬

‫∑‬
‫‪N‬‬
‫=‪r‬‬ ‫‪ri‬‬
‫‪i=۱‬‬

‫ﻫﻤﭽﻨﯿﻦ ﭘﺲ ﺍﺯ ﺍﻧﺘﺸﺎﺭ ﺁﺭﺍﯼ ﺗﺠﻤﯿﻊ ﺷﺪﻩ‪ ،‬ﯾﻌﻨﯽ ‪ ،v۱ + · · · + vN‬ﺗﻮﺳﻂ ﺑﺮﮔﺰﺍﺭ ﮐﻨﻨﺪﻩ‪ ،‬ﻫﺮ ﻓﺮﺩﯼ ﻣﯽﺗﻮﺍﻧﺪ ﻣﻘﺪﺍﺭ ‪ m‬ﺭﺍ‬
‫ﻣﺤﺎﺳﺒﻪ ﮐﻨﺪ‪ .‬ﺑﻨﺎﺑﺮﺍﯾﻦ ﻧﻬﺎﺩ ﺑﺮﮔﺰﺍﺭﮐﻨﻨﺪﻩ ﺩﺭ ﻭﺍﻗﻊ ﺑﺎﯾﺪ ﺛﺎﺑﺖ ﮐﻨﺪ ﮐﻪ ﻣﺘﻦ ﺭﻣﺰﯼ ⟩‪ ⟨u, v‬ﺑﻪ ﺩﺭﺳﺘﯽ ﺑﻪ ‪ m‬ﺭﻣﺰﮔﺸﺎﯾﯽ ﻣﯽﺷﻮﺩ‪.‬‬
‫ﭼﻬﺎﺭﺗﺎﯾﯽ ﺯﯾﺮ ﺭﺍ ﺩﺭ ﻧﻈﺮ ﺑﮕﯿﺮ ﯾﺪ‪:‬‬
‫‪v‬‬
‫‪(g۱ , h۱ , g۲ , h۲ ) = (g, h, u,‬‬ ‫) ‪) = (g, g x , g r , g rx‬‬
‫‪m‬‬
‫‪۱۳ Honest‬‬
‫‪۱۴ Corrupt‬‬

‫ﺑﯿﺴﺖﻭﭼﻬﺎﺭﻡ‪۶-‬‬
‫ﺗﻮﺟﻪ ﮐﻨﯿﺪ ﮐﻪ ﺩﻭ ﻟﮕﺎﺭ ﯾﺘﻢ ﮔﺴﺴﺘﻪ ﺯﯾﺮ ﺑﺮﺍﺑﺮ ﺍﻧﺪ‪.‬‬

‫‪logg۱ h۱ = logg۲ h۲ = x‬‬

‫ﺑﻨﺎﺑﺮﺍﯾﻦ ﻣﺴﺎﻟﻪ ﺍﺛﺒﺎﺕ ﺻﺤﺖ ﺭﻣﺰﮔﺸﺎﯾﯽ ﺑﻪ ﻣﺴﺎﻟﻪ ﺍﺛﺒﺎﺕ ﺑﺮﺍﺑﺮﯼ ﻟﮕﺎﺭ ﯾﺘﻢ ﮔﺴﺴﺘﻪ ﺗﺒﺪﯾﻞ ﻣﯽﮔﺮﺩﺩ‪ .‬ﯾﻌﻨﯽ ﺑﺮﮔﺰﺍﺭﻛﻨﻨﺪﻩ ﻣﯽﺗﻮﺍﻧﺪ‬
‫ﺑﻪ ﻃﻮﺭ ﻣﻌﺎﺩﻝ ﺛﺎﺑﺖ ﻛﻨﺪ ﺩﻭ ﻟﮕﺎﺭ ﯾﺘﻢ ﻓﻮﻕ ﮔﺴﺴﺘﻪ ﺑﺮﺍﺑﺮﻧﺪ‪ .‬ﺩﻗﺖ ﮐﻨﯿﺪ ﮐﻪ ﺍﯾﻦ ﮐﺎﺭ ﺑﺪﻭﻥ ﺍﻓﺸﺎﯼ ﻫﯿﭻﮔﻮﻧﻪ ﺍﻃﻼﻋﺎﺗﯽ ﺩﺭ ﻣﻮﺭﺩ‬
‫ﻣﻘﺪﺍﺭ ‪ x‬ﺑﺎﯾﺪ ﺻﻮﺭﺕ ﮔﯿﺮﺩ‪.‬‬
‫ﺑﺮﺍﯼ ﺍﺛﺒﺎﺕ ﺑﺮﺍﺑﺮﯼ ﻟﮕﺎﺭ ﯾﺘﻢ ﮔﺴﺴﺘﻪ ﻧﯿﺰ ﭘﺮ ﻭﺗﻜﻞ ﺯﯾﺮ ﺭﺍ ﺑﯿﻦ ﺍﺛﺒﺎﺕﻛﻨﻨﺪﻩ ﺑﺎ ﻭﺭ ﻭﺩﯼ ‪ x‬ﻭ ﺗﺄﯾﯿﺪﻛﻨﻨﺪﻩ ﺑﺎ ﻭﺭ ﻭﺩﯼﻫﺎﯼ‬
‫) ‪ (g۱ , h۱ , g۲ , h۲‬ﻣﻌﺮﻓﯽ ﻣﯽﻛﻨﯿﻢ‪ .‬ﺩﺭ ﺍﯾﻦ ﭘﺮ ﻭﺗﻜﻞ‪ ،‬ﺭ ﻭﺍﺑﻂ ﺯﯾﺮ ﺑﯿﻦ ﻭﺭ ﻭﺩﯼﻫﺎ ﺻﺎﺩﻕ ﺍﺳﺖ‪.‬‬

‫‪h۱ = g۱x‬‬
‫‪h۲ = g۲x‬‬

‫‪ P‬ﺍﺛﺒﺎﺕﻛﻨﻨﺪﻩ‬ ‫‪ V‬ﺗﺄﯾﯿﺪﻛﻨﻨﺪﻩ‬
‫)‪P (g۱ , h۱ , g۲ , h۲ ; x‬‬ ‫) ‪V (g۱ , h۱ , g۲ , h۲‬‬

‫‪a ← Zq‬‬

‫‪A۱ = g۱a‬‬
‫‪A۱ , A۲‬‬
‫‪A۲ = g۲a‬‬

‫‪c‬‬ ‫‪c ← Zq‬‬


‫{‬
‫?‬
‫‪z‬‬ ‫‪g۱z = A۱ · hc۱‬‬
‫‪z = a + cx‬‬ ‫?‬
‫‪g۲z = A۲ · hc۲‬‬
‫‪.‬‬

‫ﻋﻤﻠﻜﺮﺩ ﺍﯾﻦ ﭘﺮ ﻭﺗﻜﻞ ﻫﻤﺎﻧﻨﺪ ﺍﺟﺮﺍﯼ ﻫﻢﺯﻣﺎﻥ ﺩﻭ ﻧﺴﺨﻪ ﭘﺮ ﻭﺗﻜﻞ ﺍﺷﻨﻮﺭ ﺍﺳﺖ‪ .‬ﻗﺎﺑﻞ ﺗﻮﺟﻪ ﺍﺳﺖ ﻛﻪ ﺩﺭ ﺍﯾﻦ ﭘﺮ ﻭﺗﻜﻞ ﺗﺄﯾﯿﺪﻛﻨﻨﺪﻩ‬
‫ﻋﻼﻭﻩ ﺑﺮ ﺍﯾﻦ ﻛﻪ ﺛﺎﺑﺖ ﻣﯽﻛﻨﺪ ﺩﻭ ﻟﮕﺎﺭ ﯾﺘﻢ ﮔﺴﺴﺘﻪ ﺑﺮﺍﺑﺮ ﺍﻧﺪ‪ ،‬ﺩﺍﻧﺶ ﺧﻮﺩ ﺑﻪ ﻣﻘﺪﺍﺭ ‪ x‬ﺭﺍ ﻧﯿﺰ ﺍﺛﺒﺎﺕ ﻣﯽﻛﻨﺪ‪ .‬ﻧﻜﺘﻪ ﻣﻬﻢ ﺩﯾﮕﺮ‬
‫ﺍﯾﻦ ﺍﺳﺖ ﻛﻪ ﭼﻨﺎﻧﭽﻪ ﺭﻣﺰﮔﺸﺎﯾﯽ ﺁﺭﺍء ﺑﻪ ﺻﻮﺭﺕ ﺗﻮﺯﯾﻊ ﺷﺪﻩ ﻧﯿﺰ ﺍﻧﺠﺎﻡ ﯾﺎﺑﺪ‪ ،‬ﻫﻤﭽﻨﺎﻥ ﻣﯽﺗﻮﺍﻥ ﺑﺎ ﺍﺳﺘﻔﺎﺩﻩ ﺍﺯ ﺳﯿﺴﺘﻤﯽ ﻣﺒﺘﻨﯽ‬
‫ﺑﺮ ﭘﺮ ﻭﺗﻜﻞ ﯾﺎﺩﺷﺪﻩ‪ ،‬ﺻﺤﺖ ﺭﻣﺰﮔﺸﺎﯾﯽ ﺩﺭ ﻫﺮ ﻗﺴﻤﺖ ﺭﺍ ﺍﺣﺮﺍﺯ ﻧﻤﻮﺩ‪ .‬ﺩﺭ ﻣﻮﺭﺩ ﺭﻣﺰﮔﺸﺎﯾﯽ ﺗﻮﺯﯾﻊ ﺷﺪﻩ‪ ،‬ﺩﺭ ﺍﺩﺍﻣﻪ ﺗﻮﺿﯿﺤﺎﺕ‬
‫ﻻﺯﻡ ﺩﺍﺩﻩ ﺧﻮﺍﻫﺪ ﺷﺪ‪.‬‬

‫‪ ۳.۳‬ﺍﺛﺒﺎﺕ ﺻﻔﺮ ﯾﺎ ﯾﻚ ﺑﻮﺩﻥ ﺭﺃﯼ ﺩﺍﺩﻩ ﺷﺪﻩ‬

‫ﺑﺮﺍﯼ ﺍﯾﻨﻜﻪ ﺻﺤﺖ ﻓﺮﺁﯾﻨﺪ ﺭﺃﯼﮔﯿﺮﯼ ﺯﯾﺮ ﺳﻮﺍﻝ ﻧﺮ ﻭﺩ‪ ،‬ﺑﺎﯾﺪ ﻣﻄﻤﺌﻦ ﺑﺎﺷﯿﻢ ﻛﻪ ﻫﯿﭻ ﺭﺃﯼﺩﻫﻨﺪﻩﺍﯼ ﻣﻘﺪﺍﺭﯼ ﻏﯿﺮ ﺍﺯ ﺻﻔﺮ ﯾﺎ‬
‫ﯾﻚ ﺭﺍ ﺭﻣﺰ ﻧﻤﯽﻛﻨﺪ‪ .‬ﺭﺃﯼﺩﻫﻨﺪﻩﺍﯼ ﺭﺍ ﺩﺭ ﻧﻈﺮ ﺑﮕﯿﺮ ﯾﺪ ﻛﻪ ﻣﻘﺪﺍﺭ ‪ g ۰‬ﯾﺎ ‪ g ۱‬ﺭﺍ ﺑﺎ ﺍﺳﺘﻔﺎﺩﻩ ﺍﺯ ﻣﻘﺪﺍﺭ ﺗﺼﺎﺩﻓﯽ ‪ r‬ﺗﻮﺳﻂ ﺍﻟﮕﻤﺎﻝ‪،‬‬
‫ﺭﻣﺰ ﻧﻤﻮﺩﻩ ﻭ ﺭﺃﯼ ﺭﻣﺰ ﺷﺪﻩ ﺭﺍ ﺑﻪ ﺻﻮﺭﺕ ⟩‪ ⟨u, v‬ﺍﺭﺳﺎﻝ ﻧﻤﻮﺩﻩ ﺍﺳﺖ‪ .‬ﯾﻌﻨﯽ‪:‬‬

‫ﺑﯿﺴﺖﻭﭼﻬﺎﺭﻡ‪۷-‬‬
‫⟩ ‪⟨u, v⟩ = ⟨g r , g ۰ · hr‬‬ ‫ﯾﺎ‬ ‫⟩ ‪⟨u, v⟩ = ⟨g r , g ۱ · hr‬‬

‫ﺩﺭ ﺍﯾﻦ ﻣﻮﺭﺩ ﻛﺎﻓﯽ ﺍﺳﺖ ﺭﺃﯼﺩﻫﻨﺪﻩ ﺛﺎﺑﺖ ﻧﻤﺎﯾﺪ ﻛﻪ ﻟﮕﺎﺭ ﯾﺘﻢ ﮔﺴﺴﺘﻪ ‪ logg u‬ﺑﺮﺍﺑﺮ ﺍﺳﺖ ﺑﺎ ﯾﮑﯽ ﺍﺯ ﺩﻭ ﻟﮕﺎﺭ ﯾﺘﻢ ﮔﺴﺴﺘﻪ ‪logh v‬‬
‫ﯾﺎ ‪ .logh v/g‬ﺑﺎ ﺍﺳﺘﻔﺎﺩﻩ ﺍﺯ ﺷﮕﺮﺩ ‪ OR‬ﻣﯽﺗﻮﺍﻥ ﭘﺮ ﻭﺗﮑﻞ ﺍﺛﺒﺎﺕ ﺑﺮﺍﺑﺮﯼ ﻟﮕﺎﺭ ﯾﺘﻢ ﮔﺴﺴﺘﻪ ﺭﺍ ﺑﻪ ﭘﺮ ﻭﺗﮑﻠﯽ ﺑﺮﺍﯼ ﺍﯾﻦ ﻣﻨﻈﻮﺭ ﺗﺒﺪﯾﻞ‬
‫ﮐﺮﺩ‪.‬‬
‫ﺩﺭ ﺍﯾﻨﺠﺎ ﺷﮕﺮﺩ ‪ OR‬ﺭﺍ ﺑﺮﺍﯼ ﭘﺮ ﻭﺗﮑﻞ ﺍﺛﺒﺎﺕ ﺩﺍﻧﺶ ﻟﮕﺎﺭ ﯾﺘﻢ ﮔﺴﺴﺘﻪ ﻣﻄﺮﺡ ﻣﯽﮐﻨﯿﻢ‪ .‬ﻭﻟﯽ ﺍﯾﻦ ﺷﮕﺮﺩ ‪ OR‬ﮐﻠﯽ ﺍﺳﺖ ﻭ ﺑﻪ‬
‫ﻃﻮﺭ ﻣﺸﺎﺑﻬﯽ ﺑﺮﺍﯼ ﻣﺴﺄﻟﻪ ﺑﺮﺍﺑﺮﯼ ﻟﮕﺎﺭ ﯾﺘﻢ ﻧﯿﺰ ﻗﺎﺑﻞ ﺗﻄﺒﯿﻖ ﺍﺳﺖ‪.‬‬

‫ﺷﮕﺮﺩ ‪ .OR‬ﻓﺮﺽ ﮐﻨﯿﺪ ﺗﺄﯾﯿﺪﻛﻨﻨﺪﻩ ﻣﻘﺎﺩﯾﺮ ‪ h۱ ،g‬ﻭ ‪ h۲‬ﺭﺍ ﻣﯽﺩﺍﻧﺪ ﻭ ﺍﺛﺒﺎﺕﻛﻨﻨﺪﻩ ﺩﺭ ﭘﯽ ﺁﻥ ﺍﺳﺖ ﻛﻪ ﺛﺎﺑﺖ ﻛﻨﺪ ﯾﮑﯽ ﺍﺯ‬
‫ﺩﻭ ﻟﮕﺎﺭ ﯾﺘﻢ ﮔﺴﺴﺘﻪ ‪ logg h۱‬ﯾﺎ ‪ logg h۲‬ﺭﺍ ﻣﯽﺩﺍﻧﺪ‪ ،‬ﺑﺪﻭﻥ ﺍﯾﻨﻜﻪ ﺍﻃﻼﻋﺎﺗﯽ ﺑﺪﻫﺪ ﺩﺭ ﻣﻮﺭﺩ ﺍﯾﻨﻜﻪ ﻛﺪﺍﻡ ﯾﻚ ﺭﺍ ﻣﯽﺩﺍﻧﺪ ﻭ ﯾﺎ‬
‫ﺍﻃﻼﻋﺎﺗﯽ ﺩﺭ ﻣﻮﺭﺩ ﻣﻘﺪﺍﺭ ﻟﮕﺎﺭ ﯾﺘﻢ ﮔﺴﺴﺘﻪ ﺍﻓﺸﺎ ﮐﻨﺪ‪ .‬ﺑﺮﺍﯼ ﺣﻞ ﺍﯾﻦ ﻣﺴﺎﻟﻪ ﺷﮕﺮﺩ ‪ OR‬ﺍﺯ ﭘﺮ ﻭﺗﮑﻞ ﺍﺛﺒﺎﺕ ﺩﺍﻧﺶ ﻟﮕﺎﺭ ﯾﺘﻢ‬
‫ﮔﺴﺴﺘﻪ ﺑﻪ ﻧﺤﻮ ﻣﻄﻠﻮﺑﯽ ﺍﺳﺘﻔﺎﺩﻩ ﻣﯽﮐﻨﺪ‪ .‬ﺩﺭ ﺫﯾﻞ‪ ،‬ﺍﯾﻦ ﭘﺮ ﻭﺗﻜﻞ ﺑﺮﺍﯼ ﺣﺎﻟﺘﯽ ﺗﻮﺻﯿﻒ ﺷﺪﻩ ﺍﺳﺖ ﻛﻪ ﺍﺛﺒﺎﺕﻛﻨﻨﺪﻩ ‪ logg h۱‬ﺭﺍ‬
‫ﻣﯽﺩﺍﻧﺪ‪ .‬ﺣﺎﻟﺖ ﺩﯾﮕﺮ ﻛﻪ ﺍﺛﺒﺎﺕﻛﻨﻨﺪﻩ ‪ logg h۲‬ﺭﺍ ﻣﯽﺩﺍﻧﺪ‪ ،‬ﺑﻪ ﺻﻮﺭﺕ ﻣﺸﺎﺑﻪ ﺑﺎ ﺟﺎﺑﺠﺎ ﻛﺮﺩﻥ ﺍﻧﺪﯾﺲﻫﺎ ﺑﻪ ﺩﺳﺖ ﻣﯽﺁﯾﺪ‪.‬‬

‫‪ P‬ﺍﺛﺒﺎﺕﻛﻨﻨﺪﻩ‬ ‫‪ V‬ﺗﺄﯾﯿﺪﻛﻨﻨﺪﻩ‬
‫)‪P (g, h۱ , h۲ ; x‬‬ ‫) ‪V (g, h۱ , h۲‬‬

‫‪a ← Zq‬‬
‫‪A۱ = g a‬‬
‫‪c۲ ← Zq‬‬
‫‪z۲ ← Zq‬‬
‫‪g z۲‬‬ ‫‪A۱ , A۲‬‬
‫‪A۲ = c۲‬‬
‫‪h۲‬‬
‫‪c‬‬
‫‪c ← Zq‬‬

‫‪c۱ = c − c۲‬‬
‫‪z۱ , z۲ , c۱ , c۲‬‬ ‫‪‬‬
‫‪‬‬ ‫? ‪z‬‬ ‫‪c۱‬‬
‫‪z۱ = a + c۱ x‬‬ ‫‪ g ۱ = A۲ · h۱‬‬
‫?‬
‫‪g z۲ = A۲ · hc۲۲‬‬
‫‪‬‬
‫‪‬‬ ‫?‬
‫‪c۱ + c۲ = c‬‬

‫‪.‬‬

‫ﺩﺭ ﭘﺮ ﻭﺗﻜﻠﯽ ﻛﻪ ﺗﻮﺻﯿﻒ ﺷﺪ‪ ،‬ﺩﺭ ﺣﻘﯿﻘﺖ ﺍﺛﺒﺎﺕﻛﻨﻨﺪﻩ ﺳﻪﺗﺎﯾﯽ ) ‪ (A۲ , c۲ , z۲‬ﺭﺍ ﺑﺎ ﺷﺒﯿﻪﺳﺎﺯﯼ ﺗﻮﻟﯿﺪ ﻣﯽﻛﻨﺪ ﺑﻪ ﻃﻮﺭﯼ ﻛﻪ‬
‫‪g z۲‬‬
‫ﺭﺍﺑﻄﻪ ‪ A۲ = c۲‬ﺑﺮﻗﺮﺍﺭ ﺑﺎﺷﺪ‪ .‬ﺑﻪ ﻫﻤﯿﻦ ﺩﻟﯿﻞ ﺍﺛﺒﺎﺕﻛﻨﻨﺪﻩ ﺑﯽﺁﻧﮑﻪ ‪ x = logg h۲‬ﺭﺍ ﺑﺪﺍﻧﺪ‪ ،‬ﺳﻪﺗﺎﯾﯽ ﻣﻌﺘﺒﺮﯼ ﺗﻮﻟﯿﺪ ﮐﺮﺩﻩ‬
‫‪h۲‬‬
‫ﺍﺳﺖ ﮐﻪ ﺷﺮﻁ ﺩﻭﻡ ﺗﺄﯾﯿﺪﮐﻨﻨﺪﻩ ﺭﺍ ﺍﺭﺿﺎ ﻣﯽﮐﻨﺪ‪ .‬ﺩﺍﺭ ﯾﻢ‪:‬‬

‫‪g z۲‬‬
‫= ‪A۲‬‬ ‫‪=⇒ g z۲ = A۲ · hc۲۲‬‬
‫‪hc۲۲‬‬

‫ﺑﯿﺴﺖﻭﭼﻬﺎﺭﻡ‪۸-‬‬
‫ﺍﻣﺎ ﺍﺯ ﻃﺮﻑ ﺩﯾﮕﺮ ﻓﺮﺽ ﻛﺮﺩﯾﻢ ﻛﻪ ﺍﺛﺒﺎﺕﻛﻨﻨﺪﻩ ‪ logg h۱‬ﺭﺍ ﻣﯽﺩﺍﻧﺪ‪ .‬ﯾﻌﻨﯽ ﺩﺭ ﻭﺍﻗﻊ ﻣﯽﺩﺍﻧﺪ ﻛﻪ ‪ .x = logg h۱‬ﺩﺍﺭ ﯾﻢ‪:‬‬

‫‪x = logg h۱ =⇒ g x = h۱‬‬


‫‪=⇒ g c۱ x = h۱ c۱‬‬
‫‪=⇒ g a · g c۱ x = g a · h۱ c۱‬‬
‫‪=⇒ g a+c۱ x = g a · h۱ c۱‬‬
‫‪=⇒ g z۱ = A۱ · h۱ c۱‬‬

‫ﺑﻨﺎﺑﺮﺍﯾﻦ ﺍﺛﺒﺎﺕﻛﻨﻨﺪﻩ ﻫﺮ ﺳﻪ ﺭﺍﺑﻄﻪ ﺗﺴﺎﻭﯼ ﻣﺪ ﻧﻈﺮ ﺗﺄﯾﯿﺪﻛﻨﻨﺪﻩ ﺭﺍ ﺑﺮﺁﻭﺭﺩﻩ ﻣﯽﺳﺎﺯﺩ‪ .‬ﺩﻗﺖ ﻛﻨﯿﺪ ﻛﻪ ﺷﺮﻁ ﺳﻮﻡ ﯾﻌﻨﯽ ﺗﺴﺎﻭﯼ‬
‫?‬
‫‪ c۱ + c۲ = c‬ﺗﻨﻬﺎ ﺑﻪ ﺍﯾﻦ ﺩﻟﯿﻞ ﺩﺭ ﭘﺮ ﻭﺗﻜﻞ ﺗﻌﺒﯿﻪ ﺷﺪﻩ ﻛﻪ ﺍﺛﺒﺎﺕ ﻛﻨﻨﺪﻩ ﻣﺠﺒﻮﺭ ﺑﺎﺷﺪ ﻣﻘﺪﺍﺭ ‪ c۱‬ﺭﺍ ﺣﺘﻤﺎً ﺍﺯ ﻃﺮ ﯾﻖ ﺭﺍﺑﻄﻪ‬
‫‪ c۱ = c − c۲‬ﻣﺤﺎﺳﺒﻪ ﻛﻨﺪ‪ .‬ﺑﻪ ﺍﯾﻦ ﺗﺮﺗﯿﺐ ﺍﺛﺒﺎﺕﻛﻨﻨﺪﻩ ﻧﺨﻮﺍﻫﺪ ﺗﻮﺍﻧﺴﺖ ﺳﻪﺗﺎﯾﯽ ) ‪ � (A۱ , c۱ , z۱‬ﺭﺍ ﺷﺒﯿﻪﺳﺎﺯﯼ ﻛﻨﺪ ﻭ ﺗﻨﻬﺎ‬
‫ﺩﺭ ﺻﻮﺭﺗﯽ ﻗﺎﺩﺭ ﺑﻪ ﮔﺬﺭﺍﻧﺪﻥ ﺁﺯﻣﻮﻥ ﻧﻬﺎﯾﯽ ﭘﺮ ﻭﺗﻜﻞ ﺧﻮﺍﻫﺪ ﺑﻮﺩ ﻛﻪ ﻭﺍﻗﻌﺎً ﻣﻘﺪﺍﺭ ‪ x‬ﯾﻌﻨﯽ ﻟﮕﺎﺭ ﯾﺘﻢ ﮔﺴﺴﺘﻪ ‪ h۱‬ﺩﺭ ﻣﺒﻨﺎﯼ ‪ g‬ﺭﺍ‬
‫ﺑﺪﺍﻧﺪ‪.‬‬

‫ﺭﻣﺰﮔﺸﺎﯾﯽ ﺗﻮﺯﯾﻊ ﺷﺪﻩ‬ ‫‪۴.۳‬‬

‫ﭘﯿﺸﺘﺮ ﺍﺷﺎﺭﻩ ﺷﺪ ﻛﻪ ﺩﺭ ﺳﯿﺴﺘﻢ ﺭﺃﯼﮔﯿﺮﯼ ﻣﻌﺮﻓﯽ ﺷﺪﻩ‪ ،‬ﻧﻬﺎﺩ ﺑﺮﮔﺰﺍﺭﻛﻨﻨﺪﻩ ﺑﻪ ﺁﺭﺍﯼ ﯾﻜﺎﯾﻚ ﺭﺃﯼﺩﻫﻨﺪﮔﺎﻥ ﺩﺳﺘﺮﺳﯽ ﺩﺍﺭﺩ ﻭ‬
‫ﻣﯽﺗﻮﺍﻧﺪ ﻣﺸﺨﺺ ﺳﺎﺯﺩ ﻛﻪ ﻫﺮ ﻓﺮﺩ ﭼﻪ ﺭﺃﯾﯽ ﺩﺍﺩﻩ ﺍﺳﺖ‪ .‬ﺭﺍﻩ ﺣﻞ ﺍﯾﻦ ﻣﺸﻜﻞ ﺍﻣﺎ ﺷﺒﺎﻫﺖ ﭼﻨﺪﺍﻧﯽ ﺑﻪ ﻣﻮﺍﺭﺩ ﮔﻔﺘﻪ ﺷﺪﻩ ﻗﺒﻠﯽ‬
‫ﻧﺪﺍﺭﺩ‪ .‬ﺑﺮﺍﯼ ﺣﻞ ﺍﯾﻦ ﻣﺸﻜﻞ ﺍﺯ ﺭﻣﺰﮔﺸﺎﯾﯽ ﺗﻮﺯﯾﻊﺷﺪﻩ ﺍﺳﺘﻔﺎﺩﻩ ﻣﯽﻛﻨﯿﻢ‪.‬‬
‫‪۱۵‬‬
‫ﺭﺍ ﻣﻄﺮﺡ ﻣﯽﻛﻨﯿﻢ ﻭ ﺳﭙﺲ ﺑﻪ ﻣﺴﺎﻟﻪ ﺍﺻﻠﯽ ﺑﺎﺯﺧﻮﺍﻫﯿﻢ ﮔﺸﺖ‪.‬‬ ‫ﺩﺭ ﺍﯾﻨﺠﺎ ﺍﺑﺘﺪﺍ ﻣﺴﺎﻟﻪ ﺗﺴﻬﯿﻢ ﺭﺍﺯ‬

‫ﻣﺴﺎﻟﻪ ﺗﺴﻬﯿﻢ ﺭﺍﺯ‬

‫ﻣﯽﺧﻮﺍﻫﯿﻢ ﺭﺍﺯﯼ ﻣﺎﻧﻨﺪ ﻋﺪﺩ ‪ S ∈ Zp‬ﺭﺍ ﺑﯿﻦ ‪ n‬ﻧﻔﺮ ﺗﻘﺴﯿﻢ ﻛﻨﯿﻢ ﺑﻪ ﻃﻮﺭﯼ ﻛﻪ ﺍﯾﻦ ‪ n‬ﻧﻔﺮ ﺑﻪ ﻫﻤﺮﺍﻩ ﯾﻜﺪﯾﮕﺮ ﺑﺘﻮﺍﻧﻨﺪ ﻋﺪﺩ ‪S‬‬
‫ﺭﺍ ﭘﯿﺪﺍ ﻛﻨﻨﺪ‪ ،‬ﺍﻣﺎ ﻫﯿﭻ )‪ (n − ۱‬ﻧﻔﺮﯼ ﻧﺘﻮﺍﻧﻨﺪ ﺭﺍﺯ ﺭﺍ ﻛﺸﻒ ﻛﻨﻨﺪ‪ .‬ﺑﺮﺍﯼ ﺍﯾﻦ ﻣﻨﻈﻮﺭ ﻛﺎﻓﯽ ﺍﺳﺖ ﺑﻪ ﻫﺮ ﯾﻚ ﺍﺯ )‪ (n − ۱‬ﻧﻔﺮ‬
‫ﺍﻭﻝ‪ ،‬ﻋﺪﺩﯼ ﺗﺼﺎﺩﻓﯽ ﺍﺯ ‪ Zp‬ﺭﺍ ﺑﺪﻫﯿﻢ ﻭ ﺑﻪ ﻧﻔﺮ ﺁﺧﺮ ﻣﻘﺪﺍﺭ ‪ sn = S + s۱ + . . . + sn−۱‬ﺭﺍ ﻧﺴﺒﺖ ﺑﺪﻫﯿﻢ‪.‬‬

‫‪p۱‬‬ ‫‪s۱ ← Zp‬‬


‫‪p۲‬‬ ‫‪s۲ ← Zp‬‬
‫‪..‬‬ ‫‪..‬‬
‫‪.‬‬ ‫‪.‬‬
‫‪pn−۱‬‬ ‫‪sn−۱ ← Zp‬‬
‫‪pn‬‬ ‫‪sn = S + s۱ + . . . + sn−۱‬‬

‫ﭼﻨﺎﻥ ﻛﻪ ﻣﺸﺨﺺ ﺍﺳﺖ ﻫﯿﭻ ﯾﻚ ﺍﺯ ﺍﻓﺮﺍﺩ ﺑﻪ ﺗﻨﻬﺎﯾﯽ ﺭﺍﺯ ﺭﺍ ﻧﻤﯽﺩﺍﻧﻨﺪ ﻭ ﻇﺎﻫﺮﺍً ﺷﺮﺍﯾﻂ ﻣﺴﺎﻟﻪ ﺑﺮﺁﻭﺭﺩﻩ ﺷﺪﻩ ﺍﺳﺖ؛ ﭼﺮﺍ ﻛﻪ‬
‫ﺩﺍﺭ ﯾﻢ‪:‬‬
‫‪۱۵ Secret‬‬ ‫‪Sharing‬‬

‫ﺑﯿﺴﺖﻭﭼﻬﺎﺭﻡ‪۹-‬‬
‫‪S = −s۱ + . . . + sn‬‬

‫ﺍﻣﺎ ﯾﻚ ﻣﺸﻜﻞ ﻛﻪ ﺩﺭ ﺍﯾﻦ ﺭﺍﻩ ﺣﻞ ﺑﻪ ﭼﺸﻢ ﻣﯽﺁﯾﺪ ﺁﻥ ﺍﺳﺖ ﻛﻪ ﻣﻤﻜﻦ ﺍﺳﺖ ﯾﻜﯽ ﺍﺯ ﺍﻓﺮﺍﺩ ﻧﺨﻮﺍﻫﺪ ﻣﻘﺪﺍﺭ ‪ si‬ﺧﻮﺩ ﺭﺍ ﺑﻪ‬
‫ﺩﺭﺳﺘﯽ ﺍﻋﻼﻡ ﻛﻨﺪ‪ .‬ﺑﺪﯾﻦ ﻣﻨﻈﻮﺭ ﻻﺯﻡ ﺍﺳﺖ ﻣﻘﺎﺩﯾﺮ ‪ Yi = g si‬ﺭﺍ ﻧﯿﺰ ﺩﺭ ﺍﺧﺘﯿﺎﺭ ﻋﻤﻮﻡ ﻗﺮﺍﺭ ﺩﻫﯿﻢ ﺗﺎ ﺩﺭ ﺻﻮﺭﺕ ﺑﺮ ﻭﺯ ﭼﻨﯿﻦ‬
‫ﻣﺸﻜﻠﯽ‪ ،‬ﻓﺮﺩ ﻣﺘﻘﻠﺐ ﺷﻨﺎﺳﺎﯾﯽ ﮔﺮﺩﺩ‪.‬‬
‫ﺍﻣﺎ ﻣﺸﻜﻞ ﺩﯾﮕﺮﯼ ﻧﯿﺰ ﻭﺟﻮﺩ ﺩﺍﺭﺩ‪ .‬ﻣﻤﻜﻦ ﺍﺳﺖ ﯾﻜﯽ ﺍﺯ ﺍﻓﺮﺍﺩ ﺳﻬﯿﻢ‪ ،‬ﺍﺳﺎﺳﺎً ﺳﻬﻢ ﺧﻮﺩ ﺍﺯ ﺭﺍﺯ ﺭﺍ ﺍﻋﻼﻡ ﻧﻜﻨﺪ‪ .‬ﺩﺭ ﺍﯾﻦ ﺻﻮﺭﺕ‬
‫ﭼﻪ ﺑﺎﯾﺪ ﻛﺮﺩ؟‬
‫ﻣﺴﺎﻟﻪﺍﯼ ﻛﻪ ﻣﻄﺮﺡ ﺷﺪ ﺩﺭ ﻭﺍﻗﻊ ﺑﯿﺎﻧﮕﺮ ﺣﺎﻟﺘﯽ ﺧﺎﺹ ﺍﺯ ﺗﺴﻬﯿﻢ ﺭﺍﺯ ﺍﺳﺖ )ﺗﺴﻬﯿﻢ ﺭﺍﺯ )‪ .((n, n‬ﺣﺎﻟﺖ ﻛﻠﯽﺗﺮ ﻣﺴﺎﻟﻪ‪ ،‬ﺗﺴﻬﯿﻢ‬
‫ﺭﺍﺯ )‪ (t, n‬ﺍﺳﺖ ﻛﻪ ﺩﺭ ﺁﻥ ﻛﺸﻒ ﺭﺍﺯ ﺑﺎ ﻫﻤﺮﺍﻫﯽ ﻫﺮ ﺯﯾﺮﻣﺠﻤﻮﻋﻪ ﺣﺪﺍﻗﻞ ‪ t‬ﻧﻔﺮﯼ ﺍﺯ ﻣﺠﻤﻮﻉ ‪ n‬ﻧﻔﺮ ﻣﯿﺴﺮ ﺧﻮﺍﻫﺪ ﺑﻮﺩ‪ .‬ﺩﺭ‬
‫‪۱۶‬‬
‫ﺭﺍ ﻣﻌﺮﻓﯽ ﺧﻮﺍﻫﯿﻢ ﻧﻤﻮﺩ ﻛﻪ ﺟﻮﺍﺑﯽ ﺑﻪ ﻫﻤﯿﻦ ﺣﺎﻟﺖ ﻛﻠﯽﺗﺮ ﻣﺴﺎﻟﻪ ﺍﺳﺖ‪.‬‬ ‫ﺍﺩﺍﻣﻪ ﭘﺮ ﻭﺗﻜﻞ ﺗﺴﻬﯿﻢ ﺭﺍﺯ ﺷﺎﻣﯿﺮ‬

‫ﭘﺮ ﻭﺗﻜﻞ ﺗﺴﻬﯿﻢ ﺭﺍﺯ ﺷﺎﻣﯿﺮ‬

‫‪۱۶ Shamir‬‬

‫ﺑﯿﺴﺖﻭﭼﻬﺎﺭﻡ‪۱۰-‬‬

You might also like