Assignment2.pdf

‫ﺑﻪ ﻧﺎم ﺧﺪا‬
‫اﻣﻨﻴﺖ داده و ﺷﺒﻜﻪ‬
‫ﺗﻤﺮﻳﻦ ‪2‬‬
‫ﻣﻬﻠﺖ ﺗﺤﻮﻳﻞ‪ 12) 86/1/18 :‬ﺷﺐ(‬
‫در ﭘﺎﺳﺦ ﺑﻪ ﺗﻤﺮﻳﻨﺎت ﺑﻪ ﻧﻜﺎت زﻳﺮ ﺗﻮﺟﻪ داﺷﺘﻪ ﺑﺎﺷﻴﺪ‪:‬‬
‫•‬
‫ﺗﻌﺪاد زﻳﺎدي از اﻓﺮادي ﻛﻪ ﺗﻤﺮﻳﻦ ‪ 1‬را ﺗﺤﻮﻳﻞ دادﻧﺪ‪ ،‬از ‪ Delivery Guide‬ﭘﻴﺮوي ﻧﻜﺮده ﺑﻮدﻧﺪ‪ .‬ﭼﻮن اوﻟﻴﻦ‬
‫ﺗﻤﺮﻳﻦ ﺑﻮد‪ ،‬ﺗﺼﻤﻴﻢ ﮔﺮﻓﺘﻴﻢ اﻳﺮاد ﻧﮕﻴﺮﻳﻢ‪ .‬اﻣﺎ از اﻳﻦ ﺗﻤﺮﻳﻦ ﺑﻪ ﺑﻌﺪ ﻗﻄﻌﺎً ﭼﻨﻴﻦ ارﻓﺎﻗﻲ در ﻛﺎر ﻧﺨﻮاﻫﺪ ﺑﻮد! ‪ ‬‬
‫•‬
‫ﺣﺘﻤﺎً ‪ DeliveryGuide.pdf‬ﺟﺪﻳﺪ را ﻣﻄﺎﻟﻌﻪ ﻛﻨﻴﺪ‪ .‬ﺑﺮﺧﻲ از ﻗﻮاﻧﻴﻦ ﺑﻪ روز ﺷﺪه اﻧﺪ! ‪ ‬‬
‫‪Work expands to fill the time required for its completion! ‬‬
‫‪‐‐ Parkinson’s Law ‬‬
‫‪ ‬‬
‫‪ (1‬در ﻛﻼس اﺛﺒﺎت ﺷﺪ ﻛﻪ ﺳﺎﺧﺘﺎر ﻓﺎﻳﺴﺘﻞ ﺑﺮﮔﺸﺖ ﭘﺬﻳﺮ اﺳﺖ‪ DES .‬دو ﺑﻠﻮك ﺑـﻪ ﺳـﺎﺧﺘﺎر ﻓﺎﻳﺴـﺘﻞ اﺿـﺎﻓﻪ‬
‫ﻛﺮده اﺳﺖ‪ ،IP :‬و ‪ .IP‐1‬ﺛﺎﺑﺖ ﻛﻨﻴﺪ وﺟﻮد اﻳﻦ دو ﺑﻠﻮك در ﺑﺮﮔﺸﺖ ﭘﺬﻳﺮي ﺳﺎﺧﺘﺎر ﻓﺎﻳﺴـﺘﻞ ﺧﻠﻠـﻲ اﻳﺠـﺎد‬
‫ﻧﻤﻲﻛﻨﺪ‪ .‬‬
‫‪ (2‬در ﻣﻮرد ﺻﺤﺖ و ﺳﻘﻢ رواﺑﻂ زﻳﺮ ﺑﺤﺚ ﻛﻨﻴﺪ‪ :‬‬
‫‪DES (P1 , K ) = DES (P2 , K ) ‬‬
‫‪i. ∃P1 ≠ P2 , K‬‬
‫‪DES (P , K 1 ) = DES (P , K 2 ) ‬‬
‫‪ii. ∃P , K 1 ≠ K 2‬‬
‫‪ (3‬در ﺗﻤﺮﻳﻦ ﺳﺮي ‪ 1‬دﻳﺪﻳﻢ ﻛﻪ ﻣﻌﻤﺎري ﻓﺎﻳﺴﺘﻞ ﻧﻴﺎزي ﺑﻪ ﺑﺮﮔﺸﺖ ﭘﺬﻳﺮ ﺑﻮدن ﺗﺎﺑﻊ ‪ F‬ﻧﺪارد‪ .‬ﺣﺎل‪ ،‬ﺛﺎﺑﺖ ﻛﻨﻴﺪ‬
‫ﺗﺎﺑﻊ ‪ F‬در رﻣﺰ ‪ DES‬ﺑﺮﮔﺸﺖ ﭘﺬﻳﺮ ﻧﻴﺴﺖ‪ .‬‬
‫‪ (4‬ﺑﺎ ﺗﻮﺟﻪ ﺑﻪ ﺗﻌﺎرﻳﻒ ‪ connectionless integrity‬و ‪ ،connection‐oriented integrity‬ﺗﻮﺿﻴﺢ دﻫﻴﺪ ﻫﺮﻳـﻚ‬
‫از ﺳﺒﻜﻬﺎي رﻣﺰﻧﮕﺎري زﻳﺮ ﻛﺪام ﻳﻚ از اﻳﻦ دو ﺳﺮوﻳﺲ را ﻓﺮاﻫﻢ ﻣﻲﻛﻨﺪ )ﺗﻔﺴﻴﺮ ﺻﺤﻴﺢ ﻣﻌﻨـﻲ‬
‫ﺑﻪ ﻋﻬﺪة ﺷﻤﺎﺳﺖ(‪ :‬‬
‫‪.i‬‬
‫‪.ii‬‬
‫‪.iii‬‬
‫‪.iv‬‬
‫‪.v‬‬
‫‪ ECB‬‬
‫‪ CBC‬‬
‫‪ CFB‬‬
‫‪ OFB‬‬
‫‪ CTR‬‬
‫‪integrity‬‬
‫‪ CRC (5‬از روﺷﻬﺎي ﻣﻌﻤﻮل ﻛﺸﻒ ﺧﻄﺎ در ﻣﺨﺎﺑﺮات اﺳﺖ‪ CRC .‬ﺑﺎ اﺳﺘﻔﺎده از ﺟﺒﺮ ﭼﻨﺪﺟﻤﻠﻪاﻳﻬﺎ روي‬
‫)‪GF(2‬‬
‫ﺗﻌﺮﻳﻒ ﻣﻲﺷﻮد‪ .‬ﺑﺎ ﻣﻄﺎﻟﻌﺔ ‪ CRC‬از ﻣﻨﺒﻊ دﻟﺨﻮاه ﺧﻮد‪ ،‬ﺛﺎﺑﺖ ﻛﻨﻴﺪ ﺧﺎﺻﻴﺖ زﻳﺮ ﺑﺮﻗـﺮار اﺳـﺖ )‪ x‬ﻋـﺪدي‬
‫‪n‬‬
‫ﺑﻴﺘﻲ و ‪ y‬ﻋﺪدي ‪ m‬ﺑﻴﺘﻲ اﺳﺖ(‪ :‬‬
‫‪CRC ( x ⊕ y ) = CRC ( x) ⊕ CRC ( y ) ‬‬
‫‪ RC4 (6‬اﻟﮕﻮرﻳﺘﻤﻲ اﺳﺖ ﻛﻪ ﺑﺮاي رﻣﺰﻧﮕﺎري ﺟﺮﻳﺎﻧﻲ )‪ (stream cipher‬ﺑﻪ ﻛـﺎر ﻣـﻲرود‪ .‬ﺑـﺎ ﻣﻄﺎﻟﻌـﺔ ‪ RC4‬از‬
‫ﺑﺨﺶ ‪ 3- 6‬ﻛﺘﺎب ‪ (6.3‐ Stream Ciphers and RC4) Stallings‬ﺑﻪ ﭘﺮﺳﺸﻬﺎي زﻳﺮ ﭘﺎﺳﺦ دﻫﻴﺪ‪ :‬‬
‫‪.i‬‬
‫‪ RC4‬در اﺑﺘﺪا اﻟﮕﻮرﻳﺘﻤﻲ ﻣﺨﻔﻲ ﻣﺤﺴﻮب ﻣﻲﺷﺪ‪ .‬آﻳﺎ ﻣﺨﻔﻲ ﺑﻮدن اﻟﮕﻮرﻳﺘﻢ ﻛﻤﻜﻲ ﺑـﻪ اﻣﻨﻴـﺖ آن‬
‫ﻛﺮد؟ ﭼﺮا؟ ‪ ‬‬
‫‪.ii‬‬
‫ﭼﺮا از ‪ RC4‬ﺑﺮاي رﻣﺰﻧﮕﺎري ﺟﺮﻳﺎﻧﻲ اﺳﺘﻔﺎده ﻣﻲﺷﻮد؟ ‪ ‬‬
‫‪.iii‬‬
‫ﺛﺎﺑﺖ ﻛﻨﻴﺪ ‪ RC4‬داراي ﺧﺎﺻﻴﺖ زﻳﺮ اﺳﺖ‪ :‬‬
‫‪.iv‬‬
‫‪ (Wired‐Equivalent Privacy) WEP‬اﺳﺘﺎﻧﺪارد ﭘﻴﺸﻴﻦ ‪ IEEE‬ﺑـﺮاي ﺗـﺄﻣﻴﻦ اﻣﻨﻴـﺖ در ﺷـﺒﻜﻪﻫـﺎي‬
‫‪RC4(x ⊕ y ) = RC4(x ) ⊕ y ‬‬
‫ﺑﻴﺴﻴﻢ ﺑﻮد‪ .‬روش ﺣﻔﻆ ‪ integrity‬در ‪ WEP‬را ﻛﻪ ﻣﺒﺘﻨﻲ ﺑﺮ ‪ RC4‬و ‪ CRC‬اﺳﺖ‪ ،‬ﺗﻮﺿﻴﺢ دﻫﻴﺪ‪ .‬‬
‫‪.v‬‬
‫ﺑﺎ ﺗﻮﺟﻪ ﺑﻪ ﺳﺆال ‪ 5‬و ﻗﺴﻤﺖ ‪ iii‬ﻫﻤﻴﻦ ﺳﺆال‪ ،‬ﺣﻤﻠـﻪاي ﻃﺮاﺣـﻲ ﻛﻨﻴـﺪ ﻛـﻪ ﻣﻜﺎﻧﻴﺴـﻢ‬
‫‪integrity‬‬
‫اﺳﺘﺎﻧﺪارد ‪ WEP‬را زﻳﺮ ﺳﺆال ﺑﺒﺮد‪ .‬آﻳﺎ اﻳﻦ ﺣﻤﻠﻪ ﻧﺎﺷﻲ از ﺿﻌﻒ ‪ RC4‬اﺳﺖ؟ ‪ ‬‬
‫‪ (7‬در ﻣﻄﺎﻟﻌﺔ ‪ RC4‬ﻣﻼﺣﻈﻪ ﻛﺮدﻳﺪ ﻛﻪ ﻫﺪف از رﻣﺰﻫﺎي ﺟﺮﻳﺎﻧﻲ‪ ،‬ﺳـﺎﺧﺘﻦ »ﻛﻠﻴـﺪي ﺷـﺒﻪ ﺗﺼـﺎدﻓﻲ‪ 1‬ﺑـﺎ دورة‬
‫ﺗﻨﺎوب ﻃﻮﻻﻧﻲ« اﺳﺖ‪ .‬در اﻳﻦ ﺗﻤﺮﻳﻦ ﺑﺎ ﺧﻮاص اﻋﺪاد ﺷﺒﻪ ﺗﺼﺎدﻓﻲ آﺷﻨﺎ ﻣﻲﺷﻮﻳﻢ‪ .‬‬
‫‪.i‬‬
‫ﺑﺎ ﺗﻮﺟﻪ ﺑﻪ اﻳﻨﻜﻪ ﻛﺎﻣﭙﻴﻮﺗﺮﻫـﺎ ‪ (Finite‐State Machine) FSM‬ﻫﺴـﺘﻨﺪ‪ ،‬ﺗﻮﺿـﻴﺢ دﻫﻴـﺪ ﭼـﺮا ﻳـﻚ‬
‫ﻛﺎﻣﭙﻴﻮﺗﺮ ﻫﺮﮔﺰ ﻧﻤﻲﺗﻮاﻧﺪ ﻋﺪدي ﺗﺼﺎدﻓﻲ ﺑﺎ »دورة ﺗﻨﺎوب ﺑﻴﻨﻬﺎﻳﺖ« ﺗﻮﻟﻴﺪ ﻛﻨﺪ‪ .‬‬
‫‪.ii‬‬
‫اﻋﺪاد »ﺗﺼﺎدﻓﻲ« ﻛﻪ ﻳﻚ ﻛﺎﻣﭙﻴﻮﺗﺮ ﺗﻮﻟﻴﺪ ﻣﻲﻛﻨﺪ‪» ،‬ﺷﺒﻪ ﺗﺼﺎدﻓﻲ« ﻧﺎﻣﻴﺪه ﻣﻲﺷﻮﻧﺪ ﭼﻮن داراي دورة‬
‫ﺗﻨﺎوب ﻣﺤﺪود ﻫﺴﺘﻨﺪ‪ .‬اﻳﻦ اﻋﺪاد ﺑﺎﻳﺪ در ﻳﻚ دورة ﺗﻨـﺎوب ﺧـﻮد ﺧﻮاﺻـﻲ »ﺗﺼـﺎدﻓﻲ« از ﺧـﻮد‬
‫‪ ‬‬
‫‪ ‬‬
‫‪Pseudo‐random ‬‬
‫‪1‬‬
‫ ﻛﻪ ﺷﺮاﻳﻂ ﻻزم )و ﻧﻪ ﻛﺎﻓﻲ( ﺑﺮاي ﺷﺒﻪ‬2‫( اﺻﻮﻟﻲ وﺿﻊ ﻛﺮده اﺳﺖ‬Golomb) ‫ ﮔﻮﻟﻤﺐ‬.‫ﺑﺮوز دﻫﻨﺪ‬
‫ اﺻﻮل ﮔﻮﻟﻤﺐ را از ﻣﻨﺒﻊ دﻟﺨﻮاه ﺧـﻮد ﻣﻄﺎﻟﻌـﻪ ﻛـﺮده و‬.‫ﺗﺼﺎدﻓﻲ ﺑﻮدن ﻳﻚ ﻋﺪد را ﺑﻴﺎن ﻣﻲﻛﻨﻨﺪ‬
:‫ زﻳﺮ ﺷﺒﻪ ﺗﺼﺎدﻓﻲ ﻫﺴﺘﻨﺪ‬16 ‫ﺑﺮرﺳﻲ ﻛﻨﻴﺪ ﻛﺪام ﻳﻚ از اﻋﺪاد ﻣﺒﻨﺎي‬
•
0xF00F •
0xD89F •
0x8FF0 :‫ ﺗﻮﻟﻴﺪ ﻧﻤﻲﻛﻨﺪ‬3‫ زﻳﺮ ﻋﺪد ﺗﺼﺎدﻓﻲ اﻣﻦ‬C ‫ﺗﻮﺿﻴﺢ دﻫﻴﺪ ﭼﺮا ﻛﺪ‬
.iii
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main()
{
/* seed the random number generator,
* using the current time
*/
srand(time(0));
/* print the random number in hex format */
printf("0x%x\n", rand());
return 0;
}
2
Golomb's randomness postulates 3
Cryptographically‐secure random number