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

Introduction To Cryptography

Uploaded by

A D
Copyright
© © All Rights Reserved
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
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