You are on page 1of 119

1

PDF created with pdfFactory Pro trial version www.pdffactory.com


‫‪‬‬

‫ﻭﺍﻟﺼﻼﺓ ﻭﺍﻟﺴﻼﻡ ﻋﻠﻰ ﺃﺷﺮﻑ ﺍﻟﺨﻠﻖ ﻭﺍﻟﻤﺮﺳﻠﻴﻦ ‪ ،‬ﻧﺒﻴﻨﺎ ﻣﺤﻤﺪ ﻋﻠﻴﻪ ﺃﻓﻀﻞ‬
‫ﺍﻟﺼﻼﺓ ﻭﺍﻟﺘﺴﻠﻴﻢ ‪ ،‬ﺃﻣﺎ ﺑﻌﺪ ‪،‬‬
‫ﺑﻴﻦ ﻳﺪﻳﻚ ﺃﺧﻲ ﺍﻟﻘﺎﺭﺉ ﺍﻟﻜﺮﻳﻢ ‪ ،‬ﻛﺘﻴﺐ ﺑﺴﻴﻂ ﻳﺘﻨﺎﻭﻝ ﻭﺑﺸﻜﻞ ﺳﺮﻳﻊ ﺍﻟﺘﺸﻔﻴﺮ ﺑﺎﻟﻄﺮﻕ‬
‫ﺍﻟﻜﻼﺳﻴﻜﻴﺔ ‪ ،‬ﻭﺍﻟﺬﻱ ﻛﺎﻥ ﻓﻲ ﺍﻷﺻﻞ ﻋﺒﺎﺭﺓ ﻋﻦ ﻣﺠﻤﻮﻋﻪ ﻣﻦ ﺍﻟﺪﺭﻭﺱ ﻗﻤﺖ ﺑﻮﺿﻌﻬﺎ ﻓﻲ‬
‫ﻣﻨﺘﺪﻳﺎﺕ ﺍﻟﻌﺎﺻﻔﺔ ‪ ، www.3asfh.com‬ﻭﺗﻢ ﺇﻋﺎﺩﺓ ﺗﻨﺴﻴﻖ ﻣﺤﺘﻮﻳﺎﺕ ﺍﻟﺪﺭﻭﺱ ‪ ،‬ﻣﻊ‬
‫ﺍﺿﺎﻓﻪ ﺍﻟﻌﺪﻳﺪ ﻣﻦ ﺍﻟﻨﻘﺎﻁ ﺍﻟﺠﺪﻳﺪﺓ ‪ ،‬ﻓﺸﻜﺮ ﺧﺎﺹ ﻷﻋﻀﺎﺀ ﺫﻟﻚ ﺍﻟﻤﻨﺘﺪﻯ ‪ ،‬ﻭﺍﻟﻘﺎﺋﻤﻴﻦ‬
‫ﻋﻠﻴﻪ ‪.‬‬

‫ﺍﻟﻄﺮﻕ ﺍﻟﻜﻼﺳﻴﻜﻴﺔ ‪ Classical Method‬ﻫﻲ ﻋﺒﺎﺭﺓ ﻋﻦ ﻃﺮﻕ ﺗﺸﻔﻴﺮ ﺍﺳﺘﺨﺪﻣﺖ ﻣﻨﺬ ﺯﻣﻦ‬
‫ﺑﻌﻴﺪ ﻭﺧﺎﺻﺔ ﻓﻲ ﺃﻳﺎﻡ ﺍﻟﺤﺮﺏ ﺍﻟﻌﺎﻟﻤﻴﺔ ﺍﻷﻭﻟﻰ ﻭﺍﻟﺜﺎﻧﻴﺔ ‪ ،‬ﺣﻴﺚ ﻛﺎﻧﺖ ﺧﻄﻂ ﺍﻟﺤﺮﺏ‬
‫ﻭﻃﺮﻕ ﺍﻟﻬﺠﻮﻡ ﻋﻠﻰ ﺍﻟﻌﺪﻭ ﺗﺮﺳﻞ ﻋﻦ ﻃﺮﻳﻖ ﺭﺳﺎﺋﻞ ﻋﺎﺩﻳﻪ ﻣﻜﺘﻮﺑﺔ ﺑﺨﻂ ﺍﻟﻴﺪ )ﻓﻲ‬
‫ﺍﻷﻏﻠﺐ ( ﻭﻟﻜﻨﻬﺎ ﺗﺸﻔﺮ ﺑﺄﺣﺪ ﺍﻟﻄﺮﻕ ‪ ،‬ﺧﻮﻓﺎ ﻣﻦ ﺃﻥ ﺗﻘﻊ ﻓﻲ ﺃﻳﺪﻱ ﺍﻟﻌﺪﻭ ﻭﺑﺎﻟﺘﺎﻟﻲ ﺗﻔﺸﻞ‬
‫ﺗﻠﻚ ﺍﻟﺨﻄﻂ ‪.‬‬

‫ﺑﺎﻟﺮﻏﻢ ﻣﻦ ﺃﻥ ﺗﻠﻚ ﺍﻟﻄﺮﻕ ﻏﻴﺮ ﻣﺠﺪﻳﻪ ﺃﺑﺪﺍ ﻓﻲ ﺍﻟﻮﻗﺖ ﺍﻟﺤﺎﻟﻲ ‪ ،‬ﻓﺈﻧﻬﺎ ﻣﻮﺿﻮﻉ ﻫﺬﺍ ﺍﻟﻜﺘﻴﺐ‪.‬‬
‫ﺭﺑﻤﺎ ﺗﺘﺴﺎﺀﻝ ﻭﻣﺎ ﺍﻟﺠﺪﻭﻯ ﻣﻦ ﺫﻟﻚ ‪ ،‬ﺍﻟﺠﻮﺍﺏ ﺑﻜﻞ ﺑﺴﺎﻃﻪ ‪ ،‬ﻷﻧﻬﺎ ﺗﻌﺘﺒﺮ ﺍﻷﺳﺎﺱ ﻟﻠﻜﺜﻴﺮ‬
‫ﻣﻦ ﺍﻟﺸﻔﺮﺍﺕ ﺍﻟﺤﺪﻳﺜﺔ ‪ ،‬ﺍﺿﺎﻓﻪ ﺇﻟﻰ ﺃﻥ ﺩﺭﺍﺳﺘﻬﺎ ﻳﻨﻤﻰ ﺍﻟﻌﻘﻞ ﻋﻠﻰ ﺍﻟﺘﻔﻜﻴﺮ ﻭﺍﻟﺒﺤﺚ ‪ ،‬ﺣﻴﺚ‬
‫ﺃﻧﻬﺎ ﺗﻌﺘﻤﺪ ﻋﻠﻰ ﻓﻘﻂ ﻋﻠﻰ ﺍﻟﺘﻼﻋﺐ ﺑﺎﻷﺣﺮﻑ )ﺇﻣﺎ ﺗﺒﺪﻳﻞ ﺃﻣﺎﻛﻦ ﺍﻷﺣﺮﻑ‬
‫‪ ،Transposition‬ﺃﻭ ﺗﺒﺪﻳﻠﻬﺎ ﺑﺄﺣﺮﻑ ﺃﺧﺮﻯ ﺑﻌﺪ ﻋﻤﻠﻴﻪ ﺣﺴﺎﺑﻴﻪ ﻣﺎ ‪، ( Substitution‬‬
‫ﻏﻴﺮ ﺫﻟﻚ ﻓﻌﻤﻠﻴﺔ ﻛﺴﺮ ﻫﺬﻩ ﺍﻟﺸﻔﺮﺍﺕ ﺃﻣﺮ ﻓﻲ ﻏﺎﻳﺔ ﺍﻟﻤﺘﻌﺔ ‪.‬‬

‫ﻳﻨﻘﺴﻢ ﺍﻟﻜﺘﻴﺐ ﺇﻟﻰ ﺃﺭﺑﻌﺔ ﺃﻗﺴﺎﻡ ﺭﺋﻴﺴﻴﻪ ‪:‬‬


‫ﺍﻟﻘﺴﻢ ﺍﻷﻭﻝ ﺍﻷﺳﺎﺳﻴﺎﺕ ﻳﺘﻨﺎﻭﻝ ﻫﺬﺍ ﺍﻟﻘﺴﻢ ﺑﻌﺾ ﻣﻦ ﺍﻟﺨﻮﺍﺭﺯﻣﻴﺎﺕ ﻭﺍﻟﻘﻮﺍﻋﺪ ﺍﻟﺮﻳﺎﺿﻴﺔ‬
‫ﺍﻟﻀﺮﻭﺭﻳﺔ ﻓﻲ ﻋﺎﻟﻢ ﺍﻟﺘﺸﻔﻴﺮ ﻟﺒﻌﺾ ﺍﻟﻄﺮﻕ ﺍﻟﻜﻼﺳﻴﻜﻴﺔ ‪ ،‬ﻣﺜﻞ ﻧﻈﺮﻳﻪ ﺍﻟﻘﺴﻤﺔ ‪ ،‬ﺍﻷﻋﺪﺍﺩ‬
‫ﺍﻷﻭﻟﻴﺔ ‪ ،‬ﺧﻮﺍﺭﺯﻣﻴﺔ ﺃﻗﻠﻴﺪﺱ ‪ ،‬ﺧﻮﺍﺭﺯﻣﻴﺔ ﺍﻗﻠﻴﺪﺱ ﺍﻟﻤﻤﺘﺪﺓ ‪.‬‬

‫ﺍﻟﻘﺴﻢ ﺍﻟﺜﺎﻧﻲ ‪ Introduction to Classical Cipher‬ﻳﺘﻨﺎﻭﻝ ﺍﻟﺸﻔﺮﺍﺕ ﺍﻟﻜﻼﺳﻴﻜﻴﺔ‬


‫ﻭﻛﻴﻒ ﻳﻤﻜﻦ ﺍﻟﺘﺸﻔﻴﺮ ﻭﻓﻚ ﺍﻟﺘﺸﻔﻴﺮ ﺑﺘﻠﻚ ﺍﻟﻄﺮﻕ ‪ ،‬ﻭ ﻳﺘﻨﺎﻭﻝ ﻭﺑﺸﻜﻞ ﻣﺒﺴﻂ ﻛﻴﻒ ﻳﻤﻜﻦ‬
‫ﻛﺴﺮ ﺍﻟﺸﻔﺮﺍﺕ ‪ Cryptanalysis‬ﻟﺒﻌﺾ ﻣﻦ ﻫﺬﻩ ﺍﻟﻄﺮﻕ ‪.‬‬

‫‪2‬‬
‫‪PDF created with pdfFactory Pro trial version www.pdffactory.com‬‬
‫ﺍﻟﻘﺴﻢ ﺍﻟﺜﺎﻟﺚ ‪ The Implementation‬ﻳﺤﺘﻮﻱ ﻋﻠﻰ ﺃﻛﻮﺍﺩ ﺑﺮﻣﺠﻴﻪ )ﻣﻜﺘﻮﺑﺔ ﺑـ ‪( C++‬‬
‫ﻟﺘﻄﺒﻴﻖ ﺗﻠﻚ ﺍﻟﺸﻔﺮﺍﺕ ﺍﻟﻤﻮﺟﻮﺩﺓ ﺑﺎﻟﻔﺼﻞ ﺍﻟﺜﺎﻧﻲ ‪ ،‬ﻭﻛﻤﺎ ﻳﺤﺘﻮﻱ ﺃﻛﻮﺍﺩ ﻟﺒﻌﺾ ﻣﻦ‬
‫ﺍﻟﺨﻮﺍﺭﺯﻣﻴﺎﺕ ﺍﻟﺮﻳﺎﺿﻴﺔ ﺍﻟﻤﻮﺟﻮﺩﺓ ﺑﺎﻟﻔﺼﻞ ﺍﻷﻭﻝ ‪) .‬ﺍﻟﺒﺮﺍﻣﺞ ﻛﺎﻣﻠﺔ ﻣﻮﺟﻮﺩﺓ ﻣﺮﻓﻘﻪ ﻣﻊ‬
‫ﺍﻟﻜﺘﻴﺐ( ‪.‬‬

‫ﺍﻟﻘﺴﻢ ﺍﻟﺮﺍﺑﻊ ‪ ، Introduction To Modern Cryptography‬ﻳﺤﺘﻮﻱ ﻋﻠﻰ ﻣﻘﺪﻣﻪ‬


‫ﺧﻔﻴﻔﺔ "ﻧﻈﺮﻳﻪ" ﻟﻠﺘﺸﻔﻴﺮ ﺑﺎﻟﻄﺮﻕ ﺍﻟﺤﺪﻳﺜﺔ ‪ ،‬ﻭﻳﻮﺿﺢ ﺍﻟﻜﺜﻴﺮ ﻣﻦ ﺍﻟﻤﺼﻄﻠﺤﺎﺕ ﺍﻟﻤﺴﺘﺨﺪﻣﺔ‬
‫ﻓﻲ ﻋﺎﻟﻢ ﺍﻟﺘﺸﻔﻴﺮ ‪ ،‬ﻳﻌﺘﺒﺮ ﻗﺴﻢ ﻣﻬﻢ ﻟﻤﻦ ﻳﺮﻳﺪ ﺍﻟﺒﺪﺀ ﻓﻲ ﻋﺎﻟﻢ ﺍﻟﺘﺸﻔﻴﺮ ‪.‬‬

‫ﻟﻌﻠﻚ ﻻﺣﻈﺖ ﺃﺧﻲ ﺍﻟﻘﺎﺭﺉ ‪ ،‬ﺃﻥ ﺍﻟﻜﺘﻴﺐ ﺣﺎﻟﻴﺎ ﻧﺴﺨﻪ ﻣﺒﺪﺋﻴﺔ ‪ ،‬ﻭﻳﻠﺰﻣﻪ ﺍﻟﻜﺜﻴﺮ ﻣﻦ‬
‫ﺍﻹﺿﺎﻓﺎﺕ ﺣﺘﻰ ﻳﺼﺒﺢ ﻣﺮﺟﻊ ﻣﻤﺘﺎﺯ ﻟﻠﻄﻠﺒﺔ ﻭﺍﻟﺒﺎﺣﺜﻴﻦ ﻓﻲ ﻫﺬﺍ ﺍﻟﻤﺠﺎﻝ ‪ ،‬ﻓﺈﺫﺍ ﻛﻨﺖ ﻣﻬﺘﻢ‬
‫ﺑﻬﺬﺍ ﺍﻟﻤﺠﺎﻝ ‪ ،‬ﻭﻟﺪﻳﻚ ﺍﻟﻘﺪﺭﺓ ﻋﻠﻰ ﺍﺿﺎﻓﻪ ﻣﻮﺍﺿﻴﻊ ﺫﺍﺕ ﻋﻼﻗﺔ ﻓﺄﺭﺟﻮﺍ ﺇﻋﻼﻣﻲ ﻭﺇﺭﺳﺎﻝ‬
‫ﺭﺳﺎﻟﺔ ﻋﻠﻰ ﺑﺮﻳﺪﻱ ‪ ،‬ﻭﺳﻨﻀﻤﻦ ﻟﻚ ﻛﺎﻓﻪ ﺣﻘﻮﻗﻚ ﺍﻟﻔﻜﺮﻳﺔ ‪ ،‬ﻛﻤﺎ ﻳﺮﺣﺐ ﺑﻜﻞ ﻧﻘﺪ ﺃﻭ ﺗﻌﺪﻳﻞ‬
‫ﺃﻭ ﺃﻱ ﺍﺳﺘﻔﺴﺎﺭ ﻓﻲ ﻫﺬﺍ ﺍﻟﻤﺠﺎﻝ ‪.‬‬

‫ﺃﻗﺴﺎﻡ ﺳﻴﺘﻢ ﺇﺿﺎﻓﺘﻬﺎ ﻓﻲ ﺍﻟﻨﺴﺨﺔ ﺍﻟﻘﺎﺩﻣﺔ ‪:‬‬

‫‪Introduction To Number Theory and it's Application‬‬


‫‪Primality Testing , Factorization Techniques ,Congruence Solving,‬‬
‫‪Random Number Generation‬‬
‫‪Introduction To Information & Coding Theory and it's Application‬‬
‫‪Huffman Code , Hamming Code , Error Correction Code , Entropy‬‬
‫‪Explain and Implementation for Most Crypto Cipher‬‬
‫‪RSA ,DES ,Triple DES, AES , Blowfish , ECC , ALGAMAL‬‬
‫‪History About Cryptography and Crypto Devices and Arabic‬‬
‫) ‪Cryptographer (Alkindi, Taher Algamal‬‬
‫‪Addition Classical Cipher & More About Cryptanalysis cipher‬‬

‫أﺧﯿﺮ ‪،‬أﺣﺐ أن أﺷﻜﺮ أﺧﻲ "اﻟﺼﻘﺮ اﻟﺠﺎرح" ﻣﻦ ﻣﻨﺘﺪﯾﺎت اﻟﻌﺎﺻﻔﺔ ‪ ،‬ﻋﻠﻰ ﺗﺼﻤﯿﻤﮫ ﻟﻠﻐﻼف‬
‫وإﺧﺮاﺟﮫ ﺑﮭﺬا اﻟﺸﻜﻞ اﻟﺮاﺋﻊ ‪ ،‬ﻓﺠﺰاه اﷲ ﺧﯿﺮا ‪ .‬وأﺗﻤﻨﻰ ﻟﮫ دوام اﻟﺘﻮﻓﯿﻖ ﻓﻲ ﺣﯿﺎﺗﮫ ‪.‬‬

‫‪ :‬ﻭﺟﺪﻱ ﻋﺼﺎﻡ ﻋﺒﺪ ﺍﻟﺮﺣﻴﻢ‬ ‫ﺟﻤﯿﻊ اﻟﺤﻘﻮق ﻣﺤﻔﻮﻇﺔ ﻟﻠﻜﺎﺗﺐ‬


‫ﻟﻠﻤﺮاﺳﻠﺔ أو اﻟﺴﺆال أو ا ﻻﺳﺘﻔﺴﺎر ‪SudanGeek@hotmail.com :‬‬
‫‪wajdyessam@hotmail.com‬‬
‫‪Romansy , at : 2-11-2007‬‬

‫‪3‬‬
‫‪PDF created with pdfFactory Pro trial version www.pdffactory.com‬‬
7 ............................................ Preliminaries ‫ ﺍﻷﺳﺎﺳﻴﺎﺕ‬: ‫ﺍﻟﻘﺴﻢ ﺍﻷﻭﻝ‬
7 ................................................ THE DIVISION ALGORITHM ‫ﺧﻮارزﻣﯿﺔ اﻟﻘﺴﻤﺔ‬
8 ............................................................................ Prime Number ‫اﻷﻋﺪاد اﻷوﻟﯿﺔ‬
10 ............................................... Greatest Common Divisor ‫اﻟﻘﺎﺳﻢ اﻟﻤﺸﺘﺮك اﻷﻋﻈﻢ‬
11 .............................................................. Euclidean Algorithm ‫ﺧﻮارزﻣﯿﺔ أﻗﻠﯿﺪس‬
12 .................................... Extended Euclidean Algorithm ‫اﻟﺨﻮارزﻣﯿﺔ اﻹﻗﻠﯿﺪﯾﮫ اﻟﻤﻤﺘﺪة‬
16 .................... The Fundamental Theorem of Arithmetic ‫اﻟﻨﻈﺮﯾﺔ اﻷﺳﺎﺳﯿﺔ ﻓﻲ اﻟﺤﺴﺎب‬
17 ............................................ Least Common Multiple ‫اﻟﻤﻀﺎﻋﻒ اﻟﻤﺸﺘﺮك اﻷﺻﻐﺮ‬
17 ........................................................................... XOR – Exclusive-Or ‫اﻟﻤﻌﺎﻣﻞ‬
18 ...................................................................................................Logarithms
20 .................................................. ‫ ﺍﻟﺸﻔﺮﺍﺕ ﺍﻟﻜﻼﺳﻴﻜﻴﺔ‬: ‫ﺍﻟﻘﺴﻢ ﺍﻟﺜﺎﻧﻲ‬
21 ............................................................................................... Coding ‫اﻟﺘﺮﻣﯿﺰ‬
23 ........................................................ Classical Method ‫اﻟﺘﺸﻔﯿﺮ ﺑﺎﻟﻄﺮق اﻟﻜﻼﺳﯿﻜﯿﺔ‬
24 ...................................................... Monoalphabetic Substitution Cipher ‫ﺷﻔﺮات‬
24 ............................................................................... Caesar Cipher ‫ﺷﻔﺮه ﻗﯿﺼﺮ‬
29 ............................................................................... Atbash Cipher‫ﺷﻔﺮه أﺗﺒﺎش‬
29 ................................................................................................. ROT13 ‫ﺷﻔﺮه‬
30 ........................................................................................ Affine Cipher ‫ﺷﻔﺮه‬
32 ....................................................... MONOALPHABETIC‫ﻛﺴﺮ اﻟﺸﻔﺮات ﻣﻦ ﻧﻮع‬
34 ......................................................... Polyalphabetic substitution cipher ‫ﺷﻔﺮات‬
34 .................................................................. Simple Shift Vigenere Cipher ‫ﺷﻔﺮه‬
37 ................................................................... ‫ اﻟﺒﺴﯿﻄﺔ‬Vigenere ‫ﻛﺴﺮ ﺷﻔﺮات ﻓﺠﯿﻨﯿﺮ‬
38 .................................... Key Length ‫ ﻟﻤﻌﺮﻓﮫ ﻋﺪد اﻟﻤﻔﺎﺗﯿﺢ‬KAISISKI ‫ﻃﺮﯾﻘﮫ ﻛﯿﺴﺴﻜﻲ‬
42 ........................................ THE FULL VIGENERE CIPHER‫ﻃﺮﯾﻘﮫ ﻓﺠﯿﻨﯿﺮ اﻟﻜﺎﻣﻠﺔ‬
43 ...................... THE AUTO-KEY VIGENERE CIPHER ‫ﺷﻔﺮه ﻓﺠﯿﻨﯿﺮ ﺗﻠﻘﺎﺋﯿﺔ اﻟﻤﻔﺘﺎح‬
44 .................... THE Running KEY VIGENERE CIPHER ‫ﺷﻔﺮه ﻓﺠﯿﻨﯿﺮ ﻃﻮﯾﻠﺔ اﻟﻤﻔﺘﺎح‬
45 ............................................................. PolyGram Substitution Cipher ‫ﺷﻔﺮات‬
46 ............................................................. THE PLAYFAIR CIPHER‫ﺷﻔﺮه ﺑﻼﻓﯿﺮ‬
48 ..................................................................................... Hill Cipher ‫ﺷﻔﺮه ھﯿﻞ‬
54 ...................................... PolyGram Substitution Cipher‫ﻛﺴﺮ اﻟﺨﻮارزﻣﯿﺎت ﻣﻦ ﻧﻮع‬
54 ........................................... THE JEFFERSON CYLINDER ‫أﺳﻄﻮاﻧﺔ ﺟﯿﻔﯿﺮﺳﻮن‬
56 .......................... HOMOPHONIC SUBSTITUTION CIPHERS ‫اﻟﺘﺸﻔﯿﺮ ﺑﻄﺮﯾﻘﮫ اﻟـ‬

4
PDF created with pdfFactory Pro trial version www.pdffactory.com
58 .................................................... TRANSPOSITION CIPHERS ‫اﻟﺘﺸﻔﯿﺮ ﺑﺎﻹﺑﺪال‬
61 .................................................................. THE ONE-TIME PAD‫اﻟﺸﻔﺮه اﻷﻣﻨﮫ‬
63 .................................................................................. ‫أﺳﺌﻠﺔ ﺷﺎﻣﻠﮫ ﻟﻜﻞ اﻟﻤﻮﺿﻮع‬
66 ......................................... Implementation ‫ ﺍﻟﺘﻄﺒﻴﻖ‬: ‫ﺍﻟﻘﺴﻢ ﺍﻟﺜﺎﻟﺚ‬
67 .......................................................................... characters ‫اﻟﺘﻌﺎﻣﻞ ﻣﻊ اﻟﺤﺮوف‬
70 .......................................... Greatest Common Divisor ‫إﯾﺠﺎد اﻟﻘﺎﺳﻢ اﻟﻤﺸﺘﺮك اﻷﻋﻈﻢ‬
71 ................................................................................... ‫ﺧﻮارزﻣﯿﺔ اﻗﻠﯿﺪس اﻟﻤﻤﺘﺪة‬
72 ............................................................. Trial Division ‫اﺧﺘﺒﺎر أوﻟﯿﮫ اﻟﻌﺪد ﺑﺎﺳﺘﺨﺪام‬
72 ......................................................................................... ‫اﻟﺘﻌﺎﻣﻞ ﻣﻊ اﻟﻠﻮﻏﺮﯾﺘﻢ‬
73 ...................................................................... Fast Exponentiation Algorithms
74 ............................................................................... Caesar Cipher ‫ﺷﻔﺮة ﻗﯿﺼﺮ‬
76 ................................................................................................. ROT13 ‫ﺷﻔﺮة‬
77 ............................................................................ Affine Cipher ‫اﻟﺘﺸﻔﯿﺮ ﺑﻄﺮﯾﻘﮫ‬
78 .............................................. Simple Shift Vigenere Cipher ‫ﺷﻔﺮة ﻓﯿﺠﻨﯿﺮ اﻟﺒﺴﯿﻄﺔ‬
79 ............................................................Full Vigenere Cipher ‫ﺷﻔﺮه ﻓﯿﺠﯿﻨﺮ اﻟﻜﺎﻣﻠﺔ‬
81 .......................................... Auto Key Vigenere Cipher ‫ﺷﻔﺮه ﻓﺠﯿﻨﯿﺮ ﺗﻠﻘﺎﺋﯿﺔ اﻟﻤﻔﺘﺎح‬
82 ................................. the Running key Vigenere Cipher ‫ﺷﻔﺮه ﻓﯿﺠﯿﻨﺮ ﻃﻮﯾﻠﺔ اﻟﻤﻔﺘﺎح‬
83 ............................................................................. Playfair Cipher ‫ﺷﻔﺮة ﺑﻼﻓﯿﺮ‬
83 ...................................................................................... Reverse Cipher ‫ﺷﻔﺮه‬
84 ................................ ‫ ﻣﻘﺪﻣﻪ ﻓﻲ ﺍﻟﺘﺸﻔﻴﺮ ﺑﺎﻟﻄﺮﻕ ﺍﻟﺤﺪﻳﺜﺔ‬: ‫ﺍﻟﻔﺼﻞ ﺍﻟﺮﺍﺑﻊ‬
85 ...................................................................... Why Cryptography ‫ﻟﻤﺎذا ﺑﺎﻟﺘﺸﻔﯿﺮ‬
87 ......................................... Symmetric key Cryptography ‫اﻟﺘﺸﻔﯿﺮ ﺑﺎﻟﻤﻔﺘﺎح اﻟﻤﺘﻨﺎﻇﺮ‬
91 ............................................................................. ‫ وﻣﺎ ھﻲ أھﻤﯿﺘﮫ‬، ‫ﻣﺎ ھﻮ اﻟﻤﻔﺘﺎح‬
94 ......................................................................... Key Generation ‫ﺗﻮﻟﯿﺪ اﻟﻤﻔﺘﺎح‬
100 .............................................................................. Block Cipher‫ﺷﻔﺮات اﻟﻜﺘﻞ‬
102 .......................................................................... Stream Ciphers ‫ﺷﻔﺮه اﻟﺘﺪﻓﻖ‬
103 .......................................................................... ‫ ﻣﻦ اﻷﻓﻀﻞ‬Block VS Stream
103 ................................................................................................. Triple DES
105 .................................................................... Advanced Encryption Standard
105 ............................................ Symmetric-Key Management ‫اداره اﻟﻤﻔﺘﺎح اﻟﻤﺘﻨﺎﻇﺮ‬
109 ............................................. Hardware-Based Key Storage ‫أﺟﮭﺰه ﺣﻔﻆ اﻟﻤﻔﺎﺗﯿﺢ‬
110 .................................................................................... Crypto Accelerators

5
PDF created with pdfFactory Pro trial version www.pdffactory.com
112 ........................... The Key Distribution Problem and Public-Key Cryptography
116 . ‫ﻟﻤﺤﮫ ﺗﺎرﯾﺨﯿﺔ ﻋﻦ اﻟﺘﺸﻔﯿﺮ ﺑﺎﻟﻄﺮﯾﻘﺔ ﻏﯿﺮ ﻣﺘﻨﺎﻇﺮة‬History of Public-Key Cryptography
119 ..................................................................................... ‫ﺍﻟﺨﺎﺗﻤﺔ‬

‫ ﺍﻷﺳﺎﺳﻴﺎﺕ‬: ‫ﺍﻟﻘﺴﻢ ﺍﻷﻭﻝ‬


Preliminaries

6
PDF created with pdfFactory Pro trial version www.pdffactory.com
‫ﺍﻟﻘﺴﻢ ﺍﻷﻭﻝ ‪ :‬ﺍﻷﺳﺎﺳﻴﺎﺕ ‪Preliminaries‬‬

‫ﻟﻔﮭﻢ أﻏﻠﺐ اﻟﺸﻔﺮات اﻟﺤﺪﯾﺜﺔ ﯾﻠﺰم ﻓﮭﻢ اﻟﻜﺜﯿﺮ ﻣﻦ ﻧﻈﺮﯾﮫ اﻷﻋﺪاد ‪ ، Number Theory‬وﻟﻜﻦ ﺑﻤﺎ‬
‫أن اﻟﻜﺘﯿﺐ ﯾﺮﻛﺰ ﻋﻠﻰ اﻟﺸﻔﺮات ﺑﺎﻟﻄﺮق اﻟﻜﻼﺳﯿﻜﯿﺔ ﻓﺴﻮف ﻧﺘﻨﺎول ﻣﺎ ﯾﮭﻤﻨﺎ ﻓﻘﻂ ﻓﻲ اﻟﻮﻗﺖ اﻟﺤﺎﻟﻲ ‪.‬‬
‫وﺳﻮف ﺗﻜﻮن اﻟﻘﻮاﻋﺪ ﻣﻜﺘﻮﺑﺔ وﻟﻜﻦ ﻣﻦ ﻏﯿﺮ إﺛﺒﺎت رﯾﺎﺿﻲ ﻟﮭﺎ ‪ ، Prove‬ﯾﻤﻜﻨﻚ ﺗﺠﺎوز ھﺬا اﻟﻘﺴﻢ‬
‫واﻟﻌﻮدة إﻟﯿﮫ ﻻﺣﻘﺎ ﻋﻨﺪﻣﺎ ﺗﺤﺘﺎﺟﮫ ﻓﻲ ﺷﻔﺮه ‪ ، Affine Cipher‬وﻟﻜﻨﻲ ﻻ أﻓﻀﻞ ذﻟﻚ ‪.‬‬

‫اذا ﻛﺎن ﻟﺪﯾﻨﺎ ﻋﺪدﯾﻦ ﺻﺤﯿﺤﯿﻦ ‪ a‬و ‪ ، b‬وﻛﺎن ‪) a !=0‬ﻻ ﯾﺴﺎوي ‪ . (0‬ﻧﻘﻮل ﻋﻦ ‪ a‬ﯾﻘﺴﻢ ‪ b‬اذا‬
‫ﻛﺎن ﻟﺪﯾﻨﺎ ﻋﺪد ﺛﺎﻟﺚ ‪ c‬ﺑﺤﯿﺚ ‪ . b = a*c‬اذا ﻛﺎن ‪ a‬ﯾﻘﺴﻢ ‪ b‬ﻧﺸﯿﺮ إﻟﯿﮫ ﺑﺎﻟﺮﻣﺰ ‪. a|b‬‬

‫ﻣﺜﺎل ﺑﺴﯿﻂ ‪:‬‬


‫‪ 3|27‬ﺻﺤﯿﺢ ‪ ،‬ﻻن ‪. 27 = 9*3‬‬
‫‪ 5|32‬ﻏﯿﺮ ﺻﺤﯿﺤﺔ ‪ ،‬ﻷن ‪ 32 = 4*c‬وﻻ ﺗﻮﺟﺪ ﻋﺪد ﺻﺤﯿﺢ ﯾﺤﻞ ﻣﻜﺎن ‪. c‬‬

‫اذا ‪. x|z‬‬ ‫اذا ﻛﺎن ﻟﺪﯾﻨﺎ ﺛﻼﺛﺔ أﻋﺪاد ﺻﺤﯿﺤﺔ ‪ ، x,y,z‬وﻛﺎن ‪ x|y‬و ‪y|z‬‬

‫ﻣﺜﺎل ‪:‬‬
‫ﻟﺪﯾﻨﺎ ‪ ، 3|9‬و ‪ ، 9|72‬اذا ‪ 3‬ﺗﻘﺴﻢ ‪3|27 = 72‬‬

‫ﺧﻮﺍﺭﺯﻣﻴﺔ ﺍﻟﻘﺴﻤﺔ ‪THE DIVISION ALGORITHM‬‬

‫وھﻲ أﺣﺪ اﻟﺨﻮارزﻣﯿﺎت اﻟﻤﮭﻤﺔ ﺟﺪا ‪ ،‬ﺣﯿﺚ ﺗﻘﻮل اﻧﮫ ﯾﻤﻜﻨﻨﺎ أن ﻧﻤﺜﻞ أي ﻋﺪد ﺻﺤﯿﺢ ‪ ،‬وذﻟﻚ‬
‫ﺑﻮاﺳﻄﺔ ﺿﺮب ﻋﺪد ﺻﺤﯿﺢ ‪ b‬ﻣﻊ اﺿﺎﻓﮫ ﺑﺎﻗﻲ ‪ r‬ﺑﺤﯿﺚ ﯾﻜﻮن اﻟﺒﺎﻗﻲ ﻋﺪد ﻣﻮﺟﺐ وأﻗﻞ ﻣﻦ اﻟﻌﺪد ‪. b‬‬

‫اذا ﻛﺎن ﻟﺪﯾﻨﺎ ﻋﺪدﯾﻦ ﺻﺤﯿﺢ ‪ ، y,b‬وﻛﺎن ‪ b‬أﻛﺒﺮ ﻣﻦ ﺻﻔﺮ ‪ ،‬اذا ﺳﯿﻜﻮن ﻟﺪﯾﻨﺎ ﻋﺪدﯾﻦ ‪q,r‬‬
‫ﺑﺤﯿﺚ ‪:‬‬
‫‪Y = b*q + r‬‬
‫‪ q‬ھﻮ ﺣﺎﺻﻞ اﻟﻘﺴﻤﺔ ‪ r . Quotient‬ھﻮ اﻟﺒﺎﻗﻲ ‪ b . remainder‬ھﻮ اﻟﻤﻘﺴﻮم ‪، Divisor‬‬
‫‪ y‬ھﻮ اﻟﻘﺎﺳﻢ ‪. dividend‬‬

‫ﻣﺜﺎل ﻟﺪﯾﻨﺎ اﻟﻤﻌﺎدﻟﺔ ‪:‬‬


‫‪65 = 3*q + r‬‬
‫ﻗﯿﻤﮫ ال ‪ q‬ھﻲ ‪ ) 21‬وذﻟﻚ ﺑﻘﺴﻤﮫ ‪ 65‬ﻋﻠﻰ ‪ ، (3‬واﻟﺒﺎﻗﻲ ‪ r‬ھﻮ ‪. 2‬‬
‫‪ 3*21+2‬وﺗﺴﺎوي ‪. 65‬‬

‫‪7‬‬
‫‪PDF created with pdfFactory Pro trial version www.pdffactory.com‬‬
‫ﻣﺜﺎل أﺧﺮ ‪:‬‬
‫‪-21 = 5*q + r‬‬

‫ﺑﻘﺴﻤﮫ ‪ -21‬ﻋﻠﻰ ‪ ، 5‬ﺳﻮف ﻧﺤﺼﻞ ﻋﻠﻰ ﺣﺎﺻﻞ اﻟﻘﺴﻤﺔ ‪ ، - 4‬واﻟﺒﺎﻗﻲ ﺳﻮف ﯾﻜﻮن ‪ ، 1-‬وﻟﻜﻦ ﻛﻤﺎ‬
‫ذﻛﺮﻧﺎ ﻓﻲ اﻟﻘﺎﻋﺪة اﻟﺴﺎﺑﻘﺔ أن اﻟﺒﺎﻗﻲ ‪ r‬داﺋﻤﺎ ﯾﻜﻮن ﻣﻮﺟﺐ ‪ ،‬ﻟﺬﻟﻚ ﻧﻘﻮم ﺑﺠﻤﻊ ‪ 5‬ﻓﻲ اﻟﺒﺎﻗﻲ ‪ ،‬وﻧﻄﺮح‬
‫‪ 1‬ﻣﻦ ﺣﺎﺻﻞ اﻟﻘﺴﻤﺔ‬
‫ﻟﯿﻜﻮن ﻟﺪﯾﻨﺎ ‪. r = 4 ، q = -5‬‬
‫ﻧﻄﺒﻘﮭﺎ ﻓﻲ اﻟﻤﻌﺎدﻟﺔ ‪:‬‬
‫‪ -21 = 5*-5+4‬وھﻮ ﺻﺤﯿﺢ ‪.‬‬

‫ﺍﻷﻋﺪﺍﺩ ﺍﻷﻭﻟﻴﺔ ‪: Prime Number‬‬


‫ﺗﻠﻌﺐ اﻷﻋﺪاد اﻷوﻟﯿﺔ ﺗﻠﻌﺐ دورا ﻛﺒﯿﺮا ﺟﺪا ﻓﻲ اﻟﺘﺸﻔﯿﺮ وﺧﺎﺻﺔ ﻓﻲ اﻟﻄﺮق اﻟﺤﺪﯾﺜﺔ ‪ ،‬وﺗﻌﺮﯾﻔﮭﺎ‬
‫ﻛﺎﻟﺘﺎﻟﻲ ‪:‬‬

‫اﻟﻌﺪد اﻷوﻟﻲ ‪ ،‬ھﻮ اﻟﻌﺪد اﻟﺼﺤﯿﺢ ‪ integer‬أﻛﺒﺮ ﻣﻦ ‪، 1‬وﻻ ﯾﻘﺒﻞ اﻟﻘﺴﻤﺔ إﻻ ﻋﻠﻰ ﻧﻔﺴﮫ وﻋﻠﻰ‬
‫‪ . 1‬ﺑﺎﻗﻲ اﻷﻋﺪاد اﻟﺘﻲ أﻛﺒﺮ ﻣﻦ ‪ 1‬وﻏﯿﺮ أوﻟﯿﮫ ﺗﺴﻤﻰ أﻋﺪاد ﻣﺮﻛﺒﮫ ‪Composite Number‬‬

‫ﻣﺜﺎل ﻋﻠﻰ أﻋﺪاد أوﻟﯿﮫ ‪:‬‬


‫‪2‬و ‪ 3‬و ‪ 7‬و ‪ 23‬و‪ 29‬و ‪ 163‬واﻟﻜﺜﯿﺮ ﻏﯿﺮھﺎ ‪.‬‬

‫ﻣﺜﺎل ﻋﻠﻰ أﻋﺪاد ﻣﺮﻛﺒﮫ ‪:‬‬


‫‪) 4‬ﺣﯿﺚ أﻧﮭﺎ ﺗﻘﺒﻞ اﻟﻘﺴﻤﺔ ﻋﻠﻰ ‪( 2‬‬
‫‪) 100‬ﺗﻘﺒﻞ اﻟﻘﺴﻤﺔ ﻋﻠﻰ ‪ 2‬و ‪. (5‬‬

‫ﻣﺜﺎل ﻋﻠﻰ أﻋﺪاد ﻏﯿﺮ أوﻟﯿﮫ وﻏﯿﺮ ﻣﺮﻛﺒﮫ‬


‫‪ 0‬و ‪ 1‬وﺟﻤﯿﻊ اﻷﻋﺪاد اﻟﺴﺎﻟﺒﺔ ‪ ،‬ﻣﺜﻞ ‪. 21-‬‬

‫ﺟﻤﯿﻊ اﻷﻋﺪاد اﻟﺼﺤﯿﺤﺔ اﻟﺘﻲ أﻛﺒﺮ ﻣﻦ ‪ ، 1‬ﻟﮭﺎ ﻗﺎﺳﻢ أوﻟﻲ ‪.‬‬


‫اﻷﻋﺪاد اﻷوﻟﯿﺔ ﻏﯿﺮ ﻣﻨﺘﮭﯿﺔ ‪.‬‬
‫اذا ﻛﺎن ﻟﺪﯾﻨﺎ ﻋﺪد ﺻﺤﯿﺢ ﻣﺮﻛﺐ ‪ ، N‬اذا ﯾﻜﻮن ﻟﺪى ‪ n‬ﻗﺎﺳﻢ أوﻟﻲ ﻻ ﯾﺘﻌﺪى اﻟﺠﺬر اﻟﺘﺮﺑﯿﻌﻲ ل‪. N‬‬

‫وھﺬا ﻣﻌﻨﺎه اذا أردﻧﺎ أن ﻧﻌﺮف ﻋﻠﻰ اﻟﻌﺪد ‪ x‬ھﻮ أوﻟﻲ أم ﻻ ‪ ،‬ﺳﻮف ﻧﺒﺤﺚ ﻣﻦ اﻟﺒﺪاﯾﺔ ‪) 2‬ﻻن واﺣﺪ‬
‫ﻟﯿﺲ أوﻟﻲ( إﻟﻰ أن ﻧﺼﻞ إﻟﻰ ﺟﺬر اﻟﻌﺪد ‪ . x‬وﻧﺨﺘﺒﺮ ﻛﻞ ﻋﺪد ﻣﻦ ھﺬه اﻷﻋﺪاد ‪ ،‬ھﻞ ﯾﻘﺒﻞ ‪ x‬اﻟﻘﺴﻤﺔ‬
‫ﻋﻠﯿﮭﺎ ‪ ،‬ﻓﻲ ﺣﺎل ﺗﺤﻘﻖ ذﻟﻚ ‪ ،‬ﻧﻜﻮن ﻗﺪ ﻋﺮﻓﻨﺎ أن اﻟﻌﺪد ﻟﯿﺲ أوﻟﻲ ‪ ،‬وإذا ﻟﻢ ﯾﺘﺤﻘﻖ ﻓﯿﻜﻮن اﻟﻌﺪد‬
‫أوﻟﻲ ‪.‬‬

‫‪8‬‬
‫‪PDF created with pdfFactory Pro trial version www.pdffactory.com‬‬
‫ﻣﺜﻼ ﻟﺪﯾﻨﺎ اﻟﻌﺪد ‪ ، 101‬ﻧﺒﺪأ ﺑﺎﻻﺧﺘﺒﺎر ﻣﻦ ‪ ، 2‬إﻟﻰ ﺟﺬر ‪ 101‬وھﻮ ‪. 10‬‬
‫ھﻞ ‪ 101‬ﯾﻘﺒﻞ اﻟﻘﺴﻤﺔ ﻋﻠﻰ ‪ . 2‬ﻻ‬
‫ھﻞ ‪ 101‬ﯾﻘﺒﻞ اﻟﻘﺴﻤﺔ ﻋﻠﻰ ‪ ، 3‬ﻻ‬
‫ھﻞ ‪ 101‬ﯾﻘﺒﻞ اﻟﻘﺴﻤﺔ ﻋﻠﻰ ‪ 4‬و‪ 5‬و ‪ 6‬و ‪ 7‬و‪ 8‬و ‪ . 9‬إﻟﻰ أن ﻧﺼﻞ إﻟﻰ ‪ ، 10‬وأﯾﻀﺎ ﻻ ﯾﻘﺒﻞ ‪ ،‬اذا‬
‫اﻟﻨﺘﯿﺠﺔ أن اﻟﻌﺪد ‪ 101‬ھﻮ ﻋﺪد أوﻟﻲ ‪.‬‬

‫ھﺬه اﻟﻄﺮﯾﻘﮫ ﻓﻲ اﻟﺒﺤﺚ ﻟﯿﺴﺖ ﻣﻦ أﻓﻀﻞ اﻟﻄﺮق ﻓﻲ اﺧﺘﺒﺎر أوﻟﯿﮫ اﻟﻌﺪد ‪ ،‬وھﻨﺎك اﻟﻜﺜﯿﺮ ﻣﻦ اﻟﻄﺮق‬
‫أﻓﻀﻞ ﻣﻨﮭﺎ ‪ ،‬وھﻲ ﺗﺴﻤﻰ ﻃﺮﯾﻘﮫ ‪. Trial Division‬‬

‫ﻣﺜﻼ ﻟﺪﯾﻨﺎ ﻋﺪد ﺿﺨﻢ ﯾﺘﻜﻮن ﻣﻦ ‪ 500‬ﺧﺎﻧﮫ ‪ ،‬ﺑﻌﺪ أﺧﺬ اﻟﺠﺬر اﻟﺘﺮﺑﯿﻌﻲ أﺻﺒﺢ ﯾﺘﻜﻮن ﻣﻦ ‪ 250‬ﺧﺎﻧﮫ‬
‫‪ ،‬اﻵن ﻃﺮﯾﻘﮫ ‪ Trial Division‬ﺳﻮف ﺗﻜﻮن ﻣﻀﯿﻌﮫ ﻟﻠﻮﻗﺖ واﻟﺠﮭﺪ ﻷﻧﮭﺎ ﺳﻮف ﺗﺨﺘﺒﺮ ﻣﻦ‬
‫اﻟﺒﺪاﯾﺔ وﺣﺘﻰ ذﻟﻚ اﻟﻌﺪد اﻟﺬي ﯾﺘﻜﻮن ﻣﻦ ‪ 250‬ﺧﺎﻧﮫ ‪ ،‬ﻟﺬﻟﻚ ﻟﻠﺘﻌﺎﻣﻞ ﻣﻊ اﻷﻋﺪاد اﻟﻀﺨﻤﺔ )ﻛﻤﺎ ھﻮ‬
‫اﻟﺤﺎل ﻓﻲ اﻟﺸﻔﺮات اﻟﺤﺪﯾﺜﺔ( ﯾﺠﺐ اﻟﺒﺤﺚ ﻋﻦ ﺣﻞ أﻛﺜﺮ ﻛﻔﺎﺋﮫ ‪.‬‬

‫وھﻨﺎك اﻟﻜﺜﯿﺮ ﻣﻦ اﻟﻄﺮق ﻟﮭﺬا اﻷﻣﺮ ‪ ،‬وﺳﻮف ﻧﺘﻨﺎوﻟﮭﺎ ﻓﻲ اﻟﻨﺴﺨﺔ اﻟﻨﮭﺎﺋﯿﺔ ﻣﻦ اﻟﻜﺘﯿﺐ ﺑﺈذن اﷲ‬
‫ﺑﺎﻟﺘﻔﺼﯿﻞ ‪ ،‬وﻟﻜﻦ ﯾﻤﻜﻦ ﻟﺘﺴﺮﯾﻊ اﻷﻣﺮ اﺧﺘﺒﺎر اﻷﻋﺪاد اﻟﻔﺮدﯾﺔ ﻓﻘﻂ ﻓﻲ ﻃﺮﯾﻘﮫ ‪. Trial Division‬‬

‫أﯾﻀﺎ ھﻨﺎك ﻃﺮﯾﻘﮫ ‪ ، Sieve of Eratosthenes‬وھﻲ ﺗﻌﺘﻤﺪ ﻋﻠﻰ ﻋﻤﻞ إﻟﻐﺎء ﺟﻤﯿﻊ ﻣﻀﺎﻋﻔﺎت‬
‫اﻷﻋﺪاد ‪ 2‬و ‪ 3‬و ‪ 5‬و ‪ 7‬ﻣﻦ ﻣﺪى اﻷﻋﺪاد اﻟﻤﺮاد اﻟﺒﺤﺚ ‪.‬‬

‫ﻣﺜﺎل ﻟﻠﺘﻮﺿﯿﺢ ‪ ،‬ﻧﺮﯾﺪ ﻣﻌﺮﻓﮫ اﻷﻋﺪاد اﻷوﻟﯿﺔ ﺑﯿﻦ ‪ 2‬إﻟﻰ ‪ ، 99‬ﻧﻘﻮم ﺑﻌﻤﻞ ﺟﺪول ﻓﯿﮫ ﺟﻤﯿﻊ ﺗﻠﻚ‬
‫اﻷﻋﺪاد )ﻓﻲ اﻟﻐﺎﻟﺐ ﯾﻜﻮن ﻓﻲ ﻣﺼﻔﻮﻓﺔ( ‪ ،‬ﺑﻌﺪھﺎ ﻧﻘﻮم ﺑﺸﻄﺐ ﻣﻀﺎﻋﻔﺎت اﻟﻌﺪد ‪ 2‬ﻣﻦ اﻟﺠﺪول ‪،‬‬
‫وﻣﻀﺎﻋﻔﺎت اﻟﻌﺪد ‪ 3‬ﻣﻦ اﻟﺠﺪول وھﻜﺬا ‪ ،‬ﺣﺘﻰ ﯾﺘﺒﻘﻰ ﻟﺪﯾﻨﺎ اﻟﺠﺪول اﻟﺘﺎﻟﻲ ‪:‬‬

‫وھﻮ اﻵن ﯾﺤﺘﻮي ﻋﻠﻰ ﺟﻤﯿﻊ اﻷﻋﺪاد اﻷوﻟﯿﺔ ﻣﻦ ‪ 2‬إﻟﻰ ‪ ، 99‬ﻋﻠﻰ اﻟﻌﻤﻮم وﻛﻤﺎ ﻻﺣﻈﺖ أﻧﮭﺎ‬
‫ﺳﻮف ﺗﺴﺘﻐﺮق ﻣﺴﺎﺣﮫ ﻛﺒﯿﺮة ﻓﻲ ﺣﺎﻟﮫ اﻟﻌﺪد اﻟﻤﺮاد اﺧﺘﺒﺎره ﻛﺒﯿﺮ ‪ ،‬ذﻟﻚ ھﻲ ﻏﯿﺮ ﻣﺴﺘﺨﺪﻣﮫ ﺑﻜﺜﺮة ‪.‬‬

‫‪9‬‬
‫‪PDF created with pdfFactory Pro trial version www.pdffactory.com‬‬
‫ﺍﻟﻘﺎﺳﻢ ﺍﻟﻤﺸﺘﺮﻙ ﺍﻷﻋﻈﻢ ‪) Greatest Common Divisor‬ﺍﺧﺘﺼﺎﺭﺍ ‪( GCD‬‬

‫اﻟﻘﺎﺳﻢ اﻟﻤﺸﺘﺮك اﻷﻋﻈﻢ ﻟﻌﺪدﯾﻦ ھﻮ أﻛﺒﺮ ﻋﺪد ﺻﺤﯿﺢ ﯾﻘﺒﻞ اﻟﻘﺴﻤﺔ ﻋﻠﻰ اﻟﻌﺪدﯾﻦ ‪.‬‬

‫ﻣﺜﻼ ﻧﺮﯾﺪ ﻣﻌﺮﻓﮫ اﻟﻘﺎﺳﻢ اﻟﻤﺸﺘﺮك اﻷﻛﺒﺮ ﻟﻠﻌﺪدﯾﻦ ‪ . 18 ، 30‬ﻧﻘﻮم ﺑﻤﻌﺮﻓﮫ ﺟﻤﯿﻊ ﻗﻮاﺳﻢ اﻟﻌﺪدﯾﻦ ‪،‬‬
‫وﻧﺄﺧﺬ اﻟﻌﺪد اﻷﻛﺒﺮ ﻣﻦ ھﺬه اﻟﻘﻮاﺳﻢ ‪:‬‬

‫‪ 30‬ﯾﻘﺒﻞ اﻟﻘﺴﻤﺔ ﻋﻠﻰ ‪ 1‬و ‪ 2‬و‪ 3‬و ‪ 5‬و ‪ 6‬و ‪ 10‬و ‪ 15‬و ‪30‬‬
‫‪ 18‬ﯾﻘﺒﻞ اﻟﻘﺴﻤﺔ ﻋﻠﻰ ‪ 1‬و ‪ 2‬و‪ 3‬و ‪ 6‬و ‪ 9‬و ‪18‬‬

‫ﻧﻼﺣﻆ ﻓﻲ اﻷﻋﺪاد اﻟﺴﺎﺑﻘﺔ أﻛﺒﺮ ﻗﺎﺳﻢ ﯾﻘﺒﻞ اﻟﻘﺴﻤﺔ ﻋﻠﻰ اﻟﻌﺪدﯾﻦ وھﻮ ‪. 6‬‬
‫‪GCD(30,18) = 6‬‬

‫ﯾﻘﺎل ﻋﻦ ﻋﺪدﯾﻦ "أوﻟﯿﺎن ﻓﯿﻤﺎ ﺑﯿﻨﮭﻤﺎ" ‪ Relatively Prime‬اذا ﻛﺎن اﻟﻘﺎﺳﻢ اﻟﻤﺸﺘﺮك اﻷﻋﻈﻢ‬
‫ﻟﮭﻢ ھﻮ ‪. 1‬‬

‫اﻷزواج اﻟﺘﺎﻟﯿﺔ ﻣﻦ اﻷﻋﺪاد أوﻟﯿﻨﺎ ﻓﯿﻤﺎ ﺑﯿﻨﮭﻤﺎ ‪: Relatively Prime‬‬


‫‪ 8‬و ‪ ، 9‬ﻷن اﻟﻘﺎﺳﻢ اﻟﻤﺸﺘﺮك اﻷﻋﻈﻢ ﻟﮭﻢ ھﻮ ‪. 1‬‬
‫‪ 23‬و ‪44‬‬
‫‪ 27‬و ‪55‬‬

‫اﻻﺷﺎره اﻟﺴﺎﻟﺒﺔ ﻻ ﺗﺆﺛﺮ ﻓﻲ ﺣﺴﺎب اﻟﻘﺎﺳﻢ اﻟﻤﺸﺘﺮك اﻷﻋﻈﻢ ‪:‬‬


‫)|‪GCD(x,y) = GCD(x,-y) = GCD(-x,y) = GCD(-x,-y) = GCD(|x|,|y‬‬

‫ﻣﺜﺎل ‪:‬‬
‫‪GCD(18,-54) = GCD(18,54) = 9‬‬

‫ﻷﺧﺬ اﻟﻘﺎﺳﻢ اﻟﻤﺸﺘﺮك اﻷﻋﻈﻢ ﻟﻤﺠﻤﻮﻋﮫ ﻣﻦ اﻷﻋﺪاد ﻧﻘﻮم ﺑﺄﺧﺬ اﻟﻘﺎﺳﻢ اﻟﻤﺸﺘﺮك اﻷﻋﻈﻢ ﻟﻌﺪدﯾﻦ‬
‫ﻣﻨﮭﻢ ‪ ،‬واﻟﻨﺎﺗﺞ ﻧﺄﺧﺬه ﻣﻊ اﻟﻌﺪد اﻟﺜﺎﻟﺚ وھﻜﺬا ‪.‬‬

‫ﻣﺜﺎل ‪ :‬اﻟﻘﺎﺳﻢ اﻟﻤﺸﺘﺮك اﻷﻋﻈﻢ ل ‪ 20:‬و ‪ 30‬و ‪ 15‬ھﻮ ‪ 5‬وذﻟﻚ ‪:‬‬


‫‪GCD(20,30) = 10‬‬
‫‪CGD(10,15) = 5‬‬

‫‪10‬‬
‫‪PDF created with pdfFactory Pro trial version www.pdffactory.com‬‬
‫اذا ﻛﺎن اﻟﻘﺎﺳﻢ اﻟﻤﺸﺘﺮك اﻷﻋﻈﻢ ﻟﻤﺠﻤﻮﻋﮫ ﻣﻦ اﻷﻋﺪاد = ‪ ، 1‬وﻛﺎن ھﻨﺎك زوج ﻣﻦ ھﺬه اﻷﻋﺪاد‬
‫)أي ﻋﺪدﯾﻦ( اﻟﻘﺎﺳﻢ اﻟﻤﺸﺘﺮك اﻷﻋﻈﻢ ھﻮ ﻏﯿﺮ ‪) 1‬أي ﻟﯿﺲ أوﻟﯿﺎن ﻓﯿﻤﺎ ﺑﯿﻨﮭﻤﺎ( ‪ ،‬ﻓﺄﻧﮭﺎ ﺗﺴﻤﻰ‬
‫‪ ، mutually relatively prime‬أﻣﺎ ﻓﻲ ﺣﺎﻟﺔ ﻛﺎن ﺟﻤﯿﻊ اﻷزواج ﻣﻊ ﺑﻌﻀﮭﺎ ﯾﻜﻮن اﻟﻘﺎﺳﻢ‬
‫ﯾﺴﺎوي واﺣﺪ ﻓﺈﻧﮭﺎ ﺗﺴﻤﻰ ‪. pairwise relatively prime‬‬

‫ﻣﺜﺎل ‪ :‬ﻟﺤﺴﺎب اﻟﻘﺎﺳﻢ اﻟﻤﺸﺘﺮك اﻷﻋﻈﻢ ﻟﻸﻋﺪاد ‪ 28‬و ‪ 126‬و ‪ 21‬و ‪: 10‬‬
‫= )‪( (28,126) , 21 , 10‬‬
‫= )‪(14 , 21 , 10‬‬
‫= )‪( (14,21) , 10‬‬
‫= )‪(7,10‬‬
‫=‪1‬‬

‫ﻻﺣﻆ اﻟﻨﺘﯿﺠﺔ ھﻲ واﺣﺪ ‪ ،‬ﺑﺎﻟﺮﻏﻢ ﻣﻦ أن ھﻨﺎك زوج ﻣﻦ اﻷﻋﺪاد ﻏﯿﺮ أوﻟﯿﺎن ﻓﯿﻤﺎ ﺑﯿﻨﮭﻤﺎ ‪،‬‬
‫)‪. 7 = (28,126‬‬
‫وﻓﻲ ھﺬه اﻟﺤﺎﻟﺔ ﺗﺴﻤﻰ ﻣﺠﻤﻮﻋﮫ اﻷﻋﺪاد ‪ . mutually relatively prime‬أﻣﺎ ﻓﻲ ﺣﺎﻟﮫ ﻛﺎن‬
‫ﺟﻤﯿﻊ اﻷزواج ﻣﻦ اﻷﻋﺪاد أوﻟﯿﺎن ﻓﯿﻤﺎ ﺑﯿﻨﮭﻤﺎ ﻓﺘﺴﻤﻰ ﻣﺠﻤﻮﻋﮫ اﻷﻋﺪاد ﺑـ ‪pairwise relatively‬‬
‫‪. prime‬‬

‫ﻣﺜﺎل ‪:‬اﻟﻘﺎﺳﻢ اﻟﻤﺸﺘﺮك ﻟﻸﻋﺪاد ‪ 18‬و ‪ 9‬و ‪ 25‬ھﻮ ‪ ، 1‬وﻣﻊ ذﻟﻚ ﻓﮭﻲ ‪mutually relatively‬‬
‫‪ ، prime‬ﻻن اﻟﻘﺎﺳﻢ اﻟﻤﺸﺘﺮك اﻷﻋﻈﻢ ل ‪ 18,9‬ھﻮ ‪) 9‬أي ھﻤﺎ ﻟﯿﺴﺎ أوﻟﯿﺎن ﻓﯿﻤﺎ ﺑﯿﻨﮭﻤﺎ( ‪.‬‬

‫ﺧﻮﺍﺭﺯﻣﻴﺔ ﺃﻗﻠﻴﺪﺱ ‪Euclidean Algorithm‬‬

‫اذا ﻛﺎن ﻟﺪﯾﻨﺎ ﻋﺪدﯾﻦ ‪ c,q‬ﺑﺤﯿﺚ ‪ ، c = q*d + r‬اذا )‪. GCD(d,r) = GCD(c,q‬‬

‫اﻟﻘﺎﻋﺪة اﻟﺴﺎﺑﻘﺔ ﻣﮭﻤﺔ ﺟﺪا ‪ ،‬وﻧﺴﺘﻄﯿﻊ ﻣﻦ ﺧﻼﻟﮭﺎ إﯾﺠﺎد اﻟﻘﺎﺳﻢ اﻟﻤﺸﺘﺮك اﻷﻋﻈﻢ ﻟﻠﻌﺪدﯾﻦ ﺑﺴﺮﻋﺔ ‪.‬‬

‫ﻣﺜﺎل ‪ :‬أوﺟﺪ اﻟﻘﺎﺳﻢ اﻟﻤﺸﺘﺮك اﻷﻋﻈﻢ ‪ 132‬و ‪ 55‬ﺑﺎﺳﺘﺨﺪام ﺧﻮارزﻣﯿﺔ أﻗﻠﯿﺪس ‪:‬‬

‫‪132 = 55 * 2 + 22‬‬
‫‪55 = 22 * 2 + 11‬‬
‫‪22 = 11 * 2 + 0‬‬

‫ﻧﺘﻮﻗﻒ ﻋﻨﺪ اﻟﻮﺻﻮل إﻟﻰ اﻟﺼﻔﺮ ‪ ،‬وﯾﻜﻮن اﻟﻘﺎﺳﻢ اﻟﻤﺸﺘﺮك اﻷﻋﻈﻢ ھﻮ ‪ 11‬وذﻟﻚ ‪:‬‬
‫‪GCD(132,55) = GCD(55,22) = GCD(22,11) = GCD(11,0) = 11‬‬

‫ﻣﺜﺎل أﺧﺮ ‪ :‬أوﺟﺪ )‪ GCD(252,198‬ﺑﺎﺳﺘﺨﺪام ﺧﻮارزﻣﯿﺔ أﻗﻠﯿﺪس ؟‬

‫‪252 = 198 * 1 + 54‬‬


‫‪198 = 54 * 3 + 36‬‬
‫‪54 = 36 * 1 + 18‬‬
‫‪36 = 18 * 2 + 0‬‬

‫‪11‬‬
‫‪PDF created with pdfFactory Pro trial version www.pdffactory.com‬‬
‫ﻧﺘﻮﻗﻒ ﻋﻨﺪ اﻟﺼﻔﺮ ‪ ،‬واﻟﻘﺎﺳﻢ ھﻮ ‪: 18‬‬
‫‪GCD(252,198) = (198,54) = (54,36) = (36,18) = (18,0) = 18‬‬

‫ﺍﻟﺨﻮﺍﺭﺯﻣﻴﺔ ﺍﻹﻗﻠﻴﺪﻳﻪ ﺍﻟﻤﻤﺘﺪﺓ ‪Extended Euclidean Algorithm‬‬

‫ﯾﻤﻜﻦ ﺗﻤﺜﯿﻞ اﻟﻘﺎﺳﻢ اﻟﻤﺸﺘﺮك اﻷﻋﻈﻢ ﻟﻠﻌﺪدﯾﻦ ﻋﻦ ﻃﺮﯾﻖ دﻣﺞ ﺧﻄﻲ ‪Linear Combination‬‬
‫ﻣﻊ ﻋﺪدﯾﻦ آﺧﺮﯾﻦ ‪ ،‬وذﻟﻚ ﻛﺎﻟﺘﺎﻟﻲ ‪GCD(x,y) = m*x + n*y :‬‬

‫ﻛﯿﻒ ﯾﻤﻜﻦ أﯾﺠﺎد ﻗﯿﻤﺘﻲ ‪ m‬و ‪ n‬وذﻟﻚ ﻋﻦ ﻃﺮﯾﻖ ﺧﻮارزﻣﯿﺔ اﻗﻠﯿﺪس اﻟﻤﻤﺘﺪة ‪ .‬وھﻨﺎك ﺛﻼﺛﺔ ﻃﺮق‬
‫ﻟﻤﻌﺮﻓﺔ ھﺬه اﻟﻘﯿﻢ )اﻟﻄﺮق ھﻲ ﻣﺸﺎﺑﮫ ﻟﺒﻌﺾ ‪ ،‬ﻟﻜﻦ ﯾﻤﻜﻦ اﻟﻘﻮل أﻧﮭﺎ ﻣﺨﺘﺼﺮه ﻣﻦ اﻷﺧﺮﯾﺎت( ‪.‬‬

‫اﻟﻄﺮﯾﻘﮫ اﻷوﻟﻰ ‪ ،‬وھﻲ ﯾﻤﻜﻦ أن ﻧﻄﻠﻖ ﻋﻠﯿﮭﺎ اﻟﺘﺮاﺟﻊ ‪ ، Backward‬وھﻨﺎ ﻓﻲ ھﺬه اﻟﻄﺮﯾﻘﮫ ﻧﻘﻮم‬
‫ﺑﺎﻟﺤﻞ ﻋﻦ ﻃﺮﯾﻖ ﺧﻮارزﻣﯿﺔ اﻗﻠﯿﺪس وﺑﻌﺪھﺎ ﻧﻘﻮم ﺑﺎﻟﺘﺮاﺟﻊ اﻟﺨﻠﻔﻲ ‪ ،‬ﻹﯾﺠﺎد ﻗﯿﻢ ‪ m‬و ‪ . n‬ﻛﻤﺎ ﻓﻲ‬
‫اﻟﻤﺜﺎل اﻟﺘﺎﻟﻲ ‪:‬‬

‫ﻣﺜﺎل ‪ ،‬ﻗﻢ ﺑﺘﻤﺜﯿﻞ )‪ GCD(26,21‬ك‪ Linear Combination‬ﻟﻠﻌﺪدﯾﻦ ‪ 26‬و ‪: 21‬‬


‫ﻧﺒﺪأ ﻓﻲ اﻟﺤﻞ ﻛﻤﺎ ھﻮ اﻟﺤﺎل ﻓﻲ ﻃﺮﯾﻘﮫ اﻗﻠﯿﺪس ‪:‬‬
‫‪26 = 1* 21 + 5‬‬
‫‪21 = 4 * 5 + 1‬‬
‫‪5 = 5*1 +0‬‬

‫وﻧﺘﻮﻗﻒ ﻋﻨﺪ اﻟﺼﻔﺮ ‪ .‬اﻵن اﻟﻤﻌﺎدﻟﺔ اﻟﺘﻲ ﻗﺒﻞ اﻟﻤﻌﺎدﻟﺔ اﻟﺘﻲ ﺑﺎﻗﯿﮭﺎ ﺻﻔﺮ ) وھﻲ ﻓﻲ ﺣﺎﻟﺘﻨﺎ ھﺬه‬
‫اﻟﻤﻌﺎدﻟﺔ اﻟﺜﺎﻧﯿﺔ ( ﻧﻘﻮم ﺑﻜﺘﺎﺑﺘﮭﺎ ﺑﮭﺬا اﻟﺸﻜﻞ ‪:‬‬
‫]‪1 = 21 – 4 * 5 ………… [1‬‬
‫أﯾﻀﺎ اﻟﻤﻌﺎدﻟﺔ اﻷوﻟﻰ ﺑﻨﻔﺲ اﻟﺸﻜﻞ ‪:‬‬
‫]‪5 = 26 – 1 * 21 …………[2‬‬

‫اﻵن ﻧﻌﻮض اﻟﻤﻌﺎدﻟﺔ ]‪ [2‬ﻓﻲ ]‪: [1‬‬


‫)‪1 = 21 – 4 * (26 – 1 * 21‬‬
‫وﻣﻦ ﻏﯿﺮ أﺟﺮاء ﻋﻤﻠﯿﮫ ﺣﺴﺎﺑﯿﮫ ‪ ،‬ﻓﻘﻂ ﻧﻔﻚ اﻟﻘﻮس ﻟﯿﻨﺘﺞ ‪:‬‬
‫‪1 = 21 -4*26 +4*21‬‬
‫ﻧﺠﻤﻊ ‪ 4*21 + 21‬ﻟﯿﻜﻮن ﻟﺪﯾﻨﺎ اﻟﻨﺎﺗﺞ اﻟﻨﮭﺎﺋﻲ ‪:‬‬

‫‪1 = 5*21 + (-4)*26‬‬


‫ﻧﺘﺄﻛﺪ ﻣﻦ اﻟﻨﺘﯿﺠﺔ ‪ 5*21 + -4*26 ،‬واﻟﻨﺎﺗﺞ ﯾﺴﺎوي واﺣﺪ ‪ ،‬اذا اﻟﻤﻌﺎدﻟﺔ ﺻﺤﯿﺤﺔ ‪.‬‬

‫اذا ﻗﯿﻤﺔ ‪ m‬ھﻲ ‪ ، 5‬وﻗﯿﻤﮫ ‪ n‬ھﻲ ‪. 4-‬‬


‫)ﻓﻲ اﻟﻔﺼﻞ اﻟﻘﺎدم ‪ ،‬ﺳﻨﺮى أن ‪ n‬و ‪ m‬ﯾﺴﻤﻰ ﻣﻌﻜﻮس اﻟﻌﺪد (‪.‬‬

‫‪12‬‬
‫‪PDF created with pdfFactory Pro trial version www.pdffactory.com‬‬
‫ﻣﺜﺎل ‪ :‬أوﺟﺪ ﻣﻌﻜﻮس اﻟﻤﻌﺎدﻟﺔ ‪ a=3 MOD 26‬؟‬
‫اﻟﺤﻞ ‪ ،‬أوﻻ ﻧﻘﻮم ﺑﺘﻄﺒﯿﻖ ﺧﻮارزﻣﯿﺔ اﻗﻠﯿﺪس اﻟﻤﻤﺘﺪة ‪ ،‬ﻋﻠﻰ اﻟﻌﺪدﯾﻦ ‪ 3‬و ‪ . 26‬ﻛﺎﻟﺘﺎﻟﻲ ‪:‬‬

‫‪26=8*3+2‬‬ ‫‪à 2= 26 - 8*3‬‬


‫‪3=1*2+1‬‬ ‫‪à 1= 3 – 2‬‬
‫‪2=2*1+0‬‬

‫‪1= 3 - 2 = 3 - (26 - 8*3) = 3 – 26 + 8 * 3 = 9*3 – 26‬‬


‫‪1 = 9*3+(-1)*26‬‬

‫اﻵن اﻟﻌﺪد اﻟﻤﺠﺎور ل ‪ 3‬ھﻮ اﻟﻤﻌﻜﻮس ‪ ،‬وھﻮ ‪. 9‬‬

‫اﻟﻄﺮﯾﻘﮫ اﻟﺜﺎﻧﯿﺔ ‪ ،‬وھﻲ أﺳﮭﻞ وأﺳﺮع ﺑﻜﺜﯿﺮ ‪ ،‬وﺳﻮف ﻧﺸﺮﺣﮭﺎ ﺑﻨﻔﺲ اﻟﻤﺜﺎل اﻟﺴﺎﺑﻖ‪:‬‬
‫ﻣﺜﺎل ‪ ،‬ﻗﻢ ﺑﺘﻤﺜﯿﻞ )‪ GCD(26,21‬ك‪ Linear Combination‬ﻟﻠﻌﺪدﯾﻦ ‪ 26‬و ‪: 21‬‬
‫ﻧﻘﻮم ﻓﻲ اﻟﺒﺪاﯾﺔ ﺑﺈﻧﺸﺎء ﺟﺪول ‪ ،‬وﻧﻀﻊ ھﺬه اﻟﻘﯿﻢ ﻓﯿﮫ ‪:‬‬

‫‪A‬‬ ‫‪Q‬‬ ‫‪X‬‬


‫‪26‬‬
‫‪21‬‬

‫اﻵن ﻧﺒﺪأ ﻓﻲ أﺧﺪ ﺑﺎﻗﻲ ﻗﺴﻤﮫ ‪ 26‬ﻋﻠﻰ ‪ 21‬واﻟﻨﺎﺗﺞ ﻧﻀﻌﮫ ﻓﻲ ﻧﻔﺲ اﻟﻌﻤﻮد أﺳﻔﻞ ‪. 21‬‬
‫‪26 MOD 21 = 5‬‬
‫وﻧﻀﻊ ‪ 5‬أﺳﻔﻞ ‪. 21‬‬

‫ﻣﺮه أﺧﺮى ﻧﺄﺧﺬ ﺑﺎﻗﻲ ﻗﺴﻤﮫ ‪ 21‬و ‪ 5‬واﻟﻨﺎﺗﺞ ﻧﻀﻌﮫ أﺳﻔﻞ ‪ ، 5‬وھﻮ ‪ ، 1‬واﻟﻤﺮة اﻷﺧﯿﺮة اﻟﺒﺎﻗﻲ‬
‫ھﻮ‪ 0‬وﺳﻮف ﻧﺘﻮﻗﻒ ﻋﻨﺪه ‪.‬‬
‫‪A‬‬ ‫‪Q‬‬ ‫‪X‬‬
‫‪26‬‬
‫‪21‬‬
‫‪5‬‬
‫‪1‬‬
‫‪0‬‬

‫اﻵن ﻧﻘﺴﻢ ‪ 26‬ﻋﻠﻰ ‪ 21‬وﻧﻀﻊ اﻟﻨﺎﺗﺞ ﻓﻲ اﻟﻌﻤﻮد ‪) q‬ﺑﺪأ ﻣﻦ اﻟﺼﻒ اﻟﺜﺎﻧﻲ ( ‪ ،‬واﻟﻨﺎﺗﺞ ھﻮ ﻋﺪد‬
‫ﻛﺴﺮي ‪ ،‬ﻟﻜﻦ ﻧﺤﻦ ﺳﻮف ﻧﺄﺧﺬ اﻟﺠﺰء اﻟﺼﺤﯿﺢ وھﻮ ‪ ، 1‬أﯾﻀﺎ ﻧﻘﺴﻢ ‪ 21‬ﻋﻠﻰ ‪ 5‬واﻟﻨﺎﺗﺞ اﻟﺼﺤﯿﺢ‬
‫ھﻮ ‪ ، 4‬وﻧﺴﺘﻤﺮ ھﻜﺬا ‪.‬‬

‫‪13‬‬
‫‪PDF created with pdfFactory Pro trial version www.pdffactory.com‬‬
‫‪A‬‬ ‫‪Q‬‬ ‫‪X‬‬
‫‪26‬‬
‫‪21‬‬ ‫‪1‬‬
‫‪5‬‬ ‫‪4‬‬
‫‪1‬‬ ‫‪5‬‬
‫‪0‬‬

‫اﻵن ﻓﻲ اﻟﻌﻤﻮد ‪ ، x‬ﻧﻘﻮم ﺑﻮﺿﻊ أﺧﺮ ﻗﯿﻤﺘﯿﻦ ‪ 0‬و ‪ ، 1‬ﻛﻤﺎ ﻓﻲ اﻟﺸﻜﻞ ‪،‬‬

‫‪26‬‬
‫‪21‬‬ ‫‪1‬‬
‫‪5‬‬ ‫‪4‬‬ ‫‪1‬‬
‫‪1‬‬ ‫‪5‬‬ ‫‪0‬‬
‫‪0‬‬

‫اﻵن ﻟﻜﻲ ﻧﺤﺴﺐ اﻟﺼﻒ اﻟﺜﺎﻧﻲ ﻓﻲ اﻟﻌﻤﻮد ‪ ، x‬ﻧﻘﻮم ﺑﺎﻷﺗﻲ ‪4 = 0 + 1*4 ،‬‬
‫أي ﺳﻨﻀﺮب اﻟﻘﯿﻤﺘﯿﻦ اﻟﻠﺘﺎن ﯾﻘﻌﺎن ﻓﻲ اﻟﺼﻒ اﻷﺳﻔﻞ ﻣﺒﺎﺷﺮه وﻧﺠﻤﻊ اﻟﻨﺎﺗﺞ ﻣﻊ اﻟﻘﯿﻤﺔ ﻓﻲ اﻟﻌﻤﻮد‬
‫‪ x‬اﻟﺘﻲ ﺗﺄﺗﻲ ﺑﻌﺪ ﺻﻔﯿﻦ ‪.‬‬
‫‪4 = 4*1 + 0‬‬
‫‪26‬‬
‫‪21‬‬ ‫‪1‬‬ ‫‪4‬‬
‫‪5‬‬ ‫‪4‬‬ ‫‪1‬‬
‫‪1‬‬ ‫‪5‬‬ ‫‪0‬‬

‫‪0‬‬

‫ﻧﻔﺲ اﻷﻣﺮ ﻣﻊ اﻟﺴﻄﺮ اﻷول ‪5 = 4*1 + 1 :‬‬


‫‪26‬‬ ‫‪5‬‬
‫‪21‬‬ ‫‪1‬‬ ‫‪4‬‬
‫‪5‬‬ ‫‪4‬‬ ‫‪1‬‬
‫‪1‬‬ ‫‪5‬‬ ‫‪0‬‬
‫‪0‬‬
‫اﻵن اﻟﺨﻄﻮة اﻷﺧﯿﺮة ‪:‬‬
‫‪A‬‬ ‫‪Q‬‬ ‫‪X‬‬
‫‪26‬‬ ‫‪5‬‬
‫‪21‬‬ ‫‪1‬‬ ‫‪4‬‬

‫‪1 = 5 * 21 – 4 * 26‬‬
‫‪1 = 5*21 + (-4)*26‬‬
‫وﺑﮭﺬا ﻧﻜﻮن ﻋﺮﻓﻨﺎ ﻣﻌﻜﻮس اﻟﻌﺪد اﻷول واﻟﺜﺎﻧﻲ ) أو ‪ m‬و ‪. ( n‬‬

‫‪14‬‬
‫‪PDF created with pdfFactory Pro trial version www.pdffactory.com‬‬
‫ﻣﺜﺎل ‪ /‬أوﺟﺪ ﻣﻌﻜﻮس ‪ 23 MOD 26‬؟‬

‫‪A‬‬ ‫‪Q‬‬ ‫‪X‬‬


‫‪26‬‬ ‫‪9‬‬
‫‪23‬‬ ‫‪1‬‬ ‫‪8‬‬
‫‪3‬‬ ‫‪7‬‬ ‫‪1‬‬
‫‪2‬‬ ‫‪1‬‬ ‫‪1‬‬
‫‪1‬‬ ‫‪0‬‬

‫‪1 = 8 * 26 – 9 * 23. Correct‬‬


‫اﻻﺟﺎﺑﮫ ﺻﺤﯿﺤﺔ ‪ ،‬ﻟﻜﻦ ﻣﺎ ھﻮ ﻣﻌﻜﻮس ‪ 23‬؟‬
‫اﻟﺠﻮاب ھﻮ ‪ ، 9-‬وﻟﯿﺲ ‪. 9‬‬
‫‪1 = 8 * 26 + (- 9) * 23‬‬

‫اﻟﻄﺮﯾﻘﮫ اﻟﺜﺎﻟﺜﺔ ‪،‬وھﻲ اﻷﺳﮭﻞ ﺑﺮﻣﺠﯿﺎ ‪ ،‬وﻃﺮﯾﻘﮫ ھﺬه اﻟﺨﻮارزﻣﯿﺔ ﻛﺎﻟﺘﺎﻟﻲ ‪:‬‬
‫‪GCD (x, y) = snx + tny‬‬

‫ﯾﻜﻮن ﺣﺴﺎب ﻗﯿﻤﮫ ‪ s‬و ‪ t‬ﻛﻤﺎ ﯾﻠﻲ ‪:‬‬

‫ﻣﺜﺎل ‪ ،‬ﻗﻢ ﺑﺘﻤﺜﯿﻞ )‪ GCD(252,198‬ك‪ Linear Combination‬ﻟﻠﻌﺪدﯾﻦ ‪ 252‬و ‪. 198‬‬

‫اﻵن ﻛﻤﺎ ھﻮ ﻣﻮﺿﺢ ﺑﺎﻟﺼﻮرة أدﻧﺎه ‪ ،‬اﻟﻌﻤﻮد ‪ j‬ﯾﻤﺜﻞ ﻋﺪد اﻟﻤﺮاﺣﻞ ‪ q ،‬ﯾﻤﺜﻞ ﺣﺎﺻﻞ اﻟﻘﺴﻤﺔ ‪r ،‬‬
‫ﯾﻤﺜﻞ ﺑﺎﻗﻲ اﻟﻘﺴﻤﺔ و‪ s,t‬ھﻤﺎ اﻟﻤﻄﻠﻮﺑﯿﻦ ‪.‬‬

‫ﻧﻘﻮم أوﻻ ﺑﻮﺿﻊ اﻟﻌﺪدﯾﻦ ‪ 252‬و ‪ 198‬ﻓﻲ اﻟﻌﻤﻮم ‪. r‬‬

‫‪15‬‬
‫‪PDF created with pdfFactory Pro trial version www.pdffactory.com‬‬
‫ﻧﻘﻮم ﺑﻘﺴﻤﮫ ‪ 252‬ﻋﻠﻰ ‪ 198‬وﻧﻀﻊ ﺣﺎﺻﻞ اﻟﻘﺴﻤﺔ )ﻋﺪد ﺻﺤﯿﺢ( ﻓﻲ ‪ q‬وھﻮ ‪ ، 1‬ﻧﻘﻮم ﺑﺄﺧﺬ ﺑﺎﻗﻲ‬
‫ﻗﺴﻤﮫ ‪ 252‬و ‪ 198‬وﺗﺴﺎوي ‪ 54‬وﻧﻀﻌﮭﺎ ﻓﻲ اﻟﻌﻤﻮد ‪ r‬أﺳﻔﻞ ﻣﻨﮭﻢ ‪.‬‬

‫ﻧﻘﺴﻢ ‪ 198‬ﻋﻠﻰ ‪ 54‬وﻧﻀﻊ ﺣﺎﺻﻞ اﻟﻘﺴﻤﺔ ﻓﻲ ‪ q‬وھﻲ ‪ ، 3‬وﻧﻘﻮم ﺑﺄﺧﺬ ﺑﺎﻗﻲ ﻗﺴﻤﮫ ‪ 198‬و ‪54‬‬
‫وﺗﺴﺎوي ‪ 36‬وﻧﻀﻌﮭﺎ ﻓﻲ ‪. r‬‬

‫اﻵن ﻧﻘﺴﻢ ‪ 54‬ﻋﻠﻰ ‪ ، 36‬ﺣﺎﺻﻞ اﻟﻘﺴﻤﺔ ‪ 1‬ﯾﻜﻮن ﻓﻲ ‪ ، q‬ﺑﺎﻗﻲ اﻟﻘﺴﻤﺔ ‪ 18‬ﯾﻜﻮن ﻓﻲ ‪ ، r‬و ﻧﻘﺴﻢ‬
‫‪ 36‬ﻋﻠﻰ ‪ ، 18‬ﺣﺎﺻﻞ اﻟﻘﺴﻤﺔ ‪ 2‬ﯾﻜﻮن ﻓﻲ ‪ ، q‬ﺑﺎﻗﻲ اﻟﻘﺴﻤﺔ ‪ 0‬ﯾﻜﻮن ﻓﻲ ‪. r‬‬

‫وﺑﻤﺎ أن ﺑﺎﻗﻲ اﻟﻘﺴﻤﺔ ﯾﺴﺎوي ﺻﻔﺮ اذا ﻧﺘﻮﻗﻒ ھﻨﺎ ‪ .‬وﻧﻨﺘﻘﻞ إﻟﻰ آﺧﺮ ﻋﻤﻮدﯾﻦ وھﻤﺎ ‪ . s ,t‬وﻛﻤﺎ ﻓﻲ‬
‫اﻟﻘﺎﻧﻮن أﻋﻼه داﺋﻤﺎ أول ﺳﻄﺮﯾﻦ ﺛﺎﺑﺘﯿﻦ ‪ s0 = 1 , s1= 0 :‬و ‪ . t0 =0 , t1= 1‬ﻧﺄﺗﻲ ﻟﺒﺎﻗﻲ‬
‫اﻟﺴﻄﻮر ‪.‬‬

‫اﻵن ﻟﺤﺴﺎب اﻟﺴﻄﺮ اﻟﺜﺎﻟﺚ ‪ ، si‬ﻧﻘﻮم ﺑﺄﺧﺬ اﻟﻘﯿﻤﺔ ﻓﻲ اﻟﺴﻄﺮ ‪) s i-2‬اﻟﺴﻄﺮ اﻟﺬي ﯾﺴﺒﻘﮫ ﺑﻤﺮﺣﻠﺘﯿﻦ(‬
‫‪ ،‬ﺛﻢ ﻧﻄﺮﺣﮫ ﻣﻦ ﺣﺎﺻﻞ ﺿﺮب اﻟﺴﻄﺮ ‪. si-1 * qi-1‬‬

‫اﻵن اﻟﺴﻄﺮ اﻟﺜﺎﻟﺚ ﯾﺴﺎوي ‪:‬‬


‫‪Si= si-2 – si-1*qi-1‬‬
‫‪= 1 - 0*1‬‬
‫‪=1‬‬

‫وھﻜﺬا ﺑﺎﻟﻨﺴﺒﺔ ﻟﺒﺎﻗﻲ اﻟﺴﻄﻮر ‪ ،‬وﻧﻔﺲ اﻟﻜﻼم ﺑﺎﻟﻨﺴﺒﺔ ﻟﻠﻌﺎﻣﻮد ‪ . t‬إﻟﻰ أن ﻧﺼﻞ إﻟﻰ أﺧﺮ ﻗﯿﻤﮫ ل‪s‬‬
‫ول‪ t‬وھﻲ ‪ s=4 :‬و ‪. t=-5‬‬

‫وﯾﺼﺒﺢ ﺣﻞ اﻟﺴﺆال ھﻮ ‪:‬‬


‫‪GCD(252,198) = 4*252 + (-5)*198‬‬
‫ﻗﻢ ﺑﺎﻟﺘﺄﻛﺪ ‪ ،‬ﻋﻦ ﻃﺮﯾﻖ أﺟﺮاء اﻟﻌﻤﻠﯿﺔ اﻟﺤﺴﺎﺑﯿﺔ ‪ 4*252 + (-5)*198‬وﺗﺴﺎوي ‪ 18‬وھﻮ ﻧﻔﺴﮫ‬
‫اﻟﻘﺎﺳﻢ اﻟﻤﺸﺘﺮك اﻷﻛﺒﺮ ﻟﻠﻌﺪدﯾﻦ ‪ 252‬و ‪. 198‬‬

‫)اﻟﻔﺎﺋﺪة ﻣﻦ ھﺬه اﻟﻄﺮﯾﻘﮫ أﻧﻨﺎ ﺳﻨﺤﺼﻞ ﻋﻠﻰ اﻟﻌﺪدﯾﻦ ‪) s,t‬وھﻮ ﻣﺎ ﯾﺴﻤﻰ ﺑﺎﻟﻤﻌﻜﻮس( ‪ ،‬وھﻤﺎ ﻣﮭﻤﯿﻦ‬
‫ﺟﺪا ﻓﻲ ﻃﺮﯾﻘﮫ اﻟﺘﺸﻔﯿﺮ ﺑﺸﻔﺮة ‪ ، Affine Cipher‬واﻟﺘﻲ ﺳﺘﻜﻮن ﻓﻲ اﻟﻘﺴﻢ اﻟﻘﺎدم(‪.‬‬

‫ﺍﻟﻨﻈﺮﻳﺔ ﺍﻷﺳﺎﺳﻴﺔ ﻓﻲ ﺍﻟﺤﺴﺎﺏ ‪The Fundamental Theorem of‬‬


‫‪Arithmetic‬‬

‫ﺗﻨﺺ ﻋﻠﻰ أن أي ﻋﺪد أﻛﺒﺮ ﻣﻦ ‪ ، 1‬ﯾﻤﻜﻦ أن ﯾﻜﺘﺐ ﻓﻲ اﻟﺼﻮره ‪n = p1*p2*p3*…pn :‬‬


‫ﺣﯿﺚ ‪ P‬ھﻮ ﻋﺪد أوﻟﻲ ‪ ،‬وھﺬا ﻣﺎ ﯾﻌﺮف ﺑﺘﺤﻠﯿﻞ اﻟﻌﺪد إﻟﻰ ﻋﻮاﻣﻠﮫ اﻷوﻟﯿﺔ‬
‫‪. Prime Power Factorization of an integer‬‬

‫ﻣﺜﺎل ‪:‬‬

‫‪16‬‬
‫‪PDF created with pdfFactory Pro trial version www.pdffactory.com‬‬
‫ﺍﻟﻤﻀﺎﻋﻒ ﺍﻟﻤﺸﺘﺮﻙ ﺍﻷﺻﻐﺮ ‪) Least Common Multiple‬ﺍﺧﺘﺼﺎﺭﺍ ‪(LCM‬‬

‫وھﻮ أﻗﻞ ﻋﺪد ﺻﺤﯿﺢ ﯾﻘﺒﻞ اﻟﻘﺴﻤﺔ ﻋﻠﻰ اﻟﻌﺪدﯾﻦ ‪.‬‬


‫وأﺳﮭﻞ ﻃﺮﯾﻘﮫ ﻹﯾﺠﺎده ﻋﻦ ﻃﺮﯾﻖ ﺿﺮب اﻟﻌﺪدﯾﻦ وﻗﺴﻤﺔ اﻟﻨﺎﺗﺞ ﻋﻠﻰ اﻟﻘﺎﺳﻢ اﻟﻤﺸﺘﺮك اﻷﻋﻈﻢ‬
‫ﻟﻠﻌﺪدﯾﻦ ‪:‬‬
‫)‪LCM(x,y) = x*y / GCD(x,y‬‬

‫ﻣﺜﺎل ‪:‬‬
‫‪• lcm(36, 78) = 36 · 78/(36, 78) = 36 · 78/6 = 6 · 78 = 468‬‬
‫‪• lcm(21, 56) = 21 · 56/(21, 56) = 21 · 56/7 = 3 · 56 = 168‬‬
‫‪• lcm(100, 2050) = 100 · 2050/(100, 2050) = 100 · 2050/50 = 2 · 2050 = 4100‬‬

‫ﺍﻟﻤﻌﺎﻣﻞ ‪XOR – Exclusive-Or‬‬


‫ﺗﺴﺘﺨﺪم ھﺬه اﻟﻌﻤﻠﯿﺔ اﻟﺮﯾﺎﺿﯿﺔ ﻓﻲ اﻏﻠﺐ ﻃﺮق اﻟﺘﺸﻔﯿﺮ ‪ ،‬وﻃﺮﯾﻘﮫ ﻋﻤﻠﮭﺎ ﻛﺎﻟﺘﺎﻟﻲ ‪:‬‬

‫وﯾﻤﻜﻦ اﻋﺘﺒﺎرھﺎ ﻋﻠﻰ أﻧﮭﺎ ﻋﻤﻠﯿﮫ ﺟﻤﻊ ﻣﻊ أﺧﺬ ﺑﺎﻗﻲ اﻟﻘﺴﻤﺔ ﻋﻠﻰ ‪. 2‬‬
‫‪0 + 0 MOD 2 = 0‬‬
‫‪0 + 1 MOD 2 = 1‬‬
‫‪1 + 0 MOD 2 = 1‬‬
‫‪1 + 1 MOD 2 = 0‬‬

‫ﺑﻌﺾ اﻟﻘﻮاﻧﯿﻦ ‪:‬‬

‫‪17‬‬
‫‪PDF created with pdfFactory Pro trial version www.pdffactory.com‬‬
‫ﻃﺒﻌﺎ اﻟﺪاﻟﺔ ‪ XOR‬ﻣﻔﯿﺪة ﺟﺪا ﻓﻲ اﻟﻜﺜﯿﺮ ﻣﻦ اﻟﺤﺎﻻت ‪ ،‬أﻏﻠﺐ اﻟﻤﺒﺮﻣﺠﯿﻦ اﻟﻤﺒﺘﺪﺋﯿﻦ ﯾﻌﺮﻓﻮا أﻧﮫ‬
‫ﯾﻤﻜﻦ ﻋﻤﻞ ‪ swap‬ﺑﯿﻦ ﻣﺘﻐﯿﺮﯾﻦ ﺑﺪون اﺳﺘﺨﺪام ﻣﺘﻐﯿﺮ ﺛﺎﻟﺚ ‪:‬‬

‫ﯾﻌﻨﻲ ﺑﺪل ﻟﻤﺎ ﺗﻜﻮن اﻟﻌﻤﻠﯿﺔ ‪:‬‬


‫;‪temp = a‬‬
‫;‪a = b‬‬
‫;‪b = temp‬‬
‫ﺗﺼﺒﺢ ‪:‬‬
‫;‪a = a xor b‬‬
‫;‪b = a xor b‬‬
‫;‪a = a xor b‬‬

‫اﺿﺎﻓﮫ إﻟﻰ اﺳﺘﺨﺪاﻣﮭﺎ ﻓﻲ اﻟﺘﺸﻔﯿﺮ ‪ ،‬ﺣﯿﺚ ﺗﻜﻮن ﻓﻲ اﻷﻏﻠﺐ ﻛﻤﺎ ﯾﻠﻲ ‪:‬‬

‫) ‪ r‬ھﻮ اﻟﻌﺪد اﻟﻌﺸﻮاﺋﻲ ‪ p ،‬ھﻮ اﻟﺤﺮف اﻷﺻﻠﻲ ( ‪.‬‬ ‫‪C = r XOR p‬‬
‫وﻟﻔﻚ اﻟﺘﺸﻔﯿﺮ ‪:‬‬
‫‪ c ) P = r XOR c‬ھﻮ اﻟﺤﺮف اﻟﻤﺸﻔﺮ( ‪.‬‬

‫ﻋﻠﻰ اﻟﻌﻤﻮم‪ ،‬اﻟﺪاﻟﺔ ‪ XOR‬ﻻ ﺗﻨﻔﻊ ﻟﻠﺘﺸﻔﯿﺮ ﺑﺬاﺗﮭﺎ ‪ ،‬ﺑﻞ ﯾﺠﺐ أن ﺗﺴﺘﺨﺪم ﺿﻤﻦ ﻃﺮﯾﻘﮫ ﻣﺎ ‪.‬‬

‫‪An XOR might keep your kid sister from reading your files, but it‬‬
‫‪won’t stop a cryptanalyst for more than a few minutes‬‬

‫‪Logarithms‬‬

‫‪.‬‬ ‫وﺗﺴﺎوي‬ ‫ﻣﻦ اﻟﻤﻌﺮوف أن‬

‫‪18‬‬
‫‪PDF created with pdfFactory Pro trial version www.pdffactory.com‬‬
‫ﻟﻜﻦ اﻟﻤﺸﻜﻠﺔ أﻧﮫ أﻏﻠﺐ اﻵﻻت اﻟﺤﺎﺳﺒﺔ وﺣﺘﻰ ﻟﻐﺔ اﻟﺴﻲ واﻟﺠﺎﻓﺎ ‪ ،‬ﺗﺤﺴﺐ ‪ log‬ﻋﻠﻰ اﺳﺎس ‪log e‬‬
‫اﻟﻠﻮﻏﺮﯾﺘﻢ اﻟﻄﺒﯿﻌﻲ ‪ ،‬وﻻ ﯾﻮﺟﺪ ﺑﮭﺎ ‪ log2‬أو ‪. log10‬‬

‫ﻓﻠﺘﺤﻮﯾﻞ ﻣﻦ ‪ log e‬إﻟﻰ ‪ ، log 2‬ﻧﻘﻮم ‪log2 x = log(x) / log(2) :‬‬


‫وﻟﺘﺤﻮﯾﻞ ﻣﻦ ‪ log e‬إﻟﻰ ‪ ، log 10‬ﻧﻘﻮم ‪log10 x = log(x) / log(10) :‬‬
‫وﻟﺘﺤﻮﯾﻞ ﻣﻦ ‪ log10‬إﻟﻰ ‪ ، log2‬ﻧﻘﻮم ‪log2 x = 3.322 * log10 (x) :‬‬

‫اﻟﻔﺎﺋﺪة ﻣﻦ ‪ log2‬ھﻮ أﻧﮫ ﯾﺨﺒﺮك ﻛﻢ ‪ bit‬ﯾﻠﺰﻣﻚ ﻟﺘﻤﺜﯿﻞ اﻟﻌﺪد ‪. x‬‬


‫‪Log2(10000) = 13.28771‬‬
‫وھﻨﺎ ﯾﺨﺒﺮك ﺑﺄﻧﮫ ﯾﻠﺰﻣﻚ ‪ 14‬ﺑﺖ ﻟﺘﻤﺜﯿﻞ اﻟﻌﺪد ‪10000‬‬

‫أﯾﻀﺎ ‪ log10‬ﯾﺨﺒﺮك ﻛﻢ ﻋﺪد ﯾﻠﺰﻣﻚ ﻟﺘﻤﺜﯿﻞ اﻟﺒﺘﺎت ‪. x‬‬

‫‪19‬‬
‫‪PDF created with pdfFactory Pro trial version www.pdffactory.com‬‬
‫ ﺍﻟﺸﻔﺮﺍﺕ ﺍﻟﻜﻼﺳﻴﻜﻴﺔ‬: ‫ﺍﻟﻘﺴﻢ ﺍﻟﺜﺎﻧﻲ‬

Classical Cipher

20
PDF created with pdfFactory Pro trial version www.pdffactory.com
‫ﺍﻟﺘﺮﻣﻴﺰ ‪: Coding‬‬

‫اﻟﺘﺮﻣﯿﺰ ﻣﻦ اﻟﻤﻮاﺿﯿﻊ اﻟﻤﮭﻤﺔ ﻓﻲ ﻋﺎﻟﻢ اﻟﺘﺸﻔﯿﺮ ‪ ،‬وذﻟﻚ ﻧﻈﺮا ﻟﺴﺮﯾﮫ اﻟﺸﻔﺮات اﻟﺘﻲ ﺗﻨﺘﺠﮭﺎ ھﺬه‬
‫اﻟﻌﻤﻠﯿﺔ ‪ ،‬وﺑﺎﻟﺮﻏﻢ ﻣﻦ ذﻟﻚ ﻓﮭﻲ ﻟﻢ ﺗﺴﺘﺨﺪم ﺑﺸﻜﻞ ﻛﺒﯿﺮ ﻛﻤﺎ ھﻮ اﻟﺤﺎل ﻣﻊ اﻟﺘﺸﻔﯿﺮ ‪،Encryption‬‬
‫وذﻟﻚ ﻟﻤﺎ ﺗﺘﻄﻠﺒﮫ ﻣﻦ إﻧﺘﺎج ﻟﻐﺔ ﺳﺮﯾﮫ ‪ ،‬واﻻﺣﺘﻔﺎظ ﺑﮭﺎ ﻋﻨﺪ اﻷﺷﺨﺎص أن ﺗﺘﻢ ﻋﻤﻠﯿﮫ اﻹرﺳﺎل ﺑﯿﻨﮭﻢ ‪،‬‬
‫وﻣﻦ أﺷﮭﺮ ھﺬا اﻟﻨﻮع ﻛﺘﺎب اﻟﺮﻣﻮز ‪. Codebook‬‬

‫ﻓﻲ ﻛﺘﺎب اﻟﺮﻣﻮز ‪ ،‬ﯾﻜﻮن ﻟﺪﯾﻨﺎ ﺟﻤﯿﻊ اﻟﻜﻠﻤﺎت اﻟﻤﺘﻮﻗﻊ اﺳﺘﺨﺪاﻣﮭﺎ ﻓﻲ اﻹرﺳﺎ ل وﯾﻘﺎﺑﻞ ﻛﻞ ﻛﻠﻤﺔ‬
‫)ﺗﻤﺜﻞ اﻟﻨﺺ اﻷﺻﻠﻲ( ﻛﻠﻤﺔ أو ﻋﺪه ﻛﻠﻤﺎت أﺧﺮى ﺗﻤﺜﻞ اﻟﺸﻔﺮة اﻟﻨﺎﺗﺠﺔ ﻣﻦ ھﺬه اﻟﻜﻠﻤﺔ ‪.‬‬

‫وﻋﻨﺪ ﺗﺸﻔﯿﺮ ﻛﻠﻤﮫ ﻣﺎ ﺑﮭﺬا اﻟﻄﺮﯾﻘﺔ ﻛﻞ ﻣﺎ ﻋﻠﯿﻨﺎ ھﻮ اﻟﺒﺤﺚ ﻓﻲ ﻛﺘﺎب اﻟﺮﻣﻮز واﺳﺘﺨﺮاج اﻟﻜﻠﻤﺔ‬
‫اﻟﻤﻘﺎﺑﻠﺔ ﻟﻠﻜﻠﻤﺔ اﻟﻤﺮاد ﺗﺸﻔﯿﺮھﺎ ‪ ،‬وھﻜﺬا ﺣﺼﻠﻨﺎ ﻋﻠﻰ اﻟﻜﻠﻤﺔ اﻟﺠﺪﯾﺪة اﻟﻤﺸﻔﺮة ﺑﮭﺬه اﻟﻄﺮﯾﻘﺔ‬

‫ﯾﻮﺿﺢ اﻟﺸﻜﻞ اﻟﻤﻘﺎﺑﻞ ‪ ،‬ﺷﻜﻞ ﻣﺒﺴﻂ ﻟﻜﺘﺎب اﻟﺮﻣﻮز ‪: Code Book‬‬

‫ﻣﺮه أﺧﺮى ﻧﺬﻛﺮ أﻧﮫ ﻟﺘﺸﻔﯿﺮ ﻛﻠﻤﮫ ﻣﻌﯿﻨﮫ ﯾﺠﺐ أن ﺗﻜﻮن ﺗﺤﺖ اﻟﻌﺎﻣﻮد ‪ Word‬وﺑﻌﺪھﺎ ﻧﻨﻈﺮ إﻟﻰ‬
‫ﻣﺎ ﯾﻘﺎﺑﻠﮭﺎ ﻓﻲ ‪ Codeword‬وأﺧﺬ اﻟﻜﻠﻤﺔ اﻟﻤﺸﻔﺮة‪.‬‬

‫ﻟﻔﻚ ﺗﺸﻔﯿﺮ ﻛﻠﻤﺔ ﻣﺎ ﻓﻲ ‪ ، Codeword‬ﻛﻞ ﻣﺎ ﻋﻠﯿﻨﺎ ھﻮ اﻟﻨﻈﺮ إﻟﻰ ﻣﺎ ﯾﻘﺎﺑﻠﮭﺎ ﻓﻲ ‪ ، Word‬وﺳﻮف‬


‫ﻧﺤﺼﻞ ﻋﻠﻰ اﻟﻜﻠﻤﺔ اﻟﻤﻄﻠﻮﺑﺔ‪.‬‬

‫‪21‬‬
‫‪PDF created with pdfFactory Pro trial version www.pdffactory.com‬‬
‫ﻣﺜﺎل ‪ ،‬ﻟﺘﺸﻔﯿﺮ اﻟﺠﻤﻠﺔ أﻟﺘﺎﻟﯿﮫ ‪ ،‬ﺑﺎﺳﺘﺨﺪام ﻛﺘﺎب اﻟﺮﻣﻮز اﻟﺴﺎﺑﻖ‬
‫‪ATTACK ENEMY AT DAWN‬‬

‫ﻧﻘﻮم أوﻻ ﺑﺎﻟﻨﻈﺮ إﻟﻰ ﻛﻞ ﻛﻠﻤﮫ وﻣﺎ ﯾﻘﺎﺑﻠﮭﺎ ﻓﻲ ﻛﺘﺎب اﻟﺮﻣﻮز ‪ ، Codebook‬ﻟﻨﺤﺼﻞ ﻋﻠﻰ اﻟﺸﻔﺮة‪:‬‬
‫‪ ATTACK‬ﯾﻘﺎﺑﻠﮭﺎ ‪RUN‬‬
‫‪ ENEMY‬ﯾﻘﺎﺑﻠﮭﺎ ‪EXPLODE‬‬
‫وﻧﺴﺘﻤﺮ ھﻜﺬا ‪ ،‬إﻟﻰ أن ﻧﺼﻞ إﻟﻰ اﻟﺸﻔﺮة اﻟﺘﺎﻟﯿﺔ ‪:‬‬
‫‪RUN EXPLODE LION COMPUTER‬‬

‫وﻓﻲ أﻏﻠﺐ اﻷﺣﯿﺎن ﻓﻲ ﻛﺘﺎب اﻟﺮﻣﻮز ﻟﻦ ﺗﺠﺪ اﻟـ ‪) Codeword‬أي أﻧﻚ ﻟﻦ ﺗﺠﺪ ﻛﻠﻤﮫ وﯾﻘﺎﺑﻠﮭﺎ‬
‫ﻛﻠﻤﮫ ﻣﺸﻔﺮة( ﻷﻧﮭﺎ ﻣﻦ اﻟﻤﻤﻜﻦ ﻓﻚ ﺗﺸﻔﯿﺮھﺎ ‪ ،‬وﯾﺴﺘﺨﺪم ﺑﺪﻻ ﻣﻨﮭﺎ أرﻗﺎم ‪. Code Number‬‬

‫ﻧﺄﺧﺬ اﻟﻤﺜﺎل اﻟﺘﺎﻟﻲ ‪ ،‬ﻟﯿﺒﻦ ﻛﯿﻒ ﯾﻤﻜﻦ ﻛﺴﺮ اﻟـ ‪ ،Codeword‬وھﺬا اﻟﻤﺜﺎل اﺳﺘﺨﺪم ﻃﺮﯾﻘﮫ اﻟـ‬
‫‪ Jargon codes‬وھﻲ ﻣﻦ أﺣﺪ اﻟﻄﺮق اﻟﺘﻲ اﺳﺘﺨﺪﻣﺖ ﺑﻜﺜﺮة ﻓﻲ اﻟﺤﺮب اﻟﻌﺎﻟﻤﯿﺔ اﻟﺜﺎﻧﯿﺔ ‪ ،‬ﺣﯿﺚ‬
‫ﻛﺎن ﻛﺎﻧﺖ ﺗﺮﺳﻞ اﻷواﻣﺮ ﻋﺒﺮ اﻟﺮادﯾﻮ )أو ﻣﺬﯾﺎع( اﻟﺬي ﯾﻜﻮن ﻣﺴﻤﻮع ﻟﻠﺠﻤﯿﻊ ﺣﺘﻰ ﻟﻸﻋﺪاء‪.‬‬

‫ﻟﻨﻔﺮض أن اﻟﻄﺮف ‪ A‬ﻗﺎم ﺑﻜﺘﺎﺑﮫ اﻟﺮﺳﺎﻟﺔ ‪ ،‬وﻗﺎم ﺑﺘﺸﻔﯿﺮھﺎ ﺑﺎﺳﺘﺨﺪام ‪ Codeword‬وﻗﺎم ﺑﺈرﺳﺎﻟﮭﺎ‬
‫إﻟﻰ اﻟﻄﺮف ‪ B‬ﻋﺒﺮ ﺷﺒﻜﮫ ﻏﯿﺮ أﻣﻨﮫ )أو أي وﺳﯿﻂ إرﺳﺎل أﺧﺮ ﯾﺤﺘﻤﻞ أن ﯾﻘﺮأه اﻟﻌﺪو( ‪.‬‬
‫وﻛﺎﻧﺖ ﻣﺤﺘﻮى اﻟﺮﺳﺎﻟﺔ ﺑﻌﺪ ﺗﺸﻔﯿﺮھﺎ‪:‬‬
‫‪BOXER SEVEN SEEK TIGER5 AT RED CORAL‬‬

‫ھﺬه اﻟﺮﺳﺎﻟﺔ وﺑﺎﻟﺮﻏﻢ ﻣﻦ أﻧﮭﺎ ﻟﯿﺴﺖ واﺿﺤﺔ ﻗﺪ ﯾﺴﺘﻔﺎد ﻣﻨﮭﺎ ﺑﻄﺮﯾﻘﮫ ﻣﺎ ‪،‬‬

‫ﻣﺜﻼ ‪ BOXER SEVEN‬ﻗﺪ ﯾﻜﻮن اﺳﻢ ﻟﺸﺨﺺ ﻣﺎ ﺗﺎﺑﻊ ﻟﻠﻄﺮف ‪ ، A‬اﻟﻜﻠﻤﺔ ‪ SEEK‬ﺗﺪل ﻣﺜﻼ‬
‫ﻋﻠﻰ اﻟﻘﺒﺾ اﻟﻜﻠﻤﺔ ‪ TIGER‬ﺗﺪل ﻋﻠﻰ اﺳﻢ اﻟﻌﺪو ‪ ، B‬اﻟﻜﻠﻤﺔ اﻷﺧﯿﺮة ‪ RED CORAL‬ﻗﺪ ﺗﺪل‬
‫ﻋﻠﻰ ﻋﻨﻮان ﻣﺎ ﻧﻈﺮا ﻷﻧﮭﺎ ﯾﺴﺒﻘﮭﺎ ‪. AT‬‬

‫اذا ﺑﺎﺳﺘﺨﺪام اﻟـ ‪ Codeword‬ھﻨﺎك اﺣﺘﻤﺎل ﻛﺒﯿﺮ ﻣﻦ اﻟﺘﻘﺎط اﻟﺮﺳﺎﻟﺔ وﻓﮭﻢ وﻟﻮ أﺟﺰاء ﻣﻨﮭﺎ ‪ ،‬ﻟﺬﻟﻚ‬
‫ﺗﻢ اﻟﻠﺠﻮء إﻟﻰ اﻟﺤﻞ اﻷﺧﺮ وھﻮ أن ﯾﺴﺘﺨﺪم اﻷرﻗﺎم ‪. CodeNumber‬‬

‫اﻵن وﺑﻌﺪ إرﺳﺎل اﻟﺮﺳﺎﻟﺔ ﺑﺘﺮﻣﯿﺰھﺎ ﺑـ ‪ CodeNumber‬ﻗﺪ ﺗﺼﺒﺢ ﻣﺜﻼ‬


‫‪85772 24799 10090 59980 12487‬‬

‫اﻟﺮﻗﻢ ‪ 85772‬ﻣﻌﻨﺎه ‪BOXER SEVEN‬‬


‫واﻟﺮﻗﻢ ‪ 24799‬ﻣﻌﻨﺎه ‪SEEK‬‬
‫وھﻜﺬا ﻛﻞ رﻗﻢ ﯾﺪل ﻋﻠﻰ ﻛﻠﻤﮫ ﻣﺎ أو ﻋﺪه ﻛﻠﻤﺎت وﺑﺎﻟﺘﺎﻟﻲ ﺳﻮف ﯾﺼﻌﺐ ﻋﻤﻞ ﻛﺎﺳﺮ اﻟﺸﻔﺮة ﺑﻜﻞ‬
‫ﺗﺄﻛﯿﺪ ‪ ،‬إن ﻟﻢ ﯾﻜﻦ ﯾﺴﺘﺤﯿﻞ ﻛﺴﺮھﺎ‪.‬‬

‫اﻵن ﻟﻨﻌﺮف ﻛﺘﺎب اﻟﺮﻣﻮز ﺑﺸﻜﻞ ﻣﺒﺴﻂ ﻧﻘﻮل ھﻮ ﺟﺪول ﯾﺤﺘﻮي ﻋﻠﻰ ﻋﺎﻣﻮد ‪ Word‬وﻋﺎﻣﻮد أﺧﺮ‬
‫ﯾﻤﺜﻞ اﻟـ ‪ CodeNumber‬أو ‪ ، CodeWord‬وﻓﻲ ﺣﺎل اﻟﺘﺸﻔﯿﺮ ﻧﻨﻈﺮ إﻟﻰ ﻣﺎ ﯾﻘﺎﺑﻞ اﻟﻜﻠﻤﺔ ﻓﻲ‬
‫اﻟﻌﺎﻣﻮد اﻷﺧﺮ ‪ ،‬وﻟﻔﻚ اﻟﺘﺸﻔﯿﺮ ﻧﻘﻮم ﺑﺎﻟﻌﻤﻠﯿﺔ اﻟﻌﻜﺴﯿﺔ ‪ ،‬وھﻮ ﻣﺎ ﯾﻌﺮف ﺑﺎﻟـ ‪one-part-Code‬‬
‫"ﻛﺘﺎب رﻣﻮز واﺣﺪ" ‪.‬‬

‫‪22‬‬
‫‪PDF created with pdfFactory Pro trial version www.pdffactory.com‬‬
‫وﻷن ﻛﺘﺎب اﻟﺮﻣﻮز ﺣﺠﻤﮫ ﻛﺒﯿﺮ ﻟﻠﻐﺎﯾﺔ )ﻷﻧﮫ ﯾﺤﺘﻮي ﻋﻠﻰ ﺟﻤﯿﻊ اﻟﻜﻠﻤﺎت اﻟﺘﻲ ﯾﺘﻮﻗﻊ اﺳﺘﺨﺪاﻣﮭﺎ ﻓﻲ‬
‫ﻋﻤﻠﯿﮫ اﻹرﺳﺎل ‪ ،‬وﺑﻌﺾ اﻷﺣﯿﺎن ﺟﻤﯿﻊ اﻟﻜﻠﻤﺎت اﻟﻤﻌﺮوﻓﺔ ﺗﻜﻮن ﻓﯿﮫ( ‪ ،‬ﯾﻜﻮن ﻣﺮﺗﺐ ﺑﺎﻟﺘﺮﺗﯿﺐ‬
‫اﻟﮭﺠﺎﺋﻲ ‪) ،‬ﻣﺜﻼ( اﻟﺤﺮف ‪ A‬ﯾﻘﺎﺑﻠﮫ ﻓﻲ ‪ CodeNumber‬ﻣﺜﻼ اﻟﺮﻗﻢ ‪ ، 20‬اﻟﺤﺮف ‪ B‬ﯾﻘﺎﺑﻠﮫ ‪، 21‬‬
‫اﻟﺤﺮف ‪ C‬ﯾﻘﺎﺑﻠﮫ ‪ ، 22‬ﺳﻮف ﻧﻼﺣﻆ أﻧﮫ ﯾﻤﻜﻦ ﻟﻜﺎﺳﺮ اﻟﺸﻔﺮة ﻛﺴﺮ ھﺬه اﻟﺮﻣﻮز ﻷﻧﮫ ﯾﻌﺮف أن‬
‫اﻟﺤﺮف ‪ A‬داﺋﻤﺎ أﻗﻞ ﻣﻦ اﻟﺤﺮف ‪ Z‬وﺑﻘﻠﯿﻞ ﻣﻦ اﻟﻤﺤﺎوﻟﺔ ﯾﺘﻢ ﻛﺴﺮھﺎ ‪ ،‬ﻟﺬﻟﻚ ﺗﻢ اﻟﻠﺠﻮء إﻟﻰ‪Two-‬‬
‫‪ Part-Code‬وھﻨﺎ ﯾﻮﺟﺪ ﻛﺘﺎب ﻟﻠﺘﺸﻔﯿﺮ ‪ ،‬وﻛﺘﺎب أﺧﺮ ﻣﺮﺗﺐ ﺑﻄﺮﯾﻘﮫ أﺧﺮى ﻟﻔﻚ اﻟﺘﺸﻔﯿﺮ ‪،‬‬
‫وھﻜﺬا ﻟﻦ ﯾﻤﻜﻦ ﺗﺨﻤﯿﻦ ﻣﺎ ﯾﻨﺘﺠﮫ اﻟﻜﺘﺎب اﻷول ‪.‬‬

‫و ﻋﻠﻰ اﻟﺮﻏﻢ ﻣﻦ ﺳﺮﯾﮫ ھﺬه اﻟﻄﺮﯾﻘﺔ ‪ ،‬إﻻ إﻧﮭﺎ ﻏﯿﺮ ﻣﺠﺪﯾﮫ ﺗﻤﺎﻣﺎ ‪ ،‬ﻧﻈﺮا ﻟﺼﻌﻮﺑﺔ اﻻﺣﺘﻔﺎظ ﺑﮭﺬا‬
‫اﻟﻜﺘﺎب ﻋﻨﺪ اﻟﻄﺮﻓﯿﻦ ‪ ،‬وﻓﻲ ﺣﺎل اﺳﺘﺨﺪﻣﻨﺎ ‪ Two-Part-Code‬ﺳﻨﺤﺘﺎج إﻟﻰ ﻛﺘﺎﺑﯿﻦ ﻋﻨﺪ ﻛﻞ‬
‫ﻃﺮف ﺣﺘﻰ ﯾﺴﺘﻄﯿﻌﻮا إرﺳﺎل واﺳﺘﻘﺒﺎل اﻟﺮﺳﺎﺋﻞ ﻓﯿﻤﺎ ﺑﯿﻨﮭﻢ ‪ ،‬ﻧﺎھﯿﻚ ﻋﻦ ﺻﻌﻮﺑﺔ إرﺳﺎل اﻟﻜﺘﺎب إﻟﻰ‬
‫اﻟﻄﺮف اﻷﺧﺮ واﻟﺘﺄﻛﺪ ﻣﻦ أﻧﮫ اﻟﻌﺪو ﻻ ﯾﻤﻠﻚ ﻧﺴﺨﮫ ﻣﻨﮫ ‪ ،‬ﺑﺎﻻﺿﺎﻓﮫ إﻟﻰ ﺻﯿﺎﻧﺘﮫ )أﺿﺎﻓﮫ ﻛﻠﻤﺎت‬
‫أﺧﺮى ( وإرﺳﺎﻟﮭﺎ ﻣﺮه أﺧﺮى ﻟﻠﻄﺮف اﻷﺧﺮ‪.‬‬

‫ﺍﻟﺘﺸﻔﻴﺮ ﺑﺎﻟﻄﺮﻕ ﺍﻟﻜﻼﺳﻴﻜﻴﺔ ‪: Classical Method‬‬

‫اﻟﻄﺮق اﻟﻜﻼﺳﯿﻜﯿﺔ ھﻲ اﻟﻄﺮق اﻟﻘﺪﯾﻤﺔ اﻟﺘﻲ اﺳﺘﺨﺪﻣﺖ ﻓﯿﻤﺎ ﻣﻀﻰ ﻣﻦ ﻗﺒﻞ اﺧﺘﺮاع اﻟﺤﻮاﺳﯿﺐ ‪،‬‬
‫وﺑﻘﯿﺖ اﻷﺳﺎس ﻟﻜﺜﯿﺮ ﻣﻦ اﻟﺨﻮارزﻣﯿﺎت اﻟﺤﺪﯾﺜﺔ اﻟﺘﻲ ﺗﺴﺘﺨﺪم اﻟﯿﻮم ‪ ،‬ﺣﯿﺚ ﻛﺎﻧﺖ ﺗﻌﺘﻤﺪ ﻋﻠﻰ أﺣﻼل‬
‫أو أﺑﺪال ﺣﺮف ﻣﻜﺎن أﺧﺮ ‪ ،‬واﻟﺨﻮارزﻣﯿﺎت اﻟﺠﯿﺪة ﻛﺎﻧﺖ ﺗﻘﻮم ﺑﺎﻻﺛﻨﯿﻦ ‪ ،‬ﻟﻜﻦ ﺟﻤﯿﻊ ھﺬه‬
‫اﻟﺨﻮارزﻣﯿﺎت ﺗﻌﻤﻞ ﻋﻠﻰ اﻟﺤﺮوف ﻓﻘﻂ ‪ Character-Based‬أي ﻋﻠﻰ ﻣﺪى ‪ 26‬ﺣﺮف ‪ ،‬ﺑﻌﻜﺲ‬
‫اﻟﻄﺮق اﻟﺤﺪﯾﺜﺔ اﻟﺘﻲ ﺗﻌﺘﻤﺪ ﻋﻠﻰ اﻟﺘﻌﺎﻣﻞ ﻣﻊ ال‪ 0) Bit‬أو‪ ، ( 1‬وﺗﻘﺴﻢ اﻟﻄﺮق اﻟﻜﻼﺳﯿﻜﯿﺔ إﻟﻰ‬
‫ﻗﺴﻤﯿﻦ رﺋﯿﺴﯿﻦ ‪:‬‬

‫ﺷﻔﺮات اﻹﺣﻼل ‪: Substitution Cipher‬‬


‫ﻓﻲ ھﺬا اﻟﻨﻮع ﻣﻦ اﻟﺸﻔﺮات ‪ ،‬اﻟﺘﺸﻔﯿﺮ ﯾﻜﻮن ﻋﻦ ﻃﺮﯾﻖ إﺣﻼل ﺣﺮف ﻣﻦ اﻟﻨﺺ اﻷﺻﻠﻲ‬
‫‪ Plaintext‬ﺑﺤﺮف أﺧﺮ ﻟﯿﻜﻮن ھﻮ اﻟﺤﺮف اﻟﻤﺸﻔﺮ ‪ ، cipher char‬ﻋﻤﻠﯿﮫ اﻹﺣﻼل ھﺬه ﺗﻜﻮن‬
‫ﻃﺮﯾﻖ ﺟﻤﻊ ﻣﻔﺘﺎح ﻣﺎ إﻟﻰ اﻟﺤﺮف ﻣﻦ اﻟﻨﺺ اﻷﺻﻠﻲ ‪.‬‬

‫ﺷﻔﺮات اﻹﺑﺪال ‪: Transposition‬‬


‫ﻓﻲ ھﺬا اﻟﻨﻮع اﻟﺘﺸﻔﯿﺮ ﯾﻜﻮن ﻋﻦ ﺗﻐﯿﯿﺮ أﻣﺎﻛﻦ ﺣﺮوف اﻟﻨﺺ اﻷﺻﻠﻲ ‪ ،‬أي ﻣﺠﺮد ﺗﺒﺪﯾﻞ ﻓﻲ‬
‫اﻟﻤﻮاﻗﻊ ‪) .‬ﺑﻌﺾ اﻟﻜﺘﺐ ﺗﻄﻠﻖ ﻋﻠﻰ ھﺬا اﻟﻨﻮع اﺳﻢ ‪ Permutation‬ﺗﻘﻠﯿﺐ ( ‪.‬‬

‫ﺷﻔﺮات ‪: XOR‬‬
‫ھﻨﺎك ﺑﻌﺾ اﻟﻜﺘﺐ ﺗﺼﻨﻒ ﻃﺮﯾﻘﮫ اﻟﺘﺸﻔﯿﺮ ھﺬه ﻣﻊ اﻟﻄﺮق اﻟﻜﻼﺳﯿﻜﯿﺔ ‪ ،‬وﺑﺎﻟﺮﻏﻢ ﻣﻦ ﺿﻌﻒ ھﺬه‬
‫اﻟﻄﺮﯾﻘﺔ ‪ ،‬إﻻ أن أﻏﻠﺐ اﻟﺸﻔﺮات اﻟﺤﺪﯾﺜﺔ ﺗﻌﺘﻤﺪ ﻋﻠﻰ ھﺬه اﻟﻌﻤﻠﯿﺔ اﻟﺮﯾﺎﺿﯿﺔ ﻓﻲ ﻋﻠﻤﯿﺎت أﺧﺮى‬
‫)وﻗﺪ ﺗﺤﺪﺛﻨﺎ ﻋﻨﮭﺎ ﻓﻲ اﻟﻔﺼﻞ اﻷول( ‪.‬‬

‫ﻧﺒﺪأ ﺑﺎﻟﻨﻮع اﻷول ‪ ،‬ﺷﻔﺮات اﻹﺣﻼل ‪:‬‬

‫‪23‬‬
‫‪PDF created with pdfFactory Pro trial version www.pdffactory.com‬‬
‫ﺗﻘﺴﻢ ﺷﻔﺮات اﻹﺣﻼل ‪ Substitution Cipher‬إﻟﻰ أرﺑﻌﮫ أﻗﺴﺎم رﺋﯿﺴﯿﮫ ‪:‬‬
‫اﻟﻨﻮع اﻷول ‪Monoalphabetic Substitution Cipher :‬‬
‫اﻟﻨﻮع اﻟﺜﺎﻧﻲ ‪Polyalphabetic Substitution Cipher :‬‬
‫اﻟﻨﻮع اﻟﺜﺎﻟﺚ ‪PolyGram Substitution Cipher :‬‬
‫اﻟﻨﻮع اﻟﺮاﺑﻊ ‪Homophonic Substitution Cipher :‬‬

‫وﺳﻮف ﻧﺘﻄﺮق ﻟﻜﻞ ﻣﻦ ھﺬه اﻟﻄﺮق ﺑﺎﻟﺘﻔﺼﯿﻞ ‪ ،‬أﺣﺐ أن أﻧﻮه إﻟﻰ أن ھﻨﺎك ﺑﻌﺾ اﻟﺘﺮﺟﻤﺎت‬
‫اﻟﺴﯿﺌﺔ ﻟﮭﺬه اﻷﻧﻮاع ‪ ،‬ﻟﻜﻨﻲ ﺳﺄﺗﺤﻔﻆ ﻋﻨﮭﺎ ھﻨﺎ ‪ ،‬وﺳﻨﺬﻛﺮ اﻟﻤﺼﻄﻠﺢ ﻛﻤﺎ ھﻮ ﺑﺎﻟﻠﻐﺔ اﻷﻧﺠﻠﯿﺰﯾﮫ ‪.‬‬

‫ﺷﻔﺮﺍﺕ ‪: Monoalphabetic Substitution Cipher‬‬


‫ھﺬا اﻟﻨﻮع ﯾﻌﺘﺒﺮ ﻣﻦ أﻗﺪم أﻧﻮاع اﻟﺘﺸﻔﯿﺮ اﺳﺘﺨﺪاﻣﺎ ‪ ،‬ﺣﯿﺚ ﻧﻘﻮم ﻓﻲ ھﺬا اﻟﻨﻮع ﺑﺈﺣﻼل‬
‫‪ Substitution‬ﺣﺮف ﻣﻦ اﻟﻨﺺ اﻷﺻﻠﻲ ﺑﺤﺮف أﺧﺮ ﺟﺪﯾﺪ ‪ .‬وھﻮ ﺑﺎﻻﺿﺎﻓﮫ إﻟﻰ ﻗﺪﻣﮫ ﯾﻌﺘﺒﺮ ﻣﻦ‬
‫أﺿﻌﻒ أﻧﻮاع اﻟﺘﺸﻔﯿﺮ وﯾﺴﮭﻞ ﻛﺴﺮه ﺑﺎﺳﺘﺨﺪام ﻃﺮﯾﻘﮫ ﺗﺴﻤﻰ اﻟﺘﺤﻠﯿﻞ اﻹﺣﺼﺎﺋﻲ ‪frequency‬‬
‫‪ ، analysis‬وھﺬه اﻟﻄﺮﯾﻘﺔ ﻣﻦ اﻛﺘﺸﺎف اﻟﻌﺎﻟﻢ اﻟﻌﺮﺑﻲ اﻟﻤﺴﻠﻢ أﺑﻮ ﯾﻌﻘﻮب اﻟﻜﻨﺪي وھﻮ أول ﻣﻦ‬
‫وﺿﻊ أﺳﺎﺳﯿﺎت ﻛﺴﺮ اﻟﺸﻔﺮات ‪ ،Cryptanalysis‬ﺣﯿﺚ ﻻﺣﻆ وﺟﻮد ﺣﺮوف ﺗﺘﻜﺮر ﻓﻲ اﻟﻘﺮان‬
‫اﻟﻜﺮﯾﻢ أﻛﺜﺮ ﻣﻦ ﻏﯿﺮھﺎ‪.‬‬

‫ﻣﻦ أﺷﮭﺮ ﺷﻔﺮات ھﺬا اﻟﻨﻮع ‪: Monoalphabetic Substitution‬‬


‫‪Caesar Cipher‬‬
‫‪Affine Cipher‬‬
‫‪ROT13 Cipher‬‬
‫‪Abash Cipher‬‬

‫ﺷﻔﺮﻩ ﻗﻴﺼﺮ ‪: Caesar Cipher‬‬

‫ﻣﻦ أﺣﺪ أﺷﮭﺮ أﻧﻮاع اﻟﺘﺸﻔﯿﺮ اﻟﻜﻼﺳﯿﻜﻲ ‪ ،‬ﺣﯿﺚ ﺗﺘﻤﯿﺰ ﺑﺒﺴﺎﻃﺘﮭﺎ وﯾﻌﯿﺒﮭﺎ ﺳﮭﻮﻟﮫ ﻛﺴﺮ اﻟﺸﻔﺮة‬
‫اﻟﻨﺎﺗﺠﺔ ﺑﺒﺴﺎﻃﮫ ‪،‬‬

‫وﻃﺮﯾﻘﮫ اﻟﺘﺸﻔﯿﺮ ﺑﺄن ﻧﺄﺧﺬ اﻟﺤﺮف اﻷول ﻣﻦ اﻟﻨﺺ اﻷﺻﻠﻲ ﺛﻢ ﻧﻘﻮم ﺑﺠﻤﻊ ﻣﻔﺘﺎح )وھﻮ داﺋﻤﺎ ﯾﻜﻮن‬
‫‪ 3‬ﻓﻲ ﺷﻔﺮه ﻗﯿﺼﺮ( ﻣﻊ اﻟﻨﺺ اﻷﺻﻠﻲ ‪ ،‬وﯾﻜﻮن ھﻮ اﻟﺤﺮف اﻷول ﻓﻲ اﻟﻨﺺ اﻟﻤﺸﻔﺮ ‪ .‬وھﻜﺬا‬
‫ﺑﺎﻟﻨﺴﺒﺔ ﻟﺒﺎﻗﻲ اﻟﺤﺮوف‪.‬‬

‫وﻓﻲ ﺣﺎل ﻛﺎن اﻟﺤﺮف ھﻮ اﻟﺤﺮف اﻷﺧﯿﺮ ﻓﻲ اﻷﺑﺠﺪﯾﺔ ﻧﻘﻮم ﺑﺎﻟﺮﺟﻮع إﻟﻲ ﺑﺪاﯾﺔ اﻟﺤﺮوف )ﺗﻜﻮن‬
‫ﻋﻠﻰ ﺷﻜﻞ داﺋﺮة( ‪.‬‬

‫اﻧﻈﺮ اﻟﺼﻮره اﻟﻤﻘﺎﺑﻠﺔ ‪:‬‬

‫‪24‬‬
‫‪PDF created with pdfFactory Pro trial version www.pdffactory.com‬‬
‫ﻧﺄﺧﺬ ﻣﺜﺎل ﻟﺘﻮﺿﯿﺢ ھﺬا اﻟﻨﻮع ﻣﻦ اﻟﺸﻔﺮات‪:‬‬

‫اﻟﻨﺺ اﻷﺻﻠﻲ ‪:‬‬


‫‪FIRE MISSILE‬‬

‫ﻧﺒﺪأ ﺑﻌﻤﻠﯿﮫ اﻟﺘﺸﻔﯿﺮ ‪ ،‬وﻛﻤﺎ ذﻛﺮﻧﺎ ﻛﻞ ﺣﺮف ﻓﻲ اﻟﻨﺺ اﻷﺻﻠﻲ ‪ +‬اﻟﻤﻔﺘﺎح )‪ ، (3‬وﻓﻲ ﺣﺎﻟﮫ ﺗﻌﺪى‬
‫اﻟﺤﺮف ‪ Z‬ﻧﺮﺟﻊ ﻣﻦ اﻷول ‪.‬‬

‫اﻵن ﻧﻘﻮم ﺑﺄﺧﺬ اﻟﺤﺮف اﻷول وﻧﻀﯿﻒ إﻟﯿﮫ ‪ 3‬ﺣﺮوف )اﻻزاﺣﮫ ﺑﻤﻘﺪار ‪ 3‬أﺣﺮف( ﻟﯿﻜﻮن‪:‬‬
‫‪F+3 = I‬‬
‫‪I+3 = L‬‬
‫وﻧﻜﻤﻞ ھﻜﺬا ‪ ،‬ﻟﺒﺎﻗﻲ اﻟﺤﺮوف ﻓﻲ اﻟﻨﺺ اﻷﺻﻠﻲ ‪.‬‬

‫اﻟﻨﺺ اﻟﻤﺸﻔﺮ ھﻮ‪:‬‬


‫‪ILUH PLVVLOH‬‬

‫وﻷن وﺿﻊ اﻟﺤﺮوف اﻟﻤﺸﻔﺮة ﻋﻠﻰ ﻧﻔﺲ ﺗﺮﺗﯿﺐ اﻟﺤﺮوف ﻓﻲ اﻟﻨﺺ اﻷﺻﻠﻲ ﯾﺴﮭﻞ ﻣﻦ ﻋﻤﻠﯿﮫ‬
‫ﺗﺨﻤﯿﻦ اﻟﻜﻠﻤﺔ ‪ ،‬ﻧﻘﻮم ﺑﻮﺿﻊ اﻟﻨﺺ اﻟﻤﺸﻔﺮ ﻋﻠﻰ ﺷﻜﻞ ‪ block‬أو ﻣﺠﻤﻮﻋﺎت ﻛﻞ ﻣﻨﮭﺎ ﯾﺘﻜﻮن ﻣﻦ ‪5‬‬
‫ﺣﺮوف )ﺟﺮت اﻟﻌﺎدة ﻋﻠﻰ ذﻟﻚ ‪ ،‬ﻟﻜﻦ ﺑﺎﻟﻄﺒﻊ ﯾﻤﻜﻨﻚ ﺗﻐﯿﺮھﺎ( ‪.‬‬

‫اﻵن ﺑﻌﺪ وﺿﻊ اﻟﻨﺺ اﻟﻤﺸﻔﺮ ﻓﻲ ﺷﻜﻞ ﻣﺠﻤﻮﻋﺎت ﻛﻞ ﻣﻨﮭﺎ ﯾﺘﻜﻮن ﻣﻦ ﺧﻤﺴﮫ ﺣﺮوف ﯾﻜﻮن‬
‫اﻟﻨﺎﺗﺞ‪:‬‬
‫‪ILUHP LVVLO H‬‬

‫وھﻜﺬا أﺻﺒﺢ اﻟﻨﺺ أﻛﺜﺮ ﺗﻌﻘﯿﺪا ﻟﻜﺎﺳﺮ اﻟﺸﻔﺮة ‪ ،‬وﻟﻜﻨﮭﺎ ﺗﺒﻘﻲ ﺧﻮارزﻣﯿﺔ ﻗﯿﺼﺮ ﺿﻌﯿﻔﺔ ﻟﻠﻐﺎﯾﺔ ‪،‬‬
‫ﻛﻤﺎ ﺳﻨﺮى ﺑﻌﺪ ﻗﻠﯿﻞ ‪.‬‬

‫اﻟﻌﻤﻠﯿﺔ اﻟﻌﻜﺴﯿﺔ ‪ ،‬وھﻲ ﻓﻚ اﻟﺘﺸﻔﯿﺮ ‪،‬ھﻨﺎ ﻛﻞ ﻣﺎ ﻋﻠﯿﻨﺎ ھﻮ ﻃﺮح ﺛﻼﺛﺔ ﺣﺮوف ﻣﻦ ﻛﻞ ﺣﺮف ﻓﻲ‬
‫اﻟﻨﺺ اﻟﻤﺸﻔﺮ ‪ ،‬ﻟﯿﺨﺮج إﻟﯿﻨﺎ اﻟﻨﺺ اﻷﺻﻠﻲ‪.‬‬

‫اذا ﻧﺴﺘﻨﺘﺞ أن ﻟﻜﻞ ﺧﻮارزﻣﯿﺔ ﺗﺸﻔﯿﺮ ﻣﻔﺘﺎح ﻣﻌﯿﻦ ‪ ،‬ھﺬا اﻟﻤﻔﺘﺎح )ﻓﻲ اﻟﻄﺮق اﻟﺘﻘﻠﯿﺪﯾﺔ ‪ ،‬اﻟﺘﻲ ھﻲ ﻓﻲ‬
‫اﻷﺻﻞ ﺗﻨﺪرج ﺗﺤﺖ ﺧﻮارزﻣﯿﺎت اﻟﺘﺸﻔﯿﺮ ﺑﺎﻟﻤﻔﺘﺎح اﻟﻤﺘﻨﺎﻇﺮ ‪Symmetric Key‬‬
‫‪ (Cryptography‬ﯾﺴﺘﺨﺪم ﻟﻠﺘﺸﻔﯿﺮ وﻟﻔﻚ اﻟﺘﺸﻔﯿﺮ وﻟﺬﻟﻚ ﯾﺠﺐ أن ﯾﺤﻔﻆ ﺑﻤﻜﺎن أﻣﻦ ‪ .‬وﻓﻲ ﺣﺎﻟﮫ‬
‫ﺷﻔﺮه ﻗﯿﺼﺮ ‪ ،‬ﻣﻔﺘﺎح اﻟﺘﺸﻔﯿﺮ ھﻮ ‪) 3‬أزاﺣﮫ ‪ Shift‬ﺑﻤﻘﺪار ‪ ، (3‬ﺑﺎﻟﻄﺒﻊ ﯾﻤﻜﻦ اﺳﺘﺨﺪام أي ﻣﻔﺘﺎح‬
‫أﺧﺮ ‪ ،‬ﻟﻜﻨﮭﺎ ﻟﻦ ﺗﻜﻮن ﺷﻔﺮه ﻗﯿﺼﺮ ‪.‬‬

‫ﻛﺴﺮ ﺷﻔﺮﺓ ﻗﻴﺼﺮ ﻋﻦ ﻃﺮﻳﻖ ﺍﻟﺘﺤﻠﻴﻞ ﺍﻹﺣﺼﺎﺋﻲ ‪FREQUENCY ANALYSIS‬‬

‫ﺟﻤﯿﻊ اﻟﻠﻐﺎت )ﺳﻮاء ﻋﺮﺑﯿﮫ أم اﻧﺠﻠﯿﺰﯾﮫ أم أي ﻟﻐﺔ أﺧﺮى( ﺗﺤﺘﻮي ﻋﻠﻰ ﺣﺮوف ﺗﺘﻜﺮر داﺋﻤﺎ‬
‫وﺑﺎﺳﺘﻤﺮار ﻓﻲ اﻟﺠﻤﻞ ‪ ،‬ﻓﻲ اﻟﻠﻐﺔ اﻟﻌﺮﺑﯿﺔ ﻋﻠﻰ ﺳﺒﯿﻞ اﻟﻤﺜﺎل اﻟﺤﺮف أ ‪ ،‬ل ‪ ..‬اﻟﺦ ‪ ،‬أﻣﺎ ﻓﻲ اﻟﻠﻐﺔ‬
‫اﻹﻧﺠﻠﯿﺰﯾﺔ ﻓﺎﻟﺤﺮف ‪ E‬ھﻮ اﻟﺤﺮف اﻷﻛﺜﺮ ﺗﻜﺮارا ﻓﻲ اﻟﺠﻤﻞ‪.‬‬

‫‪25‬‬
‫‪PDF created with pdfFactory Pro trial version www.pdffactory.com‬‬
‫اﻵن ﻃﺮﯾﻘﮫ اﻟﺘﺤﻠﯿﻞ اﻹﺣﺼﺎﺋﻲ ﺗﻌﺘﻤﺪ ﻋﻠﻰ ھﺬا اﻻﺣﺘﻤﺎل ‪ ،‬ﻓﻨﻘﻮم ﺑﺎﻟﻨﻈﺮ ﻓﻲ اﻟﻨﺺ اﻟﻤﺸﻔﺮ وﻧﻼﺣﻆ‬
‫اﻟﺤﺮف اﻷﻛﺜﺮ ﺗﺮددا ﻓﻲ اﻟﻨﺺ ‪ ،‬ﺑﻌﺪھﺎ ﻗﺪ ﯾﻜﻮن ھﺬا اﻟﺤﺮف ﻓﻲ اﻟﻨﺺ اﻟﻤﺸﻔﺮ ھﻮ اﻟﺤﺮف اﻷﻛﺜﺮ‬
‫ﺗﻜﺮرا ﻓﻲ اﻟﺠﻤﻞ وھﻮ ‪ E‬ﻓﻲ اﻟﻠﻐﺔ اﻹﻧﺠﻠﯿﺰﯾﺔ‪.‬‬

‫ﻃﺒﻌﺎ اﻻﺣﺘﻤﺎل ﻓﻲ اﻟﻜﺜﯿﺮ ﻣﻦ اﻷﺣﯿﺎن ﯾﻜﻮن ﻏﯿﺮ ﺻﺤﯿﺢ ﺗﻤﺎﻣﺎ ‪ ،‬وﻟﻜﻦ ﯾﺼﻠﺢ ﻓﻲ ﺣﺎل اﻟﻄﺮق‬
‫اﻟﻀﻌﯿﻔﺔ ﻣﺜﻞ ﺷﻔﺮه ﻗﯿﺼﺮ اﻟﺴﺎﺑﻘﺔ‪.‬‬

‫ﻣﺜﺎل ‪ ،‬ﻟﺪﯾﻨﺎ اﻟﺸﻔﺮة اﻟﺘﺎﻟﯿﺔ ‪ ،‬وﻧﺮﯾﺪ ﻛﺴﺮھﺎ وإرﺟﺎﻋﮭﺎ إﻟﻰ ﺣﺎﻟﺘﮭﺎ اﻷﺻﻠﯿﺔ ‪:‬‬
‫‪WFIDZ‬‬ ‫‪JVORT‬‬ ‫‪KCPVD‬‬ ‫‪GKZEV‬‬ ‫‪JJVDG‬‬ ‫‪KZEVJ‬‬ ‫‪JVORT‬‬ ‫‪KCPWF‬‬ ‫‪IDJFZ‬‬ ‫‪KZJNZ‬‬ ‫‪KYJVE‬‬
‫‪JRKZF‬‬ ‫‪EGVIT‬‬ ‫‪VGKZF‬‬ ‫‪EDVEK‬‬ ‫‪RCIVR‬‬ ‫‪TKZFE‬‬ ‫‪REUTF‬‬ ‫‪EJTZF‬‬ ‫‪LJEVJ‬‬ ‫‪JRCCK‬‬ ‫‪YZEXJ‬‬
‫‪RIVVJ‬‬ ‫‪JVEKZ‬‬ ‫‪RCCPV‬‬ ‫‪DGKPE‬‬ ‫‪FKSFI‬‬ ‫‪EEFKU‬‬ ‫‪VJKIF‬‬ ‫‪PVUEF‬‬ ‫‪KJKRZ‬‬ ‫‪EVUEF‬‬ ‫‪KGLIV‬‬
‫‪NZKYF‬‬ ‫‪LKCFJ‬‬ ‫‪JNZKY‬‬ ‫‪FLKXR‬‬ ‫‪ZEKYV‬‬ ‫‪IVWFI‬‬ ‫‪VZEVD‬‬ ‫‪GKZEV‬‬ ‫‪JJKYV‬‬ ‫‪IVZJE‬‬ ‫‪FWFID‬‬
‫‪EFJVE‬‬ ‫‪JRKZF‬‬ ‫‪EGVIT‬‬ ‫‪VGKZF‬‬ ‫‪EDVEK‬‬ ‫‪RCIVR‬‬ ‫‪TKZFE‬‬ ‫‪FITFE‬‬ ‫‪JTZFL‬‬ ‫‪JEVJJ‬‬ ‫‪EFVPV‬‬
‫‪VRIEF‬‬ ‫‪JVKFE‬‬ ‫‪XLVSF‬‬ ‫‪UPDZE‬‬ ‫‪UEFTF‬‬ ‫‪CFIJF‬‬ ‫‪LEUJD‬‬ ‫‪VCCKR‬‬ ‫‪JKVKF‬‬ ‫‪LTYFS‬‬ ‫‪AVTKF‬‬
‫‪WKYFL‬‬ ‫‪XYKEF‬‬ ‫‪JVVZE‬‬ ‫‪XREUJ‬‬ ‫‪FFEKF‬‬ ‫‪EFKYZ‬‬ ‫‪EBZEX‬‬ ‫‪EFZXE‬‬ ‫‪FIRET‬‬ ‫‪VREUE‬‬ ‫‪FVEUK‬‬
‫‪FZXEF‬‬ ‫‪IRETV‬‬ ‫‪EFFCU‬‬ ‫‪RXVRE‬‬ ‫‪UUVRK‬‬ ‫‪YEFVE‬‬ ‫‪UKFFC‬‬ ‫‪URXVR‬‬ ‫‪EUUVR‬‬ ‫‪KYEFR‬‬ ‫‪EXLZJ‬‬
‫‪YTRLJ‬‬ ‫‪VFWRE‬‬ ‫‪XLZJY‬‬ ‫‪TVJJR‬‬ ‫‪KZFEG‬‬ ‫‪RKYEF‬‬ ‫‪NZJUF‬‬ ‫‪DREUE‬‬ ‫‪FRKKR‬‬ ‫‪ZEDVE‬‬ ‫‪KJZET‬‬
‫‪VKYVI‬‬ ‫‪VZJEF‬‬ ‫‪KYZEX‬‬ ‫‪KFRKK‬‬ ‫‪RZEKY‬‬ ‫‪VSFUY‬‬ ‫‪ZJRKK‬‬ ‫‪MRCZM‬‬ ‫‪VJKYL‬‬ ‫‪JNZKY‬‬ ‫‪EFYZE‬‬
‫‪UIRET‬‬ ‫‪VFWDZ‬‬ ‫‪EUEFY‬‬ ‫‪ZEUIR‬‬ ‫‪ETVRE‬‬ ‫‪UYVET‬‬ ‫‪VEFWV‬‬ ‫‪RIWRI‬‬ ‫‪SVPFE‬‬ ‫‪UUVCL‬‬ ‫‪UVUKY‬‬
‫‪FLXYK‬‬ ‫‪IZXYK‬‬ ‫‪YVIVZ‬‬ ‫‪JEZIM‬‬ ‫‪RER‬‬

‫اﻟﺨﻄﻮة اﻷوﻟﻰ ھﻲ ﻣﻌﺮﻓﮫ اﻟﺤﺮف اﻷﻛﺜﺮ ﺗﻜﺮارا ‪ ،‬وﻧﻈﺮا ﻟﻄﻮل اﻟﺸﻔﺮة ﻓﯿﻔﻀﻞ ﻋﺪ ﻛﻞ ﺣﺮف‬
‫ﯾﺘﻜﺮر ‪،‬‬

‫ﻧﺒﺪأ ﺑ ﺎﻟﻌﺪ ‪ ،‬ﻧﻘﻮم ﺑﻌﺪ اﻟﺤﺮف اﻷول وھﻮ ‪ W‬وﻧﻼﺣﻆ ﻛﻢ ﻣﺮه ﺗﻜﺮر واﺣﺪ ‪ ،‬اﺛﻨﯿﻦ ‪ ،‬ﺛﻼﺛﺔ ‪ .....‬إﻟﻰ‬
‫أن ﻧﺼﻞ إﻟﻰ ﻧﮭﺎﯾﺔ اﻟﺸﻔﺮة ﻟﻨﻌﺮف أن اﻟﺤﺮف ‪ W‬ﺗﻜﺮر ‪ 9‬ﻣﺮات ‪ ،‬ﻧﺄﺧﺬ اﻟﺤﺮف اﻟﺜﺎﻧﻲ وھﻮ ‪F‬‬
‫وﻧﺒﺪأ ﺑﺎﻟﻌﺪ ‪ ،‬وھﻜﺬا ﻣﻊ ﺑﺎﻗﻲ اﻟﺤﺮوف ﻓﻲ اﻟﺸﻔﺮة‪.‬‬

‫ﻧﺘﯿﺠﺔ ﺗﻜﺮار اﻟﺤﺮوف ﺑﻌﺪ اﻟﻌﺪ‪:‬‬


‫‪A: 1 B: 1 C: 16 D: 14 E: 82 F: 69 G: 10 H: 0 I: 27 J: 47 K: 61‬‬
‫‪L: 15 M: 3 N: 5 O: 2 P: 8 Q: 0 R: 45 S: 5 T: 21 U: 28 V: 69‬‬
‫‪W: 9 X: 15 Y: 28 Z: 47‬‬

‫ﻧﻼﺣﻆ ﻓﻲ اﻟﻨﺘﯿﺠﺔ أﻋﻼه ‪ ،‬أن اﻟﺤﺮف ‪ E‬ھﻮ اﻟﺤﺮف اﻷﻛﺜﺮ ﺗﻜﺮارا ﻓﻲ اﻟﻨﺺ اﻟﻤﺸﻔﺮ )ﺗﻜﺮر ‪82‬‬
‫ﻣﺮه( ‪ ،‬اﻵن ﻛﻤﺎ ذﻛﺮﻧﺎ ﺳﺎﺑﻘﺎ اﻟﺤﺮف اﻷﻛﺜﺮ ﺗﻜﺮار ﻓﻲ اﻟﺸﻔﺮة ﻗﺪ ﯾﻜﻮن ھﻮ اﻟﺤﺮف ‪ ، E‬وﻷن ﻓﻲ‬
‫ﺣﺎﻟﺘﻨﺎ ھﺬه ‪ ،‬اﻟﺤﺮف اﻟﻤﺸﻔﺮ ھﻮ ‪ E‬اذا ﺑﺎﻟﺘﺄﻛﯿﺪ اﻟﺤﺮف ‪ E‬ﻟﻦ ﯾﻜﻮن ھﻮ اﻟﺤﺮف اﻟﺒﺪﯾﻞ ‪ ،‬ﻟﺬﻟﻚ‬
‫ﺳﻮف ﻧﺄﺧﺬ اﻟﺤﺮف اﻷﻛﺜﺮ ﺗﻜﺮارا ﻓﻲ اﻟﺸﻔﺮة أﺗﻲ ﺑﻌﺪ اﻟﺤﺮف ‪. E‬‬

‫اﻵن ﻟﺪﯾﻨﺎ ﺣﺮﻓﯿﻦ ھﻤﺎ ‪ F,V‬ﺣﯿﺚ ﺗﻜﺮر ﻛﻞ ﻣﻨﮭﻢ ‪ 69‬ﻣﺮه ‪ ،‬وﻗﺪ ﯾﻜﻮن أﺣﺪھﻢ ھﻮ اﻟﺤﺮف ‪. E‬‬

‫اﻵن ﻧﺄﺧﺬ اﻟﺤﺮف ‪ F‬وﻧﺸﺎھﺪ اﻟﻔﺮق ﺑﯿﻨﮫ وﺑﯿﻦ ‪ ، E‬واﻟﻨﺘﯿﺠﺔ ھﻲ ‪) 1‬ﻷن اﻟﺤﺮف ‪ F‬ﯾﺄﺗﻲ ﺑﻌﺪ ‪. ( E‬‬
‫أﯾﻀﺎ ﻧﺄﺧﺬ اﻟﺤﺮف اﻟﺜﺎﻧﻲ ھﻮ ‪ V‬وﻧﺸﺎھﺪ اﻟﻔﺮق ﺑﯿﻨﮫ وﺑﯿﻦ اﻟﺤﺮف ‪ E‬واﻟﻨﺘﯿﺠﺔ ھﻲ ‪) . 17‬اﻟﺤﺮف‬
‫‪V‬ﯾﺄﺗﻲ ﺑﻌﺪ ‪ 17‬ﺣﺮف ﻣﻦ ‪. ( E‬‬

‫إﻟﻰ ھﻨﺎ ‪ ،‬أﺻﺒﺢ ﻟﺪﯾﻨﺎ اﺣﺘﻤﺎﻟﯿﻦ ‪،‬‬

‫‪26‬‬
‫‪PDF created with pdfFactory Pro trial version www.pdffactory.com‬‬
.17 ‫ واﻟﺜﺎﻧﻲ أن ﯾﻜﻮن اﻟﻤﻔﺘﺎح ھﻮ‬، 1 ‫اﻷول ھﻮ أن ﯾﻜﻮن اﻟﻤﻔﺘﺎح ھﻮ‬

، (‫ )ﻧﺮﺟﻊ إﻟﻰ اﻟﻮراء ﺑﻤﻘﺪار ﺣﺮف‬1 ‫ وﻧﻄﺮح ﻣﻦ ﻛﻞ ﺣﺮف ﻓﻲ اﻟﺸﻔﺮة‬، ‫ﻧﻘﻮم ﺑﺘﺠﺮﺑﺔ اﻷول‬
.‫ ﺧﺎﻃﺌﮫ‬1 ‫اﻟﻨﺘﯿﺠﺔ ﺳﺘﺼﺒﺢ ﻏﯿﺮ ﻣﻔﮭﻮﻣﮫ وﺑﺎﻟﺘﺎﻟﻲ اﻻزاﺣﮫ ﺑﻤﻘﺪار‬

:‫ وﺳﻮف ﻧﺸﺎھﺪ ھﺬا اﻟﻨﺺ اﻟﺠﻤﯿﻞ‬، 17 ‫ﻧﺠﺮب اﻻزاﺣﮫ ﺑﻤﻘﺪار‬

FORMI SEXAC TLYEM PTINE SSEMP TINES SEXAC TLYFO RMSOI TISWI THSEN
SATIO NPERC EPTIO NMENT ALREA CTION ANDCO NSCIO USNES SALLT HINGS
AREES SENTI ALLYE MPTYN OTBOR NNOTD ESTRO YEDNO TSTAI NEDNO TPURE
WITHO UTLOS SWITH OUTGA INTHE REFOR EINEM PTINE SSTHE REISN OFORM
NOSEN SATIO NPERC EPTIO NMENT ALREA CTION ORCON SCIOU SNESS NOEYE
EARNO SETON GUEBO DYMIN DNOCO LORSO UNDSM ELLTA STETO UCHOB JECTO
FTHOU GHTNO SEEIN GANDS OONTO NOTHI NKING NOIGN ORANC EANDN OENDT
OIGNO RANCE NOOLD AGEAN DDEAT HNOEN DTOOL DAGEA NDDEA THNOA NGUIS
HCAUS EOFAN GUISH CESSA TIONP ATHNO WISDO MANDN OATTA INMEN TSINC
ETHER EISNO THING TOATT AINTH EBODH ISATT VALIV ESTHU SWITH NOHIN
DRANC EOFMI NDNOH INDRA NCEAN DHENC ENOFE ARFAR BEYON DDELU DEDTH
OUGHT RIGHT HEREI SNIRV ANA

‫ أن ﯾﺼﻌﺐ ﻋﻠﯿﻚ ﺗﺮﺗﯿﺐ اﻟﺤﺮوف اﻟﺴﺎﺑﻘﺔ وإرﺟﺎﻋﮭﺎ إﻟﻰ ﺣﺎﻟﺘﮭﺎ اﻷﺻﻠﯿﺔ‬، ‫ھﻨﺎك اﺣﺘﻤﺎل ﻛﺒﯿﺮ‬
‫ وﯾﻔﻀﻞ‬، ‫ ﻟﻜﻨﮭﺎ ﺗﺒﻘﻰ ﻓﻲ اﻟﻨﮭﺎﯾﺔ ھﻲ اﻟﻨﺺ اﻷﺻﻠﻲ‬. ‫ﺑﺴﺒﺐ ﻋﺪم إﺗﻘﺎن اﻟﻠﻐﺔ اﻷﻧﺠﻠﯿﺰﯾﮫ ﺑﺸﻜﻞ ﺟﯿﺪ‬
‫ﻓﻲ ﺗﻠﻚ اﻟﺤﺎﻟﺔ اﻹﺳﺘﻌﺎﻧﮫ ﺑﺄﺣﺪ اﻟﻤﺘﺮﺟﻤﺎت ﻣﺜﻞ اﻟﻮاﻓﻲ واﻟﺒﺪء ﻓﻲ ﻣﺤﺎوﻟﮫ ﺗﺠﻤﯿﻊ اﻟﺤﺮوف‬
. ‫وﺗﺮﺟﻤﺘﮭﺎ‬

، Key Phrase ‫ ﺣﯿﺚ أﻧﮫ ﻣﻤﻜﻦ اﺧﺘﯿﺎر ﺟﻤﻠﮫ ﻟﻠﺘﺸﻔﯿﺮ‬Monoalphabetic ‫ﻧﻌﻮد إﻟﻰ اﻟﻄﺮﯾﻘﺔ‬
. (‫ﺑﺪﻻ ﻣﻦ اﻟﻤﻔﺘﺎح )اﻻزاﺣﮫ‬

:‫ ھﺬه‬Key Phrase ‫ ﻟﺪي ﺟﻤﻠﮫ اﻟﺘﺸﻔﯿﺮ‬، ‫ﻣﺜﻼ‬


THE HILLS ARE ALIVE

‫ ﺑﻌﺪ اﻟﺘﺸﻔﯿﺮ ھﻮ اﻟﺤﺮف‬A ‫ ﺳﻮف ﯾﻜﻮن اﻟﺤﺮف‬، ‫ ﺑﮭﺬه اﻟﻄﺮﯾﻘﮫ‬A ‫اذا أردت أن أﺷﻔﺮ اﻟﺤﺮف‬
. ‫ﻷﻧﮭﺎ اﻷوﻟﻰ ﻓﻲ ﺟﻤﻠﮫ اﻟﺘﺸﻔﯿﺮ‬T
...‫ وھﻜﺬا‬، E ‫ ﯾﺼﺒﺢ‬C ‫ و‬، H ‫ ﯾﺼﺒﺢ‬B ‫و‬

‫ ﻓﺄﻗﻮم ﺑﺘﻜﻤﻠﺔ اﻟﺤﺮوف‬، ‫وﻓﻲ ﺣﺎل اﻧﺘﮭﺖ ﺟﻤﻠﮫ اﻟﺘﺸﻔﯿﺮ وﻟﻢ ﯾﻨﺘﮭﻲ اﻟﻨﺺ اﻟﺬي أرﯾﺪ ﺗﺸﻔﯿﺮه‬
: ‫ ﻟﻤﺰﯾﺪ ﻣﻦ اﻟﺘﻮﺿﯿﺢ اﻧﻈﺮ اﻟﺠﺪول ﻓﻲ اﻟﺼﻔﺤﺔ اﻟﺘﺎﻟﯿﺔ‬، ‫ﺑﺎﻟﺤﺮوف اﻟﻌﺎدﯾﺔ‬

، ‫ﻣﺜﺎل )ﺻﻐﯿﺮ( ﻟﺘﻮﺿﯿﺢ اﻟﻄﺮﯾﻘﺔ‬


WAJDY : ‫ﻟﺪى ﺟﻤﻠﮫ اﻟﺘﺸﻔﯿﺮ اﻟﺘﺎﻟﯿﺔ‬
STOP FIRE : ‫وأرﯾﺪ ﺗﺸﻔﯿﺮ اﻟﻌﺒﺎرة‬
: ‫ﻧﻘﻮم أوﻻ ﺑﻮﺿﻊ اﻟﻨﺺ اﻷﺻﻠﻲ وﻣﻦ أﺳﻔﻠﮫ اﻟﻨﺺ اﻟﻤﺸﻔﺮ ﺑﺎﻻﺿﺎﻓﮫ إﻟﻰ ﺑﺎﻗﻲ اﻟﺤﺮوف‬
Plaintext : ABCDEFGHIJKLMNOPQRSTUVWXYZ
Cipher text : WAJDYBCEFGHIKLMNOPQRSTUVXZ

27
PDF created with pdfFactory Pro trial version www.pdffactory.com
‫اﻵن أﻗﻮم ﺑﺘﺸﻔﯿﺮ اﻟﻨﺺ ‪ ، STOP FIRE‬وﯾﻨﺘﺞ ﻟﺪى اﻟﻨﺺ اﻟﻤﺸﻔﺮ اﻟﺘﺎﻟﻲ ‪، QRMN BFPY :‬‬
‫وأﻗﻮم ﺑﺘﻘﺴﯿﻢ اﻟﻨﺺ اﻟﻤﺸﻔﺮ إﻟﻰ ‪ Block‬ﯾﺘﻜﻮن ﻣﻦ ﺧﻤﺴﮫ ﺣﺮوف ‪ ،‬ﻟﯿﻨﺘﺞ ﻟﺪي ﻓﻲ اﻟﻨﮭﺎﯾﺔ‬
‫‪. QRMNB FPY‬‬

‫‪28‬‬
‫‪PDF created with pdfFactory Pro trial version www.pdffactory.com‬‬
‫ﺷﻔﺮﻩ ﺃﺗﺒﺎﺵ ‪Atbash Cipher‬‬

‫ھﺬه اﻟﺸﻔﺮة أﯾﻀﺎ ﻣﻦ أﺑﺴﻂ أﻧﻮاع اﻟﺸﻔﺮات ‪ ،‬وھﻲ ﻛﺎﻧﺖ ﻓﻲ اﻷﺻﻞ ﻟﻠﻐﺔ اﻟﻌﺒﺮﯾﺔ ‪ ،‬وﻟﻜﻦ ﯾﻤﻜﻦ‬
‫اﺳﺘﺨﺪام اﻟﻤﻔﮭﻮم ﻓﻲ ﺑﺎﻗﻲ اﻟﻠﻐﺎت ‪.‬‬
‫وﻃﺮﯾﻘﺘﮭﺎ ﻛﺎﻟﺘﺎﻟﻲ ‪ ،‬وھﻲ أن ﻧﺠﻌﻞ اﻟﺤﺮف اﻷول ﻓﻲ اﻟﻠﻐﺔ ھﻮ اﻟﺤﺮف اﻷﺧﯿﺮ ‪ ،‬واﻟﺤﺮف اﻟﺜﺎﻧﻲ‬
‫ھﻮ ﻗﺒﻞ اﻷﺧﯿﺮ ‪ ،‬وھﻜﺬا‪...‬‬

‫‪Plain: ABCDEFGHIJKLMNOPQRSTUVWXYZ‬‬
‫‪Cipher: ZYXWVUTSRQPONMLKJIHGFEDCBA‬‬
‫ﻣﺜﻼ ‪ ،‬ﻟﺘﺸﻔﯿﺮ اﻟﻜﻠﻤﺔ ‪ ، money‬ﯾﺼﺒﺢ ﻟﺪﯾﻨﺎ اﻟﻨﺎﺗﺞ ‪. nlmvb‬‬

‫ﻓﻲ ﺑﻌﺾ اﻷﺣﯿﺎن ﻣﻦ اﻟﻤﻤﻜﻦ أن اﻟﻜﻠﻤﺎت ﺑﻌﺪ اﻟﺘﺸﻔﯿﺮ ﯾﻜﻮن ﻟﺪﯾﮭﺎ ﻣﻌﻨﻲ وھﻲ ﻣﺸﻔﺮه ﻣﺜﻞ‪:‬‬
‫اﻟﻨﺺ اﻷﺻﻠﻲ = "‪ "hob‬ﺑﻌﺪ اﻟﺘﺸﻔﯿﺮ ﺗﺼﺒﺢ "‪ ، "sly‬وھﻜﺬا ﻟﻠﻜﻠﻤﺎت اﻷﺧﺮى‬
‫اﻟﻨﺺ اﻷﺻﻠﻲ = "‪ "hold‬ﺑﻌﺪ اﻟﺘﺸﻔﯿﺮ ﺗﺼﺒﺢ "‪"slow‬‬
‫اﻟﻨﺺ اﻷﺻﻠﻲ = "‪ "holy‬ﺑﻌﺪ اﻟﺘﺸﻔﯿﺮ ﺗﺼﺒﺢ"‪"slob‬‬
‫"‪"horn" = "slim‬‬
‫"‪"irk" = "rip‬‬
‫"‪"low" = "old‬‬
‫"‪"glow" = "told‬‬
‫‪"grog" = "tilt".‬‬

‫وﻣﻊ ذﻟﻚ ﺗﺒﻘﻰ ﺗﻠﻚ اﻟﺸﻔﺮات ﻣﻦ أﺳﮭﻞ اﻷﻧﻮاع ﻋﻠﻰ اﻹﻃﻼق!‬

‫ﺷﻔﺮﻩ ‪ROT13‬‬
‫ﺗﻌﺘﺒﺮ ھﺬه اﻟﺸﻔﺮة )ﻛﻤﺎ ھﻮ اﻟﺤﺎل ﻣﻊ ﺟﻤﯿﻊ ﺷﻔﺮات ﻧﻮع ‪ ( Monoalphabetic‬ﺿﻌﯿﻔﺔ ﻟﻠﻐﺎﯾﺔ ‪،‬‬
‫ﺣﯿﺚ أن اﻟﺘﺸﻔﯿﺮ وﻓﻚ اﻟﺘﺸﻔﯿﺮ ﯾﺘﻢ ﺑﻨﻔﺲ اﻟﻄﺮﯾﻘﺔ ‪ ،‬و ﻣﻔﺘﺎح اﻟﺘﺸﻔﯿﺮ ‪ ، 13‬وﻟﻠﺘﺸﻔﯿﺮ ﻧﻘﻮم ﺑﺠﻤﻊ ‪13‬‬
‫ﻋﻠﻰ اﻟﺤﺮف اﻷول ﻣﻦ اﻟﻨﺺ اﻷﺻﻠﻲ ‪ ،‬وﻟﻔﻚ اﻟﺘﺸﻔﯿﺮ ﺗﻘﻮم أﯾﻀﺎ ﺑﺠﻤﻊ ‪ 13‬ﻋﻠﻰ اﻟﺤﺮف اﻷول‬
‫ﻣﻦ اﻟﻨﺺ اﻟﻤﺸﻔﺮ ‪.‬‬

‫))‪P = ROT13 (ROT13 (P‬‬

‫اﻟﺤﺮف ‪ p‬ﯾﻌﻨﻲ اﻟﺤﺮف اﻷول ﻣﻦ اﻟﻨﺺ اﻷﺻﻠﻲ ‪ ، Plaintext‬ﻧﻘﻮم ﺑﻌﺪھﺎ ﺑﺘﺸﻔﯿﺮه ﺑﺠﻤﻊ ‪13‬‬
‫ﺣﺮف إﻟﯿﮫ‪ ،‬ﻟﻨﻔﺮض أن اﻟﺤﺮف اﻷول ﻣﻦ اﻟﻨﺺ اﻷﺻﻠﻲ ھﻮ ‪ ، D‬اﻟﺤﺮف ‪ D‬ﻗﯿﻤﺘﮫ ‪ ، 3‬ﻧﺠﻤﻊ‬
‫)‪ 26%(13+3‬واﻟﻨﺎﺗﺞ ھﻮ ‪ ، 16‬أو ﻣﻤﻜﻦ ﻧﺘﺤﺮك ‪ 13‬ﺧﻄﻮه ﻣﻦ اﻟﺤﺮف ‪ D‬واﻟﻨﺎﺗﺞ ﻓﻲ اﻟﻨﮭﺎﯾﺔ‬
‫ﺳﻮاء ﺑﺎﻟﺠﻤﻊ أو ﺑﺎﻟﺘﺤﺮك ھﻮ اﻟﺤﺮف ‪. Q‬‬

‫ﻗﺒﻞ أن ﻧﺒﺪأ ﻋﻤﻠﯿﮫ اﻟﺘﺸﻔﯿﺮ داﺋﻤﺎ ‪ ،‬ﻧﻀﻊ ھﺬا اﻟﺠﺪول اﻟﺬي ﺳﻨﺴﺘﺨﺪﻣﮫ ﻛﺜﯿﺮا ﻟﺘﺴﮭﯿﻞ ﻣﻌﺮﻓﮫ ﻣﻮاﻗﻊ‬
‫اﻟﺤﺮوف‪:‬‬

‫‪29‬‬
‫‪PDF created with pdfFactory Pro trial version www.pdffactory.com‬‬
‫ﻋﻤﻠﯿﮫ ﻓﻚ اﻟﺘﺸﻔﯿﺮ ‪ ،‬ﺗﻜﻮن أﯾﻀﺎ ﺑﺠﻤﻊ ‪ 13‬إﻟﻰ اﻟﺤﺮف اﻟﻤﺸﻔﺮ )أو اﻟﺘﺤﺮك ‪ 13‬ﺧﻄﻮه إﻟﻰ‬
‫اﻷﻣﺎم( ‪ .‬ﻧﺠﺮب ﻋﻠﻰ اﻟﺤﺮف ‪ Q‬اﻟﺬي ﻛﺎن ﻧﺘﯿﺠﺔ ﻋﻤﻠﯿﮫ اﻟﺘﺸﻔﯿﺮ اﻟﺴﺎﺑﻘﺔ ‪، (16+13)%26 = 3 ،‬‬
‫أو ﻧﺘﺤﺮك ‪ 13‬ﺧﻄﻮه إﻟﻰ اﻷﻣﺎم ﺣﺘﻰ ﻧﺼﻞ إﻟﻰ اﻟﺤﺮف اﻷﺻﻠﻲ وھﻮ ‪. D‬‬

‫ﺷﻔﺮه ‪ ROT13‬اﺳﺘﺨﺪﻣﺖ ﻓﻲ اﻷﺻﻞ ﻓﻲ ﺑﺮﻧﺎﻣﺞ ﻛﺎن ﻓﻲ ﻧﻈﺎم ‪ ، Unix‬وﺣﺎﻟﯿﺎ ﻻ ﯾﻮﺟﺪ أي‬


‫اﺳﺘﺨﺪام ﻟﮭﺎ ‪ ،‬ﻣﺎ ﻋﺪا ﻓﻲ ﺑﻌﺾ اﻟﻤﺴﺎﺑﻘﺎت ‪ Puzzle‬وﯾﻜﻮن اﻟﺠﻮاب ﻣﻮﺟﻮد )ﻣﺨﻔﻲ( ﺑﮭﺬا‬
‫اﻟﺸﻜﻞ ‪.‬‬

‫ﺷﻔﺮﻩ ‪Affine Cipher‬‬

‫اﻟﺘﺸﻔﯿﺮ ﺑﻄﺮﯾﻘﺔ ‪) Affine Cipher‬اﻟﺒﻌﺾ ﯾﺘﺮﺟﻤﮭﺎ ﺑﻄﺮﯾﻘﮫ اﻟﺘﺸﻔﯿﺮ اﻟﻤﺨﺘﻠﻂ ‪ ،‬ﻷﻧﮫ ھﻨﺎ ﺧﻠﻂ‬
‫ﺑﯿﻦ ﻧﻮﻋﯿﻦ ﻣﻦ اﻟﺘﺸﻔﯿﺮ ‪ ،‬اﻟﻨﻮع اﻷول وھﻮ ﺷﻔﺮه ﻗﯿﺼﺮ ‪ ،‬واﻷﺧﺮ وھﻮ ﺷﻔﺮه اﻟﻀﺮب ‪product‬‬
‫‪( Cipher‬‬
‫ﻓﻲ ﺷﻔﺮه ﻗﯿﺼﺮ ﯾﻜﻮن اﻟﺘﺸﻔﯿﺮ ﻛﺎﻟﺘﺎﻟﻲ ‪:‬‬
‫‪c = p + key MOD n‬‬
‫)وھﻨﺎ ‪ key‬ﯾﻌﺘﺒﺮ اﻻزاﺣﮫ( ‪.‬‬

‫وﻓﻲ ﺷﻔﺮه اﻟﻀﺮب ‪ ،‬ﯾﻜﻮن اﻟﺘﺸﻔﯿﺮ ﻛﺎﻟﺘﺎﻟﻲ ‪:‬‬


‫‪C = p * key MOD n‬‬

‫اﻵن ﻓﻲ ﺷﻔﺮه ‪) Affine‬أو اﻟﺸﻔﺮه اﻟﻤﺨﺘﻠﻄﺔ( ﺟﻤﻌﺖ ﺑﯿﻦ اﻟﻄﺮﯾﻘﯿﻦ ‪ ،‬ﺣﯿﺚ ﯾﺘﻢ اﻟﺠﻤﻊ واﻟﻀﺮب‬
‫أﯾﻀﺎ ‪.‬‬
‫‪C = m*p + key MOD n‬‬

‫ﻟﻜﻦ ھﻨﺎك ﺷﺮط ﻣﮭﻢ ﺟﺪا ‪ ،‬وھﻮ أن ﺗﻜﻮن ‪ m‬و ‪ n‬ھﻤﺎ أوﻟﯿﺎن ﻓﯿﻤﺎ ﺑﯿﻨﮭﻤﺎ ‪ ،‬أي أن اﻟﻘﺎﺳﻢ اﻟﻤﺸﺘﺮك‬
‫اﻷﻋﻈﻢ ل ‪ m‬و ‪ n‬ﯾﺴﺎوي ‪ . 1‬وﻓﻲ ﺣﺎل ﻟﻢ ﯾﻨﻔﺬ ھﺬا اﻟﺸﺮط ‪ ،‬ﻓﺎﻧﮫ ﻟﻦ ﯾﻤﻜﻦ ﻓﻚ اﻟﺘﺸﻔﯿﺮ‪) .‬راﺟﻊ‬
‫اﻟﻔﺼﻞ اﻷول ‪ ،‬ﻟﻤﻌﺮﻓﮫ اﻟﻤﺰﯾﺪ ﻋﻦ اﻟﻘﺎﺳﻢ اﻟﻤﺸﺘﺮك اﻷﻋﻈﻢ وﻛﯿﻔﯿﮫ إﯾﺠﺎده ( ‪.‬‬

‫اﻵن ﻟﻔﻚ اﻟﺘﺸﻔﯿﺮ ﯾﺠﺐ أن ﻧﻮﺟﺪ ﻣﻌﻜﻮس ‪) m‬ﻓﻲ ﺣﺎل ﻛﺎن ‪ GCD(m,n) = 1‬ﻓﺈﻧﮫ ﯾﻤﻜﻦ أﯾﺠﺎد‬
‫ذﻟﻚ اﻟﻤﻌﻜﻮس ‪ ،‬ﻟﺬﻟﻚ ﻛﻤﺎ ذﻛﺮﻧﺎ ﻗﺒﻞ ﻗﻠﯿﻞ ﯾﺠﺐ ﺗﺤﻘﯿﻖ اﻟﺸﺮط ﻣﻨﺬ اﻟﺒﺪاﯾﺔ ‪ ،‬ﺣﺘﻰ ﯾﻜﻮن ھﻨﺎك‬
‫اﻟﻤﻌﻜﻮس(‪.‬‬

‫ﻟﻔﻚ اﻟﺘﺸﻔﯿﺮ ‪ ،‬ﻧﺘﺒﻊ ‪:‬‬


‫)‪P = m` * (c – key) (MOD n‬‬

‫ﻧﺄﺧﺬ ﻣﺜﺎل ﻟﯿﻮﺿﺢ اﻟﻌﻤﻠﯿﺔ ‪:‬‬

‫‪30‬‬
‫‪PDF created with pdfFactory Pro trial version www.pdffactory.com‬‬
‫ﻧﺮﯾﺪ ﺗﺸﻔﯿﺮ اﻟﻌﺒﺎرة ‪WAR LOST :‬‬
‫واﻟﻤﻔﺘﺎح ‪ key‬ﯾﺴﺎوي ‪ ، 10‬وﻣﻌﺎﻣﻞ اﻟﻀﺮب ‪ m‬ﯾﺴﺎوي ‪. 7‬‬

‫ﻗﺒﻞ أن ﻧﺒﺪأ ﻓﻲ اﻟﺘﺸﻔﯿﺮ ‪ ،‬ﯾﺠﺐ أن ﻧﺘﺄﻛﺪ ﻣﻦ أن ھﻨﺎك ﻣﻌﻜﻮس ل ‪ ، m‬ﺣﺘﻰ ﯾﻤﻜﻦ ﻓﻚ اﻟﺸﻔﺮه ‪.‬‬
‫ﻧﺄﺧﺬ اﻟﻘﺎﺳﻢ اﻟﻤﺸﺘﺮك اﻷﻋﻈﻢ ل ‪ m‬و ‪ 26) n‬ﻷﻧﮭﺎ ﻋﺪد اﻟﺤﺮوف ( ‪.‬‬
‫‪ ، GCD(7,26) = 1‬وﯾﺴﺎوي واﺣﺪ ‪ ،‬اذا ھﻜﺬا ﻧﺘﺄﻛﺪ ﻣﻦ أن ھﻨﺎك ﻣﻌﻜﻮس ل ‪. M‬‬

‫ﻧﻀﻊ ﺟﺪول اﻟﺤﺮوف ‪ ،‬ﺣﺘﻰ ﯾﺴﺎﻋﺪﻧﺎ ﻓﻲ ﻣﻌﺮﻓﮫ ﻣﻮﻗﻊ اﻟﺤﺮوف ‪:‬‬

‫اﻵن ﺑﻌﺪ ﺗﺤﻮﯾﻞ اﻟﻨﺺ اﻷﺻﻠﻲ إﻟﻰ أرﻗﺎم ‪ ،‬ﯾﻜﻮن ﺑﮭﺬا اﻟﺸﻜﻞ ‪:‬‬
‫‪22 0 17 11 14 18 19‬‬

‫اﻵن ﻧﺒﺪأ ﻓﻲ اﻟﺘﻄﺒﯿﻖ ﻓﻲ اﻟﻘﺎﻧﻮن ‪:‬‬


‫‪C = m * p + key MOD 26‬‬

‫‪C1 = 7 * 22 + 10 MOD 26 = 8‬‬


‫‪C2 = 7 * 0 + 10 MOD 26 = 10‬‬
‫‪C3 = 7 * 17 + 10 MOD 26 = 25‬‬
‫‪C4 = 7 * 11 + 10 MOD 26 = 9‬‬
‫‪C5 = 7 * 14 + 10 MOD 26 = 4‬‬
‫‪C6 = 7 * 18 + 10 MOD 26 = 6‬‬
‫‪C7 = 7 * 19 + 10 MOD 26 = 13‬‬

‫اﻵن اﻟﻨﺘﯿﺠﺔ ﺑﻌﺪ اﻟﺘﺸﻔﯿﺮ ھﻲ ‪:‬‬


‫‪8 10 25 9 4 6 13‬‬
‫وﻧﻘﻮم ﺑﺘﺤﻮﯾﻠﮭﺎ إﻟﻰ ﺣﺮوف ‪ ،‬ﻟﯿﺼﺒﺢ ﻟﺪﯾﻨﺎ ‪IKZJE GN :‬‬

‫اﻵن ﻟﻔﻚ اﻟﺘﺸﻔﯿﺮ ‪ ،‬ﯾﺠﺐ أن ﻧﻌﺮف ﻣﺎ ھﻮ ﻣﻌﻜﻮس ‪ ، m‬ﺣﺘﻰ ﻧﺴﺘﻄﯿﻊ اﻟﺘﻄﺒﯿﻖ ﻓﻲ اﻟﻘﺎﻧﻮن اﻟﺘﺎﻟﻲ ‪:‬‬
‫)‪P = m` * (c – key) (MOD 26‬‬

‫ﻛﯿﻒ ﯾﻤﻜﻦ إﯾﺠﺎد اﻟﻤﻌﻜﻮس ‪ ،‬وذﻟﻚ ﻋﻦ ﻃﺮﯾﻖ ﺧﻮارزﻣﯿﺔ اﻗﻠﯿﺪس اﻟﻤﻤﺘﺪة )اﻟﺘﻲ ذﻛﺮﻧﺎھﺎ ﻓﻲ‬
‫اﻟﻔﺼﻞ اﻷول( ‪.‬‬

‫ﻧﺪﺧﻞ اﻟﻌﺪدﯾﻦ ‪ 7‬و ‪ 26‬ﻓﻲ ﺧﻮارزﻣﯿﺔ اﻗﻠﯿﺪس اﻻﻗﻠﯿﺪﯾﺔ اﻟﻤﻤﺘﺪة ‪ ،‬ﻟﯿﻨﺘﺞ ﻟﺪﯾﻨﺎ اﻟﻤﻌﻜﻮس ‪15 :‬‬

‫اﻵن ﻧﻄﺒﻖ ﻓﻲ اﻟﻘﺎﻧﻮن ‪:‬‬

‫‪P1 = 15 * ( 8 – 10 ) MOD 26 = 22‬‬


‫‪P2 = 15 * ( 10 – 10 ) MOD 26 = 0‬‬

‫‪31‬‬
‫‪PDF created with pdfFactory Pro trial version www.pdffactory.com‬‬
‫‪P3 = 15 * ( 25 – 10 ) MOD 26 = 17‬‬
‫‪P4 = 15 * ( 9 – 10 ) MOD 26 = 11‬‬
‫‪P5 = 15 * ( 4 – 10 ) MOD 26 = 14‬‬
‫‪P6 = 15 * ( 6 – 10 ) MOD 26 = 18‬‬
‫‪P7 = 15 * ( 13 – 10 ) MOD 26 = 19‬‬

‫اذا اﻟﻨﺺ اﻷﺻﻠﻲ ھﻮ ‪ ، 22 0 17 11 14 18 19 :‬وﺑﻌﺪ ﺗﺤﻮﯾﻠﮫ إﻟﻰ ﺣﺮوف ﯾﺼﺒﺢ ‪:‬‬


‫‪) WARLO ST‬وھﻮ اﻟﻤﻄﻠﻮب ( ‪.‬‬

‫ﻛﺴﺮ ﺍﻟﺸﻔﺮﺍﺕ ﻣﻦ ﻧﻮﻉ ‪MONOALPHABETIC‬‬

‫ﻃﺮﯾﻘﮫ اﻟﺘﺤﻠﯿﻞ اﻹﺣﺼﺎﺋﻲ ھﻲ اﻟﻄﺮﯾﻘﮫ اﻟﺸﺎﺋﻌﺔ ﻟﻤﺜﻞ ھﺬه اﻟﻄﺮق )ﺣﯿﺚ ﺗﺴﺘﺒﺪل ھﺬه اﻟﻄﺮق ﻛﻞ‬
‫ﺣﺮف ﻓﻲ اﻟﺸﻔﺮة اﻻﺻﻠﯿﮫ ﺑﺤﺮف ﻣﺎ اﻋﺘﻤﺎدا ﻋﻠﻰ أزاﺣﮫ ﻣﻌﯿﻨﮫ ‪-‬ﻣﻔﺘﺎح ﻣﺎ‪ -‬أو ﺟﻤﻠﮫ ﻟﻠﺘﺸﻔﯿﺮ( ‪.‬‬
‫ﺣﯿﺚ ﺗﺴﺘﻔﯿﺪ ﻣﻦ أن ﺑﻌﺾ اﻟﺤﺮوف ﻓﻲ ﻛﻞ ﻟﻐﺔ ﻣﻌﺪل ﺗﻜﺮارھﺎ أﻛﺜﺮ ﻣﻦ ﺑﺎﻗﻲ اﻟﻠﻐﺎت‪.‬‬

‫وﻃﺒﻌﺎ ﻟﻠﺒﺪء ﻓﻲ ھﺬه اﻟﻄﺮﯾﻘﮫ ‪ ،‬ﯾﺠﺐ أن ﯾﻜﻮن ھﻨﺎك ﻧﺺ ﻛﺎﻓﻲ ﻟﻠﺒﺪء ﻓﻲ ﻣﺮﺣﻠﮫ اﻟﻌﺪ ‪ ،‬ﯾﻌﻨﻲ ﻧﺺ‬
‫ﯾﺘﻜﻮن ﻣﻦ ‪ 10‬ﺣﺮوف أو أﻗﻞ ﯾﺼﻌﺐ ﺟﺪا ﻛﺴﺮه )إن ﻟﻢ ﯾﻜﻦ ﻣﺴﺘﺤﯿﻞ ﻓﻲ اﻷﺻﻞ( ﺑﮭﺬه اﻟﻄﺮﯾﻘﮫ‪.‬‬

‫اﻟﺠﺪول اﻟﺘﺎﻟﻲ ﺑﯿﻦ ﻣﻌﺪل ﺗﻜﺮارات اﻟﺤﺮوف ﻓﻲ اﻟﻠﻐﺔ اﻷﻧﺠﻠﯿﺰﯾﮫ‪:‬‬

‫ﺗﻤﺮﯾﻦ ‪ ،‬ﻗﻢ ﺑﻔﻚ اﻟﺸﻔﺮة اﻟﺘﺎﻟﯿﺔ ‪ ،‬ﻋﻠﻤﺎ ﺑﺄﻧﮭﺎ ﻣﺸﻔﺮه ﺑﺨﻮارزﻣﯿﺔ ﻗﯿﺼﺮ ﺑﻤﻔﺘﺎح ﻣﺨﺘﻠﻒ‪:‬‬
‫‪fqjcb rwjwj vnjax bnkhj whxcq nawjv nfxdu mbvnu ujbbf nnc‬‬

‫اﻟﺤﻞ ‪:‬‬
‫ﻓﻲ اﻟﺒﺪاﯾﺔ أول ﺧﻄﻮه ھﻲ ﻣﻌﺮﻓﮫ ﻛﻢ ﻣﺮه ﺗﻜﺮر ﻛﻞ ﺣﺮف ‪ ،‬ﻧﺴﺘﻄﯿﻊ أن ﻧﻌﺮف ﻣﺎ ھﻮ اﻟﺤﺮف‬
‫اﻟﺬي ﺗﻜﺮر أﻛﺜﺮ ﻣﻦ ﻏﯿﺮه ‪ ،‬وﻣﻨﮫ ﻗﺪ ﯾﻜﻮن ھﻮ اﻟﺤﺮف ‪. E‬‬

‫‪32‬‬
‫‪PDF created with pdfFactory Pro trial version www.pdffactory.com‬‬
‫اﻵن ﻧﺒﺪأ ﻓﻲ ﻋﺪ اﻟﺤﺮوف‪:‬‬
‫‪a:2 , b:5 , c:3 , d:0 , e:0 , f:3 , g:0 , h:2 , i:0 , j:7 , k:1 , l:0 , m:1 , n :7‬‬
‫وھﻜﺬا ﻟﺒﺎﻗﻲ اﻟﺤﺮوف‬
‫) ﻛﻞ اﻟﺒﺎﻗﻲ ﻻ ﯾﺘﻌﺪى ﺛﻼﺛﺔ أﺣﺮف ‪ ،‬ﻣﺎ ﻋﺪا اﻟﺤﺮف ‪ w‬ﺗﻜﺮر أرﺑﻌﮫ ﻣﺮات( ‪.‬‬

‫ﻧﻌﻮد إﻟﻰ اﻟﺤﺮوف اﻷﻛﺜﺮ ﺗﻜﺮار وھﻲ ‪ j‬و ‪ n‬ﺣﯿﺚ ﺗﻜﺮر ﻛﻞ ﻣﻨﮭﻢ ‪ 7‬ﻣﺮات‪.‬‬

‫اﻵن ﻧﺸﺎھﺪ اﻟﻔﺮق ﺑﯿﻦ اﻟﺤﺮف اﻷول ‪ j‬واﻟﺤﺮف ‪ E‬ﻟﯿﺨﺮج اﻟﻨﺎﺗﺞ ‪ ، 5‬اﻵن اﻟﻤﻔﺘﺎح ھﻨﺎ ‪ ، 5‬وﻧﺒﺪأ‬
‫ﺑﻔﻚ اﻟﺸﻔﺮة‪:‬‬
‫ﻧﻄﺮح ﻣﻦ ﻛﻞ ﺣﺮف ‪ 5‬ﺣﺮوف‪:‬‬
‫‪f-5 = a‬‬
‫‪q-5 = l‬‬
‫‪j-5 = e‬‬
‫‪c-5 = x‬‬
‫‪b-5 =w‬‬
‫واﻟﻨﺎﺗﺞ ﯾﻜﻮن‪:‬‬
‫‪ alexw mrere ajevs‬ﻧﺘﻮﻗﻒ ھﻨﺎ ﺑﺎﻟﻄﺒﻊ ‪ ،‬ﻷن اﻟﻨﺺ ﻟﯿﺲ ﻟﮫ ﻣﻌﻨﻰ ﺑﺘﺎﺗﺎ‪.‬‬
‫ﻧﺄﺧﺬ اﻟﺤﺮف اﻟﺜﺎﻧﻲ اﻷﻛﺜﺮ ﺗﻜﺮارا ‪ ،‬وھﻮ اﻟﺤﺮف ‪. N‬‬
‫ﻧﺸﺎھﺪ اﻟﻔﺮق ﺑﯿﻨﮫ وﺑﯿﻦ اﻟـ ‪ ، e-n=9 ،E‬اذا اﻟﻤﻔﺘﺎح ﻓﻲ ھﺬه اﻟﺤﺎﻟﺔ ﯾﻜﻮن ‪. 9‬‬
‫اﻵن ﻧﻄﺮح ﻣﻦ ﻛﻞ ﺣﺮف ‪ 9‬ﺣﺮوف‪....‬‬

‫‪f-9 = w‬‬
‫‪q-9 = h‬‬
‫‪j-9 = a‬‬
‫‪c-9 = t‬‬
‫‪b-9 = s‬‬

‫وھﻜﺬا ﻟﯿﺨﺮج ﻟﺪﯾﻨﺎ‪:‬‬


‫‪whats inana mearo sebya nyoth ernam ewoul dsmel lassw eet‬‬

‫اﻵن ﻧﺒﺪأ ﺑﻤﻌﺮﻓﮫ اﻟﺠﻤﻞ ‪ ،‬وﺑﻌﺪ ﻗﻠﯿﻞ ﻣﻦ اﻟﻤﺤﺎوﻻت واﻻﺳﺘﻌﺎﻧﺔ ﺑﺎﻟﻤﺘﺮﺟﻢ اﻟﻮاﻓﻲ ‪ ،‬ﯾﺨﺮج ﻟﺪﯾﻨﺎ‬
‫‪what's in a name a rose by any other name would smell as sweet‬‬

‫ﺗﻤﺮﯾﻦ ‪ :‬ﻗﻢ ﺑﻔﻚ اﻟﺸﻔﺮة اﻟﺘﺎﻟﯿﺔ ‪ ،‬واﺳﺘﺨﺪم اﻟﺠﻤﻠﺔ اﻟﺘﺎﻟﯿﺔ ﻟﻔﻚ اﻟﺘﺸﻔﯿﺮ"‪"monalphbetic‬‬
‫‪jmjmj gsmsg lrjgu csqyj quflr mfajq erdmc cmqlv lqyhg gawgq arpgq‬‬
‫‪sblce jrlrj lnmec cyjqu flrmf ajqer d‬‬

‫ھﺬا اﻟﺘﺸﻔﯿﺮ ﻋﻦ ﻃﺮﯾﻘﮫ ﺟﻤﻠﮫ اﻟﺘﺸﻔﯿﺮ ﺳﮭﻞ ﻟﻠﻐﺎﯾﺔ ‪ ،‬ﻛﻞ ﻣﺎ ﻓﻲ اﻷﻣﺮ ‪ ،‬ھﻮ وﺿﻊ اﻟﺤﺮوف اﻟﻌﺎدﯾﺔ‬
‫ووﺿﻊ ﺟﻤﻠﮫ اﻟﺘﺸﻔﯿﺮ أﺳﻔﻞ ﻣﻨﮭﺎ ‪ ،‬وﺑﻌﺪھﺎ ‪:‬‬

‫‪33‬‬
‫‪PDF created with pdfFactory Pro trial version www.pdffactory.com‬‬
‫‪a b c d e f g h I j k lm no p q r s tuvwxyz‬‬
‫‪m o n a l p h b e t I c d f g j k q r suvwxyz‬‬

‫اﻵن ﻧﺄﺧﺬ اﻟﺤﺮف اﻷول ﻣﻦ اﻟﻨﺺ اﻟﻤﺸﻔﺮ وھﻮ اﻟﺤﺮف ‪ j‬و ﻧﻨﻈﺮ إﻟﻰ ﻣﺎ ﯾﻘﺎﺑﻞ اﻟﺤﺮف ‪ j‬ﻓﻲ‬
‫اﻟﺴﻄﺮ اﻷول اﻟﺬي ﯾﻤﺜﻞ اﻟﻨﺺ اﻷﺻﻠﻲ ‪ ،‬ﻟﯿﺼﺒﺢ ‪ j‬ھﻮ اﻟﺤﺮف ‪ ، p‬و ‪ m‬ھﻮ اﻟﺤﺮف ‪ ، a‬وھﻜﺬا‬
‫ﻟﺒﺎﻗﻲ اﻟﺤﺮوف ﻓﻲ ھﺬه اﻟﺸﻔﺮة ‪.‬‬

‫ﻟﯿﺨﺮج إﻟﯿﻨﺎ ﻓﻲ اﻟﻨﮭﺎﯾﺔ اﻟﻨﺺ اﻷﺻﻠﻲ اﻟﺘﺎﻟﻲ‪:‬‬


‫‪Papap otato espou ltryp runes andpr ismar eallv erygo odwor dsfor theli‬‬
‫‪psesp ecial lypru nesan dpris m‬‬

‫وﺑﻌﺪ أﻋﺎده ﺗﺮﺗﯿﺒﮭﺎ ـ ﻟﯿﺼﺒﺢ ﻟﺪﯾﻨﺎ ‪:‬‬


‫‪Papa potatoes poultry prunes and prism are all very good words for the‬‬
‫‪lips especially prunes and prism‬‬
‫) اﻟﺴﺆاﻟﯿﻦ اﻟﺴﺎﺑﻘﯿﻦ ‪ ،‬ﻣﻨﻘﻮﻟﯿﻦ ﻣﻦ ﻣﻨﺘﺪﯾﺎت اﻟﻔﺮﯾﻖ اﻟﻌﺮﺑﻲ ﻟﻠﺒﺮﻣﺠﺔ ‪ www.arabteam2000.com‬ﻟﻸخ‬
‫‪( MEMONONO‬‬

‫ﺷﻔﺮﺍﺕ ‪Polyalphabetic substitution cipher‬‬


‫اﻟﺸﻔﺮات اﻟﺘﻲ ﻧﺘﺪرج ﺗﺤﺖ ھﺬا اﻟﻨﻮع ‪ ،‬ﻧﻘﻮم ھﻲ ﻣﺠﺮد ﺗﻄﺒﯿﻖ ﻃﺮﯾﻘﮫ ‪Monoalphabetic‬‬
‫ﻋﻠﯿﮭﺎ ﻋﺪه ﻣﺮات ‪ ،‬أي أن اﻟﻤﻔﺘﺎح ھﻨﺎ ﯾﻜﻮن ﻋﺒﺎرة ﻋﻦ ﻋﺪه ﻣﻔﺎﺗﯿﺢ ‪ .‬ﻣﺜﻼ اذا ﻛﺎن ﻋﺪد اﻟﻤﻔﺎﺗﯿﺢ ‪4‬‬
‫‪ ،‬ﯾﺸﻔﺮ اﻟﺤﺮف اﻷول ﺑﺎﻟﻤﻔﺘﺎح اﻷول واﻟﺤﺮف اﻟﺜﺎﻧﻲ ﺑﺎﻟﻤﻔﺘﺎح اﻟﺜﺎﻧﻲ ‪ ،‬وھﻜﺬا ‪ .‬وﻋﻨﺪﻣﺎ ﺗﻨﺘﮭﻲ‬
‫اﻟﻤﻔﺎﺗﯿﺢ ﺑﻌﺾ اﻟﻄﺮق ﺗﻘﻮم ﺑﺈﻋﺎدﺗﮫ ﻛﺘﺎﺑﺘﮫ ﻣﺮه أﺧﺮى ‪ ،‬وﺑﻌﻀﺎ ﻻ ﺗﻘﻮم ‪ ،‬ﻛﻤﺎ ﺳﻨﺬﻛﺮھﻢ ﺑﻌﺪ ﻗﻠﯿﻞ ‪.‬‬

‫وأﺷﮭﺮ اﻟﺸﻔﺮات ﺗﺤﺖ ھﺬا اﻟﻨﻮع ‪ ،‬ھﻲ ﺷﻔﺮات ﻋﺎﺋﻠﮫ ﻓﺠﯿﻨﯿﺮ ‪ Vigenere Cipher‬وﻗﺪ‬
‫ﻃﻮرت ھﺬه اﻟﺸﻔﺮات ﻋﻠﻰ ﻣﺪى اﻟﺴﻨﯿﻦ ﻣﻦ ﻗﺒﻞ أﻧﺎس ﻣﺨﺘﻠﻔﯿﻦ ‪ ،‬أﯾﻀﺎ ﺟﮭﺎز اﻟﺘﺸﻔﯿﺮ اﻷﻟﻤﺎﻧﻲ‬
‫‪ Engima‬ﯾﻨﺪرج ﺗﺤﺖ ھﺬا اﻟﻨﻮع ‪ .‬وﻣﻦ ھﺬه اﻟﺸﻔﺮات ‪:‬‬
‫‪Simple Shift Vigenere Cipher‬‬
‫‪Full Vigenere Cipher‬‬
‫‪Auto-Key Vigenere Cipher‬‬
‫‪Running Key Vigenere Cipher‬‬

‫ﺷﻔﺮﻩ ‪Simple Shift Vigenere Cipher‬‬

‫ﻃﺮﯾﻘﺔ اﻟﺘﺸﻔﯿﺮ ﻓﻲ ھﺬا اﻟﻨﻮع ﻣﻦ أﺑﺴﻂ ﻣﺎ ﯾﻜﻮن ‪ ،‬ﺣﯿﺚ ﻧﻘﻮم ﺑﺘﺸﻔﯿﺮ اﻟﺤﺮف اﻷول ﺑﺎﻟﻤﻔﺘﺎح اﻷول‬
‫‪ ،‬واﻟﺤﺮف اﻟﺜﺎﻧﻲ ﺑﺎﻟﻤﻔﺘﺎح اﻟﺜﺎﻧﻲ ‪ ،‬وھﻜﺬا ‪ ..‬وﻓﻲ ﺣﺎل اﻧﺘﮭﺖ اﻟﻤﻔﺎﺗﯿﺢ أﻗﻮم ﺑﺘﻜﺮار ﻛﺘﺎﺑﺘﮭﺎ ﻣﺮة‬
‫أﺧﺮى ‪.‬‬

‫ﻣﺜﺎل ﺑﺴﯿﻂ ﻟﺘﻮﺿﯿﺢ اﻟﺘﺸﻔﯿﺮ ھﺬه اﻟﻄﺮﯾﻘﮫ‪:‬‬

‫‪34‬‬
‫‪PDF created with pdfFactory Pro trial version www.pdffactory.com‬‬
‫ﻟﺪي ھﺬه اﻟﻌﺒﺎرة )اﻟﻨﺺ اﻷﺻﻠﻲ( ‪:‬‬
‫‪DEFCON FOUR‬‬

‫أرﯾﺪ أن أﺷﻔﺮھﺎ ﺑﮭﺬه اﻟﻄﺮﯾﻘﮫ ‪ ،‬أول ﺧﻄﻮه ھﻲ أن ﯾﻜﻮن اﻟﻤﻔﺘﺎح ﻣﺘﻐﯿﺮ ‪ ،‬أي ﻣﺨﺘﻠﻒ ﻣﻦ ﻣﻮﻗﻊ‬
‫ﻷﺧﺮ‪.‬‬

‫ﻣﺜﻼ ﻗﺪ ﯾﻜﻮن اﻟﻤﻔﺘﺎح ﻋﻠﻰ اﻟﺸﻜﻞ‪:‬‬


‫اﻟﺤﺮف اﻷول ﻓﻲ اﻟﻨﺺ ﯾﺸﻔﺮ ﺑﺎﻟﻤﻔﺘﺎح ‪5 :‬‬
‫اﻟﺤﺮف اﻟﺜﺎﻧﻲ ﯾﺸﻔﺮ ﺑﺎﻟﻤﻔﺘﺎح ‪13 :‬‬
‫اﻟﺤﺮف اﻟﺜﺎﻟﺚ ﯾﺸﻔﺮ ﺑﺎﻟﻤﻔﺘﺎح ‪2 :‬‬
‫اﻟﺤﺮف اﻟﺮاﺑﻊ ﯾﺸﻔﺮ ﺑﺎﻟﻤﻔﺘﺎح ‪7:‬‬

‫اذا اﻟﻤﻔﺎﺗﯿﺢ )ﺗﺴﻤﻰ ﺑـ ‪ ( Key Length‬ﻓﻲ ھﺬه اﻟﺤﺎﻟﺔ ھﻲ ‪5 13 2 7 :‬‬

‫ﻗﺒﻞ أن ﻧﺒﺪأ ﻋﻤﻠﯿﮫ اﻟﺘﺸﻔﯿﺮ ‪ ،‬ﻧﻀﻊ ھﺬا اﻟﺠﺪول ﻟﺘﺴﮭﯿﻞ ﻣﻌﺮﻓﮫ ﻣﻮاﻗﻊ اﻟﺤﺮوف‪:‬‬

‫اﻵن ﻧﻀﻊ اﻟﻨﺺ اﻟﻤﺮاد ﺗﺸﻔﯿﺮه ‪ ،‬وﻣﻘﺎﺑﻠﮫ ﻧﻀﻊ اﻟﻤﻔﺘﺎح ‪ ،‬وﻣﻦ ﺛﻢ ﻧﺒﺪأ ﺑﻌﻤﻠﯿﮫ اﻻزاﺣﮫ ﻟﯿﺨﺮج ﻟﺪﯾﻨﺎ‬
‫اﻟﻨﺺ اﻟﻤﺸﻔﺮ‬

‫ﻧﺒﺪأ ﺑﺎﻟﺤﺮف اﻷول ﻣﻦ اﻟﻨﺺ اﻷﺻﻠﻲ وھﻮ ‪ ، D‬واﻟﻤﻔﺘﺎح اﻷول ھﻮ ‪، 5‬‬


‫اﻟﺤﺮف اﻟﻤﺸﻔﺮ اﻷول ‪ = D + 5‬وﯾﺴﺎوي ‪) I‬أو ﻣﻤﻜﻦ ﻧﺄﺧﺬ ﻗﯿﻤﮫ ال‪ D‬وھﻲ ‪ 3‬وﻧﺠﻤﻊ إﻟﯿﮭﺎ ‪ 5‬ﻣﻊ‬
‫أﺧﺬ ‪ 26 %‬ﻟﯿﺨﺮج ﻟﺪﯾﻨﺎ اﻟﻨﺎﺗﺞ وھﻮ ‪ ، 9‬اﻟﺬي ﯾﻤﺜﻞ اﻟﺤﺮف ‪. ( I‬‬
‫ﻧﺄﺧﺬ اﻟﺤﺮف اﻟﺜﺎﻧﻲ ‪ ،‬وھﻮ ‪ ، E‬واﻟﻤﻔﺘﺎح اﻟﺜﺎﻧﻲ وھﻮ ‪ ، 13‬وﺑﻌﺪ ﻋﻤﻠﯿﮫ اﻹزاﺣﺔ ﯾﻨﺘﺞ ﻟﺪﯾﻨﺎ اﻟﺤﺮف‬
‫اﻟﻤﺸﻔﺮ ‪R‬‬
‫وھﻜﺬا ﻟﺒﺎﻗﻲ اﻟﺤﺮ وف ﻓﻲ اﻟﻨﺺ‪....‬‬

‫ھﺬه اﻟﺼﻮره ﺗﻮﺿﺢ ﻋﻤﻠﯿﮫ اﻟﺘﺸﻔﯿﺮ ‪ ،‬اﻟﺴﻄﺮ اﻷول ھﻮ اﻟﻨﺺ اﻷﺻﻠﻲ ‪ ،‬اﻟﺴﻄﺮ اﻟﺜﺎﻧﻲ اﻟﻤﻔﺎﺗﯿﺢ ‪،‬‬
‫وﻓﻲ ﺣﺎل اﻧﺘﮭﺖ ﻧﻌﯿﺪ ﻛﺘﺎﺑﺘﮭﺎ ﻣﺮه أﺧﺮى ‪ ،‬اﻟﺴﻄﺮ اﻷﺧﯿﺮ ھﻮ اﻟﻨﺎﺗﺞ ﻣﻦ ﺟﻤﻊ اﻟﺴﻄﺮ اﻷول ﻣﻊ‬
‫اﻟﺜﺎﻧﻲ وھﻮ اﻟﻨﺺ اﻟﻤﺸﻔﺮ‪:‬‬

‫اﻵن ﻧﺄﺧﺬ اﻟﻨﺎﺗﺞ وﻧﻀﻌﮫ ﻓﻲ ﺷﻜﻞ ‪ Block‬ﻛﻞ ﻣﻨﮭﺎ ﯾﺘﻜﻮن ﻣﻦ ‪ 5‬ﺣﺮوف‪:‬‬


‫اذا اﻟﻨﺺ اﻟﻤﺸﻔﺮ ھﻮ‪:‬‬
‫‪IRHJT AHVZE‬‬

‫‪35‬‬
‫‪PDF created with pdfFactory Pro trial version www.pdffactory.com‬‬
‫إﻟﻰ ھﻨﺎ اﻷﻣﺮ ﺑﺴﯿﻂ ﻟﻠﻐﺎﯾﺔ ‪ ،‬وﻟﻜﻦ ﺗﺒﻘﻰ ﻣﺸﻜﻠﮫ ﻓﻌﻠﯿﮫ وھﻲ ﺻﻌﻮﺑﺔ ﺗﺬﻛﺮ اﻟﻤﻔﺘﺎح وﺧﺎﺻﺔ اذا ﻛﺎن‬
‫ﻃﻮﯾﻞ ‪ ،‬ﻓﻜﯿﻒ أﺣﻔﻆ ھﺬه اﻟﻤﻔﺎﺗﯿﺢ ؟ اﻟﺤﻞ ھﻮ اﺳﺘﺨﺪام ﻧﺺ أو ﺟﻤﻠﮫ ﺑﺪل ھﺬه اﻷرﻗﺎم ‪ ،‬وﻋﻨﺪ‬
‫اﻟﺘﺸﻔﯿﺮ أﻋﻮض ﺑﻜﻞ ﺣﺮف ﻣﻦ ھﺬه اﻟﺠﻤﻠﺔ ﺑﺎﻟﺮﻗﻢ ﻋﻠﻰ ﺣﺴﺐ ﻣﻮﻗﻌﮭﺎ ‪ ،‬ﻣﺜﻼ اﻟﺤﺮف ‪ A‬اﻟﻤﻔﺘﺎح‬
‫ھﻨﺎ ھﻮ ‪ ، 0‬اﻟﺤﺮف ‪ B‬اﻟﻤﻔﺘﺎح ھﻮ ‪ 1‬وھﻜﺬا‪...‬‬

‫اذا ﻟﻮ ﻟﺪﯾﻨﺎ اﻟﻤﻔﺘﺎح )اﻟﻤﻔﺎﺗﯿﺢ( ‪1 12 0 18 19 14 5 5 :‬‬

‫ﺳﻮف ﯾﻜﻮن ﺑﺎﻟﺸﻜﻞ اﻟﺘﺎﻟﻲ ‪ ،‬ﺑﻌﺪ ﺗﻌﻮﺿﮫ ﺑﺎﻟﺤﺮوف ‪BLAST OFF :‬‬

‫وھﻜﺬا ‪ ،‬ﺳﻮف ﻧﻘﻀﻲ ﻋﻠﻰ ﻣﺸﻜﻠﮫ ﺣﻔﻆ اﻟﻤﻔﺎﺗﯿﺢ اﻟﻄﻮﯾﻠﺔ ‪ ،‬ﻋﻦ ﻃﺮﯾﻖ ﺟﻤﻠﮫ اﻟﺘﺸﻔﯿﺮ ‪.‬‬

‫أﺣﺪ أﺷﮭﺮ اﻻﺳﺘﺨﺪاﻣﺎت ﻟﮭﺬا اﻟﻨﻮع ﻣﻦ اﻟﺸﻔﺮات ھﻮ ﻋﺠﻠﮫ اﻷﻛﻮاد ‪: Code Wheel‬‬

‫ﺣﯿﺚ ﯾﻜﻮن ﻟﺪﯾﻨﺎ ﻋﺠﻠﮫ )داﺋﺮة ﻣﺘﺤﺮﻛﺔ( ﺗﺘﻜﻮن ﻣﻦ ﺟﺰﺋﯿﯿﻦ داﺧﻠﻲ وﺧﺎرﺟﻲ ‪ ،‬اﻟﺠﺰء اﻟﺪاﺧﻠﻲ ﻓﯿﮫ‬
‫اﻟﺤﺮوف اﻷﺑﺠﺪﯾﺔ وھﻮ ﯾﻤﺜﻞ اﻟﺤﺮوف اﻟﻤﺸﻔﺮة ‪ ،‬واﻟﺠﺰء اﻟﺨﺎرﺟﻲ أﯾﻀﺎ ﯾﺤﺘﻮي ﻋﻠﻰ اﻟﺤﺮوف‬
‫اﻷﺑﺠﺪﯾﺔ وﻟﻜﻨﮫ ﯾﻤﺜﻞ اﻟﺤﺮوف ﻓﻲ اﻟﻨﺺ اﻷﺻﻠﻲ ‪،‬‬

‫اذا ﻛﻨﺖ ﻻ ﺗﺴﺘﻄﯿﻊ ﺗﺨﯿﻞ ﺷﻜﻞ ھﺬه اﻟﻌﺠﻠﺔ ‪-‬وھﻮ ﻣﺎ ﺣﺼﻞ ﺑﺎﻟﺘﺄﻛﯿﺪ ‪ -‬أﻧﻈﺮ اﻟﺼﻮره اﻟﻤﻘﺎﺑﻠﺔ ‪:‬‬

‫‪36‬‬
‫‪PDF created with pdfFactory Pro trial version www.pdffactory.com‬‬
‫وھﺬه ﺻﻮره ﻟﮭﺎ وھﻲ ﻓﻲ اﻟﻌﺎﻟﻢ اﻟﺤﻘﯿﻘﻲ ‪:‬‬

‫ﻛﯿﻒ ﻧﻘﻮم ﺑﺎﻟﺘﺸﻔﯿﺮ ﻓﻲ ھﺬه اﻟﻌﺠﻠﺔ ‪ ،‬ﺑﺒﺴﺎﻃﮫ أوﻻ أﻗﻮم ﺑﺎﺧﺘﯿﺎر اﻟﻤﻔﺘﺎح وھﻮ ﻓﻲ ھﺬه اﻟﺤﺎﻟﺔ ﻋﺒﺎرة‬
‫ﻋﻦ ﺣﺮف واﺣﺪ ‪ ،‬وﻟﯿﻜﻦ اﺧﺘﺮت اﻟﻤﻔﺘﺎح ‪. S‬‬

‫اﻵن ﻗﺒﻞ أن أﺑﺪأ ﺑﺎﻟﺘﺸﻔﯿﺮ ‪ ،‬أﺣﺮك اﻟﺠﺰء اﻟﺪاﺧﻠﻲ )اﻟﺨﺎص ﺑﺎﻟﺸﻔﺮة( وأﺟﻌﻞ اﻟﺤﺮف ‪ S‬ﺗﺤﺖ‬
‫اﻟﺤﺮف ‪ A‬ﻛﻤﺎ ھﻮ ﻣﻮﺿﺢ ﻓﻲ اﻟﺼﻮره أﻋﻼه )اﻟﺼﻮره اﻷوﻟﻰ ﻟﻠﻌﺠﻠﺔ( ‪.‬‬

‫اﻵن اذا أردت أن أﺷﻔﺮ اﻟﺤﺮف ‪ ، G‬أﻧﻈﺮ ﻓﻲ اﻟﺠﺰء اﻟﺨﺎرﺟﻲ إﻟﻰ ‪ ، G‬ﺑﻌﺪھﺎ أﺷﺎھﺪ ﻣﺎذا ﯾﻘﺎﺑﻠﮫ‬
‫وھﻮ اﻟﺤﺮف‪ Y .‬وھﻜﺬا ﻟﺒﺎﻗﻲ اﻟﺤﺮوف ﻓﻲ اﻟﻨﺺ‪.‬‬

‫ﻓﻚ اﻟﺘﺸﻔﯿﺮ ھﻮ اﻟﻌﻤﻠﯿﺔ اﻟﻌﻜﺴﯿﺔ ‪ ،‬أرﯾﺪ أن أﻓﻚ ﺗﺸﻔﯿﺮ اﻟﺤﺮف ‪ ، H‬أﻧﻈﺮ ﻓﻲ اﻟﺠﺰء اﻟﺪاﺧﻠﻲ إﻟﻰ ‪H‬‬
‫وأﻧﻈﺮ ﻣﺎ ﯾﻘﺎﺑﻠﮫ وھﻮ اﻟﺤﺮف ‪ . p‬وھﻜﺬا‪...‬‬

‫ﻛﺴﺮ ﺷﻔﺮﺍﺕ ﻓﺠﻴﻨﻴﺮ ‪ Vigenere‬ﺍﻟﺒﺴﻴﻄﺔ‬

‫ﻷن اﻟﻤﻔﺘﺎح ﯾﺘﻜﺮر ﻓﻲ ھﺬه اﻟﺸﻔﺮات ﺑﺤﯿﺚ ﺗﻌﯿﺪ دوره اﻟﻤﻔﺎﺗﯿﺢ ﻣﻦ اﻟﺒﺪاﯾﺔ ﻣﻦ ﻣﺮه ) ﺗﻌﺮف ھﺬه‬
‫ﺑﺎﻟـ ‪ Period‬أي اﻟﻔﺘﺮة اﻟﺘﻲ ﻣﺎ ﺑﯿﻦ ﺗﻜﺮار اﻟﻤﻔﺘﺎح ‪ ،‬وﻛﻠﻤﺎ ﻛﺎﻧﺖ ھﺬه اﻟﻔﺘﺮة أﻃﻮل‪ ،‬ﻛﻠﻤﺎ ﻛﺎﻧﺖ‬
‫اﻟﺸﻔﺮة أﻛﺜﺮ أﻣﺎﻧﺎ (‪ ،‬ﯾﻤﻜﻦ اﺳﺘﻐﻼل ھﺬه اﻹﻋﺎدة وﺗﻄﺒﯿﻖ ﻃﺮﯾﻘﮫ اﻟﺘﺤﻠﯿﻞ اﻹﺣﺼﺎﺋﻲ ‪ ،‬وﻟﻜﻦ ﯾﺠﺐ‬
‫أن ﯾﻜﻮن اﻟﻨﺺ اﻟﻤﺸﻔﺮ ﻛﺒﯿﺮ ﺑﻤﺎ ﯾﻜﻔﻲ ‪ ،‬أﯾﻀﺎ ﯾﺠﺐ أن ﯾﺘﻢ ﻣﻌﺮﻓﮫ ﻋﺪد اﻟﻤﻔﺎﺗﯿﺢ اﻟﻤﺴﺘﺨﺪﻣﺔ أو‬
‫‪ Key Length‬وھﻮ أﺻﻌﺐ ﺟﺰء ﻓﻲ اﻟﻌﻤﻠﯿﺔ‪.‬‬

‫وﻓﻲ ﺣﺎل ﺗﻢ ﻣﻌﺮﻓﮫ ﻋﺪد اﻟﻤﻔﺎﺗﯿﺢ ‪ Key Length‬ﻧﻘﻮم ﺑﺘﻘﺴﯿﻢ اﻟﻨﺺ اﻟﻤﺸﻔﺮ إﻟﻰ ﻣﺠﻤﻮﻋﮫ ﺻﻐﯿﺮه‬
‫ﻣﻦ اﻟﻨﺼﻮص ‪ ،‬ﺑﻌﺪھﺎ وﺑﻄﺮﯾﻘﮫ ﻣﺎ ﻧﻄﺒﻖ ﻋﻠﯿﮭﺎ ﻃﺮﯾﻘﮫ اﻟﺘﺤﻠﯿﻞ اﻹﺣﺼﺎﺋﻲ ﻋﻠﻰ ﻛﻞ ﻣﺠﻤﻮﻋﮫ ﻋﻠﻰ‬
‫ﺣﺪه ‪ ،‬وﻧﻼﺣﻆ ﻣﺎ ھﻮ اﻟﺤﺮف اﻟﺬي ﯾﺘﻜﺮر ﻛﺜﯿﺮا ﻓﻲ اﻟﻤﺠﻤﻮﻋﺔ اﻷوﻟﻰ وﻗﺪ ﯾﻜﻮن ھﻮ ‪) E‬ﻧﻌﯿﺪ ﻧﻔﺲ‬
‫ﺧﻄﻮات ﻛﺴﺮ ‪ ،( Monoalphabetic‬ﻃﺒﻌﺎ ﻋﻠﻰ ﻛﻞ ﻣﺠﻤﻮﻋﮫ ﻣﻦ اﻟﻤﺠﻤﻮﻋﺎت اﻟﺼﻐﯿﺮة‪.‬‬

‫‪37‬‬
‫‪PDF created with pdfFactory Pro trial version www.pdffactory.com‬‬
‫ﻣﺜﺎل ‪ ،‬ﻟﺪﯾﻨﺎ اﻟﻨﺺ اﻟﻤﺸﻔﺮ اﻷﺗﻲ‪:‬‬
‫‪XZQTY IISTN PAWRT GSGPO LNOXF‬‬

‫اذا ﻗﻤﻨﺎ ﺑﺘﺨﻤﯿﻦ اﻟﻤﻔﺎﺗﯿﺢ ﻣﺜﻼ ‪ 5‬ﻣﻔﺎﺗﯿﺢ ‪ ،‬وﻛﺎﻧﺖ ھﻲ اﻹﺟﺎﺑﺔ اﻟﺼﺤﯿﺤﺔ ‪ ،‬اﻵن ﻧﻘﻮم ﺑﺘﻘﺴﯿﻢ اﻟﻨﺺ‬
‫إﻟﻰ ﻣﺠﻤﻮﻋﮫ ﻣﻦ اﻟﻨﺼﻮص ‪ ،‬وﯾﺘﻢ اﻟﺘﻘﺴﯿﻢ وذﻟﻚ ﺑﺄﺧﺬ ﺣﺮف واﺣﺪ ﻣﻦ ﻛﻞ ﺑﻠﻮك ‪ Block‬ﻓﻲ‬
‫اﻟﻨﺺ اﻟﻤﺸﻔﺮ‪.‬‬

‫ﻧﺄﺧﺬ اﻟﺤﺮف اﻷول ﻣﻦ اﻟﺒﻠﻮك اﻷول وھﻮ ‪X‬‬


‫ﻧﺄﺧﺬ اﻟﺤﺮف اﻷول ﻣﻦ اﻟﺒﻠﻮك اﻟﺜﺎﻧﻲ وھﻮ ‪I‬‬
‫ﻧﺄﺧﺬ اﻟﺤﺮف اﻷول ﻣﻦ اﻟﺒﻠﻮك اﻟﺜﺎﻟﺚ وھﻮ ‪P‬‬
‫ﻧﺄﺧﺬ اﻟﺤﺮف اﻷول ﻣﻦ اﻟﺒﻠﻮك اﻟﺮاﺑﻊ وھﻮ ‪G‬‬
‫ﻧﺄﺧﺬ اﻟﺤﺮف اﻷول ﻣﻦ اﻟﺒﻠﻮك اﻟﺨﺎﻣﺲ وھﻮ‪L‬‬
‫وھﻜﺬا ﻧﺴﺘﻤﺮ ﺑﺄﺧﺬ اﻟﺤﺮف رﻗﻢ ‪ 1‬ﻣﻦ أي ﺑﻠﻮك ‪ ، n‬إﻟﻰ أن ﺗﻨﺘﮭﻲ ﺟﻤﯿﻊ اﻟﺒﻠﻮك‬

‫اذا اﻟﻤﺠﻤﻮﻋﺔ اﻷول ھﻲ ‪ ، XIPGL‬وﻧﻄﺒﻖ ﻧﻔﺲ اﻟﻄﺮﯾﻘﮫ ﻋﻠﻰ اﻟﺤﺮف اﻟﺜﺎﻧﻲ ﻣﻦ ﺟﻤﯿﻊ اﻟﺒﻠﻮﻛﺎت‬
‫‪ ،‬واﻟﺜﺎﻟﺚ واﻟﺮاﺑﻊ واﻟﺨﺎﻣﺲ‪....‬‬

‫وﺑﻌﺪ ﺗﺮﺗﯿﺒﮭﺎ ﻓﻲ ﺷﻜﻞ ﻣﺠﻤﻮﻋﺎت ‪ ،‬ﯾﺘﻜﻮن ﻟﺪﯾﻨﺎ‪:‬‬

‫اﻟﺴﺆال اﻟﺬي ﯾﻄﺮح ﻧﻔﺴﮫ ﻛﯿﻒ ﺗﻤﺖ ﻣﻌﺮﻓﮫ ﻃﻮل اﻟﻤﻔﺘﺎح )ﻋﺪد اﻟﻤﻔﺎﺗﯿﺢ ( ؟ ‪ ،‬ﻃﺒﻌﺎ ﻓﻲ اﻟﻤﺜﺎل‬
‫اﻟﺴﺎﺑﻖ ﻷن اﻟﻨﺺ ﻛﺎن ﺻﻐﯿﺮ ﻟﻦ ﻧﺴﺘﻄﯿﻊ إﯾﺠﺎده ‪ ،‬وﻟﻜﻦ اﻟﻄﺮﯾﻘﮫ ﺻﺤﯿﺤﺔ ‪ ،‬ﻟﺬﻟﻚ ﻧﺄﺧﺬ ﻣﺜﺎل أﺧﺮ‬
‫ﺑﻌﺪ ﻗﻠﯿﻞ ﻟﺘﻮﺿﯿﺢ اﻷﻣﺮ ‪ ،‬ﻣﺠﺪدا‪.‬‬

‫) اﻟﺘﺨﻤﯿﻦ اﻟﻌﺸﻮاﺋﻲ ﯾﻔﯿﺪ ﻛﺜﯿﺮا ‪ ،‬ﻟﻜﻨﮫ ﯾﺴﺘﻠﺰم اﻟﻜﺜﯿﺮ ﻣﻦ اﻟﻤﺤﺎوﻻت ‪ ،‬ﺣﺘﻰ ﺗﺴﺘﻄﯿﻊ ﻣﻌﺮﻓﺘﮫ‬
‫ﻋﺸﻮاﺋﯿﺎ ( ‪.‬‬

‫ﻃﺮﻳﻘﻪ ﻛﻴﺴﺴﻜﻲ ‪ KAISISKI‬ﻟﻤﻌﺮﻓﻪ ﻋﺪﺩ ﺍﻟﻤﻔﺎﺗﻴﺢ ‪Key Length‬‬

‫ھﺬه اﻟﻄﺮﯾﻘﮫ ﺑﺴﯿﻄﺔ ﻟﻠﻐﺎﯾﺔ ‪ ،‬ﺣﯿﺚ ﻋﻠﯿﻨﺎ ھﻨﺎ ﻣﻼﺣﻈﮫ ﺣﺮﻓﯿﻦ أو ﺛﻼﺛﺔ ﺣﺮوف ﯾﺘﻜﺮروا ﻛﺜﯿﺮا وﻟﻜﻦ‬
‫ﺑﺸﺮط أن ﯾﺄﺗﻮا ﻣﻊ ﺑﻌﺾ ‪ ،‬ﯾﻌﻨﻲ ﻣﺜﻼ ﺗﻜﺮرت اﻟﺤﺮوف ‪ XYZ‬ﻛﺜﯿﺮا ‪ ،‬وﻛﻞ ﻣﺮه ﺗﺘﻜﺮر ﻓﯿﮭﺎ ھﺬه‬
‫اﻟﺤﺮوف ﺗﺄﺗﻲ ﻣﺠﻤﺘﻌﮫ ﻣﻊ ﺑﻌﺾ ﺑﮭﺬا اﻟﺸﻜﻞ ‪ ،‬ھﻨﺎ ﻓﻲ ھﺬه اﻟﻄﺮﯾﻘﮫ ﺣﺘﻰ ﻧﻌﺮف ﻋﺪد اﻟﻤﻔﺎﺗﯿﺢ ﻧﻘﻮم‬
‫ﺑﻌﺪ اﻟﺤﺮوف اﻟﺘﻲ ﺗﺄﺗﻲ ﺑﯿﻦ اﻟـ ‪ XYZ‬اﻷوﻟﻰ واﻟﺜﺎﻧﯿﺔ ‪ ،‬وﻧﻘﻮم ﺑﻌﺪ اﻟﺤﺮوف ﺑﯿﻦ اﻟـ ‪ XYZ‬اﻟﺜﺎﻧﯿﺔ‬
‫واﻟﺜﺎﻟﺜﺔ ‪ ،‬وھﻜﺬا إﻟﻰ أن ﻧﻨﺘﮭﻲ ‪ ،‬ﺑﻌﺪھﺎ ﯾﻤﻜﻦ ﺑﻘﻠﯿﻞ ﻣﻦ اﻟﻤﺤﺎوﻟﺔ ﻣﻌﺮﻓﮫ ﻋﺪد اﻟﻤﻔﺎﺗﯿﺢ‪.‬‬

‫ﻣﺜﺎل ﺑﺴﯿﻂ ‪،‬‬

‫‪38‬‬
‫‪PDF created with pdfFactory Pro trial version www.pdffactory.com‬‬
‫ﻟﻨﻔﺘﺮض أن ﻟﺪﯾﻨﺎ ﺷﻔﺮه ﻣﺎ ‪ ،‬وﻓﯿﮭﺎ اﻟﺤﺮوف ‪ FSI‬ﺗﺘﻜﺮر ﻛﺜﯿﺮا ‪ ،‬واﻟﻔﺮق ﺑﯿﻦ ﻛﻞ ‪ FSI‬ﻓﻲ ھﺬا‬
‫اﻟﻨﺺ اﻟﻤﺸﻔﺮ ﻣﻮﺿﺤﮫ ﻓﻲ اﻟﺠﺪول اﻟﺘﺎﻟﻲ‪:‬‬

‫‪-‬ﻃﺮﯾﻘﮫ اﻟﻌﺪ ﺑﺄن ﻧﻌﺪ ﻣﻦ ﺑﻌﺪ اﻟﺤﺮف ‪ F‬إﻟﻰ أن ﻧﺼﻞ إﻟﻰ اﻟﺤﺮف ‪ F‬ﻓﻲ ال ‪ FSI‬اﻟﺜﺎﻧﯿﺔ ‪-‬‬

‫ﻟﻮ دﻗﻘﻨﺎ ﻛﺜﯿﺮا ﻓﻲ ھﺬه اﻷﻋﺪاد ‪ ،‬ﺳﻨﻌﺮف أن أﻏﻠﺒﮭﺎ ﯾﻜﻮن ﻣﻦ ﻣﻀﺎﻋﻔﺎت اﻟﻌﺪد ‪ ، 7‬وھﻨﺎك ‪ 3‬أﻋﺪاد‬
‫ﻓﻲ ھﺬا اﻟﺠﺪول ﻟﯿﺴﺖ ﻣﻦ ﻣﻀﺎﻋﻔﺎت اﻟﺴﺒﻌﺔ ‪ ،‬وﻟﻜﻦ ﻗﺪ ﯾﻜﻮن اﻟﺤﺮف ‪ F‬ﻇﮭﺮ ﻟﻮﺣﺪه ‪ ،‬وﻟﯿﺲ‬
‫ﻣﺠﺘﻤﻊ ﻣﻊ اﻟـ ‪ ، FSI‬وﺗﻢ ﻋﺪه‪.‬‬

‫ﻣﺜﺎل ﺷﺎﻣﻞ ﻟﻔﻚ اﻟﺘﺸﻔﯿﺮ ﺑﮭﺬه اﻟﻄﺮﯾﻘﮫ‪:‬‬

‫ﻟﯿﻜﻦ ﻟﺪﯾﻨﺎ اﻟﺸﻔﺮة اﻟﺘﺎﻟﯿﺔ ‪ ،‬ﻗﻢ ﺑﻜﺴﺮ اﻟﺸﻔﺮة وﻣﻌﺮﻓﮫ ﻋﺪد اﻟﻤﻔﺎﺗﯿﺢ اﻟﻤﺴﺘﺨﺪﻣﺔ ‪ ،‬ﻋﻠﻤﺎ ﺑﺄﻧﮭﺎ ﻣﺸﻔﺮه‬
‫ﺑﻄﺮﯾﻘﮫ ﻓﺠﯿﻨﯿﺮ اﻟﺒﺴﯿﻄﺔ‪:‬‬

‫‪LJVBQ STNEZ LQMED LJVMA MPKAU FAVAT LJVDA YYVNF‬‬


‫‪JQLNP LJVHK VTRNF LJVCM LKETA LJVHU YJVSF KRFTT‬‬
‫‪WEFUX VHZNP‬‬

‫اﻟﺨﻄﻮة اﻷوﻟﻰ ھﻲ أن ﻧﻌﺮف ﻋﺪد اﻟﻤﻔﺎﺗﯿﺢ اﻟﻤﺴﺘﺨﺪﻣﺔ ‪ ، Key Length‬ﻟﺬﻟﻚ ﻧﺴﺘﺨﺪم ﻃﺮﯾﻘﮫ‬
‫ﻛﺴﯿﺴﻜﻲ ‪ ،‬وﻧﺒﺪأ ﻓﻲ ﻣﻼﺣﻈﮫ ﺣﺮوف ﻣﺠﺘﻤﻌﮫ ﺗﺄﺗﻲ أﻛﺜﺮ ﻣﻦ ﻏﯿﺮھﺎ‪.‬‬

‫دﻗﻖ ﻛﺜﯿﺮا ﻓﻲ اﻟﺸﻔﺮة ‪ ،‬ﺳﻮف ﺗﻼﺣﻆ أن اﻟﺤﺮوف ‪ LJV‬ﺗﺄﺗﻲ ﻣﺠﺘﻤﻌﮫ ﺑﺎﻻﺿﺎﻓﮫ إﻟﻰ أﻧﮭﺎ ﺗﺘﻜﺮر‪.‬‬
‫ﻧﺒﺪأ اﻟﻌﺪ ﺑﯿﻦ ﻛﻞ ‪ LJV‬وأﺧﺮى ﻓﻲ ھﺬه اﻟﺸﻔﺮة ‪،‬‬

‫‪39‬‬
‫‪PDF created with pdfFactory Pro trial version www.pdffactory.com‬‬
‫اﻟﻔﺮق ﺑﯿﻦ أول ﺣﺮف ‪ L‬واﻟﺤﺮف ‪ L‬ﻓﻲ اﻟﺒﻠﻮك اﻟﺜﺎﻧﻲ ھﻮ ‪15‬‬
‫واﻟﻔﺮق ﺑﯿﻦ ﺛﺎﻧﻲ ﺣﺮف ‪ L‬واﻟﺤﺮف ‪ L‬ﻓﻲ اﻟﺒﻠﻮك اﻟﺜﺎﻟﺚ ھﻮ ‪ 15‬أﯾﻀﺎ‪.‬‬
‫وﻧﻘﻮم ﺑﺎﻟﻌﺪ ھﻜﺬا إﻟﻰ أن ﻧﺼﻞ إﻟﻰ اﻟﻨﮭﺎﯾﺔ‪.‬‬

‫وھﺬا اﻟﺠﺪول ﯾﻮﺿﺢ اﻟﻔﺮق ﺑﯿﻦ ﻛﻞ ﺣﺮف ‪ L‬ﻓﻲ اﻟﻨﺺ‪:‬‬

‫اﻵن ﻧﺄﺗﻲ إﻟﻰ ﻣﺮﺣﻠﮫ ﻣﻌﺮﻓﮫ ﻋﺪد اﻟﻤﻔﺎﺗﯿﺢ ‪ ،‬ﻻﺣﻆ اﻷرﻗﺎم ﻓﻲ اﻟﺠﺪول ‪ ، 10,15,15‬اﺣﺘﻤﺎل‬
‫ﺗﻜﻮن اﻟﻤﻔﺎﺗﯿﺢ )وھﻮ اﻻﺣﺘﻤﺎل اﻟﺼﺤﯿﺢ( ھﻮ ‪ 5‬ﻣﻔﺎﺗﯿﺢ‪.‬‬
‫اﻵن ﺑﻌﺪ ﻣﻌﺮﻓﮫ ﻃﻮل اﻟﻤﻔﺎﺗﯿﺢ ‪ ،‬ﯾﺠﺐ ﻣﻌﺮﻓﮫ ﻋﺪد ھﺬه اﻟﻤﻔﺎﺗﯿﺢ ‪ ،‬ﻧﺒﺪأ ﺑﺘﻘﺴﯿﻢ اﻟﺸﻔﺮة إﻟﻰ ‪ 5‬أﻗﺴﺎم ‪،‬‬
‫وﻧﺄﺧﺬ اﻟﺤﺮف اﻷول ﻣﻦ اﻟﺒﻠﻮك اﻷول واﻟﺤﺮف اﻷول ﻣﻦ اﻟﺒﻠﻮك اﻟﺜﺎﻧﻲ ‪ ،‬وﻧﻔﺲ اﻟﻜﻼم ﺑﺎﻟﻨﺴﺒﺔ‬
‫ﻟﻠﺮاﺑﻊ واﻟﺨﺎﻣﺲ واﻟﺴﺎدس إﻟﻰ ﻧﮭﺎﯾﺔ اﻟﺸﻔﺮة‪ ،‬وﻧﻀﻌﮭﻢ ﻓﻲ اﻟﻘﺴﻢ اﻷول‪.‬‬

‫وأﯾﻀﺎ ﻟﻠﻘﺴﻢ اﻟﺜﺎﻧﻲ ‪ ،‬ﻧﺄﺧﺬ اﻟﺤﺮف اﻟﺜﺎﻧﻲ ﻣﻦ ﻛﻞ ﺑﻠﻮك إﻟﻰ ﻧﮭﺎﯾﺔ اﻟﺸﻔﺮة‪،‬‬
‫وﻧﻔﺲ اﻟﻜﻼم ﻟﺒﺎﻗﻲ اﻷﻗﺴﺎم‪.‬‬

‫اﻵن ﺑﻌﺪ ﺗﺮﺗﯿﺐ ﻓﻲ ‪ 5‬أﻗﺴﺎم ﻧﻄﺒﻖ اﻟﻄﺮق اﻟﺴﺎﺑﻘﺔ ‪ Monoalphabetic‬ﻋﻠﻰ ﻛﻞ ﻗﺴﻢ ﻋﻠﻰ ﺣﺪه ‪،‬‬
‫وھﻨﺎ ﻧﺮﯾﺪ أن ﻧﻌﺮف ﻣﺎ ھﻮ اﻟﺤﺮف اﻷﻛﺜﺮ ﺗﻜﺮارا ﻓﻲ ﻛﻞ ﻗﺴﻢ‪.‬‬

‫اﻟﺸﻜﻞ اﻟﺘﺎﻟﻲ ﯾﺒﯿﻦ ﺷﻜﻞ اﻷﻗﺴﺎم اﻟﺨﻤﺴﺔ ‪ ،‬وﻣﺎ ھﻮ اﻟﺤﺮف اﻷﻛﺜﺮ ﺗﻜﺮارا ﻓﻲ ﻛﻞ ﻗﺴﻢ‪:‬‬

‫ﻧﺒﺪأ ﺑﺎﻟﻘﺴﻢ اﻷول‪:‬‬


‫‪LSLLM FLYJL VLLLY KWV‬‬

‫‪40‬‬
‫‪PDF created with pdfFactory Pro trial version www.pdffactory.com‬‬
‫اﻟﺤﺮف اﻷﻛﺜﺮ ﺗﻜﺮارا ھﻮ اﻟـ ‪، L‬‬

‫اﻟﺴﺆال اﻟﺬي ﯾﻄﺮح ﻧﻔﺴﮫ ‪ ،‬ﻣﺎ ھﻮ اﻟﺤﺮف اﻟﻤﺤﺘﻤﻞ أن ﯾﻜﻮن ‪ E‬أو ‪ T‬أو ‪ R‬أو ﻏﯿﺮ ذﻟﻚ ؟‬

‫ﻻﺣﻆ ھﻨﺎ أن اﻟﻨﺺ ﺻﻐﯿﺮ ﺟﺪا ‪ ،‬وﻟﺬﻟﻚ ﺳﻮف ﯾﻜﻠﻔﻨﺎ اﻟﻜﺜﯿﺮ ﻣﻦ اﻟﻤﺤﺎوﻻت اذا أردﻧﺎ أن ﻧﻌﺘﺒﺮ أن‬
‫‪E‬ﻣﺜﻼ ھﻮ اﻟﺤﺮف اﻟﺬي ﯾﺘﺸﻔﺮ إﻟﻰ ‪ ، L‬ﻷﻧﻨﺎ ﺳﻮف ﻧﻨﺘﻘﻞ إﻟﻰ اﻟﻘﺴﻢ اﻟﺜﺎﻧﻲ وﻧﻜﺮر ﻧﻔﺲ اﻟﻄﺮﯾﻘﮫ‬
‫ﻓﻲ اﻟﺤﺮف اﻷﻛﺜﺮ ﺗﻜﺮارا وھﻮ اﻟﺤﺮف ‪ J‬وﻗﺪ ﯾﻜﻮن ھﻮ ‪ E‬وﻟﯿﺲ اﻟﺤﺮف اﻟﺴﺎﺑﻖ !‬

‫ﻟﺬﻟﻚ اذا أردﻧﺎ أن ﻧﺠﺮب ھﻜﺬا ﺳﻮف ﻧﺨﺮج ﺑﻨﺘﯿﺠﺔ ﻓﻲ اﻟﻨﮭﺎﯾﺔ وﻟﻜﻦ ﻗﺪ ﯾﻄﻮل اﻷﻣﺮ ﻛﺜﯿﺮا ‪،‬‬

‫ﻟﺬﻟﻚ ﻧﺒﺤﺚ ﻋﻦ ﺣﻞ أﺧﺮ ‪ ،‬وﺑﻘﻠﯿﻞ ﻣﻦ اﻟﻤﻼﺣﻈﺔ ﺣﻮل اﻷﺣﺮف اﻟﺜﻼﺛﺔ اﻟﺘﻲ ﺗﺄﺗﻲ داﺋﻤﺎ ﻣﻊ ﺑﻌﺾ ‪،‬‬
‫وﻧﺤﻦ ﻧﻌﺮف ﻓﻲ اﻟﻠﻐﺔ اﻷﻧﺠﻠﯿﺰﯾﮫ أن ‪ THE‬ﺗﺘﻜﻮن ﻣﻦ ﺛﻼﺛﺔ أﺣﺮف ‪،‬‬

‫ﻟﺬﻟﻚ ﻗﺪ ﺗﻜﻮن ‪ L‬ﻓﻲ اﻟﻘﺴﻢ اﻷول ھﻲ ‪T‬‬


‫وﺗﻜﻮن ‪ j‬ﻓﻲ اﻟﻘﺴﻢ اﻟﺜﺎﻧﻲ ھﻮ اﻟﺤﺮف ‪H‬‬
‫وﺗﻜﻮن ‪ V‬ﻓﻲ اﻟﻘﺴﻢ اﻟﺜﺎﻟﺚ ھﻮ اﻟﺤﺮف ‪. E‬‬

‫اﻵن ﻧﺄﺧﺬ اﻟﻔﺮق ﺑﯿﻦ ھﺬه اﻟﺤﺮوف أي ﺑﯿﻦ اﻟـ ‪ T‬واﻟـ ‪ L‬واﻟﻨﺎﺗﺞ ھﻮ ‪) 18‬اﻟﺤﺮف ‪( S‬‬
‫اﻟﻔﺮق ﺑﯿﻦ اﻟﺤﺮف ‪ H‬واﻟﺤﺮف ‪ J‬ھﻮ ‪) 2‬اﻟﺤﺮف ‪.( C‬‬
‫اﻟﻔﺮق ﺑﯿﻦ اﻟﺤﺮف ‪ E‬واﻟﺤﺮف ‪ V‬ھﻮ ‪ ) 17‬اﻟﺤﺮف ‪. (R‬‬

‫إﻟﻰ ھﺬه اﻟﻤﺮﺣﻠﺔ ‪ ،‬ﻋﺮﻓﻨﺎ أول ﺛﻼﺛﺔ ﻣﻔﺎﺗﯿﺢ ﻓﻲ ھﺬه اﻟﺸﻔﺮة ‪ SCR‬وﺗﺒﻘﻰ اﺛﻨﺎن‬

‫ﻧﻌﻮد إﻟﻰ اﻟﻘﺴﻢ اﻟﺮاﺑﻊ واﻟﺨﺎﻣﺲ ‪ ،‬ﺣﯿﺚ اﻟﻘﺴﻢ اﻟﺮاﺑﻊ اﻟﺤﺮف اﻷﻛﺜﺮ ﺗﻜﺮارا ھﻮ ‪ N‬واﻟﻘﺴﻢ اﻟﺨﺎﻣﺲ‬
‫اﻟﺤﺮف اﻷﻛﺜﺮ ﺗﻜﺮارا ھﻮ ‪ . A‬وھﻨﺎ ﺗﺒﺪأ ﻣﺮﺣﻠﮫ اﻟﺘﺨﻤﯿﻦ واﻟﺒﺤﺚ ﻋﻦ ھﺬﯾﻦ اﻟﺤﺮﻓﯿﻦ )اﻟﻤﻔﺘﺎﺣﯿﻦ(‬
‫‪ ،‬ﯾﻤﻜﻨﻚ ﻓﻲ اﻟﺒﺪاﯾﺔ اﻋﺘﺒﺎر ﻛﻞ ﻣﻨﮭﻢ ﺣﺮف ﻣﺎ وﻟﯿﻜﻦ‪. A,B‬‬

‫اﻵن ﻧﻘﻮم ﺑﻔﻚ اﻟﺸﻔﺮة ﻋﻠﻰ أﺳﺎس اﻟﻤﻔﺘﺎح ھﻮ ‪ SCRAB‬ﻟﺘﺨﺮج ﻟﺪﯾﻨﺎ ﺷﻔﺮه ﻧﺼﻔﮭﺎ ﺻﺤﯿﺢ‬
‫واﻟﻨﺼﻒ اﻷﺧﺮ ﺧﺎﻃﺌﮫ ‪ ،‬وﻧﻘﻮم ﺑﻌﺪھﺎ ﺑﺘﺠﺮﺑﺔ ﺣﺮﻓﯿﻦ آﺧﺮﯾﻦ ‪ ،‬وھﻨﺎك ﺣﻮاﻟﻲ ‪ 26*26‬اﺣﺘﻤﺎل‬
‫ﯾﺠﺐ اﻟﺒﺤﺚ ﻓﯿﮫ ﺣﺘﻰ ﻧﻄﻠﻊ اﻟﺤﺮﻓﯿﻦ اﻷﺧﯿﺮﯾﻦ ‪ ،‬وھﻮ أﻣﺮ ﺷﺎق وﻣﺘﻌﺐ ﯾﺪ وﯾﺎ ‪ ،‬ﻟﻜﻦ ﺑﺎﺳﺘﺨﺪام‬
‫اﻟﺤﺎﺳﺐ ﻓﺎﻷﻣﺮ ﺳﮭﻞ وﺳﺮﯾﻊ ‪.‬‬

‫إﻟﻰ أن ﻧﺼﻞ أﺧﯿﺮا إﻟﻰ اﻟﻤﻔﺘﺎﺣﯿﻦ اﻟﺼﺤﯿﺤﯿﻦ اﻟﺬﯾﻦ ھﻤﺎ ‪ A,M‬وﻟﺘﻜﻮن ﺟﻤﻠﮫ اﻟﺘﺸﻔﯿﺮ ھﻲ‬
‫‪. SCRAM‬‬

‫اﻵن ﻧﻔﻚ ﺗﺸﻔﯿﺮ اﻟﻨﺺ اﻟﻤﺸﻔﺮ اﻟﺴﺎﺑﻖ ﺑﮭﺬه اﻟﺠﻤﻠﺔ ‪ ، SCRAM‬ﻟﯿﺨﺮج ﻟﺪﯾﻨﺎ‪:‬‬

‫‪41‬‬
‫‪PDF created with pdfFactory Pro trial version www.pdffactory.com‬‬
‫‪THEBE ARWEN TOVER THEMO UNTAI NYEAH THEDO GWENT‬‬
‫‪ROUND THEHY DRANT THECA TINTO THEHI GHEST SPOTH‬‬
‫‪ECOUL DFIND‬‬

‫وﺑﻌﺪ أﻋﺎده ﺗﺮﺗﯿﺒﮭﺎ ﯾﺼﺒﺢ ﻟﺪﯾﻨﺎ اﻟﻨﺺ اﻷﺻﻠﻲ ھﻮ‪:‬‬

‫‪THE BEAR WENT OVER THE MOUNTAIN YEAH THE DOG WENT‬‬
‫‪ROUND THE HYDRANT THE CAT INTO THE HIGH EST SPOT HE‬‬
‫‪COULD FIND‬‬

‫ﻃﺮﻳﻘﻪ ﻓﺠﻴﻨﻴﺮ ﺍﻟﻜﺎﻣﻠﺔ ‪THE FULL VIGENERE CIPHER‬‬

‫ھﻨﺎ ﻓﻲ ھﺬه اﻟﻄﺮﯾﻘﮫ ﺑﻌﺪﻣﺎ أﺧﺘﺎر اﻟﺠﻤﻠﺔ )ﻣﻔﺎﺗﯿﺢ اﻟﺘﺸﻔﯿﺮ( ‪ ،‬ﯾﻜﻮن اﻟﺘﺸﻔﯿﺮ ﻋﻦ ﻃﺮﯾﻖ أﺧﺬ اﻟﺤﺮف‬
‫اﻷول ﻣﻦ اﻟﻨﺺ اﻷﺻﻠﻲ ﻣﻊ اﻟﺤﺮف اﻷول ﻣﻦ ﺟﻤﻠﮫ اﻟﺘﺸﻔﯿﺮ وأﺧﺬ ﻧﻘﻄﮫ اﻟﺘﻘﺎﻃﻊ ﻓﻲ ﺟﺪول‬
‫اﻟﺘﺸﻔﯿﺮ ‪، a tabular recta‬‬

‫واﻟﺠﺪول ﺷﻜﻠﮫ ﻛﻤﺎ ھﻮ واﺿﺢ ﻓﻲ اﻟﺸﻜﻞ اﻟﺘﺎﻟﻲ‪:‬‬

‫اﻵن ﻣﺜﻼ ﻟﺪي اﻟﻨﺺ اﻟﺘﺎﻟﻲ‪:‬‬


‫‪HARKONNEN RULZ‬‬

‫وأرﯾﺪ أن أﺷﻔﺮه ﺑﺎﺳﺘﺨﺪام ھﺬه اﻟﺠﻤﻠﺔ ‪SPICE :‬‬

‫أﻗﻮم ﻓﻲ اﻟﺒﺪاﯾﺔ ﺑﺄﺧﺬ ﻧﻘﻄﮫ اﻟﺘﻘﺎﻃﻊ ﺑﯿﻦ اﻟﺤﺮف اﻷول ﻓﻲ اﻟﻨﺺ اﻷﺻﻠﻲ واﻟﺤﺮف اﻷول ﻓﻲ‬
‫اﻟﺠﻤﻠﺔ ‪.‬‬

‫‪42‬‬
‫‪PDF created with pdfFactory Pro trial version www.pdffactory.com‬‬
‫ﺟﻤﯿﻊ اﻷﻋﻤﺪة ﺗﻤﺜﻞ اﻟﺤﺮوف ﻓﻲ اﻟﻨﺺ اﻷﺻﻠﻲ ‪ ،‬اﻟﺴﻄﻮر ﺗﻤﺜﻞ اﻟﺤﺮوف ﻓﻲ ﺟﻤﻠﮫ اﻟﺘﺸﻔﯿﺮ‪.‬‬
‫ﻧﺒﺪأ ﺑﺄﺧﺬ اﻟﺤﺮف ‪ H‬ﻣﻦ اﻟﻨﺺ ‪ ،‬واﻟﺤﺮف ‪ S‬ﻣﻦ اﻟﺠﻤﻠﺔ‬

‫‪ H‬و ‪ S‬ﯾﺘﻘﺎﻃﻌﺎ ﻓﻲ اﻟﺤﺮف ‪. O‬‬


‫‪ A‬و ‪ P‬ﯾﺘﻘﺎﻃﻌﺎ ﻓﻲ اﻟﺤﺮف ‪. Z‬‬
‫وھﻜﺬا ﺑﺎﻟﻨﺴﺒﺔ ﻟﺒﺎﻗﻲ اﻟﺤﺮوف ﻓﻲ اﻟﻨﺺ اﻷﺻﻠﻲ ‪ ،‬وﻧﻘﻮم ﺑﺘﻜﺮار ﺟﻤﻠﺔ اﻟﺘﺸﻔﯿﺮ ﻓﻲ ﺣﺎل اﻧﺘﮭﺖ ‪.‬‬

‫ﻟﯿﻨﺘﺞ ﻟﺪﯾﻨﺎ اﻟﻨﺺ اﻟﻤﺸﻔﺮ ‪OZTJYJTZGDKPX :‬‬


‫وأﻗﻮم ﺑﻔﺼﻠﮭﻢ ﻛﻞ ﺧﻤﺴﮫ ﺣﺮوف ﻋﻠﻰ ﺣﺪه‪OZTJY JTZGD KPX :‬‬

‫وﻟﻔﻚ اﻟﺘﺸﻔﯿﺮ ‪ ،‬ﻧﻘﻮم ﺑﺎﻟﻌﻤﻠﯿﺔ اﻟﻌﻜﺴﯿﺔ ‪ ،‬وﻓﻲ ھﺬه اﻟﺤﺎﻟﺔ ﺗﻜﻮن اﻷﻋﻤﺪة ھﻲ اﻟﻨﺺ اﻷﺻﻠﻲ ‪،‬‬
‫واﻟﺴﻄﻮر ھﻮ اﻟﻤﻔﺎﺗﯿﺢ )ﻧﻔﺲ ﻃﺮﯾﻘﺔ اﻟﺘﺸﻔﯿﺮ( ‪ ،‬وﻟﻜﻦ ﻟﻜﻲ أﻓﻚ ﺗﺸﻔﯿﺮ ﺣﺮف ﻣﺎ ‪ ،‬أوﻻ أﺧﺬ اﻟﺤﺮف‬
‫اﻷول ﻣﻦ ﺟﻤﻠﮫ اﻟﺘﺸﻔﯿﺮ ‪ ،‬وأﺑﺤﺚ ﻓﻲ اﻟﺴﻄﺮ اﻟﺨﺎص ﺑﺎﻟﺤﺮف اﻷول ﻣﻦ ﺟﻤﻠﺔ اﻟﺘﺸﻔﯿﺮ ﻋﻦ‬
‫اﻟﺤﺮف اﻟﻤﺸﻔﺮ اﻷول ‪ ،‬وﻋﻨﺪﻣﺎ أﺟﺪه ﯾﻜﻮن اﻟﺤﺮف اﻟﻤﻮﺟﻮد ﻓﻲ اﻟﻌﺎﻣﻮد ھﻮ اﻟﺤﺮف اﻷﺻﻠﻲ ‪.‬‬

‫ﻣﺜﺎل ﻟﺘﻮﺿﯿﺢ ﻋﻤﻠﯿﮫ ﻓﻚ اﻟﺘﺸﻔﯿﺮ ‪:‬‬

‫ﻓﻚ ﺗﺸﻔﯿﺮ اﻟﻌﺒﺎرة ‪OZTJY JTZGD KPX :‬‬


‫ﻋﻦ ﻃﺮﯾﻖ اﻟﺠﻤﻠﺔ ‪SPICE :‬‬

‫ﻧﺒﺪأ ﺑﺄﺧﺬ اﻟﺤﺮف اﻷول ﻣﻦ ﺟﻤﻠﺔ اﻟﺘﺸﻔﯿﺮ وھﻮ ‪ ، S‬ﻧﺬھﺐ إﻟﻰ اﻟﺠﺪول ‪ ،‬وﻧﺸﺎھﺪ اﻟﺴﻄﺮ اﻟﺨﺎص‬
‫ﺑﺎﻟﺤﺮف ‪ ، S‬وﻧﺒﺤﺚ ﻋﻦ اﻟﺤﺮف اﻷول ﻣﻦ اﻟﺸﻔﺮة وھﻮ ‪ ، O‬وﻋﻨﺪﻣﺎ ﻧﺠﺪه ﻧﺄﺧﺬ اﻟﺤﺮف اﻷول ﻓﻲ‬
‫ﻧﻔﺲ اﻟﻌﺎﻣﻮد ‪ ،‬وھﻨﺎ ﻓﻲ ھﺬه اﻟﺤﺎﻟﺔ اﻟﺤﺮف اﻷﺻﻠﻲ ھﻮ ‪ . H‬وھﻜﺬا ﻣﻊ ﺑﺎﻗﻲ اﻟﺤﺮوف ‪.‬‬

‫ﺷﻔﺮﻩ ﻓﺠﻴﻨﻴﺮ ﺗﻠﻘﺎﺋﻴﺔ ﺍﻟﻤﻔﺘﺎﺡ ‪THE AUTO-KEY VIGENERE CIPHER‬‬

‫ﺷﻔﺮات ﻓﺠﯿﻨﯿﺮ ﺑﺄﻧﻮاﻋﮭﺎ اﻟﻤﺨﺘﻠﻔﺔ ﻣﺘﺸﺎﺑﮭﺔ ﻓﯿﻤﺎ ﺑﯿﻨﮭﺎ ﺑﺸﻜﻞ ﻛﺒﯿﺮ ‪ ،‬ﻟﻜﻦ ﯾﻮﺟﺪ ﻓﺮق واﺿﺢ ﺑﯿﻦ ﻛﻞ‬
‫ﻧﻮع أﺧﺮ ‪ ،‬ﻓﻲ ﺷﻔﺮه ﻓﺠﯿﻨﯿﺮ ﺗﻠﻘﺎﺋﯿﺔ اﻟﻤﻔﺘﺎح ‪ ،‬اﻟﺘﺸﻔﯿﺮ ﯾﻜﻮن ﺑﻨﻔﺲ اﻟﻄﺮﯾﻘﮫ ‪ ،‬وﺟﻤﻠﮫ اﻟﺘﺸﻔﯿﺮ أﯾﻀﺎ‬
‫‪ ،‬ﻟﻜﻦ ﻓﻲ ﺣﺎل اﻧﺘﮭﺖ ﺟﻤﻠﺔ اﻟﺘﺸﻔﯿﺮ وﺣﺘﻰ ﻧﺘﺠﻨﺐ ﺗﻜﺮر اﻟﻤﻔﺘﺎح ﺑﻌﺪ اﻧﺘﮭﺎﺋﮫ ﻧﻘﻮم ﺑﻮﺿﻊ اﻟﻨﺺ‬
‫اﻷﺻﻠﻲ ‪ ،‬أي أن اﻟﻨﺺ اﻷﺻﻠﻲ ﯾﺪﺧﻞ ﻓﻲ ﻋﻤﻠﯿﮫ اﻟﺘﺸﻔﯿﺮ ‪.‬‬

‫ﻧﺄﺧﺬ ﻣﺜﺎل ﯾﻮﺿﺢ ھﺬا اﻟﻨﻮع ﻣﻦ اﻟﺸﻔﺮات ‪ ،‬أرﯾﺪ أن أﺷﻔﺮ اﻟﻨﺺ اﻟﺘﺎﻟﻲ‪:‬‬
‫‪LIGHT SPEED CHEWIE NOW‬‬

‫ﺑﺎﻟﻤﻔﺘﺎح )ﺟﻤﻠﺔ اﻟﺘﺸﻔﯿﺮ ‪ ،‬اﻟﻤﻔﺎﺗﯿﺢ ‪ ،‬ﻛﻠﮭﺎ ﻧﻔﺲ اﻟﻤﻌﻨﻰ( اﻟﺘﺎﻟﻲ ‪ARGH :‬‬

‫أول ﺧﻄﻮه ﻧﻘﻮم ﺑﮭﺎ ھﻲ ﺗﺸﻔﯿﺮ اﻟﺤﺮف اﻷول ﻓﻲ اﻟﻨﺺ اﻷﺻﻠﻲ ﻣﻊ اﻟﺤﺮف اﻷول ﻓﻲ ﺟﻤﻠﮫ‬
‫اﻟﺘﺸﻔﯿﺮ‬
‫‪L+A=L‬‬
‫‪I+R=Z‬‬
‫‪G+G=M‬‬
‫‪H+H=O‬‬
‫إﻟﻰ ھﻨﺎ ﻧﻼﺣﻆ اﻧﺘﮭﺎء اﻟﻤﻔﺎﺗﯿﺢ ) وﺑﺪل ﻣﻦ إﻋﺎدﺗﮫ ﻣﺮه ﺛﺎﻧﯿﮫ ﻛﻤﺎ ﺣﺪث ﻓﻲ اﻟﻄﺮﯾﻘﺔ اﻟﺴﺎﺑﻘﺔ( ﻧﻘﻮم‬

‫‪43‬‬
‫‪PDF created with pdfFactory Pro trial version www.pdffactory.com‬‬
‫ﺑﺈدﺧﺎل اﻟﻨﺺ اﻷﺻﻠﻲ ﻛﻤﻔﺘﺎح‬
‫اﻟﺤﺮف اﻷول ﻣﻦ اﻟﻨﺺ اﻷﺻﻠﻲ ‪L‬‬
‫‪L + T =E‬‬
‫اﻟﺤﺮف اﻟﺜﺎﻧﻲ ﻣﻦ اﻟﻨﺺ اﻷﺻﻠﻲ ‪I‬‬
‫‪I+S=A‬‬
‫وھﻜﺬا إﻟﻰ أن ﻧﻨﺘﮭﻲ ﻣﻦ ﺗﺸﻔﯿﺮ اﻟﻨﺺ‪.‬‬

‫وﯾﻔﻀﻞ داﺋﻤﺎ ﻛﺘﺎﺑﺔ اﻟﻨﺺ ‪ ،‬واﻟﻤﻔﺘﺎح ‪ ،‬واﻟﻨﺺ اﻟﻤﺸﻔﺮ ‪ ،‬ﺑﮭﺬه اﻟﻄﺮﯾﻘﮫ ﻟﻠﺘﺴﮭﯿﻞ ‪:‬‬

‫وﻟﻔﻚ اﻟﺘﺸﻔﯿﺮ ‪ ،‬ﻧﻘﻮم ﺑﻔﻚ اﻟﺤﺮف اﻷول ﻣﻦ اﻟﻨﺺ اﻟﻤﺸﻔﺮ ﻣﻊ اﻟﻤﻔﺘﺎح اﻷول ‪ ،‬واﻟﺤﺮف اﻟﺜﺎﻧﻲ ﻣﻦ‬
‫اﻟﻨﺺ اﻟﻤﺸﻔﺮ ﻣﻊ اﻟﻤﻔﺘﺎح اﻟﺜﺎﻧﻲ ‪ ...‬وﻧﺴﺘﻤﺮ ھﻜﺬا إﻟﻰ أن ﺗﻨﺘﮭﻲ اﻟﻤﻔﺎﺗﯿﺢ‪.‬‬

‫وﻟﻜﻲ ﻧﻘﻮم ﺑﻔﻚ اﻟﺤﺮف اﻟﻤﺸﻔﺮ اﻟﺘﺎﻟﻲ )ﺑﻌﺪ اﻧﺘﮭﺎء اﻟﻤﻔﺎﺗﯿﺢ( ‪ ،‬ﻧﻘﻮم ﺑﻔﻚ ﺗﺸﻔﯿﺮ اﻟﺤﺮف اﻟﻤﺸﻔﺮ ﻣﻊ‬
‫اﻟﻤﻔﺘﺎح )اﻟﺬي ﯾﻜﻮن ﻋﺒﺎرة ﻋﻦ أول ﺣﺮف أﺻﻠﻲ ﺣﺼﻠﻨﺎ ﻋﻠﯿﮫ ﺑﻌﺪ أول ﻋﻤﻠﯿﮫ ﻓﻚ ﺗﺸﻔﯿﺮ( ‪ .‬أي أن‬
‫اﻟﻤﻔﺘﺎح )ﺑﻌﺪ اﻧﺘﮭﺎء اﻟﻤﻔﺎﺗﯿﺢ( ﯾﻜﻮن ھﻮ اﻟﺤﺮف اﻷﺻﻠﻲ اﻟﺬي ﺣﺼﻨﺎ ﻋﻠﯿﮫ ‪ ،‬وﺑﻌﺪھﺎ ﯾﻜﻮن اﻟﺤﺮف‬
‫اﻷﺻﻠﻲ اﻟﺜﺎﻧﻲ اﻟﺬي ﺣﺼﻨﺎ ﻋﻠﯿﮫ ‪) .‬أي أن اﻟﻨﺺ اﻷﺻﻠﻲ ﯾﻜﻮن ھﻮ اﻟﻤﻔﺘﺎح( ‪.‬‬

‫ﻓﻲ ھﺬا اﻟﻨﻮع ﻣﻦ اﻟﺘﺸﻔﯿﺮ ﯾﺠﺐ أن ﺗﻜﻮن اﻟﻌﻤﻠﯿﺔ دﻗﯿﻘﮫ ‪ ،‬ﻷن أي ﺧﻄﺄ واﺣﺪ ﻓﻲ اﻟﺤﺮوف ﻗﺪ ﯾﻨﺘﺞ‬
‫ﻋﻨﮭﺎ ﺧﻄﺄ ﻓﻲ ﺟﻤﯿﻊ اﻟﺤﺮوف اﻟﺘﺎﻟﯿﺔ ‪ ،‬أﯾﻀﺎ ﻋﻨﺪ إرﺳﺎل رﺳﺎﺋﻞ ﻣﻦ ھﺬا اﻟﻨﻮع ﯾﺠﺐ اﻟﺘﺄﻛﺪ ﻣﻦ ﻋﺪم‬
‫وﺟﻮد أﺧﻄﺎء ﻓﻲ اﻹرﺳﺎل‪.‬‬

‫ﺷﻔﺮﻩ ﻓﺠﻴﻨﻴﺮ ﻃﻮﻳﻠﺔ ﺍﻟﻤﻔﺘﺎﺡ ‪THE Running KEY VIGENERE CIPHER‬‬


‫)اﻟﺘﺮﺟﻤﺔ ﻟﯿﺴﺖ ﺗﺮﺟﻤﺔ ﺣﺮﻓﯿﺔ ﺻﺤﯿﺤﺔ ‪ ،‬وﻟﻜﻨﮭﺎ ﺻﺤﯿﺤﺔ ﺗﻤﺎﻣﺎ ﻓﻲ اﻟﻤﻌﻨﻰ (‬

‫ھﻨﺎ ﻓﻲ ھﺬا اﻟﻨﻮع ﻣﻦ اﻟﺸﻔﺮات ‪ ،‬ﯾﺠﺐ اﺧﺘﯿﺎر ﺟﻤﻠﮫ ﺗﺸﻔﯿﺮ)ﻣﻔﺎﺗﯿﺢ( ﺑﺤﯿﺚ ﺗﻜﻮن أﻃﻮل ﻣﻦ اﻟﻨﺺ‬
‫اﻷﺻﻠﻲ )ﻻﺣﻆ اﺳﻢ اﻟﺸﻔﺮة( ‪ ،‬وأﺧﺬ ھﺬه اﻟﺠﻤﻠﺔ ﻣﻤﻜﻦ ﯾﻜﻮن ﻣﻦ ﻛﺘﺎب ﻣﺎ أو ﻣﺠﻠﮫ أو أي ﻧﺺ‬
‫ﻃﻮﯾﻞ ‪ ،‬ﯾﺠﺐ أﯾﻀﺎ أن ﺗﻜﻮن ﻣﻮﺟﻮدة ﻋﻨﺪ اﻟﻄﺮف اﻷﺧﺮ ‪ ،‬أو اﺧﺘﯿﺎر أي ﺟﻤﻠﮫ ﻟﻠﺘﺸﻔﯿﺮ وإرﺳﺎﻟﮭﺎ‬
‫إﻟﻰ اﻟﻄﺮف اﻷﺧﺮ )اﻟﻤﮭﻢ أن ﺗﻜﻮن ﻃﻮﯾﻠﺔ(‪.‬‬

‫ﻣﺜﺎل ‪ ،‬أرﯾﺪ ﺗﺸﻔﯿﺮ اﻟﻨﺺ اﻟﺘﺎﻟﻲ‪TORA TORA TORA :‬‬

‫ﺑﺠﻤﻠﺔ اﻟﺘﺸﻔﯿﺮ اﻟﺘﺎﻟﯿﺔ ‪:‬‬


‫‪AND GOD SAID LET THERE BE LIGHT‬‬

‫ﻻﺣﻆ اﻟﺠﻤﻠﺔ أﻃﻮل ﻣﻦ اﻟﻤﻔﺘﺎح ‪ ،‬وﻃﺮﯾﻘﮫ اﻟﺘﺸﻔﯿﺮ ﺗﻜﻮن ﻋﺎدﯾﮫ ﻛﻤﺎ ﻛﻨﺎ ﻧﺸﻔﺮ ﻣﻦ ﻗﺒﻞ‪.‬‬

‫اﻟﻨﺘﯿﺠﺔ ﺑﻌﺪ اﻟﺘﺸﻔﯿﺮ‪:‬‬

‫‪44‬‬
‫‪PDF created with pdfFactory Pro trial version www.pdffactory.com‬‬
‫وﻓﻚ اﻟﺘﺸﻔﯿﺮ ھﻮ اﻟﻌﻤﻠﯿﺔ اﻟﻌﻜﺴﯿﺔ ‪ ،‬وﺑﻨﻔﺲ اﻷﺳﻠﻮب ‪.‬‬

‫ﻛﺴﺮ ﺷﻔﺮﺍﺕ ‪AUTO-KEY AND RUNNING KEY VIGENERE CIPHERS‬‬

‫ﺑﺎﻟﺮﻏﻢ ﻣﻦ أﻧﮫ ھﺬه اﻟﻄﺮق أﻗﻮى ﻣﻦ اﻟﻄﺮق اﻟﺴﺎﺑﻘﺔ ‪ ،Monoalphabetic‬ﺣﯿﺚ ﻻ ﺗﻘﻮم ھﺬه‬
‫اﻟﻄﺮق ﺑﺘﻜﺮار اﻟﻤﻔﺘﺎح ﻛﻤﺎ ھﻮ اﻟﺤﺎل ﻣﻊ اﻟﻄﺮق اﻟﺴﺎﺑﻘﺔ ‪ ،‬اﻹ أﻧﮭﺎ ﻣﻌﺮﺿﮫ ﻟﻠﺨﻄﺮ أﯾﻀﺎ ﻣﻦ‬
‫ﻃﺮﯾﻘﮫ اﻟﺘﺤﻠﯿﻞ اﻹﺣﺼﺎﺋﻲ ‪ ،‬وذﻟﻚ ﻧﻈﺮا ﻷن اﻟﻨﺺ اﻷﺻﻠﻲ ﯾﺘﻜﺮر ﺑﺪل ﻣﻦ ﺗﻜﺮار اﻟﻤﻔﺎﺗﯿﺢ)ﻓﻲ‬
‫ﺣﺎﻟﺔ اﻟﺸﻔﺮة ﺗﻠﻘﺎﺋﯿﺔ اﻟﻤﻔﺘﺎح( ‪ ،‬وھﺬا اﻷﻣﺮ ﯾﺸﻜﻞ ﺧﻄﺮا ﻛﺒﯿﺮا‪.‬‬

‫ﺷﻔﺮﺍﺕ ‪PolyGram Substitution Cipher‬‬


‫)ﻓﻲ ﺑﻌﺾ اﻟﻜﺘﺐ ‪ ،‬ﯾﻄﻠﻖ ﻋﻠﯿﮭﺎ ﺑﺎﻟـ ‪( Polygraphic‬‬

‫ﻻﺣﻈﻨﺎ ﻓﻲ اﻟﻄﺮق اﻟﺴﺎﺑﻘﺔ أن أﺧﺬ ﺣﺮف واﺣﺪ وﺗﺸﻔﯿﺮه ﺑﻤﻔﺘﺎح إﻟﻰ ﺣﺮف ﻣﺸﻔﺮ ‪ ،‬ھﻲ ﻃﺮق‬
‫ﺿﻌﯿﻔﺔ وﯾﻤﻜﻦ ﻛﺴﺮھﺎ ﺑﺴﮭﻮﻟﮫ ‪ ،‬ﻟﻜﻦ ھﻨﺎ ﻓﻲ اﻟـ ‪ POLYGRAM‬اﻟﺘﺸﻔﯿﺮ ﺳﻮف ﯾﻜﻮن ﺑﻄﻮل‬
‫ﺑﻠﻮك ‪ ، Block‬أي ﻧﺄﺧﺬ اﻟﺒﻠﻮك اﻷول ﻛﺎﻣﻼ وﻧﺸﻔﺮه ‪ ،‬وﻧﻀﻊ اﻟﺒﻠﻮك اﻟﻤﺸﻔﺮ ‪ .‬ﻃﺒﻌﺎ ﻻ ﯾﺸﺘﺮط‬
‫أن ﯾﻜﻮن ﺑﻠﻮك اﻟﻨﺺ اﻷﺻﻠﻲ ھﻮ ﻧﻔﺲ ﺣﺠﻢ ﺑﻠﻮك اﻟﻨﺺ اﻟﻤﺸﻔﺮ‪.‬‬

‫ﻣﺜﻼ ﻟﺪى ﺧﻮارزﻣﯿﺔ ﺗﺄﺧﺬ ﺑﻠﻮك ﻣﻦ ‪ 8‬أﺣﺮف ‪ ،‬وﺗﻀﻊ ﺑﺪﻟﮫ ﺑﻠﻮك ﻣﺸﻔﺮ ﻣﻦ ‪ 8‬أﺣﺮف ‪ ،‬ﻛﻤﺎ ھﻮ‬
‫ﻣﻮﺿﺢ ﺑﺎﻟﺼﻮرة اﻟﺘﺎﻟﯿﺔ‪:‬‬

‫اذا أردﻧﺎ أن ﻧﻄﺒﻖ ﻃﺮﯾﻘﮫ اﻟـ ‪ ، Brute-Force‬ﺳﻮف ﻧﺤﺘﺎج إﻟﻰ ‪ 26‬أس ‪ 8‬اﺣﺘﻤﺎل ) ‪(8^26‬‬
‫وھﻮ ﻣﺎ ﯾﺴﺎوي ‪26^8 = 208,827,064,576‬‬

‫وھﻮ ﻃﺒﻌﺎ أﻣﺮ ﯾﺄﺧﺬ زﻣﻨﺎ ﻃﻮﯾﻼ وﺣﺠﻢ ﻛﺒﯿﺮ ﺟﺪا ﺟﺪا ﻓﻲ اﻟﺬاﻛﺮة ‪ ،‬ﺑﺎﺧﺘﺼﺎر ﺣﻞ ﻏﯿﺮ ﻋﻤﻠﻲ‪.‬‬

‫وﯾﺘﻀﺢ ھﻨﺎ أن ھﺬه اﻟﺸﻔﺮات أﺻﻌﺐ ﻓﻲ اﻟﻔﻚ ﻣﻦ اﻷﻧﻮاع اﻟﺴﺎﺑﻘﺔ ﺑﻜﺜﯿﺮ ‪ ،‬وﺧﺎﺻﺔ ﻓﻲ ﺣﺎل ﻛﺎن‬
‫ﺣﺠﻢ اﻟﺒﻠﻮك ﻛﺒﯿﺮ ﺑﻤﺎ ﻓﯿﮫ اﻟﻜﻔﺎﯾﺔ ‪ ،‬وأﻏﻠﺐ اﻟﺨﻮارزﻣﯿﺎت اﻟﺤﺪﯾﺜﺔ ﺗﺄﺧﺬ ﺣﺠﻢ ﺑﻠﻮك ﻋﻠﻰ اﻷﻗﻞ ‪8‬‬
‫ﺣﺮف‪ .‬وﻟﻜﻦ ﻓﻲ ﺣﺎﻟﮫ ﻛﺎن ﺣﺠﻢ اﻟﺒﻠﻮك ﺻﻐﯿﺮا ‪ ،‬ﯾﻤﻜﻦ ﻛﺴﺮ ھﺬا اﻟﻨﻮع ﺑﺎﺳﺘﺨﺪام اﻟﺘﺤﻠﯿﻞ اﻟﻤﺘﻜﺮر‬
‫أﯾﻀﺎ‪.‬‬

‫‪45‬‬
‫‪PDF created with pdfFactory Pro trial version www.pdffactory.com‬‬
‫وﻣﻦ أﺷﮭﺮ ﺷﻔﺮات ھﺬا اﻟﻨﻮع ‪Polygraphic‬‬
‫ﺷﻔﺮه ﺑﻼﻓﯿﺮ ‪Playfair‬‬
‫ﺷﻔﺮه ھﯿﻞ ‪Hill Cipher‬‬
‫أﺳﻄ ﻮاﻧﺔ ﺟﯿﻔﯿﺮﺳﻮن ‪ ، Jifferson Cylinder‬وﺑﻌﺾ اﻷﺣﯿﺎن ﺗﺴﻤﻰ ‪THE BAZERIES‬‬
‫‪. CYLINDER‬‬

‫ﺷﻔﺮﻩ ﺑﻼﻓﻴﺮ ‪THE PLAYFAIR CIPHER‬‬

‫ھﺬه اﻟﺸﻔﺮة ﺗﺄﺧﺬ ﺑﻠﻮك ‪ Block‬ﻣﻜﻮن ﻣﻦ ﺣﺮﻓﯿﻦ ‪ ،‬واﻟﺸﻔﺮة اﻟﻨﺎﺗﺠﺔ ﺗﻜﻮن أﯾﻀﺎ ﻣﻦ ﺣﺮﻓﯿﻦ ‪،‬‬
‫وﻃﺮﯾﻘﺘﮭﺎ ﺗﻜﻮن ﺑﻌﻤﻞ ﻣﺼﻔﻮﻓﺔ ﻣﻦ ‪ 25‬ﺧﺎﻧﮫ )‪ ، (5 *5‬ﻧﻀﻊ ﻓﻲ ﻛﻞ ﺧﺎﻧﮫ ﺣﺮف أﺑﺠﺪي ‪ A‬و ‪B‬‬
‫وھﻜﺬا ‪ ،‬وﺑﻤﺎ أن ﻋﺪد اﻟﺤﺮوف اﻷﺑﺠﺪﯾﺔ )ﻓﻲ اﻟﻠﻐﺔ اﻹﻧﺠﻠﯿﺰﯾﺔ( ﯾﺴﺎوي ‪ ، 26‬اذا ھﻨﺎك ﺣﺮف ﻟﯿﺲ‬
‫ﻟﮫ ﻣﻜﺎن ‪ ،‬ﻟﺬﻟﻚ ھﺬه اﻟﺸﻔﺮة ﺗﻀﻊ اﻟﺤﺮﻓﯿﻦ ‪ I,J‬ﻣﻊ ﺑﻌﺾ ﻓﻲ ﺧﺎﻧﮫ واﺣﺪه داﺋﻤﺎ‪.‬‬

‫اﻟﻤﺼﻔﻮﻓﺔ ذات ﺑﻌﺪﯾﻦ ‪ ، 5*5 ،‬واﻟﺼﻮرة اﻟﺘﺎﻟﯿﺔ ﺗﻮﺿﺢ ﺷﻜﻞ اﻟﻤﺼﻔﻮﻓﺔ‪:‬‬

‫وﻋﺎده ﯾﻜﺘﺐ ﻓﻲ ھﺬه اﻟﻤﺼﻔﻮﻓﺔ اﻟﺤﺮوف اﻟﺘﻲ ﺗﻤﺜﻞ ﺟﻤﻠﺔ اﻟﺘﺸﻔﯿﺮ )ﻣﻔﺎﺗﯿﺢ اﻟﺘﺸﻔﯿﺮ( ‪ ،‬ﻣﺜﻼ ﻟﺪي‬
‫ﺟﻤﻠﮫ اﻟﺘﺸﻔﯿﺮ اﻟﺘﺎﻟﯿﺔ‪:‬‬
‫‪The quick brown fox jumped over the lazy dogs‬‬

‫أﻗﻮم ﺑﻌﻤﻞ اﻟﻤﺼﻔﻮﻓﺔ ‪ 5 *5‬وأﻗﻮم ﺑﺘﻌﺒﺌﺔ اﻟﺨﺎﻧﺔ اﻷوﻟﻰ ﺑﺎﻟﺤﺮف اﻷول ﻣﻦ ﺟﻤﻠﺔ اﻟﺘﺸﻔﯿﺮ ‪T‬‬
‫واﻟﺨﺎﻧﺔ اﻟﺜﺎﻧﯿﺔ ﺑﺎﻟﺤﺮف اﻟﺜﺎﻧﻲ ﻧﻢ ﺟﻤﻠﺔ اﻟﺘﺸﻔﯿﺮ ‪ H‬وھﻜﺬا ‪ ) ،‬وﯾﺸﺘﺮط( ﻋﺪم ﺗﻜﺮار اﻟﺤﺮف اﻟﺬي‬
‫ﻇﮭﺮ ‪ ،‬أﯾﻀﺎ ﻓﻲ ﺣﺎل اﻧﺘﮭﺖ ﺟﻤﻠﮫ اﻟﺘﺸﻔﯿﺮ ﻧﻜﻤﻞ اﻟﺨﺎﻧﺎت اﻟﺒﺎﻗﯿﺔ ﺑﺒﺎﻗﻲ اﻟﺤﺮوف ﻏﯿﺮ ﻣﻮﺟﻮدة ﻓﻲ‬
‫اﻟﻤﺼﻔﻮﻓﺔ‪.‬‬

‫‪46‬‬
‫‪PDF created with pdfFactory Pro trial version www.pdffactory.com‬‬
‫أﯾﻀﺎ ﺷﻜﻞ اﻟﻤﺼﻔﻮﻓﺔ اﻟﺘﺎﻟﯿﺔ ‪ ،‬ﯾﻜﻮن ﺑﻌﺪ ﺗﻌﺒﺌﺘﮭﺎ ﺑﺠﻤﻠﮫ اﻟﺘﺸﻔﯿﺮ‪:‬‬
‫‪Since by man came death‬‬

‫ﻃﺮﯾﻘﺔ اﻟﺘﺸﻔﯿﺮ ‪ ،‬ﻛﺎﻟﺘﺎﻟﻲ ‪:‬‬

‫أﻗﻮم أوﻻ ﺑﺘﻘﺴﯿﻢ اﻟﻨﺺ اﻷﺻﻠﻲ إﻟﻰ ﻣﺠﻤﻮﻋﮫ ﻣﻦ اﻟﺒﻠﻮﻛﺎت ‪ Blocks‬ﻛﻞ ﺑﻠﻮك ﻣﻦ ﺣﺮﻓﯿﻦ ‪ .‬ﻟﻨﻄﻠﻖ‬
‫ﻋﻠﻰ اﻟﺤﺮﻓﯿﻦ ‪A,B‬‬

‫ﻗﺒﻞ أن ﻧﺒﺪأ ﻓﻲ اﻟﻨﻈﺮ إﻟﻰ اﻟﻤﺼﻔﻮﻓﺔ وﺑﺪء اﻟﺘﺸﻔﯿﺮ ‪ ،‬ﻧﻨﻈﺮ إﻟﻰ اﻟﻨﺺ اﻷﺻﻠﻲ وﺑﺎﻟﺘﺤﺪﯾﺪ إﻟﻰ ﻛﻞ‬
‫ﺑﻠﻮك ﻣﻜﻮن ﻣﻦ ﺣﺮﻓﯿﻦ ‪ ،‬وﻧﺮى ھﻞ اﻟﺤﺮﻓﯿﻦ ﻣﺘﺸﺎﺑﮭﺎن ‪ ،‬اذا ﻛﺎن ﻛﺬﻟﻚ ﻧﻔﺼﻞ ﺑﯿﻨﮭﻤﺎ ﺑﺎﻟﺤﺮف‬
‫‪.X‬‬
‫أﯾﻀﺎ ﻓﻲ ﺣﺎل ﻛﺎن ﻧﮭﺎﯾﺔ اﻟﻨﺺ اﻷﺻﻠﻲ ﺑﻠﻮك ﻣﻦ ﺣﺮف واﺣﺪ ‪ ،‬ﻧﻀﯿﻒ ﻟﮫ اﻟﺤﺮف ‪. X‬‬

‫اﻵن ﻟﺒﺪء اﻟﺘﺸﻔﯿﺮ ﻧﻨﻈﺮ إﻟﻰ اﻟﺠﺪول‪:‬‬


‫ﻓﻲ ﺣﺎل ﻛﺎن ‪ A‬و ‪ B‬ﻛﻞ ﻣﻨﮭﻤﺎ ﻓﻲ ﻋﻤﻮد ﻣﺨﺘﻠﻒ ‪ ،‬ﻧﺄﺧﺬ اﻟﻤﺮﺑﻊ اﻟﺬي ﯾﻤﺜﻞ ﺗﻘﺎﻃﻌﮭﻤﺎ )اﻟﺤﺮﻓﯿﻦ‬
‫اﻟﺬي ﯾﻤﺜﻼن ﻧﻘﻄﮫ ﺗﻘﺎﻃﻊ اﻟﺼﻒ ﻣﻊ اﻟﻌﻤﻮد (‪.‬‬
‫ﻓﻲ ﺣﺎل ﻛﺎن ‪ A‬و ‪ B‬ﻓﻲ ﻧﻔﺲ اﻟﻌﻤﻮد ‪ ،‬ﺗﺸﻔﯿﺮ ‪ A‬ھﻮ اﻟﺤﺮف أﺳﻔﻠﮫ ‪ ،‬ﺗﺸﻔﯿﺮ ‪ B‬ھﻮ اﻟﺤﺮف اﻟﺬي‬
‫ﯾﻜﻮن أﺳﻔﻠﮫ )ﻣﻤﻜﻦ ﻋﻤﻞ دوره أي اﻟﺒﺪء ﻣﻦ ﺑﺪاﯾﺔ اﻟﻌﻤﻮد ﻓﻲ ﺣﺎل ﻛﺎن اﻟﺤﺮف ھﻮ اﻷﺧﯿﺮ ‪Wrap‬‬
‫‪.‬‬
‫ﻓﻲ ﺣﺎل ﻛﺎن ‪ A‬و ‪ B‬ﻓﻲ ﻧﻔﺲ اﻟﺼﻒ ‪ ،‬ﺗﺸﻔﯿﺮ ‪ A‬ھﻮ اﻟﺤﺮف ﻋﻠﻰ ﯾﻤﯿﻨﮫ وﺗﺸﻔﯿﺮ ‪ B‬ھﻮ اﻟﺤﺮف‬
‫اﻟﺬي ﻋﻠﻰ ﯾﻤﯿﻨﮫ ‪ .‬ﯾﻤﻜﻦ ﻋﻤﻞ دوره ‪) Wrapping‬اذا ﻟﺰم اﻷﻣﺮ(‪.‬‬

‫ﻣﺜﺎل ‪ ،‬ﻟﺪﯾﻨﺎ اﻟﻤﺼﻔﻮﻓﺔ اﻟﺘﺎﻟﯿﺔ )ﻣﻌﺒﺌﺔ ﺑﺠﻤﻠﺔ اﻟﺘﺸﻔﯿﺮ (‪:‬‬

‫ﻗﻢ ﺑﺘﺸﻔﯿﺮ اﻟﻨﺺ اﻟﺘﺎﻟﻲ ﺑﺎﺳﺘﺨﺪاﻣﮭﺎ‪:‬‬


‫‪AMBASSADOR SHOT‬‬

‫اﻟﺤﻞ ‪:‬‬

‫‪47‬‬
‫‪PDF created with pdfFactory Pro trial version www.pdffactory.com‬‬
‫اﻵن ﻛﻤﺎ ذﻛﺮﻧﺎ أول ﺧﻄﻮه ھﻲ ﺗﻘﺴﯿﻢ اﻟﻨﺺ إﻟﻰ ﺑﻠﻮك ﯾﺘﻜﻮن ﻣﻦ ﺣﺮﻓﯿﻦ‪.‬‬
‫‪AM BA SS AD OR SH OT‬‬

‫اﻟﺨﻄﻮة اﻟﺜﺎﻧﯿﺔ ‪ ،‬ﻣﻼﺣﻈﮫ ھﻞ ھﻨﺎك ﺑﻠﻮك ﻣﻦ ﺣﺮﻓﯿﻦ ﻣﺘﺸﺎﺑﮭﯿﻦ ‪ ،‬ھﻨﺎ ﻧﻼﺣﻆ أن ھﻨﺎك ﺑﻠﻮك ﻓﯿﮫ‬
‫ﺣﺮﻓﺎن ﻣﺘﺸﺎﺑﮭﺎن ﻟﺬﻟﻚ ﻧﻀﯿﻒ ‪ X‬ﺑﯿﻨﮭﻤﺎ وھﻮ اﻟﺒﻠﻮك اﻟﺜﺎﻟﺚ ‪ ، SS‬ﻟﯿﺼﺒﺢ ﻟﺪﯾﻨﺎ ﺑﻌﺪ إﺿﺎﻓﺔ ‪: X‬‬
‫‪AM BA SX SA DO RS HO T‬‬

‫ﻻﺣﻆ أﺧﺮ ﺣﺮف وﺣﯿﺪ ‪ ،‬ﻟﺬﻟﻚ ﻧﻀﯿﻒ اﻟﺤﺮف ‪ X‬ﻓﻲ اﻷﺧﺮ ‪ ،‬ﻟﯿﺼﺒﺢ اﻟﻨﺺ اﻷﺻﻠﻲ‪:‬‬
‫‪AM BA SX SA DO RS HO TX‬‬

‫ﻧﺄﺧﺬ اﻟﺒﻠﻮك اﻷول ‪ ،‬وﻧﺒﺪأ ﻓﻲ اﻟﻨﻈﺮ إﻟﻰ اﻟﺠﺪول ‪ ،‬اﻟﺤﺮف ‪ A‬ﻓﻲ ﻧﻔﺲ ﺻﻒ اﻟﺤﺮف ‪ ، M‬اذا‬
‫ﻧﻨﺘﻘﻞ ﺧﻄﻮه ﻟﻠﯿﻤﯿﻦ ﻟﻜﻞ ﺣﺮف ﻓﻲ اﻟﺒﻠﻮك اﻷول ‪.‬‬
‫اذا ﺗﺸﻔﯿﺮ ‪ A‬ھﻮ ‪ ، M‬وﺗﺸﻔﯿﺮ ‪ M‬ھﻮ ‪. N‬‬

‫ﻧﺄﺧﺬ اﻟﺒﻠﻮك اﻟﺜﺎﻧﻲ ‪ ،‬وﻧﻨﻈﺮ ﻓﻲ اﻟﺠﺪول ‪ ،‬اﻟﺤﺮف ‪ B‬ﻓﻲ ﻧﻔﺲ ﻋﺎﻣﻮد اﻟﺤﺮف ‪ ، A‬اذا ﻧﻨﺘﻘﻞ‬
‫ﺧﻄﻮه ﻟﻸﺳﻔﻞ ﻟﻜﻞ ﺣﺮف ﻓﻲ اﻟﺒﻠﻮك اﻟﺜﺎﻧﻲ ‪.‬‬
‫اذا ﺗﺸﻔﯿﺮ ‪ B‬ھﻮ ‪ ، U‬وﺗﺸﻔﯿﺮ ‪ A‬ھﻮ ‪. D‬‬

‫ﻧﺄﺧﺬ اﻟﺒﻠﻮك اﻟﺜﺎﻟﺚ ‪ ،‬وﻧﻨﻈﺮ إﻟﻰ اﻟﺠﺪول ‪ S ،‬و ‪ X‬ﻣﺨﺘﻠﻔﺎن ﻓﻲ اﻟﻤﻮاﻗﻊ ‪،‬‬

‫ﺗﺸﻔﯿﺮ ‪ S‬ھﻮ اﻟﺤﺮف اﻟﺬي ﯾﻜﻮن ﻓﻲ ﻧﻔﺲ ﻋﻤﻮد ‪ S‬وﺻﻒ ‪ X‬وھﻮ ‪Q‬‬
‫ﺗﺸﻔﯿﺮ ‪ X‬ھﻮ اﻟﺤﺮف اﻟﺬي ﺳﯿﻜﻮن ﻓﻲ ﻧﻔﺲ ﻋﻤﻮد ‪ X‬وﺻﻒ ‪ X‬وھﻮ ‪. N‬‬

‫وﺑﺎﻗﻲ اﻟﺒﻠﻮك ﺗﺘﺸﻔﺮ ﺑﻨﻔﺲ اﻟﻄﺮﯾﻘﮫ‪.‬‬

‫اﻟﻨﺘﯿﺠﺔ اﻟﻨﮭﺎﺋﯿﺔ ھﻲ‪:‬‬


‫‪MN UD QN AM BA MP ID FE‬‬

‫وﻟﻔﻚ اﻟﺘﺸﻔﯿﺮ ‪ ،‬اﻟﻌﻤﻠﯿﺔ اﻟﻌﻜﺴﯿﺔ ‪ ،‬وﻟﻜﻦ ﻓﻲ اﻟﺘﺸﻔﯿﺮ ﯾﺠﺐ اﻟﺬھﺎب إﻟﻰ اﻟﺨﺎﻧﺔ اﻟﺴﻔﻠﻲ ﻓﻲ ﺣﺎﻟﺔ ﻛﺎن‬
‫اﻟﺤﺮﻓﯿﻦ ﻓﻲ ﻧﻔﺲ اﻟﻌﺎﻣﻮد وﯾﺠﺐ اﻟﺬھﺎب إﻟﻰ اﻟﺨﺎﻧﺔ اﻟﯿﻤﻨﻰ ﻓﻲ ﺣﺎل ﻛﺎن اﻟﺤﺮﻓﯿﻦ ﻓﻲ ﻧﻔﺲ اﻟﺼﻒ‬
‫‪ ،‬ھﻨﺎ ﻟﻔﻚ اﻟﺘﺸﻔﯿﺮ ﯾﺤﺪث اﻟﻌﻜﺲ ‪،‬‬
‫ﺗﺼﺒﺢ اﻟﺬھﺎب إﻟﻰ اﻟﺨﺎﻧﺔ اﻷﻋﻠﻰ ﻓﻲ ﺣﺎل ﻛﺎن اﻟﺤﺮﻓﯿﻦ ﻓﻲ ﻧﻔﺲ اﻟﻌﺎﻣﻮد ‪ ،‬واﻟﺬھﺎب إﻟﻰ اﻟﺨﺎﻧﺔ‬
‫اﻟﯿﺴﺮى ﻓﻲ ﺣﺎﻟﺔ اﻟﺤﺮﻓﯿﻦ ﻓﻲ ﻧﻔﺲ اﻟﺼﻒ ‪.‬‬

‫ﻧﺠﺮب ﻓﻚ ‪ MN‬ﻓﻲ ﻧﻔﺲ اﻟﺠﺪول اﻟﺴﺎﺑﻖ ‪:‬‬


‫‪ M‬ﺗﺮﺟﻊ ﺧﻄﻮه ﻟﻠﻮراء وﺗﺼﺒﺢ ‪A‬‬
‫‪ N‬ﺗﺮﺟﻊ ﺧﻄﻮه ﻟﻠﻮراء وﺗﺼﺒﺢ ‪. M‬‬

‫ﺷﻔﺮﻩ ﻫﻴﻞ ‪Hill Cipher‬‬

‫ﺗﻌﺘﺒﺮ ﺷﻔﺮه ھﯿﻞ ھﻲ أول ﺷﻔﺮه ﺗﺘﻌﺎﻣﻞ ﻓﯿﮭﺎ ﻣﻊ ‪ 3‬ﺣﺮوف ﻓﻲ ﻧﻔﺲ اﻟﻮﻗﺖ ‪ ،‬وﺳﻤﯿﺖ ﺑﮭﺬا اﻻﺳﻢ‬
‫ﻧﺴﺒﮫ إﻟﻰ ﻣﺨﺘﺮﻋﮭﺎ ‪ ، Lester S Hill‬وھﻲ ﺗﻌﺘﻤﺪ ﻓﻲ ﻋﻤﻠﮭﺎ ﻋﻠﻰ اﻟﺠﺒﺮ اﻟﺨﻄﻲ ‪ .‬وﻟﻜﻲ ﺗﺴﺘﻄﯿﻊ‬

‫‪48‬‬
‫‪PDF created with pdfFactory Pro trial version www.pdffactory.com‬‬
‫اﻟﺘﺸﻔﯿﺮ ﺑﮭﺎ ﯾﺠﺐ أن ﯾﻜﻮن ﻟﺪﯾﻚ أﺳﺎﺳﯿﺎت اﻟﺘﻌﺎﻣﻞ ﻣﻊ اﻟﻤﺼﻔﻮﻓﺎت ) ﺿﺮب اﻟﻤﺼﻔﻮﻓﺎت‬
‫ﺑﺎﻟﺬات ( ‪.‬‬

‫ﻗﺒﻞ أن ﻧﺒﺪأ ﺑﺎﻟﺘﺸﻔﯿﺮ ‪ ،‬ﯾﺠﺐ أن ﯾﻜﻮن ﺟﺪول اﻟﺤﺮف ﻗﺮﯾﺐ ﻟﺪﯾﻚ‪.‬‬

‫ﻋﻠﯿﻨﺎ أوﻻ اﺧﺘﯿﺎر اﻟﻤﻔﺘﺎح ‪ ،‬ﻣﺜﻼ ﻛﺎن ﻣﻜﻮن ﻣﻦ ﺗﺴﻌﮫ ﺣﺮوف ‪ ،‬ﺳﻮف ﺗﻜﻮن اﻟﻤﺼﻔﻮﻓﺔ )اﻟﺨﺎﺻﺔ‬
‫ﺑﺎﻟﻤﻔﺎﺗﯿﺢ( ‪ ، 3*3‬أي ﺛﻼﺛﺔ ﺻﻔﻮﻓﮫ وﺛﻼﺛﺔ أﻋﻤﺪه‪.‬‬

‫ﻣﺜﻼ ‪ ،‬ﻟﺪي ﺟﻤﻠﮫ اﻟﺘﺸﻔﯿﺮ اﻟﺘﺎﻟﯿﺔ ‪GYBNQKURP :‬‬


‫ﺑﻌﺪ أﻋﻄﺎء ﻛﻞ ﺣﺮف ﻗﯿﻤﺘﮫ ‪ ،‬ﻧﻘﻮم ﺑﻮﺿﻌﮫ داﺧﻞ اﻟﻤﺼﻔﻮﻓﺔ ﻋﻠﻰ ﺷﻜﻞ ‪ ، 3*3‬وﺗﻜﻮن ﺷﻜﻞ‬
‫اﻟﻤﺼﻔﻮﻓﺔ ﻛﺎﻟﺘﺎﻟﻲ ‪:‬‬

‫وﻟﯿﻜﻦ اﻟﻨﺺ اﻷﺻﻠﻲ ھﻮ‪ ، ACT :‬وﻓﻲ ﺣﺎل ﻛﺎن أﻛﺒﺮ ﻣﻦ ذﻟﻚ ﯾﺘﻢ ﺗﻘﺴﯿﻤﮫ إﻟﻰ ﺑﻠﻮﻛﺎت ‪ ،‬ﻛﻞ‬
‫واﺣﺪ ﯾﺘﻜﻮن ﻣﻦ ﺛﻼﺛﺔ ﺣﺮوف ‪.‬‬

‫ﻧﻘﻮم ﺑﻮﺿﻊ اﻟﻨﺺ اﻷﺻﻠﻲ داﺧﻞ ﻣﺼﻔﻮﻓﺔ ‪:3*1‬‬

‫اﻵن ﻧﻘﻮم ﺑﻌﻤﻠﯿﮫ ﺿﺮب اﻟﻤﺼﻔﻮﻓﺘﯿﻦ ‪ ،‬ﻧﻀﺮب اﻟﺼﻒ اﻷول ﻓﻲ اﻟﻤﺼﻔﻮﻓﺔ اﻷوﻟﻰ ﺑﺎﻟﻌﻤﻮد ﻓﻲ‬
‫اﻟﻤﺼﻔﻮﻓﺔ اﻟﺜﺎﻧﯿﺔ ﻧﻀﻊ اﻟﻨﺎﺗﺞ ﻓﻲ اﻟﻤﺼﻔﻮﻓﺔ اﻟﺠﺪﯾﺪة ‪ .‬وھﻜﺬا ﻟﺒﺎﻗﻲ اﻟﺼﻔﻮف ﻧﻘﻮم ﺑﻀﺮﺑﮭﺎ‬
‫ﺑﺎﻟﻌﻤﻮد‪ .‬وﻧﺄﺧﺬ اﻟﻨﺎﺗﺞ ﺑﻌﻤﻠﯿﮫ ﺑﺎﻗﻲ اﻟﻘﺴﻤﺔ ‪. MOD 26‬‬

‫اذا اﻟﻨﺎﺗﺞ ﻣﻦ ھﺬا اﻟﻨﺺ ﺑﻌﺪ ﺗﺤﻮﯾﻞ ھﺬه اﻷرﻗﺎم إﻟﻰ ﺣﺮوف )ﺑﻤﺴﺎﻋﺪه ﺟﺪول اﻟﺤﺮوف( ‪ ،‬أي‬
‫اﻟﻨﺺ اﻟﻤﺸﻔﺮ ھﻮ‪POH :‬‬

‫وﻟﻔﻚ اﻟﺘﺸﻔﯿﺮ ‪ ،‬ﻛﻞ ﻣﺎ ﻋﻠﯿﻚ ھﻮ إﯾﺠﺎد ﻣﻌﻜﻮس اﻟﻤﺼﻔﻮﻓﺔ ‪ ،‬وﺗﻘﻮم ﺑﻀﺮﺑﮫ ﻓﻲ اﻟﻨﺺ اﻟﻤﺸﻔﺮ ﻣﻊ‬
‫أﺧﺬ ﺑﺎﻗﻲ اﻟﻘﺴﻤﺔ ﻋﻠﻰ ‪ ، 26‬ﻛﻤﺎ ھﻮ ﻣﻮﺿﺢ ﺑﺎﻟﺼﻮرة‪:‬‬

‫‪49‬‬
‫‪PDF created with pdfFactory Pro trial version www.pdffactory.com‬‬
‫ھﻨﺎك ﻓﻲ اﻟﺤﻘﯿﻘﺔ أﻧﻮاع ﻛﺜﯿﺮة ﻣﻦ ھﺬه اﻟﺸﻔﺮات ‪ ،‬ﻣﻨﮭﺎ ‪ ، 3-Hill Cipher‬وﻓﻲ ھﺬه اﻟﺤﺎﻟﺔ‬
‫اﻟﻤﺼﻔﻮﻓﺔ ﯾﺠﺐ أن ﺗﻜﻮن ﻣﻦ ‪ 3*3‬وھﻮ اﻟﺬي ﺗﺤﺪﺛﻨﺎ ﻋﻨﮫ ﻣﻦ ﻗﻠﯿﻞ‪ ،‬وﻓﻲ ﺣﺎل اﻟﻨﻮع ‪2-Hill‬‬
‫‪ Cipher‬ﯾﺠﺐ أن ﺗﻜﻮن ﻣﻦ ‪ ، 2*2‬وﺑﺸﻜﻞ ﻋﺎم اذا ﻛﺎن ﻟﺪﯾﻨﺎ ﺷﻔﺮه ﻣﻦ ‪ n-Hill Cipher‬ﻓﺄﻧﮫ‬
‫ﺳﻮف ﯾﻜﻮن ﻟﺪﯾﻨﺎ ﻣﺼﻔﻮﻓﺔ ﻣﻦ ‪. n*n‬‬

‫ﻣﺜﺎل ﻋﻠﻰ ‪ ، 2-Hill Cipher‬وھﻨﺎ ﺳﻮف ﻟﺪﯾﻨﺎ ﻣﺼﻔﻮﻓﺔ ﻣﻜﻮﻧﮫ ﻣﻦ ‪ ، 2*2‬ﺗﺤﺘﻮي ﻋﻠﻰ ﺣﺮوف‬
‫اﻟﻠﻐﺔ ‪ 26‬ﺣﺮف ‪.‬‬
‫وﻟﻜﻲ ﻧﺴﺘﺨﺮج "ﻣﻌﻜﻮس اﻟﻤﺼﻔﻮﻓﺔ" اﻟﺼﺤﯿﺢ ﻋﻨﺪ اﻟﻔﻚ ‪ ،‬ﯾﺠﺐ أن ﺗﻜﻮن ‪ Determinant‬ھﺬه‬
‫اﻟﻤﺼﻔﻮﻓﺔ أوﻟﻲ ﻣﻊ اﻟﻌﺪد ‪ ، 26‬أي أن اﻟﻘﺎﺳﻢ اﻟﻤﺸﺘﺮك اﻷﻛﺒﺮ ل ‪ Determinant‬و ‪ 26‬ﯾﺴﺎوي‬
‫‪.1‬‬
‫اﻟﺼﻮره اﻟﺘﺎﻟﯿﺔ ﺗﻮﺿﺢ ﻛﯿﻔﯿﮫ اﻟﺘﺸﻔﯿﺮ وﻓﻚ اﻟﺘﺸﻔﯿﺮ ‪:‬‬

‫اﻵن اﻟﺴﺆال ھﻮ ﻛﯿﻒ ﯾﺘﻢ إﯾﺠﺎد ﻣﻌﻜﻮس اﻟﻤﺼﻔﻮﻓﺔ ؟‬


‫ھﻨﺎك اﻟﻜﺜﯿﺮ ﻣﻦ اﻟﻄﺮق ﻹﯾﺠﺎد اﻟﻤﻌﻜﻮس ‪ ،‬ﻣﻨﮭﺎ اﻟﺒﺴﯿﻂ ‪ ،‬وﻣﻨﮭﺎ اﻟﻤﺘﻮﺳﻂ ‪ ،‬وﺳﻮف ﻧﺴﺘﻌﺮض‬
‫أﺳﮭﻞ ﻃﺮﯾﻘﺔ ﻹﯾﺠﺎد ﻣﻌﻜﻮس ﻣﺼﻔﻮﻓﺔ ﻣﻦ ﻧﻮع ‪ . 2*2‬اﻟﺼﻮره اﻟﺘﺎﻟﯿﺔ ﺗﻮﺿﯿﺢ ﻛﯿﻔﯿﮫ إﯾﺠﺎده ‪:‬‬

‫‪50‬‬
‫‪PDF created with pdfFactory Pro trial version www.pdffactory.com‬‬
Determinant of a matrix A, denoted by det A :
-- if A(aij) is 2×2, then det A =a11a22 – a12a21
-- if A(aij) is 3×3, then det A =
a11a22a33 + a12a23a31 + a13a21a32 - a13a22a31 - a12a21a33 -
a11a23a32

‫ ( ﯾﺠﺐ أن ﯾﺘﻮﻓﺮ ﻟﺪﯾﻨﺎ ﻣﻌﻜﻮس ﻣﺎ ﺑﺤﯿﺚ ﺣﺎﺻﻞ ﺿﺮب ھﺬا‬d ‫ )ﻣﻌﻜﻮس‬d^-1 ‫اﻵن ﻹﯾﺠﺎد‬
. 1 ‫ ﻟﯿﻜﻮن اﻟﺒﺎﻗﻲ‬26 mod ‫ ﻣﻊ أﺧﺬ اﻟﻨﺎﺗﺞ‬d ‫اﻟﻤﻌﻜﻮس ﻣﻊ ال‬

d * d` = 1 (mod 26)

: 26 ‫ إﻟﻰ‬2 ‫وھﺬه اﻟﺼﻮره ﺗﺒﯿﻦ ﻣﻌﻜﻮس اﻷﻋﺪاد "اﻷوﻟﯿﺔ" ﻣﻦ‬

: ‫ﻣﺜﺎل ﻟﻠﺘﺸﻔﯿﺮ وﻓﻚ اﻟﺘﺸﻔﯿﺮ‬

51
PDF created with pdfFactory Pro trial version www.pdffactory.com
‫ﻧﺄﺧﺬ ﻣﺜﺎل ﺷﺎﻣﻞ ﻟﻠﺘﺸﻔﯿﺮ وﻓﻚ اﻟﺘﺸﻔﯿﺮ ﺑﮭﺬه اﻟﻄﺮﯾﻘﮫ ‪:‬‬

‫ﻟﺪﯾﻨﺎ اﻟﻨﺺ اﻟﺘﺎﻟﻲ ‪THE PROFESSOR IS EVIL :‬‬


‫وﻧﺮﯾﺪ ﺗﺸﻔﯿﺮه ﻣﻦ اﻟﺒﺮوﻓﯿﺴﻮر ‪. J‬‬

‫اﻵن أوﻻ ﻧﺨﺘﺎر اﻟﻨﻮع اﻟﺬي ﻧﺮﯾﺪ ﻧﻢ ﺷﻔﺮه ‪ hill‬ھﻞ ھﻮ ‪ ، 2‬أو ‪ 3‬أو ‪. 4‬‬

‫وﻧﺨﺘﺎر ‪ ، 2-Hill Cipher‬ﻷﻧﮫ اﻟﻨﻮع اﻷﺳﮭﻞ ‪.‬‬

‫اﻵن ﻧﻘﻮم ﻓﻲ اﻟﺒﺪاﯾﺔ ﺑﺘﻘﺴﯿﻢ اﻟﻨﺺ اﻷﺻﻠﻲ إﻟﻰ ﻣﺠﻤﻮﻋﺎت ‪ Block‬ﻛﻞ واﺣﺪ ﻣﻨﮭﺎ ﻣﻜﻮن ﻣﻦ‬
‫ﺣﺮﻓﯿﻦ ) ﻷﻧﻨﺎ اﺧﺘﺮﻧﺎ ‪ ،2-Hill Cipher‬ﻓﻲ ﺣﺎﻟﮫ اﺧﺘﺮﻧﺎ ‪ n‬ﺳﻮف ﻧﻘﺴﻢ اﻟﺤﺮوف ﻓﻲ اﻟﻨﺺ‬
‫اﻷﺻﻠﻲ إﻟﻰ ‪ n‬ﺣﺮف ( ‪.‬‬

‫)ﻻﺣﻆ أﻧﻨﺎ ﺳﻨﻌﺘﻤﺪ ھﻨﺎ أن اﻟﺤﺮف اﻷول ‪ A‬ﺗﻜﻮن ﻗﯿﻤﺘﮫ ‪ 1‬وﻟﯿﺲ ‪ ، 0‬ﻛﻤﺎ ﻛﻨﺎ ﻧﺸﻔﺮ ﻓﻲ اﻟﺸﻔﺮات‬
‫اﻟﺴﺎﺑﻘﺔ ‪ ،‬ﻃﺒﻌﺎ ﯾﻤﻜﻨﻚ أﺗﺒﺎع اﻷﺳﻠﻮب اﻟﻘﺪﯾﻢ وھﻮ اﻟﺤﺮف ‪ A‬ﺗﻜﻮن ﻗﯿﻤﺘﮫ ‪. ( 0‬‬

‫وﻧﻘﻮم اﻵن ﺑﻮﺿﻊ ھﺬه اﻷرﻗﺎم ﻓﻲ ﻣﺼﻔﻮﻓﺔ اﻟﻨﺺ اﻷﺻﻠﻲ ‪. P‬‬

‫‪.‬اﻵن ﺗﺨﺘﺎر ﻣﺼﻔﻮﻓﺔ اﻟﺘﺸﻔﯿﺮ واﻟﺘﻲ ﯾﺠﺐ أن ﯾﻜﻮن ﻟﮭﺎ ﻣﻌﻜﻮس ﺣﺘﻰ ﻧﺴﺘﻄﯿﻊ ﻓﻚ اﻟﺘﺸﻔﯿﺮ ‪.‬‬

‫)ﯾﻤﻜﻨﻚ اﻟﺘﺄﻛﺪ ﻣﻦ ذﻟﻚ ‪ ،‬وذﻟﻚ ﻋﻦ ﻃﺮﯾﻖ أﺧﺬ ‪ det‬وﺿﺮﺑﮫ ﻓﻲ ﻋﺪد ﻣﺎ )اﻟﻤﻌﻜﻮس( واﺧﺬ اﻟﻨﺎﺗﺞ‬
‫‪ 26 mod‬وﯾﺠﺐ أن ﯾﻜﻮن اﻟﺒﺎﻗﻲ ﯾﺴﺎوي‪ ، 1‬وھﻨﺎ ﻧﺘﺄﻛﺪ ﻣﻦ أن اﻟﻤﺼﻔﻮﻓﺔ ﺻﺤﯿﺤﺔ وﻟﮭﺎ‬
‫ﻣﻌﻜﻮس( ‪.‬‬

‫اﻵن ﻧﻘﻮم ﺑﻀﺮب اﻟﻤﺼﻔﻮﻓﺔ ‪ p‬ﻓﻲ اﻟﻤﺼﻔﻮﻓﺔ ‪ A‬ﻟﻜﻲ ﯾﻨﺘﺞ ﻟﺪﯾﻨﺎ اﻟﻤﺼﻔﻮﻓﺔ ‪) c‬اﻟﺸﻔﺮه(‬

‫‪52‬‬
‫‪PDF created with pdfFactory Pro trial version www.pdffactory.com‬‬
‫اﻵن ﻧﺄﺧﺬ اﻟﻨﺎﺗﺞ ‪) 26 mod‬ﻟﺠﻤﯿﻊ اﻟﻘﯿﻢ ﻓﻲ اﻟﻤﺼﻔﻮﻓﺔ ﺑﺎﻟﻄﺒﻊ( ‪ .‬وﯾﺨﺮج ﻟﺪﯾﻨﺎ اﻟﻨﺺ اﻟﻤﺸﻔﺮ ‪:‬‬

‫اﻵن ﻧﻘﻮم ﺑﺘﺤﻮﯾﻞ ھﺬه اﻟﻘﯿﻢ إﻟﻰ أﻋﺪاد ‪.‬‬

‫وﻧﻘﻮم ﺑﺘﺮﺗﯿﺒﮭﺎ ﺑﻌﺪ ذﻟﻚ ‪ ،‬وﯾﺨﺮج ﻟﺪﯾﻨﺎ اﻟﻨﺺ اﻟﻤﺸﻔﺮ اﻟﺘﺎﻟﻲ ‪:‬‬
‫‪RLQFXCHAAQAFCWAXMB‬‬

‫اﻵن ﻟﻔﻚ اﻟﺘﺸﻔﯿﺮ ‪ ،‬ﻧﻘﻮم ﺑﺘﺠﻤﯿﻊ اﻟﺤﺮوف اﻟﻤﺸﻔﺮة ﻓﻲ ﺑﻠﻮك ﻣﻜﻮن ﻣﻦ ﺣﺮﻓﯿﻦ )ﻛﻤﺎ ﻓﻲ اﻟﺘﺸﻔﯿﺮ(‬
‫وﻣﻦ ﺛﻢ ﻧﻘﻮم ﺑﻀﺮب اﻟﻤﺼﻔﻮﻓﺔ ﻓﻲ ﻣﻌﻜﻮس اﻟﻤﺼﻔﻮﻓﺔ ‪ ،‬وﯾﺨﺮج ﻟﺪﯾﻨﺎ اﻟﻨﺺ اﻷﺻﻠﻲ )ﻃﺒﻌﺎ ﺗﺬﻛﺮ‬
‫أﺧﺪ ﺑﺎﻗﻲ اﻟﻘﺴﻤﺔ ﻋﻠﻰ ‪ 26‬ﻓﻲ ﺣﺎﻟﮫ ﻛﺎن اﻟﻌﺪد اﻟﻨﺎﺗﺞ أﻛﺒﺮ ﻣﻦ ‪ . 26‬ﻟﻤﺎذا ﻧﻘﻮم ﺑﺬﻟﻚ داﺋﻤﺎ ؟ اﻟﺠﻮاب‬
‫ﺑﺒﺴﺎﻃﮫ ﻷﻧﻨﺎ ﻧﺮﯾﺪ ﺣﺼﺮ اﻟﻨﺎﺗﺞ ﻓﻲ ﻧﻄﺎق اﻟﺤﺮوف اﻷﺑﺠﺪﯾﺔ ‪ ،‬ﻓﺈذا ﻛﺎﻧﺖ اﻷﺑﺠﺪﯾﺔ ﺗﺘﻜﻮن ﻣﻦ ‪N‬‬
‫ﺣﺮف اذا ﺳﻮف ﻧﺄﺧﺬ ﺑﺎﻗﻲ اﻟﻘﺴﻤﺔ ﻋﻠﻰ ‪ n‬وھﻮ ﻣﺎ ﯾﻌﺮف ﺑـ ‪.( modular arithmetic‬‬

‫اﻵن ﺑﻀﺮب اﻟﻤﻌﻜﻮس ﻓﻲ اﻟﻨﺺ اﻟﻤﺸﻔﺮ ‪ ،‬وأﺧﺬ اﻟﻨﺎﺗﺞ ‪ ، 26 mod‬ﯾﺨﺮج ﻟﺪﯾﻨﺎ ‪:‬‬

‫وﻧﻘﻮم ﺑﺘﺤﻮﯾﻠﮫ إﻟﻰ أﺣﺮف ‪ :‬ﻟﯿﺨﺮج ﻟﺪﯾﻨﺎ ‪:‬‬


‫‪THE PROFESSOR IS EVIL‬‬
‫وھﻮ اﻟﻨﺺ اﻷﺻﻠﻲ‬

‫ﻋﻠﻰ اﻟﻌﻤﻮم ﻃﺮﯾﻘﮫ اﻟﺘﺸﻔﯿﺮ ھﺬه ﺿﻌﯿﻔﺔ أﯾﻀﺎ وﺧﺎﺻﺔ ﻟﻄﺮﯾﻘﮫ ‪ row reduction‬ﺣﯿﺚ ﺗﺴﺘﻄﯿﻊ‬
‫ﻛﺴﺮ ھﺬه اﻟﺸﻔﺮه ﺑﺒﺴﺎﻃﺔ ‪ ،‬وﺳﻮف ﻧﺘﻄﺮق ﻟﮭﺎ ﻓﻲ اﻟﻨﺴﺨﺔ اﻟﻘﺎدﻣﺔ ﺑﺈذن اﷲ ( ‪.‬‬

‫‪53‬‬
‫‪PDF created with pdfFactory Pro trial version www.pdffactory.com‬‬
‫ﻛﺴﺮ ﺍﻟﺨﻮﺍﺭﺯﻣﻴﺎﺕ ﻣﻦ ﻧﻮﻉ ‪PolyGram Substitution Cipher‬‬

‫ﺑﻤﺎ أن اﻟﻄﺮﯾﻘﺘﺎن اﻟﺘﻲ ﺗﻄﺮﻗﻨﺎ ﻟﮭﻢ ﻗﺒﻞ ﻗﻠﯿﻞ ‪ ،‬ﯾﻜﻮن ﺣﺠﻢ اﻟﺒﻠﻮك ﻓﯿﮭﺎ ﺻﻐﯿﺮ )ﻣﻦ ﺣﺮﻓﯿﻦ ﻓﻲ ﺣﺎﻟﮫ‬
‫ﺷﻔﺮه ﺑﻼﻓﯿﺮ( ‪ ،‬ﻓﺈﻧﮫ ﯾﻤﻜﻦ ﻛﺴﺮ ھﺬه اﻟﺸﻔﺮات أﯾﻀﺎ ‪ ،‬وﺧﺎﺻﺔ ﻓﻲ ﺣﺎل ﺗﻮﻓﺮ ﻧﺺ ﻣﺸﻔﺮ ﺑﻤﺎ ﻓﯿﮫ‬
‫اﻟﻜﻔﺎﯾﺔ ‪ ،‬ﻹﺟﺮاء اﻟﺘﺤﻠﯿﻞ ‪ ،‬ﻟﻜﻦ ھﻨﺎ ﺳﻮف ﯾﻜﻮن اﻟﺒﺤﺚ ﻋﻦ أﻛﺜﺮ ﺣﺮﻓﯿﻦ ﺗﻜﺮروا ﻓﻲ اﻟﺸﻔﺮة ‪،‬‬
‫واﺣﺘﻤﺎل أن ﯾﻜﻮﻧﻮا ‪ TH‬أو ‪ ، HE‬اﻟﺠﺪول اﻟﺘﺎﻟﻲ ﯾﺒﯿﻦ أﻛﺜﺮ ﺣﺮﻓﯿﻦ ‪ Digraphs‬ﯾﺘﻜﺮروا ﻓﻲ اﻟﻠﻐﺔ‬

‫وﻓﻲ ﺣﺎﻟﮫ ﻛﺎن ﺣﺠﻢ اﻟﺒﻠﻮك ﻣﻦ ‪ 3‬أﺣﺮف ‪ ، trigraphs‬ھﻨﺎك أﯾﻀﺎ ﻛﻠﻤﺎت ﺗﺘﻜﻮن ﻣﻦ ﺛﻼﺛﺔ أﺣﺮف‬
‫ﺗﺘﻜﺮر أﻛﺜﺮ ﻣﻦ ﻏﯿﺮھﺎ ﻣﺜﻞ ‪ THA‬و ‪ THE‬و ‪ AND‬وﻏﯿﺮھﺎ ‪.‬و ﻓﻲ اﻟﺸﻔﺮات اﻟﺤﺪﯾﺜﺔ‬
‫‪ Modern Cryptography‬ﺗﻢ اﻟﻘﻀﺎء ﻋﻠﻰ ﺿﻌﻒ ھﺬه اﻟﻄﺮق ‪ ،‬ﺣﯿﺚ ﯾﻜﻮن ﺣﺠﻢ اﻟﺒﻠﻮك‬
‫ﻋﻠﻰ اﻷﻗﻞ ‪ 8‬أﺣﺮف ‪.‬‬

‫ﺃﺳﻄﻮﺍﻧﺔ ﺟﻴﻔﻴﺮﺳﻮﻥ ‪THE JEFFERSON CYLINDER‬‬

‫اﺳﻄﻮاﻧﺔ ﺟﯿﻔﯿﺮﺳﻮن واﺣﺪه ﻣﻦ أﻗﻮى اﻷﺟﮭﺰة اﻟﺘﻲ اﺳﺘﺨﺪﻣﺖ ﻓﻲ اﻟﺘﺸﻔﯿﺮ‪ ،‬ﺣﯿﺚ اﻟﺸﻔﺮة اﻟﻨﺎﺗﺠﺔ‬
‫ﻗﻮﯾﮫ وﻻ ﯾﻤﻜﻦ ﻛﺴﺮھﺎ ﺑﺴﮭﻮﻟﮫ أﺑﺪا ‪ ،‬اﻹ ﻓﻲ ﺣﺎﻟﮫ ﺳﺮﻗﺔ اﻟﺠﮭﺎز ﺑﺄﻛﻤﻠﮫ ‪ ،‬اﻻﺳﻢ ﺟﯿﻔﯿﺮﺳﻮن ﯾﻌﻮد‬
‫إﻟﻰ اﺳﻢ ﻣﺨﺘﺮﻋﮭﺎ ﺗﻮﻣﺎس ‪. Thomas Jefferson‬‬

‫ھﺬه اﻹﺳﻄﻮاﻧﮫ ﺗﺘﻜﻮن ﻣﻦ ‪ 36‬ﻋﺠﻠﮫ ﺑﺠﺎﻧﺐ ﺑﻌﺾ ‪ ،‬و‪ 26‬ﺻﻒ ‪ ،‬أي أن ﻛﻞ ﺻﻒ ﺑﮫ ‪ 36‬ﻋﺠﻠﮫ‬
‫)ﺣﺮف ( ‪.‬‬

‫ﻓﻲ ﺣﺎل أردت اﻟﺘﺸﻔﯿﺮ اﻟﻨﺺ اﻷﺻﻠﻲ ‪ ،‬ﯾﺠﺐ أن أﺿﻊ ﺟﻤﯿﻊ اﻟﻌﺠﻼت ﻓﻲ ﺻﻒ ﻣﺎ ﻓﻲ ﺷﻜﻞ‬
‫اﻟﻨﺺ اﻷﺻﻠﻲ ‪،‬أي أﻗﻮم ﺑﺘﺤﺮﯾﻚ اﻟﻌﺠﻠﺔ اﻷوﻟﻰ ﻣﺜﻼ ﻓﻲ اﻟﺼﻒ اﻟﺮاﺑﻊ إﻟﻰ اﻟﺤﺮف اﻟﻤﺮاد ‪ ،‬اﻵن‬
‫أﺣﺮك اﻟﻌﺠﻠﺔ اﻟﺜﺎﻧﯿﺔ ﻓﻲ ﻧﻔﺲ اﻟﺼﻒ إﻟﻰ اﻟﺤﺮف اﻟﺜﺎﻧﻲ اﻟﻤﺮاد ﺗﺸﻔﯿﺮه ‪ ،‬وﻧﻔﺲ اﻟﻜﻼم ﻟﺒﺎﻗﻲ‬
‫اﻟﺤﺮوف ﻟﻜﻦ ﻓﻲ ﻧﻔﺲ اﻟﺼﻒ‪.‬‬

‫اﻵن ﺑﻌﺪ وﺿﻊ اﻟﺼﻒ ﻛﺎﻣﻞ ﻋﻠﻰ اﻟﻨﺺ اﻷﺻﻠﻲ ‪ ،‬أﻗﻮم ﺑﺎﺧﺘﯿﺎر أﺣﺪ اﻟـ ‪ 25‬ﺻﻒ اﻟﻤﺘﺒﻘﯿﺔ ‪ ،‬أي‬
‫ھﻨﺎك ‪ 25‬ﺷﻔﺮه ﻣﻤﻜﻨﮫ‪ ،‬وأرﺳﻞ ھﺬا اﻟﻨﺺ ﻟﻠﻄﺮف اﻷﺧﺮ‪.‬‬

‫ﻓﻲ ﺣﺎﻟﮫ ﻓﻚ اﻟﺘﺸﻔﯿﺮ ‪ ،‬ﯾﻘﻮم ﺑﺘﺮﺗﯿﺐ اﻟﻨﺺ اﻟﻤﺸﻔﺮ ﻓﻲ ﺻﻒ ‪ ،‬ﺑﻌﺪھﺎ ﯾﻨﻈﺮ إﻟﻰ ﺑﺎﻗﻲ اﻟـ ‪ 25‬ﺻﻒ‬
‫وﯾﺸﺎھﺪ ﻣﻦ ھﻮ اﻟﻨﺺ اﻷﺻﻠﻲ ‪ ،‬أي ﯾﻘﻮم ﺑﺎﻟﺒﺤﺚ ﻓﻲ ﺟﻤﯿﻊ ھﺬه اﻟﺼﻔﻮف ‪ ،‬ﺣﺘﻰ ﯾﺴﺘﻄﯿﻊ‬
‫اﻟﺤﺼﻮل ﻋﻠﻰ اﻟﻨﺺ اﻷﺻﻠﻲ ‪.‬‬

‫‪54‬‬
‫‪PDF created with pdfFactory Pro trial version www.pdffactory.com‬‬
‫ﺻﻮره ﻟﺘﻮﺿﯿﺢ أﺳﻄﻮاﻧﺔ ﺟﯿﻔﯿﺮﺳﻮن‪:‬‬

‫وھﺬه ﺻﻮره ﻟﮭﺎ ﻓﻲ اﻟﻮاﻗﻊ ‪:‬‬

‫وﺑﺎﻟﺮﻏﻢ ﻣﻦ ﻗﻮه ھﺬه اﻟﻄﺮﯾﻘﮫ ﻓﻲ اﻟﺘﺸﻔﯿﺮ ‪ ،‬ﻓﺈﻧﮭﺎ ﻟﻢ ﺗﻨﺘﺸﺮ ﻧﻈﺮا ﻟﺼﻌﻮﺑﺔ ﺗﻄﺒﯿﻘﮭﺎ ‪Hard to‬‬
‫‪ Implementation‬وﯾﺠﺐ ﻋﻠﻰ اﻟﻄﺮﻓﯿﻦ اﻻﺣﺘﻔﺎظ ﺑﮭﺬه اﻹﺳﻄﻮاﻧﮫ ‪ ،‬وﻓﻲ ﺣﺎل وﻗﻌﺖ ﻓﻲ‬
‫أﯾﺪي اﻟﻌﺪو ‪ ،‬ﻓﯿﻤﻜﻦ ﻛﺴﺮ اﻟﺘﺸﻔﯿﺮ ﺑﺘﻠﻚ اﻟﻄﺮﯾﻘﮫ ﺑﻜﻞ ﺳﮭﻮﻟﮫ‪.‬‬

‫‪55‬‬
‫‪PDF created with pdfFactory Pro trial version www.pdffactory.com‬‬
‫ﺍﻟﺘﺸﻔﻴﺮ ﺑﻄﺮﻳﻘﻪ ﺍﻟـ ‪HOMOPHONIC SUBSTITUTION CIPHERS‬‬

‫ﻃﺮﯾﻘﮫ اﻟـ ‪ HOMOPHONIC‬ﺗﻌﺘﺒﺮ ﻣﻦ اﻟﻄﺮق اﻟﺠﯿﺪة ﻹﺣﺒﺎط اﻟﺘﺤﻠﯿﻞ اﻹﺣﺼﺎﺋﻲ ‪ ،‬اﻟﺬي ﻟﻦ‬
‫ﯾﺴﺘﻄﯿﻊ ﻓﻌﻞ ﺷﻲء ﻟﻤﺜﻞ ھﺬا اﻟﻨﻮع ﻣﻦ اﻟﺸﻔﺮات ‪ ،‬ﺣﯿﺚ ﻛﻤﺎ ﻧﻌﺮف أﻧﮫ ھﻨﺎك ﺣﺮوف ﺗﺘﻜﺮر أﻛﺜﺮ‬
‫ﻣﻦ ﻏﯿﺮھﺎ ﻓﻲ اﻟﻠﻐﺔ ‪ ،‬ﻓﻲ ھﺬه اﻟﻄﺮﯾﻘﮫ ﻛﻞ ﺣﺮف ﻣﻦ ھﺬه اﻟﺤﺮوف اﻟﺘﻲ ﺗﺘﻜﺮر ﻛﺜﯿﺮا ‪ ،‬ﯾﻜﻮن ﻟﮭﺎ‬
‫أﻛﺜﺮ ﻣﻦ اﺣﺘﻤﺎل ‪ ،‬أي ﺗﺘﺸﻔﺮ إﻟﻰ أﻛﺜﺮ ﻣﻦ ﺣﺮف وﺑﻄﺮﯾﻘﮫ ﻋﺸﻮاﺋﯿﺔ‪.‬‬

‫أﻧﻈﺮ ﻟﮭﺬا اﻟﺠﺪول اﻟﺬي ﺳﺒﻖ وﻋﺮﺿﻨﺎه ﺳﺎﺑﻘﺎ ‪ ،‬ﻟﻜﻦ ھﻨﺎ ﻟﻐﺮض اﻟﺘﻮﺿﯿﺢ ‪ ،‬ﻧﻌﺮﺿﮫ ﻣﺮه أﺧﺮى‪.‬‬

‫ﻻﺣﻆ أن أﻛﺜﺮ ﺣﺮف ﯾﺘﻜﺮر ھﻮ ‪ E‬ﺑﻨﺴﺒﮫ ‪ 13‬و ‪ T‬ﺑﻨﺴﺒﮫ ‪ ، 9‬اﻟﻤﮭﻢ ھﻮ أﻧﻨﺎ ﻧﻘﻮم ﺑﻌﻤﻞ ﺟﺪول‬
‫ﯾﺴﻤﻰ ﺟﺪول اﻟـ ‪ Homophonic‬ﯾﺤﺘﻮي ﻋﻠﻰ ﺗﺸﻔﯿﺮ اﻟﺤﺮف ‪ E‬ب ‪ 13‬ﻃﺮﯾﻘﮫ ‪ ،‬و ‪T‬ب‪9‬‬
‫ﻣﺮات ‪ ،‬أﯾﻀﺎ ﻣﻦ اﻟﻤﮭﻢ ذﻛﺮ أن ھﺬا اﻟﻨﻮع ﻣﻦ اﻟﺸﻔﺮات ﯾﺸﻔﺮ اﻟﺤﺮف اﻟﻮاﺣﺪ ﻓﻲ اﻟﻨﺺ اﻷﺻﻠﻲ‬
‫إﻟﻰ ﺣﺮﻓﯿﻦ وھﻮ ﻣﺎ ﯾﻌﺮف ﺑـ ‪. one–to–many mapping‬‬

‫أﻧﻈﺮ إﻟﻰ ﺟﺪول اﻟـ ‪: Homophonic‬‬

‫‪56‬‬
‫‪PDF created with pdfFactory Pro trial version www.pdffactory.com‬‬
‫ﻣﺜﻼ ‪ ،‬أرﯾﺪ ﺗﺸﻔﯿﺮ اﻟﻌﺒﺎرة‪:‬‬
‫‪RETREAT‬‬

‫ﻧﺒﺪأ ﺑﺎﻟﺤﺮف اﻷول ‪ ، R‬ﻟﮫ أﻛﺜﺮ ﻣﻦ ‪ 8‬ﺷﻔﺮات ﻓﻲ اﻟﺠﺪول ‪ ،‬وﯾﻤﻜﻨﻚ اﺧﺘﯿﺎر ﻣﺎ ﺗﺸﺎء‪.‬‬
‫اﻟﺤﺮف اﻟﺜﺎﻧﻲ ‪ ، E‬ﻟﮫ ‪ 13‬ﺷﻔﺮه ‪ ،‬وﯾﻤﻜﻨﻚ اﺧﺘﯿﺎر ﻣﺎ ﺗﺸﺎء‪.‬‬

‫اﻵن وﺑﻌﺪ أن ﻗﻤﺖ ﺑﺎﻟﺘﺸﻔﯿﺮ ‪ ،‬اﻟﻨﺎﺗﺞ ھﻮ‪:‬‬


‫‪DQ AW CC AQ CO BS DB‬‬

‫)اﻟﻨﺎﺗﺞ ﻗﺪ ﯾﺨﺘﻠﻒ ﻋﻦ اﻟﻨﺎﺗﺞ اﻟﺨﺎص ﺑﻚ ‪ ،‬ﻷﻧﻨﻲ ﻗﺪ اﺧﺘﺮت ﺷﻔﺮات ﻟﻢ ﺗﺨﺘﺎرھﺎ ( ‪.‬‬

‫وﻟﻔﻚ اﻟﺘﺸﻔﯿﺮ ‪ ،‬ﯾﻤﻜﻨﻚ ﺑﻨﺎء ﺟﺪول ﻋﻜﺴﻲ ‪ inverse mappings‬ﻟﻠﺠﺪول اﻟﺴﺎﺑﻖ ‪ ،‬ﻛﻤﺎ ﻓﻲ‬
‫اﻟﺼﻮره اﻟﺘﺎﻟﯿﺔ‪:‬‬

‫وھﻮ ﻧﻔﺴﮫ اﻟﺠﺪول اﻟﺴﺎﺑﻖ ‪ ،‬ﻟﻜﻦ ﺗﻢ وﺿﻊ أي ﺷﻔﺮه ﻓﻲ ﺻﻒ ﻟﻜﻞ ﺷﻔﺮه ‪ ،‬وﻣﺎ ﯾﻘﺎﺑﻠﮭﺎ ﻣﻦ اﻟﻨﺺ‬
‫اﻷﺻﻠﻲ ‪ .‬وﯾﺼﺒﺢ ﻓﻚ اﻟﺘﺸﻔﯿﺮ أﻣﺮ ﻓﻲ ﻏﺎﯾﺔ اﻟﺴﮭﻮﻟﺔ!‬

‫وﺑﺎﻟﺮﻏﻢ ﻣﻦ ﻗﻮه ھﺬه اﻟﻄﺮﯾﻘﮫ وﺷﻔﺮاﺗﮭﺎ اﻷﻣﻨﮫ ‪ ،‬اﻹ إﻧﮭﺎ ﻟﻢ ﺗﺴﺘﺨﺪم ﺑﺸﻜﻞ ﻛﺒﯿﺮ ‪ ،‬ﻷﻧﮭﺎ ﻛﻤﺎ ﻻﺣﻈﻨﺎ‬
‫ﺗﻌﺘﻤﺪ ﻋﻠﻰ اﻟﻠﻐﺔ ‪ ،‬واﻟﺤﺮوف اﻟﺘﻲ ﺗﺘﻜﺮر ﻓﯿﮭﺎ ﻛﺜﯿﺮا ‪ ،‬ﻋﻠﻰ ﻋﻜﺲ اﻟﺸﻔﺮات اﻟﺤﺪﯾﺜﺔ اﻟﺘﻲ ﻻ ﺗﻌﺘﻤﺪ‬
‫إﻃﻼﻗﺎ ﻋﻠﻰ اﻟﻠﻐﺔ‬

‫‪57‬‬
‫‪PDF created with pdfFactory Pro trial version www.pdffactory.com‬‬
‫اﻟﻨﻮع اﻟﺜﺎﻧﻲ ﻣﻦ أﻧﻮاع اﻟﺘﺸﻔﯿﺮ ﺑﺎﻟﻄﺮق اﻟﻜﻼﺳﯿﻜﯿﺔ ھﻮ ‪:‬‬

‫ﺍﻟﺘﺸﻔﻴﺮ ﺑﺎﻹﺑﺪﺍﻝ ‪TRANSPOSITION CIPHERS‬‬

‫وﻃﺮﯾﻘﮫ اﻹﺑﺪال ﻟﮭﺎ اﻟﻌﺪﯾﺪ ﻣﻦ اﻷﺷﻜﺎل واﻟﻄﺮق واﻟﺸﻔﺮات وﻣﻨﮭﺎ اﻟﺒﺴﯿﻂ وﻣﻨﮭﺎ اﻟﻤﻌﻘﺪ ‪ ،‬وﺳﻨﺄﺧﺬ‬
‫أﺷﮭﺮ وأﺳﮭﻞ اﺛﻨﯿﻦ‪:‬‬

‫اﻟﻄﺮﯾﻘﮫ اﻷوﻟﻰ ﻃﺮﯾﻘﮫ اﻟﻌﻜﺲ ‪: Reversing‬‬


‫اﻟﻄﺮﯾﻘﮫ ﺑﺴﯿﻄﺔ ﻟﻠﻐﺎﯾﺔ ‪ ،‬وﻛﻞ ﻣﺎ ﻓﻲ اﻷﻣﺮ أﻧﻲ ﺳﺄﺑﺪل اﻟﺤﺮف اﻷول ﻣﻜﺎن اﻟﺤﺮف اﻷﺧﯿﺮ ‪،‬‬
‫اﻟﺤﺮف اﻟﺜﺎﻧﻲ ﺑﺎﻟﺤﺮف ﻣﺎ ﻗﺒﻞ اﻷﺧﯿﺮ ‪ ،‬وھﻜﺬا ‪ ،‬وھﻲ ﻣﻦ أﺿﻌﻒ أﻧﻮاع اﻟﺸﻔﺮات ‪ ،‬ھﺬا اذا‬
‫اﻋﺘﺒﺮت ﺷﻔﺮه ﻣﻦ اﻷﺳﺎس!‬

‫ﻣﺜﺎل‪:‬‬
‫اﻟﻨﺺ اﻷﺻﻠﻲ ‪Wajdy Essam Is Java Developer :‬‬
‫ﺑﻌﺪ ﺗﺸﻔﯿﺮه ‪repoleveD vavJ sI massE ydjaW :‬‬

‫وﺑﻌﺪ ﺗﻘﺴﯿﻤﮭﺎ إﻟﻰ ﺑﻠﻮﻛﺎت )ﻣﻦ ‪ 5‬ﺣﺮوف( ‪ ،‬ﯾﺼﺒﺢ ﻟﺪي ‪:‬‬


‫‪repol eveDv avJsI massE ydjaW‬‬

‫ﻃﺮﯾﻘﮫ أﺧﺮى ﻟﻠﻌﻜﺲ ‪ ،‬وﻟﻜﻦ ﺑﺸﻜﻞ ﻣﻨﻈﻢ ‪:‬‬

‫ﻣﺜﻼ ﻧﻘﻮم ﺑﺘﻐﯿﺮ أﻣﺎﻛﻦ اﻟﺤﺮوف ﻓﻲ ﻛﻞ ﺑﻠﻮك ﺑﻄﺮﯾﻘﮫ ﻣﻌﯿﻨﮫ ‪ ،‬ﻣﺜﻼ ﻧﺠﻌﻞ‪:‬‬
‫اﻟﺤﺮف ‪ 1‬ﻣﻜﺎن اﻟﺤﺮف ‪ ، 4‬اﻟﺤﺮف ‪ 2‬ﻣﻜﺎن اﻟﺤﺮف ‪ ، 3‬اﻟﺤﺮف ‪ 3‬ﻣﻜﺎن اﻟﺤﺮف‪ ، 1‬اﻟﺤﺮف ‪4‬‬
‫ﻣﻜﺎن اﻟﺤﺮف ‪ . 5‬اﻟﺤﺮف ‪ 5‬ﻣﻜﺎن اﻟﺤﺮف ‪2‬‬

‫وﻧﻘﻮم ﺑﺘﺮﺗﯿﺐ اﻟﺘﻐﯿﯿﺮات اﻟﺴﺎﺑﻘﺔ ‪ ،‬ﻟﻨﺴﮭﻞ ﻣﻦ اﻟﻌﻤﻠﯿﺔ ‪:‬‬


‫اﻟﺤﺮف ‪ 1‬ﻣﻜﺎن اﻟﺤﺮف ‪4‬‬
‫اﻟﺤﺮف ‪ 4‬ﻣﻜﺎن اﻟﺤﺮف ‪5‬‬
‫اﻟﺤﺮف ‪ 5‬ﻣﻜﺎن اﻟﺤﺮف ‪2‬‬
‫اﻟﺤﺮف ‪ 2‬ﻣﻜﺎن اﻟﺤﺮف ‪3‬‬
‫اﻟﺤﺮف ‪ 3‬ﻣﻜﺎن اﻟﺤﺮف ‪1‬‬
‫اﻟﺤﺮف ‪ 1‬ﻣﻜﺎن اﻟﺤﺮف ‪4‬‬
‫)رﺗﺒﻨﺎ ھﺬا اﻟﺘﺒﺪﯾﻞ ‪ ،‬ﻋﻦ ﻃﺮﯾﻖ ﺟﻌﻞ اﻟﺤﺮف اﻷﺧﯿﺮ ھﻮ اﻷول ‪ ،‬ھﺬه اﻟﻌﻤﻠﯿﺔ ﻟﻠﺘﺴﮭﯿﻞ ﻓﻘﻂ (‪.‬‬

‫ﻧﻔﺮض أن ﻟﺪﯾﻨﺎ اﻟﻨﺺ اﻟﺘﺎﻟﻲ‪THE SKY FALLING PLEASE ADVISE :‬‬

‫وﻧﺮﯾﺪ ﺗﺸﻔﯿﺮه ﺑﮭﺬه اﻟﻄﺮﯾﻘﮫ ‪ ،‬ﻧﻘﻮم أوﻻ ﺑﻔﺼﻞ ﻛﻞ ‪ 5‬ﺣﺮوف ﻓﻲ ﺑﻠﻮك واﺣﺪ‬

‫ﻟﯿﺼﺒﺢ اﻟﻨﺺ اﻷﺻﻠﻲ ھﻮ‪THESK YFALL INGPL EASEA DVISE :‬‬

‫اﻵن ﻧﻘﻮم ﺑﺒﺪء اﻟﺘﻐﯿﯿﺮات ‪ ،‬ﻛﻞ ﺑﻠﻮك ﻋﻠﻰ ﺣﺪه ‪،‬‬

‫‪58‬‬
‫‪PDF created with pdfFactory Pro trial version www.pdffactory.com‬‬
‫ﻧﺒﺪأ ﺑﺎﻟﺒﻠﻮك اﻷول ‪:‬‬
‫اﻟﺤﺮف ‪ 1‬ﻣﻜﺎن اﻟﺤﺮف ‪ ، 4‬ﻧﻄﺒﻘﮫ ﻟﯿﻨﺘﺞ ‪ :‬اﻟﺤﺮف ‪ T‬ﻣﻜﺎن اﻟﺤﺮف ‪S‬‬
‫اﻟﺤﺮف ‪ 4‬ﻣﻜﺎن اﻟﺤﺮف ‪ ، 5‬ﻧﻄﺒﻘﮫ ﻟﯿﻨﺘﺞ ‪ :‬اﻟﺤﺮف ‪ S‬ﻣﻜﺎن اﻟﺤﺮف‪K‬‬

‫وھﻜﺬا ﻟﺒﺎﻗﻲ اﻟﺤﺮوف ﻓﻲ اﻟﺒﻠﻮك ‪ ،‬وﻧﻔﺲ اﻷﻣﺮ ﻣﻊ ﺑﺎﻗﻲ اﻟـ ‪ Blocks‬ﻓﻲ اﻟﻨﺺ اﻷﺻﻠﻲ ‪ ،‬ﺑﻌﺪ أن‬
‫ﻧﻘﻮم ﺑﻌﻠﻤﯿﮫ اﻟﺘﺸﻔﯿﺮ ‪ ،‬ﯾﺨﺮج ﻟﺪﯾﻨﺎ اﻟﻨﺺ اﻟﻤﺸﻔﺮ اﻟﺘﺎﻟﻲ‪:‬‬
‫‪EKHTS ALFYL GLNIP SAAEE IEVDS‬‬

‫واﻟﺘﺸﻔﯿﺮ ﺑﮭﺬه اﻟﻄﺮﯾﻘﮫ ﺿﻌﯿﻒ ﻟﻠﻐﺎﯾﺔ ‪ ،‬إذ ﯾﻤﻜﻦ ﻷي ﺷﺨﺺ ﻗﻮي اﻟﻤﻼﺣﻈﺔ ﻣﻌﺮﻓﮫ اﻟﻨﺺ‬
‫اﻷﺻﻠﻲ ﺑﻤﺠﺮد اﻟﻨﻈﺮ واﻟﻤﻼﺣﻈﺔ ﻋﻠﻰ اﻟﺒﻠﻮك ‪ ،‬ﻟﻜﻦ ﻓﻲ ﺣﺎل اﺳﺘﺨﺪﻣﺖ ھﺬه اﻟﻄﺮﯾﻘﮫ اﻹﺑﺪال ﻣﻊ‬
‫اﻟﻄﺮﯾﻘﮫ اﻷﺧﺮى اﻹﺣﻼل ﺳﻮف ﯾﻨﺘﺞ ﺷﻔﺮه ﻗﻮﯾﮫ ﺟﺪا ‪ ،‬وأﻏﻠﺐ اﻟﺸﻔﺮات اﻟﺤﺪﯾﺜﺔ ﺗﻌﺘﻤﺪ ﻋﻠﻰ ھﺬا‬
‫اﻟﻤﻔﮭﻮم )اﻟﺪﻣﺞ ﺑﯿﻦ ﻃﺮﯾﻘﮫ ‪ Transposition‬وﻃﺮﯾﻘﮫ ‪. ( Substitution‬‬

‫ﺍﻟﺪﻣﺞ ﺑﻴﻦ ﻃﺮﻳﻘﺘﻲ ﺍﻹﺑﺪﺍﻝ ﻭﺍﻹﺣﻼﻝ ‪COMBINATION‬‬


‫‪SUBSTITUTION/TRANSPOSITION CIPHERS‬‬

‫ﻧﺄﺧﺬ ﻣﺜﺎل ﺑﺴﯿﻂ ‪ ،‬ﻟﺘﻮﺿﯿﺢ ﻛﯿﻔﯿﮫ ﻋﻤﻞ ﺷﻔﺮات ﻣﻦ ھﺬا اﻟﻨﻮع ‪ ،‬واﻟﺸﻔﺮة اﻟﺬي ﺳﻨﺘﺒﻌﮭﺎ ﺗﺘﻜﻮن ﻣﻦ‬
‫ﺛﻼث ﺧﻄﻮات ﻋﻠﯿﻨﺎ اﻟﻤﺮور ﺑﮭﺎ‬

‫اﻟﺨﻄﻮة اﻷوﻟﻰ ‪ ،‬ﻟﯿﻜﻦ ﻟﺪﯾﻨﺎ اﻟﺠﺪول اﻟﺘﺎﻟﻲ ‪،‬اﻟﺬي ﺳﻨﺴﺘﺨﺪﻣﮫ ﻓﻲ اﻟﺘﺸﻔﯿﺮ ﻣﺮﺗﯿﻦ ‪ .‬أﻧﻈﺮ ﺻﻮره‬
‫اﻟﺠﺪول ‪:‬‬

‫اﻵن ﻣﺜﻼ أرﯾﺪ أن أﺷﻔﺮ اﻟﺤﺮف ‪ ، A‬اﻟﻨﺎﺗﺞ ھﻮ اﻟﺤﺮف ﻓﻲ أول اﻟﺼﻒ ‪ ،‬واﻟﺤﺮف اﻟﺬي ﻓﻲ أول‬
‫اﻟﻌﻤﻮد ‪ .‬أي أن ‪ A‬ﺗﺘﺸﻔﺮ إﻟﻰ اﻟﺤﺮﻓﯿﻦ ‪) AA‬أي أﺧﺬ اﻟﻌﺎﻣﻮد واﻟﺼﻒ اﻟﺬي ﯾﻘﻊ ﻓﯿﮫ اﻟﺤﺮف‬
‫اﻟﻤﺮاد ﺗﺸﻔﯿﺮه (‪.‬‬

‫ﯾﻔﻀﻞ ﺗﻐﯿﯿﺮ ﻛﻠﻤﮫ ﺗﺘﺸﻔﺮ ﻋﻨﺪ اﺳﺘﺨﺪام اﻟﺠﺪاول إﻟﻰ "اﺧﺘﯿﺎر" أو ﺑﺎﻹﻧﺠﻠﯿﺰي ‪. Maps‬‬
‫‪B maps to AB‬‬
‫‪C maps to AC‬‬
‫‪...‬‬
‫‪Q maps to DB‬‬
‫‪...‬‬
‫‪Y maps to EE‬‬
‫‪Z maps to DB‬‬

‫‪59‬‬
‫‪PDF created with pdfFactory Pro trial version www.pdffactory.com‬‬
‫ﻣﺜﺎل ‪ ،‬ﻟﯿﻜﻦ ﻟﺪي اﻟﻌﺒﺎرة اﻟﺘﺎﻟﯿﺔ )اﻟﻨﺺ اﻷﺻﻠﻲ ( ‪TAKE ME TO YOUR LEADER :‬‬

‫أﺑﺪأ اﻵن ﺑﺎﻟﺘﺸﻔﯿﺮ ‪ ،‬اﻟﺤﺮف ‪ T‬ﯾﺘﺸﻔﺮ ‪ maps‬إﻟﻰ ‪ . DE‬اﻟﺤﺮف اﻟﺜﺎﻧﻲ ‪ A‬ﯾﺘﺸﻔﺮ ‪ Maps‬إﻟﻰ‬
‫‪ . AA‬وھﻜﺬا ‪ ،‬ﻟﯿﻨﺘﺞ ﻟﺪي اﻟﺸﻔﺮة‪:‬‬
‫‪DE AA CA AE CC AE DE CE EE CE EA DC CB AE AA AD AE DC‬‬

‫اﻧﺘﮭﺖ اﻟﺨﻄﻮة اﻷوﻟﻰ ‪ ،‬اﻟﺘﻲ ﻛﻞ ﻓﯿﮭﺎ ﺗﺸﻔﯿﺮ اﻟﺤﺮف ﻓﻲ اﻟﻨﺺ اﻷﺻﻠﻲ إﻟﻰ ﺣﺮﻓﯿﻦ‪.‬‬

‫اﻟﺨﻄﻮة اﻟﺜﺎﻧﯿﺔ أﺧﺬ اﻟﻨﺺ اﻟﻤﺸﻔﺮ وأﻗﺴﮭﻢ ﻋﻠﻰ ﻗﺴﻤﯿﻦ) ﺻﻔﯿﻦ( ‪ ،‬وأﺧﺬ اﻟﺤﺮف اﻷول ﻣﻦ اﻟﺼﻒ‬
‫اﻷول و اﻟﺤﺮف اﻷول ﻣﻦ اﻟﺜﺎﻧﻲ ‪ ،‬وأﺧﺬ اﻟﺤﺮف اﻟﺜﺎﻧﻲ ﻣﻦ اﻟﺼﻒ اﻷول و أﺧﺬ اﻟﺤﺮف اﻟﺜﺎﻧﻲ‬
‫ﻣﻦ اﻟﺼﻒ اﻟﺜﺎﻧﻲ ‪ ،‬وھﻜﺬا‪....‬‬

‫اﻟﻨﺺ اﻟﻤﺸﻔﺮ‪:‬‬
‫‪DE AA CA AE CC AE DE CE EE CE EA DC CB AE AA AD AE DC‬‬

‫ﺑﻌﺪ ﺗﻘﺴﯿﻤﮭﻢ إﻟﻰ ﺻﻔﯿﻦ ‪ ،‬ﯾﻨﺘﺞ ﻟﺪي‪:‬‬


‫‪DE AA CA AE CC AE DE CE EE‬‬
‫‪CE EA DC CB AE AA AD AE DC‬‬

‫أﺑﺪأ ﺑﺄﺧﺬ اﻟﺤﺮف ‪ D‬و ‪ C‬ﻟﯿﻜﻮن اﻟﺒﻠﻮك اﻷول ‪E ،‬و ‪ E‬ﻟﯿﻜﻮن اﻟﺒﻠﻮك اﻟﺜﺎﻧﻲ ‪ ،‬وھﻜﺬا ‪ ،‬ﻟﯿﻨﺘﺞ ﻟﺪي‪:‬‬
‫‪DC EE AE AA CD AC AC EB CA CE AA EA DA ED CA EE ED EC‬‬

‫اﻟﺨﻄﻮة اﻟﺜﺎﻟﺜﺔ ‪ ،‬أﻗﻮم ﺑﺎﻟﺮﺟﻮع إﻟﻰ اﻟﺠﺪول اﻟﺴﺎﺑﻖ ‪ ،‬اﻟﺬي ذﻛﺮﻧﺎ أﻧﻨﺎ ﺳﻨﺴﺘﺨﺪﻣﮫ ﻣﺮﺗﯿﻦ ‪ ،‬وﻧﻘﻮم‬
‫ﺑﺘﺸﻔﯿﺮ ﻛﻞ ﺑﻠﻮك‪:‬‬

‫ﻧﺄﺧﺬ اﻟﺒﻠﻮك اﻷول ‪ DC‬وﯾﺘﻘﺎﻃﻌﺎ ﻓﻲ اﻟﺠﺪول ﻋﻨﺪ اﻟﺤﺮف ‪. R‬‬


‫ﻧﺄﺧﺬ اﻟﺒﻠﻮك اﻟﺜﺎﻧﻲ ‪ EE‬وﯾﺘﻘﺎﻃﻌﺎ ﻓﻲ اﻟﺠﺪول ﻋﻨﺪ اﻟﺤﺮف ‪. Y‬‬
‫وﻧﺴﺘﻤﺮ ھﻜﺬا ‪ ،‬ﻟﯿﻨﺘﺞ ﻟﺪي‪:‬‬
‫‪RYEANCCVKOAUPXKYXW‬‬

‫اﻵن أﺿﻌﮭﻢ ﻓﻲ ﺷﻜﻞ ‪ Block‬ﻛﻞ واﺣﺪ ﯾﺘﻜﻮن ﻣﻦ ‪ 5‬ﺣﺮوف‪:‬‬


‫‪RYEAN CCVKO AUPXK YXW‬‬

‫واﻧﺘﮭﺖ ﻋﻤﻠﯿﮫ اﻟﺘﺸﻔﯿﺮ‪ ،‬ﻣﻌﻘﺪه ﻗﻠﯿﻼ ‪ ،‬أﻟﯿﺲ ﻛﺬﻟﻚ ! ﻟﻜﻨﮭﺎ ﻣﻤﺘﺎزة ﺟﺪا‪.‬‬

‫وﻟﻔﻚ اﻟﺘﺸﻔﯿﺮ ‪ ،‬ﻧﻘﻮم ﺑﺎﻟﻌﻤﻠﯿﺔ اﻟﻌﻜﺴﯿﺔ ‪ ،‬ﻟﻨﻔﻚ اﻟﺸﻔﺮه اﻟﻨﺎﺗﺠﮫ ﻣﻦ ﻋﻤﻠﯿﮫ اﻟﺘﺸﻔﯿﺮ اﻟﺴﺎﺑﻘﺔ‪:‬‬
‫‪RYEAN CCVKO AUPXK YXW‬‬

‫ﻧﺒﺪأ ﺑﺄﺧﺬ اﻟﺤﺮف اﻷول وﻧﺸﺎھﺪ اﻟﺠﺪول وﻧﺄﺧﺬ اﻟﺤﺮﻓﯿﻦ اﻟﺬي ﻧﻘﻄﮫ ﺗﻘﺎﻃﻌﮭﻤﺎ اﻟﺤﺮف اﻟﻤﺮاد ‪،‬‬
‫وﻧﻀﻊ اﻟﺤﺮف اﻷول ﻓﻲ اﻟﺼﻒ اﻷول ‪ ،‬و اﻟﺤﺮف اﻟﺜﺎﻧﻲ ﻧﻀﻌﮫ ﻓﻲ اﻟﺼﻒ اﻟﺜﺎﻧﻲ ‪ ،‬وھﻨﺎ أول‬
‫ﺣﺮف ﻓﻲ اﻟﺸﻔﺮه ھﻮ ‪ ، R‬ﻧﻨﻈﺮ إﻟﻰ اﻟﺠﺪول ‪ ،‬ﻧﻼﺣﻆ أن اﻟﺤﺮﻓﯿﻦ ‪ D‬و ‪ C‬ﻧﻘﻄﮫ ﺗﻘﺎﻃﻌﮭﻤﺎ ھﻮ ‪، R‬‬
‫ﻟﺬﻟﻚ ﻧﻀﻊ اﻟﺤﺮف اﻷول ‪ D‬ﻓﻲ اﻟﺼﻒ اﻷول ‪ ،‬واﻟﺤﺮف اﻟﺜﺎﻧﻲ ‪ C‬ﻓﻲ اﻟﺼﻒ اﻟﺜﺎﻧﻲ ‪ ،‬وﻧﺴﺘﻤﺮ‬
‫ﺑﮭﺬه اﻟﻄﺮﯾﻘﮫ ‪ ،‬إﻟﻰ أن ﻧﻨﺘﮭﻲ ‪ .‬واﻟﻨﺎﺗﺞ ھﻮ ‪:‬‬

‫‪60‬‬
‫‪PDF created with pdfFactory Pro trial version www.pdffactory.com‬‬
‫‪DE AA CA AE CC AE DE CE EE‬‬
‫‪CE EA DC CB AE AA AD AE DC‬‬

‫اﻵن ﻧﺒﺪأ ﺑﻔﻚ اﻟﺘﺸﻔﯿﺮ ﻣﻦ اﻟﺼﻒ اﻷول ‪ ،‬ﻧﺄﺧﺬ ﺑﻠﻮك ﺑﻠﻮك ﻣﻦ اﻟﺼﻒ اﻷول ‪ ،‬وﻋﻨﺪﻣﺎ ﯾﻨﺘﮭﻲ ﻧﺒﺪأ‬
‫ﺑﺎﻟﺼﻒ اﻟﺜﺎﻧﻲ ‪:‬‬
‫‪DE map to T‬‬
‫‪AA map to A‬‬
‫‪CA map to K‬‬
‫وھﻜﺬا‪...‬‬

‫ﻟﯿﻨﺘﺞ ﻟﺪﯾﻨﺎ اﻟﻨﺺ اﻷﺻﻠﻲ ‪TAKEMETOYOURLEADER :‬‬

‫ﻗﻢ ﺑﺘﺮﺗﯿﺒﮫ ﺑﺤﯿﺚ ﯾﺼﺒﺢ ﻣﻘﺮوء ‪ ،‬ﻟﯿﻨﺘﺞ‪TAKE ME TO YOUR LEADER :‬‬

‫ھﺬه اﻟﺸﻔﺮه اﻟﺴﺎﺑﻘﺔ ‪ ،‬ﻣﺸﺎﺑﮫ ﻟﺸﻔﺮه أﻟﻤﺎﻧﯿﺔ اﺳﺘﺨﺪﻣﺖ ﻓﻲ اﻟﺤﺮب اﻟﻌﺎﻟﻤﯿﺔ أﺳﻤﮭﺎ ‪ADFGVX‬‬
‫وﻋﻠﻰ اﻟﺮﻏﻢ ﻣﻦ ﺑﺴﺎﻃﺔ اﻟﻔﻜﺮة ‪،‬اﻹ إﻧﮭﺎ ﻋﻘﺪت ﻛﺎﺳﺮي اﻟﺸﻔﺮه ﻟﻔﺘﺮة ﻣﻦ اﻟﺰﻣﻦ ‪ .‬وﻟﻜﻨﮭﺎ ﻛﺴﺮت‬
‫ﻓﻲ اﻟﻨﮭﺎﯾﺔ ﻋﻠﻰ ﯾﺪ ﻛﺎﺳﺮ ﻓﺮﻧﺴﻲ ‪ ،‬ﻟﻜﻦ ﺑﻌﺪ أﺧﺬ اﻟﻜﺜﯿﺮ ﻣﻦ اﻟﻮﻗﺖ واﻟﺠﮭﺪ ﻓﻲ اﻟﻤﺤﺎوﻻت‪.‬‬

‫ﺍﻟﺸﻔﺮﻩ ﺍﻷﻣﻨﻪ ‪THE ONE-TIME PAD‬‬


‫)اﻟﻜﺜﯿﺮ ﻣﻦ اﻟﺘﺮﺟﻤﺎت ﺗﺘﺮﺟﻢ ھﺬه اﻟﺸﻔﺮه ب "ﺷﻔﺮه اﻟﻮﺳﺎدة اﻟﻜﺎﻣﻠﺔ" ‪ ،‬وھﻲ ﺗﺮﺟﻤﮫ ﺳﯿﺌﺔ‬
‫ﻟﻠﻐﺎﯾﺔ ( ‪.‬‬

‫ھﺬه اﻟﺸﻔﺮه ھﻲ اﻟﺸﻔﺮه اﻷﻛﺜﺮ أﻣﺎﻧﺎ ﻋﻠﻰ ﻣﺪى ﺗﺎرﯾﺦ اﻟﺘﺸﻔﯿﺮ ‪ ،‬ﻟﻢ وﻟﻦ ﯾﺴﺘﻄﯿﻊ أﺣﺪ ﻛﺴﺮ ﺷﻔﺮات‬
‫ھﺬا اﻟﻨﻮع أﺑﺪا ‪ ،‬واﺳﺘﺨﺪﻣﺖ ھﺬه اﻟﺸﻔﺮات ﻓﻲ اﻟﻜﺜﯿﺮ ﻣﻦ اﻟﺤﻜﻮﻣﺎت وأﺟﮭﺰه اﻻﺳﺘﺨﺒﺎرات ﻛﻤﺎ‬
‫ﻗﺮأت ﺳﺎﺑﻘﺎ ﻋﻨﮭﺎ‪.‬‬

‫ﻃﺮﯾﻘﮫ اﻟﺸﻔﺮه ﻛﺎﻟﺘﺎﻟﻲ ‪ ،‬ھﻮ ﻋﻤﻞ )ﻣﺜﻼ ﻧﻄﻠﻖ ﻋﻠﯿﮫ( ﻛﺘﺎب ‪ ، one-time pad‬ﺑﺪاﺧﻞ ھﺬا اﻟﻜﺘﺎب‬
‫ﺗﻮﺟﺪ ﺻﻔﺤﺎت ‪ Sheets‬ﺑﺪاﺧﻞ ﻛﻞ ﺻﻔﺤﮫ ﻣﻦ ھﺬه اﻟﺼﻔﺤﺎت أرﻗﺎم ﻋﺸﻮاﺋﯿﺔ ﻻ ﺗﺘﻜﺮر أﺑﺪا ‪ ،‬ھﺬه‬
‫اﻷرﻗﺎم اﻟﻌﺸﻮاﺋﯿﺔ ﺗﻤﺜﻞ اﻻزاﺣﮫ اﻟﻤﺴﺘﺨﺪﻣﺔ )أي ﻛﻞ رﻗﻢ ﻣﻨﮭﺎ ھﻮ ﻣﻔﺘﺎح( ‪.‬‬

‫ﻓﻲ ﺣﺎل ﺷﻔﺮت ﻧﺺ ﺑﮭﺬه اﻟﻄﺮﯾﻘﮫ أﻗﻮم ﺑﺈرﺳﺎل اﻟﻨﺺ اﻟﻤﺸﻔﺮ و رﻗﻢ اﻟﺼﻔﺤﺔ إﻟﻰ اﻟﻄﺮف اﻷﺧﺮ‬
‫‪ ،‬وأﻗﻮم ﺑﻘﻄﻊ اﻟﺼﻔﺤﺔ ﻣﻦ اﻟﻜﺘﺎب وأﺣﺮﻗﮭﺎ ﺑﺎﻟﻨﺎر ‪ ،‬اذا ﻟﺰم اﻷﻣﺮ ‪ ، J‬أي ﯾﺘﻢ اﻟﻘﻀﺎء ﻋﻠﯿﮭﺎ ‪.‬‬

‫واﻟﻄﺮف اﻷﺧﺮ ﯾﻜﻮن ﻟﺪﯾﮫ ﻧﺴﺨﮫ ﻣﻤﺎﺛﻠﮫ ﻣﻦ اﻟﻜﺘﺎب ‪ ، one-time pad‬وﯾﻘﻮم ﺑﻔﻚ اﻟﺘﺸﻔﯿﺮ ﻋﻦ‬
‫ﻃﺮﯾﻖ رﻗﻢ اﻟﺼﻔﺤﺔ ‪ ،‬و ﺑﻌﺪﻣﺎ ﯾﺘﻢ ﻓﻚ اﻟﺘﺸﻔﯿﺮ واﻟﺤﺼﻮل ﻋﻠﻰ اﻟﻨﺺ اﻷﺻﻠﻲ ‪ ،‬ﯾﺘﻢ أﯾﻀﺎ ﻗﻄﻊ‬
‫اﻟﺼﻔﺤﺔ أﯾﻀﺎ‬

‫ﻣﺜﺎل ‪ ،‬ﻟﺪي اﻟﺸﻔﺮه اﻟﺘﺎﻟﯿﺔ ‪ENGAGE WARP DRIVE :‬‬

‫‪61‬‬
‫‪PDF created with pdfFactory Pro trial version www.pdffactory.com‬‬
‫واﻟﺼﻔﺤﺔ اﻷوﻟﻰ ﺗﺘﻜﻮن ﻣﻦ‪:‬‬
‫‪9 20 13 0 21 1 13 19 9 5 25 12 25 4 7 25 0 8 8 7 24 2 6 18 16 10 23 5 11‬‬
‫‪12 13 6 22 22 17 3 8 0 0 19 4 15‬‬

‫أﻗﻮم ﺑﺠﻤﻊ اﻟﺤﺮف اﻷول ‪ E‬ﻣﻊ اﻟﺮﻗﻢ اﻷول ‪ 9‬ﻟﯿﻨﺘﺞ ‪ ، N‬و أﺟﻤﻊ اﻟﺤﺮف اﻟﺜﺎﻧﻲ ‪ N‬ﻣﻊ اﻟﺮﻗﻢ‬
‫اﻟﺜﺎﻧﻲ ‪ 20‬ﻟﯿﻨﺘﺞ ‪ . H‬وھﻜﺬا‪....‬‬

‫اذا ﺗﺒﻘﺖ أرﻗﺎم ﻓﻲ اﻟﺼﻔﺤﺔ ‪ ،‬أو ﻟﻢ ﺗﺒﻘﻰ ھﻨﺎك أي أرﻗﺎم ‪ ،‬أﻗﻮم ﺑﺘﺪﻣﯿﺮ اﻟﺼﻔﺤﺔ ‪،‬‬

‫ﺷﻜﻞ اﻟﻨﺺ ﺑﻌﺪ اﻟﺘﺸﻔﯿﺮ‪:‬‬

‫وھﻜﺬا ﻧﻼﺣﻆ أﻧﮫ ﯾﺴﺘﺤﯿﻞ ﻛﺴﺮ اﻟﺸﻔﺮه ھﻨﺎ ‪ ،‬ﻷن اﻟﻤﻔﺘﺎح ﻋﺸﻮاﺋﻲ وﻟﻦ ﯾﺘﻜﺮر أﺑﺪا ‪ ،‬وﻓﻲ ھﺬه‬
‫اﻟﺤﺎﻟﺔ ﻟﻦ ﯾﺘﻢ ﻛﺴﺮ اﻟﺸﻔﺮه‪.‬‬

‫ھﺬه اﻟﻄﺮﯾﻘﮫ ﻟﻦ ﺗﺴﺘﺨﺪم ھﺬه اﻷﯾﺎم ﺑﺴﺒﺐ ﺻﻌﻮﺑﺔ اﻻﺣﺘﻔﺎظ ﺑﮭﺬا اﻟﻜﺘﺎب ‪ ،‬وﺻﻌﻮﺑﺔ إرﺳﺎﻟﮫ إﻟﻰ‬
‫اﻟﻄﺮف اﻷﺧﺮ ‪ ،‬أﯾﻀﺎ ﺻﻌﻮﺑﺔ أﺿﺎﻓﮫ ﺻﻔﺤﺎت ﺟﺪﯾﺪة ﻓﯿﮫ‪.‬‬

‫وﻟﻜﻦ ﻓﻲ ﺣﺎﻟﮫ ﻛﻨﺖ ﻣﺮﺳﻞ ﻛﺘﺎب إﻟﻰ اﻟﻄﺮف اﻷﺧﺮ ﻣﻦ ﻗﺒﻞ ‪ ،‬ﯾﻤﻜﻨﻚ إرﺳﺎل ﺷﻔﺮات ﺑﮭﺬا اﻟﻨﻮع ‪،‬‬
‫وﻟﻦ ﯾﻜﺸﻔﮭﺎ أي أﺣﺪ ﻋﻠﻰ اﻹﻃﻼق ‪ ،‬إﻻ ﻓﻲ ﺣﺎل أﻧﻜﺸﻒ اﻟﻜﺘﺎب )‪! ( one-time pad‬‬

‫‪62‬‬
‫‪PDF created with pdfFactory Pro trial version www.pdffactory.com‬‬
‫ﺃﺳﺌﻠﺔ ﺷﺎﻣﻠﻪ ﻟﻜﻞ ﺍﻟﻤﻮﺿﻮﻉ‬

: ‫ ﻋﻠﻤﺎ ﺑﺄﻧﮭﺎ ﻣﺸﻔﺮه ﺑﺨﻮارزﻣﯿﺔ ﻗﯿﺼﺮ‬، ‫ﻗﻢ ﺑﻔﻚ ھﺬه اﻟﺸﻔﺮه‬


MXXFT QQHUX WMDYM QHQDO DQMFQ PNKYQ EUZOQ ARAXP AZMOO AGZFA RYKNQ
SUZZU ZSXQE ESDQQ PTMFD QPMZP USZAD MZOQN ADZAR YKOAZ PGOFE BQQOT
MZPFT AGSTF UZAIO AZRQE EABQZ XKMZP RGXXK

‫ ﻗﻢ ﺑﻔﻜﮭﺎ‬، simple Vigenere cipher ‫ھﺬه اﻟﺸﻔﺮه ﻣﺸﻔﺮه ﺑﺨﻮارزﻣﯿﺔ ﻓﺠﯿﻨﯿﺮ‬


(‫)أﺳﺘﺨﺪم ﻃﺮﯾﻘﮫ ﻛﺴﯿﺴﻜﻲ ﻟﻤﻌﺮﻓﮫ ﻃﻮل اﻟﻤﻔﺘﺎح‬
SSQYN ASXES RBFOR SOUYK VTAKO QVKSZ WOQSF VNOBB BRWKB BRCQS
QSOSF WJYSX FHKYS YGODI FSUMD BJJOD FQCWN IBSDO HSPBW XBDIL
MWQGP FZNVD DOSGO NEZSB JJSBQ FSXUW QOIOZ VLBIN TSBTP VBKUV
OXKOJ KDFMZ UCUBB DVITS PKTHC ZPZCB FWZVZ YCLMW HJOSO VBQCE
SGSSO BIWCS FDISC BZOBN DFMZU CUBBD VIORS NJHWY OBSGZ CFUTD
FSOUS BWSFV BUAOO SNOTO ZPSSR FBBCY SGQRP HDKVZ OXEJO XTHCX
FGQYU HVKOR PYPYC PBDDV JSRMS MDDPU FKQVM MSQDB FGGBP GSXLS
BXFHV OMSAO OHOBZ BIWCS FDISC BZOBN JHGKQ DZSDO HSPBG LPGHY
OORNJ GCXXS GVFMF YTWBQ NWQRB SZSND ZONSB DJBUO MZWZU WQMVF
JODFM ZUCUB BDVIH FSOOK WMIAO XOWBQ TAWDI FWMIO FNJBH OSBSD
DFMZU CUBBD VICCG DPBON EWGYO KSCMS MCUOZ VJBUC XWZVJ OAMSM
DDPUF KQVMK ORBOU KCBLG SMVFW DZBRO EWHSP BIZQS FCBRR VFFWF
FFDBF BHSDS VKMZG DFDSX TCBXF OZMSM DDPBC WJQCX OSKIP FYZFF
SXOWO VUFOZ QSKKE SOXEK OCIWB QUCBV BKFOO QSSOH FYEIQ DJCBD
PQFIQ HCQSO DRZKW DIQCN JBUDI SCBZI DZFFG KERZO SWJOS DFOOH
WMFVO VMKOI OSFZF HSBEW GKQDS KSWBQ DFMZU CUBBD VIDVS CUBID
IWZVB DDBPT SCTWC XBZ

‫ ﻗﻢ ﺑﻤﻌﺮﻓﮫ اﻟﻤﻔﺘﺎح‬Auto-Key Vigenere Cipher ‫ھﺬه اﻟﺸﻔﺮه ﻣﺸﻔﺮه ﺑﺨﻮارزﻣﯿﺔ‬


:‫اﻷﺳﺎﺳﻲ ﺑﻌﺪھﺎ ﻗﻢ ﺑﻔﻚ اﻟﺸﻔﺮه‬

TVWFP VVHZD PZXLX ADBSS SSWBW KAABS DXZFG ANWTZ PWEKV AEOEA
PIOBZ TALSV XUIFW AYEMU MFWAY EMWLT AMMNL HGAHX QILIG PPXFQ
ZMEAD XUXCM RSJHZ XLXCW HKNEH YKZMB OEDXZ FGANW TZPWE MOGWO
EAPKH HRTAL SVXUI FWAYE MUMFW AYEMW LTAMM NLHGA HXQIL IGPPX
FSSSW BWKAA BS

:‫ ﻗﻢ ﺑﻔﻜﮭﺎ‬Monoalphabetic Cipher ‫ھﺬه اﻟﺸﻔﺮه ﻣﺸﻔﺮه ﺑﺨﻮارزﻣﯿﺔ‬


ULNEA YTWPX TFNUR WBPHN BPEXE YRKXB PANXE YRKFX HNENW WPETF
NUULN BKRFN YZNKU LNSXW LYSUL NWNPP ETULN GXKTW YSULN PXKYZ
NKULN FXZNW UYIHY ZNKPF FULNN PKULP ETYZN KPFFU LNIKN PURKN
WULPU BYZNP FYEAU LNAKY RETWY AYTIK NPUNT BPEXE LXWYD EXBPA
NXEUL NXBPA NYSAY TLNIK NPUNT LXBBP FNPET SNBPF NLNIK NPUNT
ULNBA YTGFN WWNTU LNBPE TWPXT UYULN BGNSK RXUSR FPETX EIKNP
WNXEE RBGNK SXFFU LNNPK ULPET WRGTR NXUKR FNYZN KULNS XWLYS
ULNWN PPETU LNGXK TWYSU LNPXK PETYZ NKNZN KJFXZ XEAIK NPURK
NULPU BYZNW YEULN AKYRE TULNE AYTWP XTXAX ZNJYR NZNKJ WNNTG
NPKXE AMFPE UYEUL NSPIN YSULN DLYFN NPKUL PETNZ NKJUK NNULP
ULPWS KRXUD XULWN NTXEX UULNJ DXFFG NJYRK WSYKS YYTPE TUYPF

63
PDF created with pdfFactory Pro trial version www.pdffactory.com
FULNG NPWUW YSULN NPKUL PETPF FULNG XKTWY SULNP XKPET PFFUL
NIKNP URKNW ULPUB YZNYE ULNAK YRETN ZNKJU LXEAU LPULP WULNG
KNPUL YSFXS NXEXU XAXZN NZNKJ AKNNE MFPEU SYKSY YTPET XUDPW
WYAYT WPDPF FULPU LNLPT BPTNP ETXUD PWZNK JAYYT PETUL NKNDP
WNZNE XEAPE TULNK NDPWB YKEXE AULNW XOULT PJ

: ‫ ﻗﻢ ﺑﻔﻜﮭﺎ‬Playfair Cipher ‫ھﺬه اﻟﺸﻔﺮه ﻣﺸﻔﺮه ﺑﺨﻮارزﻣﯿﺔ ﺑﻼﻓﯿﺮ‬


PK QT OX OK KR QK ZX BI OZ BZ ZO EK KQ KP ZO IB ZO KG ZS VL HR
OR HY EK RK RU PH BO OW IH KR YK FW EK OI NR KR YK FW EK AF AX
AT VA KU GX OW YH VM EI FL HT QT XG AB LO LZ RH EK KU AE MF QH
AI EK HY KY QE OW IH KR UG FT ZN AI ZS FC LO TL PH TF BZ LZ RH
EK RQ OR RH OL CI ZS XL OF VD RE IK KR HR QK OD VK RO CI EK RH
RQ LO OD VK KZ LI OL NR RL KI EK HU XZ KE AF XK SI LI OW VC KU
QE FW OR HY EK HU XZ KE MW AZ EK HY FW TB KU GX ZS VL LS DS HY
EK HU XZ KE FL FU CI EK HY FW TB KU GX KR WL SD UH IC XZ KE OW
IH KR HR AF UK PH OZ BZ OW IH KR HR AF AG AT OZ BZ EK RY FT OK
FL FU CI ZS XL OF VD RE IK KR HR QK OW KY MU BO KQ RE QR YK ON
KR AF ER KA NI UK MU WF ER AF ER WM TA RA OR RH OU ZS FV LF RE
KR YK YG OW UK OW XL QE FW OR HY EK RQ OR RH OQ YH HE KR YK YG
OW UK MW AZ EK RQ OR RH SW LZ TY RO CI ZN AF XG OU ZS VL LS DS
HY EK KY KY MU BO KU EX OW IH KR HR AF UK PH OZ BZ OW IH KR HR
AF AG AT OZ BZ EK KU HQ IO XI FL FU CI ZS XL OF VD RE IK KR AF
ER EA CI RH EK KU EX QK MS EK RH HY NI IS QT VU LW RU CI UH HI
EF MK UA CI UM YG RU WF CI ZN AF XG OU ZS VL LS DS HY EK HY EF
MK UA CI SL CI OW IH KR MS EK RH HY AF ER KA KR WL SD UH XL RU
OL CI ZS XL FA EK OR ZN AF XK SI LI EK TQ ZS XL OF VD RE IK KR
SL CI ME LI LQ HP KP RE OR ZI BO KY HY QK FW ZO ZM SL ON OL CI
EH KY KU IO EK HU OW IH RL KN RU WM EA ZN NF EK UK YK XY OZ RO
BD NL HF ZO ZK IN KR FT ML TF UA XB ZO XL OW XY RN LO GX IN KR
SL CI ME LI LQ HY PH PK RO NZ IO VU OW KO QK FW ZO KX KY HY LW
DB AT XY BZ NI EK TY HT ZO XL OW IH HR YK XS RU TF BZ MW OY RN
ZN KL KY HY ZO ZN LW DB AT XY BZ NI EK TY HT ZO XL OW XV LI OL
NR RL NZ RN LO ZS IS FL CI EK RH RQ LO HP TQ ZO MS CI EK RH RQ
LO ZA TW ZO ZK KR EK FT XI FL FU CI ZS XL OF VD RE IK KR HR QK
OD VK KO ZO EK KY KY MU BO TU IR KR XB IE UO QE FW OR RE KR FL
FD TA ZR KR OZ VK RO CI UH KI EK RP UK HM RU XG OX ZB OK AZ FW
BX RU OU BO OW XI FL XU OW XF RU KA OW VD RE IK KR GW HU XZ KE
OX ON KR YK YG OW UK AI EK KU EX NI ZX PH OD VK NI ON KR YK FW
EK OW XY RN LO GX SZ LI RF YH RN SZ HR OR OD VK KO EK KP HR OR
RH OD VK KI NI ZS PH TW EK HY UF OW IH KR UH XG UK HA XZ KE IK
SZ LZ RH ON KR OZ VK EK RU SO AZ LF RE KR OK FW XK LI UK KI EK
RP ZO EK KY KY MU BO TU IR KR XB IE SZ DZ HU XZ KE IO EK KY RU
HE KE SZ LZ RH ON KR FL FU CI EK TQ XZ KE OW IH UO QE FW OR HU
XZ KE MW AZ FL HT QT XG OL CI ZS XL FA EK OR ZN AF XK SI LI OW
IH KR HR AF UK PH OZ BZ OW IH KR HR AF AG AT OZ BZ EK RY UA HE
CV UF OW XV LI OL YX UH KI EK RQ OR RH ER YK RA ZN CD DZ ZO VB
HR OR AE KU OW VD RE NX HF AX UD SW LZ RE KR YK FW EK LW TA XG
OK KR YK YG OW UK AI EK KU EX OU ZS VL HR OR HY EK KP HR OR WH
RU EO HR OU IR KR UK SF OW YH PH EF OD ZD BZ OW FV LZ ZO ZK TD
BZ NF EK CR DN KE KR AF ER HE KY RP OL BD NL HF ZO ZK IN KR FT
TX CI OL CI HP RH FQ ZO PK XC FT FL BD NL HF ZO ZK IZ KO TX CI
OW XV LI OL NR RL NZ RN LO ZS IS XV LI CS KU GX HY EK RP OW XL
OF XC RY EA ZN YA SL CI ZO WH RU UK ZO IB AP QK WF CI DY SD OH
KR AF ER TF ON KR UK LO OW VD RE IK KR NX HF OX QB HR LO TU ON
KR YK FW EK OW IH KR HR AF UK PH OZ BZ OW IH KR HR AF AG AT OZ
BZ EK RY YD EK FL FU CI ZS XL OF VD RE IK KR SL CI ME LI LQ HU
DZ ZO VB HR OR AE KU LW DB AT XY BZ NI EK TY HT ZO XL OD PH OK

64
PDF created with pdfFactory Pro trial version www.pdffactory.com
LN HB HR OR AE KU EK OR ZA PH LS IO ZK KR MK UA CI OW FC DO FL
OZ RF SO RU LC LW DB AT XY BZ NI ZN XB ZO FL CI ZN AF XG OU ZS
FV LF RE KR NF DV OW FZ LS OL BD NL HF ZO ZK IN KR FT TX CI OK
KR OD PH OK LN RS BD NL HF ZO ZK IN KR FT TX CI OL CI LS DS EK
HQ HR OR AE KU EK OR ZA PH LS IO ZK KR MK UA CI LW DB AT XY BZ
NI EK TY HT ZO XL OW XV LI OL NR RL NZ RN LO ZS IS IH KR BZ LI
OL YX UH EO AG SR RP OW ZO UA TF RF PK ZO UA HA XT TQ KU GX OW
VD RE IK KR RW AS TU PH HE KR DY LK AI EK KU RU FS CI EK KQ FT
XL AI EK RU FT LZ RH EK HU DZ KU NI BH LZ RH LS DS EK KY RU HE
RL CI LZ RH LS DS EK HQ HR OR AE KU EK OR ZA PH LS IO ZK KR MK
UA CI OU ZS VL HR OR HY RF OZ CT XO AN OZ RF PK ZO EK TY RF PK
AI ZS VC HQ HR OR HY TD GF RF UH OW XD RP LS RK HQ HR OR HY EK
RP ZS XC UH XG UK IH KR RF CI OL YX NI EK RP QK MW OY RI AS OW
XY QB HR LO TY BI QO GW RH DY SD OH KR YK FW EK OW XL SQ YL TY
EH AS TU PH HE KR DY LK AI EK KU RU FS CI EK KQ FT XL AI EK RU
FT OW IL PH HR PH EF OD ZD BZ WH RU EO HR EK OR ZA PH OU ON KR
MK UA CI EK TQ ZS XL OF XY ZX PH IU YQ PH EF UK YK XC RU TF BZ
VU OW NI ON KR MF QH AI EK RQ TL UH YK FW EK OW YH PH EF EH KY
RE RL EK LO MW OY RN ZN KL KY HY ZO ZN IK KR FQ DO DS QK IU AE
AX AT IA IS FL CI NI LS DS EK KQ RU OK OU IR KR YK FW EK OW FL
SD OH KR NX HF OU IR KR OF WF CI LS DS EK HQ HR OR AE KU EK OR
ZA PH IO EK KP TA OQ YH PH EF EK ZO ZK RL EK LO EK KQ HR OR TL
DA YD TY OZ NZ ZX PH YK PH EF MK KY TQ VU OW RI AT IA IS FL CI
ZN AF XG OU ZS XL FA LS DS EK OR KR RL FV LF RU CI ZN AF LG RH
XP SI LI OW IH KR HR AF UK PH OZ BZ OW IH KR HR AF AG AT OZ BZ
EK KU YI EK FL FI

‫ ﻋﻠﯿﻚ ﺑﻄﺒﺎﻋﮫ اﻟﺸﻔﺮات ﺣﺘﻰ ﺗﺴﺘﻄﯿﻊ ﻋﺪ اﻟﺤﺮوف واﻟﺤﻞ ﺑﺪﻗﮫ‬، ‫ ﻓﻲ ﺣﺎل أردت اﻟﺤﻞ‬، ‫ﻃﺒﻌﺎ‬
. ‫أﻛﺒﺮ‬

65
PDF created with pdfFactory Pro trial version www.pdffactory.com
‫ﺍﻟﻘﺴﻢ ﺍﻟﺜﺎﻟﺚ ‪ :‬ﺍﻟﺘﻄﺒﻴﻖ ‪Implementation‬‬

‫ﻓﻲ ھﺬا اﻟﺠﺰء ‪ ،‬ﺳﻮف ﻧﺘﻨﺎول ﺗﻄﺒﯿﻖ ﺟﻤﯿﻊ اﻟﺸﻔﺮات اﻟﺘﻲ ﺗﻄﺮﻗﻨﺎ ﻟﮭﺎ ﻓﻲ اﻟﻘﺴﻢ اﻷول ﻣﻦ اﻟﻜﺘﯿﺐ‬
‫‪ ،‬ﻋﻠﻤﺎ ﺑﺄن ﺗﻄﺒﯿﻖ ھﺬه اﻟﺸﻔﺮات ﺳﻮف ﯾﻜﻮن ﺑﻠﻐﮫ ﺳﻲ‪ ، ++‬وﻟﻦ ﻧﺴﺘﺨﺪم ﺳﻮى ﻣﻔﺎھﯿﻢ أﺳﺎﺳﯿﮫ‬
‫ﻓﻲ اﻟﻠﻐﺔ وﺗﺠﺎھﻠﻨﺎ ﻧﻘﺎط ﻗﻮه اﻟﻠﻐﺔ )ﻣﺜﻞ ﻣﻔﺎھﯿﻢ ‪ ( Exception , Template , oop‬ﻓﺎﻟﻐﺮض‬
‫ھﻨﺎ ﺷﺮح ھﺬه اﻟﺸﻔﺮات ﺑﺄﺳﮭﻞ أﺳﻠﻮب ﻣﻤﻜﻦ ‪ .‬ﻋﻠﻤﺎ ﺑﺄن اﻟﺒﺮاﻣﺞ ﻛﺎﻣﻠﺔ ﻣﻮﺟﻮدة ﻣﺮﻓﻘﮫ ﻣﻊ‬
‫اﻟﻜﺘﯿﺐ ‪ ،‬وﺳﻨﺘﻌﺮض ھﻨﺎ أھﻢ أﺟﺰاء ﻓﻲ اﻟﺸﻔﺮات ‪.‬‬

‫ﻟﻘﺪ ﺣﺎوﻟﺖ ﺟﻌﻞ ھﺬه اﻟﺸﻔﺮات ﻣﻜﺘﻮﺑﺔ ﺑﺄﺳﻠﻮب ‪ (Keep It Simple Stupid) KISS‬وﻟﻜﻦ‬
‫ﻋﻠﻰ ﻣﺎ ﯾﺒﺪوا أﻧﮭﺎ ﺧﺮﺟﺖ ﺑﺸﻜﻞ ‪ .J Quick And Dirty‬ﻋﻠﻰ اﻟﻌﻤﻮم ھﻲ ﺗﻌﻤﻞ ﺗﻤﺎﻣﺎ‬
‫وﺑﺪون أي أﺧﻄﺎء ‪.‬‬

‫ﻓﻲ ﺟﻤﯿﻊ اﻟﺸﻔﺮات اﻟﺘﻲ ﺳﻮف ﻧﻌﺘﻤﺪھﺎ ھﻨﺎ ‪ ،‬ﺳﻮف ﯾﻜﻮن اﻟﻨﺺ اﻷﺻﻠﻲ واﻟﻤﺸﻔﺮ ﺑﺎﻟﺤﺮوف‬
‫اﻟﻜﺒﯿﺮة ‪ ، Capital Letter‬وھﻲ اﻟﺤﺮوف اﻟﺘﻲ ﺗﺒﺪأ ﻗﯿﻢ اﻷﺳﻜﻲ ﻣﻦ ‪ ، 65‬أﻣﺎ اذا أردت أن‬
‫ﺗﺘﻌﺎﻣﻞ ﻣﻊ اﻟﺤﺮوف اﻟﺼﻐﯿﺮة ﻓﮭﻲ ﺗﺒﺪأ ﻣﻦ ‪ . 97‬وﻣﻤﻜﻦ ﺗﺘﻌﺎﻣﻞ ﻣﻊ اﻟﻨﻮﻋﯿﻦ ‪ ،‬وذﻟﻚ ﺑﻮﺿﻊ‬
‫ﺟﻤﻠﮫ ‪ if‬داﺧﻞ ﺣﻠﻘﺔ اﻟﺘﺸﻔﯿﺮ ‪ ،‬واﻃﺮح ‪ 65‬ﻓﻲ ﺣﺎل ‪ capital‬و‪ 97‬ﻓﻲ ﺣﺎل ‪. small Letter‬‬
‫ﻗﺎﺋﻤﮫ اﻷﺳﻜﻲ ﻣﺮﻓﻘﮫ ﻓﻲ ﻧﮭﺎﯾﺔ اﻟﻜﺘﯿﺐ ‪.‬‬

‫ﯾﺠﺐ ﻋﻠﯿﻚ ﻗﺮاﺋﮫ اﻟﻔﺼﻞ اﻷول واﻟﺜﺎﻧﻲ ﻓﻲ ﺣﺎل أردت ﻗﺮاءه ھﺬه اﻟﺸﻔﺮات ‪ ،‬ﻷن أﻏﻠﺒﮭﺎ ﻋﺒﺎرة‬
‫ﻋﻦ ﻓﻜﺮه ﻣﺎ ‪ ،‬وﺗﻄﺒﯿﻘﮭﺎ ﺳﮭﻞ ﺟﺪا ﻟﻤﻦ ﻋﺮف أو ﻓﮭﻢ اﻟﻔﻜﺮة ‪ ،‬ﻟﺬﻟﻚ ﻗﻢ ﺑﻘﺮاءة اﻟﻔﺼﻞ اﻷول‬
‫واﻟﺜﺎﻧﻲ ‪ ،‬وﺳﻮف ﺗﺠﺪ اﻟﺸﻔﺮات اﻟﺘﺎﻟﯿﺔ ﻓﻲ ﻣﻨﺘﮭﻰ اﻟﺒﺴﺎﻃﺔ ﻷﻧﮭﺎ ﻣﺠﺮد ﺗﻄﺒﯿﻖ ‪ .‬أو ﻋﻠﻰ أﻗﻞ ﺗﻘﺪﯾﺮ‬
‫اذا ﻛﻨﺖ ﺗﺒﺤﺚ ﻋﻦ ﻛﻮد ﻷﺣﺪ اﻟﺸﻔﺮات ‪ ،‬ﻗﻢ ﺑﻘﺮاءﺗﮭﺎ ﻓﻲ اﻟﻔﺼﻞ اﻟﺜﺎﻧﻲ ‪ ،‬وﻣﻦ ﺛﻢ أﻗﺮا ﺗﻄﺒﯿﻘﮭﺎ ھﻨﺎ ‪.‬‬

‫أﯾﻀﺎ ﻓﻲ ﺣﺎﻟﺔ ﻟﻢ ﺗﻈﮭﺮ اﻷﻛﻮاد ﺑﺸﻜﻞ ﻣﻨﺎﺳﺐ ﯾﻤﻜﻨﻚ ﺗﻜﺒﯿﺮ اﻟﺮؤﯾﺔ ﻟﺘﺮاھﺎ ﺑﻮﺿﻮح أﻛﺒﺮ ‪.‬‬

‫‪66‬‬
‫‪PDF created with pdfFactory Pro trial version www.pdffactory.com‬‬
‫ﺍﻟﺘﻌﺎﻣﻞ ﻣﻊ ﺍﻟﺤﺮﻭﻑ ‪: characters‬‬
‫ﻓﻲ ﺟﻤﯿﻊ ﺑﺮاﻣﺞ اﻟﺘﺸﻔﯿﺮ اﻟﻘﺎدﻣﺔ ‪ ،‬ﺳﻮف ﻧﺤﺘﺎج إﻟﻰ ﻗﺮاءه اﻟﻨﺺ اﻷﺻﻠﻲ )ﺳﻮاء ﺗﻢ إدﺧﺎﻟﮫ ﻣﺒﺎﺷﺮه‬
‫ﻣﻦ ﻟﻮﺣﮫ اﻟﻤﻔﺎﺗﯿﺢ ‪ ،‬أو ﺗﻢ ﻗﺮاءﺗﮫ ﻣﻦ ﻣﻠﻒ( ‪ ،‬وﻣﻦ ﺛﻢ ﺗﺸﻔﯿﺮه ﺑﺎﻟﺨﻮارزﻣﯿﺔ ‪ ،‬وﻣﻦ ﺛﻢ ﻃﺒﺎﻋﺔ اﻟﻨﺺ‬
‫اﻟﻤﺸﻔﺮ )ﻓﻲ اﻟﺸﺎﺷﺔ أو ﻓﻲ ﻣﻠﻒ ( ‪.‬ﻋﻤﻮﻣﺎ ﺳﻨﺴﺘﺒﻌﺪ اﻟﺘﻌﺎﻣﻞ ﻣﻊ اﻟﻤﻠﻔﺎت ھﻨﺎ ‪ ،‬ﻷن اﻟﻐﺮض ﺷﺮح‬
‫ﻃﺮﯾﻘﮫ اﻟﺘﺸﻔﯿﺮ ‪ ،‬وﻟﯿﺲ ﻛﯿﻔﯿﮫ إﻧﺸﺎء ﻣﻠﻔﺎت أو اﻟﺘﻌﺎﻣﻞ ﻣﻌﮭﺎ ‪.‬‬

‫وﻟﻜﻦ ﻗﺒﻞ أن ﻧﺒﺪأ ﻓﻲ ﺷﺮح اﻟﺨﻮارزﻣﯿﺎت ‪ ،‬ﯾﺠﺐ أن ﻧﺨﺘﺎر ﻃﺮﯾﻘﮫ ﻣﻨﺎﺳﺒﺔ ﯾﻤﻜﻨﻨﺎ ﻋﻦ ﻃﺮﯾﻘﮭﺎ‬
‫ﻗﺮاءه اﻟﻨﺺ اﻟﻤﺪﺧﻞ ﻣﻦ اﻟﻜﯿﺒﻮرد ‪ ،‬وﻷن اﻟﻤﺪﺧﻞ ھﻮ ﺣﺮوف ‪ Characters‬ﯾﺠﺐ أن ﻧﺨﺘﺎر ﻧﻮع‬
‫ﺑﯿﺎﻧﺎت ﻣﻨﺎﺳﺐ ‪ .‬وﻟﻐﺔ ﺳﻲ‪ ++‬ﺗﻤﺪﻧﺎ ﺑﻨﻮﻋﯿﻦ ﻟﻠﺘﻌﺎﻣﻞ ﻣﻊ اﻟﺤﺮوف أوﻟﮭﺎ ھﻮ ‪ char‬واﻷﺧﺮ‬
‫‪. string‬‬

‫اذا اﻟﺤﻞ اﻷول ‪ ،‬ھﻮ أن ﻧﻀﻊ اﻟﺤﺮوف اﻟﻤﺪﺧﻠﺔ ﻓﻲ ﻣﺼﻔﻮﻓﺔ ﺣﺮوف ‪ . array of char‬واﻟﺤﻞ‬
‫اﻟﺜﺎﻧﻲ ھﻮ أن ﻧﺪﺧﻞ اﻟﺤﺮوف ﻣﺒﺎﺷﺮه ﻓﻲ اﻟﻨﻮع ‪) string‬وھﻮ اﻷﺳﮭﻞ( ‪.‬‬

‫ﻟﻨﻠﻘﻲ ﻧﻈﺮه ﻋﻠﻰ اﻟﺤﻞ اﻷول ‪:‬‬

‫ﻃﺒﻌﺎ ﺗﻌﺮﯾﻒ ﻣﺼﻔﻮﻓﺔ ﺑﺨﺎﻧﺎت ﻣﺤﺪده ‪ ،‬أﻣﺮ ﻏﯿﺮ ﻋﻤﻠﻲ ‪ ،‬ﻷﻧﮫ رﺑﻤﺎ ﯾﻘﻮم اﻟﻤﺴﺘﺨﺪم ﺑﺈدﺧﺎل ﺣﺮوف‬
‫أﻛﺜﺮ ﻣﻦ ذﻟﻚ وﺑﺎﻟﺘﺎﻟﻲ ﯾﺤﺼﻞ ‪ ، overflow‬وﻓﻲ ﺣﺎﻟﮫ ﻗﻤﺖ ﺑﺘﻌﺮﯾﻒ ﻣﺼﻔﻮﻓﺔ ﻛﺒﯿﺮة ﻣﺜﻼ ‪200‬‬
‫ﺧﺎﻧﮫ ﻓﺴﻮف ﯾﻜﻮن ھﻨﺎك ﺧﺎﻧﺎت ﻓﺎرﻏﺔ ﺳﻮف ﯾﻜﻮن ھﺬا إھﺪار ﻟﻠﻤﺴﺎﺣﺔ ‪ ،‬ﻟﻜﻨﮫ أﻓﻀﻞ ﻣﻦ ال‬
‫‪ overflow‬ﻋﻠﻰ أﯾﺔ ﺣﺎل ‪.‬‬

‫أﻣﺮ أﺧﺮ اﺳﺘﺨﺪام اﻟﻜﺎﺋﻦ ‪ cin‬ﻓﻲ اﻟﺤﻠﻘﺔ أﻣﺮ ﻏﯿﺮ ﺟﯿﺪ ‪ ،‬ﻷﻧﮫ ﯾﺠﺐ أن أﺿﻐﻂ ‪ enter‬ﺑﻌﺪ ﻛﻞ‬
‫ﻋﻤﻠﯿﮫ إدﺧﺎل ‪ ،‬وھﺬا أﻣﺮ ﻏﯿﺮ ﺟﯿﺪ ‪ .‬ﻟﮭﺬا ﺳﻮف ﻧﺴﺘﺨﺪم داﻟﮫ ﻗﺮاءه ﻣﺜﻞ )(‪ ، getche‬ﻻﺣﻆ أن‬
‫اﻟﺪاﻟﺔ )(‪ getche‬ﺗﻈﮭﺮ اﻟﺤﺮف ﻋﻨﺪﻣﺎ ﯾﺘﻢ إدﺧﺎﻟﮫ ‪ ،‬ﺑﻌﻜﺲ اﻟﺪاﻟﺔ )(‪ getch‬اﻟﺘﻲ ﻻ ﺗﻈﮭﺮ اﻟﺤﺮف ‪.‬‬

‫ﻟﺬﻟﻚ ﯾﺼﺒﺢ اﻟﺤﻞ ﺑﻌﺪ اﺳﺘﺨﺪام اﻟﺪاﻟﺔ )(‪: getche‬‬

‫ﺑﻘﯿﺖ ﻣﺸﻜﻠﺘﺎن ‪ ،‬أوﻟﮭﻤﺎ ﺣﺠﻢ اﻟﻤﺼﻔﻮﻓﺔ ‪ ،‬واﻷﺧﺮى أﻧﮫ ﻓﻲ اﻟﻤﺜﺎل اﻟﺴﺎﺑﻖ ﻓﻲ ﺣﺎل أراد اﻟﻤﺴﺘﺨﺪم‬
‫أن ﯾﺪﺧﻞ ﻣﺜﻼ ‪ 3‬ﺣﺮوف ﻓﻘﻂ ‪ ،‬ﻓﺎﻧﮫ ﻻ ﯾﺴﺘﻄﯿﻊ ﻷﻧﮫ ﻣﺤﺪد ﺑﺤﻠﻘﮫ ﺗﻜﺮر ‪ 10‬ﻣﺮات ‪ ،‬ﯾﻌﻨﻲ ﺳﯿﺘﻢ‬
‫ﻗﺮاءه ‪ 10‬ﺣﺮوف ﻋﻀﺒﻦ ﻋﻨﮫ ‪J‬‬

‫‪67‬‬
‫‪PDF created with pdfFactory Pro trial version www.pdffactory.com‬‬
‫‪.‬‬
‫اﻟﺤﻞ اﻷﻣﺜﻞ ‪:‬‬

‫وھﻨﺎ ﺗﻜﻮن اﻟﻤﺼﻔﻮﻓﺔ ذات ﺣﺠﻢ ﻣﻨﺎﺳﺐ ‪ ،‬وﯾﺘﻢ اﻟﻘﺮاءة ﺣﺮف ﺑﺤﺮف إﻟﻰ أن ﯾﺘﻢ إدﺧﺎل ﺣﺮف‬
‫‪ carriage return‬واﻟﺬي ھﻮ ‪. enter‬‬

‫ﻻﺣﻆ أن اﻟﺪاﻟﺔ )‪ strlen(array‬ﺗﻘﻮم ﺑﺈرﺟﺎع ﻃﻮل اﻟﻤﺼﻔﻮﻓﺔ ‪ .‬أﯾﻀﺎ اﻟﺪاﻟﺔ )(‪ getche‬ﻣﻌﺮﻓﮫ‬
‫داﺧﻞ اﻟﮭﯿﺪر >‪ #include <conio.h‬ﻻ ﺗﻨﺴﻰ إﺿﺎﻓﺘﮫ واﻻ ﺳﯿﺸﺘﻜﻲ ﻣﻨﻚ اﻟﻤﺘﺮﺟﻢ ‪.‬‬

‫ﺑﻘﯿﺖ ھﻨﺎك اﻟﺘﺨﻠﺺ ﻣﻦ اﻟﻤﺴﺎﻓﺎت ﻣﻦ اﻟﻨﺺ اﻷﺻﻠﻲ ‪ ،‬وﺳﻮف ﻧﺘﻜﻠﻢ ﻋﻨﮭﺎ ھﻨﺎ وﻟﻦ ﻧﺬﻛﺮھﺎ ﻣﺮه‬
‫أﺧﺮى ‪ ،‬ﺣﯿﺚ أﻧﻚ اذا أدﺧﻠﺖ ﻣﺜﻼ ‪ ، wajdy essam‬ﯾﺠﺐ أن ﻧﺘﺨﻠﺺ ﻣﻦ اﻟﻤﺴﺎﻓﺔ واﻻ ﺳﻮف ﯾﺘﻢ‬
‫ﺗﻄﺒﯿﻖ داﻟﮫ اﻟﺘﺸﻔﯿﺮ ﻋﻠﯿﮭﺎ ‪ ،‬ﻃﺒﻌﺎ ﯾﻤﻜﻨﻚ ﺗﺮﻛﮭﺎ ‪ ،‬وﯾﻤﻜﻨﻚ إﻟﻐﺎﺋﮭﺎ وھﺬا ﻣﺎ أﻓﻀﻠﮫ ‪.‬‬

‫ﻻﺣﻆ ﺗﻢ اﺧﺘﺒﺎر اﻟﺤﺮف ھﻞ ھﻮ اﻟﻤﺴﺎﻓﺔ ‪ ،‬ﻓﺈذا ﻛﺎن ﻛﺬﻟﻚ ﻓﯿﺘﻢ اﻟﺮﺟﻮع إﻟﻰ اﻟﺤﻠﻘﺔ ﻣﺮه أﺧﺮى ‪.‬‬

‫ﺣﻞ أﺧﺮ ﺑﺪون اﺳﺘﺨﺪام اﻟﺪاﻟﺔ )(‪ ، getch‬واﺳﺘﺨﺪام اﻟﺪاﻟﺔ ‪cin.get(array,size,endchar):‬‬

‫ﻗﺪ ﯾﺒﺪوا اﻟﺤﻞ ﻣﻨﺎﺳﺒﺎ ‪ ،‬وﻟﻜﻦ ﻓﻲ ﺣﺎل أردت ﻗﺮاﺋﮫ ﻣﺘﻐﯿﺮ ﻣﺎ ﺑﻌﺪ ھﺬه اﻟﺠﻤﻠﺔ‬
‫)'‪ cin.get(plaintext,100,'$‬ﻓﻠﻦ ﺗﺴﺘﻄﯿﻊ ‪ ،‬واﻟﺴﺒﺐ ﯾﻌﻮد إﻟﻰ أن اﻟﺤﺮف ‪ $‬ﺳﻮف ﯾﺤﻞ ﻣﻜﺎن‬
‫اﻟﻘﯿﻤﺔ اﻟﺘﻲ ﺗﺮﯾﺪ ﻗﺮاءﺗﮭﺎ ‪ ،‬ﻟﻜﻲ ﺗﻔﮭﻢ أﻛﺜﺮ ‪ ،‬ﻗﻢ ﺑﺘﺸﻐﯿﻞ اﻟﻤﺜﺎل اﻟﻘﺎدم ‪:‬‬

‫‪68‬‬
‫‪PDF created with pdfFactory Pro trial version www.pdffactory.com‬‬
‫ﺣﻞ ھﺬه اﻟﻤﺸﻜﻠﺔ ھﻮ اﺳﺘﺨﺪام اﻟﺪاﻟﺔ )'‪ ، cin.getline(plaintext,100,'$‬وﺳﻮف ﺗﺴﺘﻄﯿﻊ ﻗﺮاﺋﮫ‬
‫ﻣﺘﻐﯿﺮك ﺑﺴﮭﻮﻟﮫ ‪:‬‬

‫ﻧﺄﺗﻲ اﻵن إﻟﻰ اﻟﺘﻌﺎﻣﻞ ﻣﻊ ‪ string‬وھﻮ ﻣﺎ ﺳﺄﻋﺘﻤﺪه ﻟﻜﺘﺎﺑﮫ اﻟﺸﻔﺮات ‪ ،‬ﻧﻈﺮا ﻟﺴﮭﻮﻟﺘﮫ ‪ ،‬وﻛﻞ ﺷﻲء‬
‫ﯾﻜﻮن ﺗﻠﻘﺎﺋﻲ ‪.‬‬

‫اذا اﺳﺘﺨﺪﻣﺖ اﻟﺪاﻟﺔ )ﻓﻲ اﻟﺤﻘﯿﻘﺔ ھﻲ ‪ cin ( object‬ﻟﻘﺮاءة ﻣﺘﻐﯿﺮ ﻣﻦ ﻧﻮع ‪ string‬ﻓﻠﻦ ﺗﺴﺘﻄﯿﻊ‬
‫اﺳﺘﺨﺪام اﻟﻤﺴﺎﻓﺔ ‪ ،‬ﺟﺮب اﻟﺒﺮﻧﺎﻣﺞ اﻟﺘﺎﻟﻲ ‪ ،‬وأدﺧﻞ ‪ ، wajdy essam‬وﺳﻮف ﺗﻼﺣﻆ اﻟﻤﺨﺮج‬
‫‪ wajdy‬ﻻن ‪ cin‬ﺗﻌﺘﺒﺮ اﻟﻤﺴﺎﻓﺔ ھﻲ ﻧﮭﺎﯾﺔ اﻟﻨﺺ ‪.‬‬

‫وﻟﻜﻦ ﺑﻘﻠﯿﻞ ﻣﻦ اﻟﺘﺤﺎﯾﻞ ‪ ،‬ﻧﺴﺘﻄﯿﻊ ﻓﻌﻞ ﻣﺎ ﻧﺮﯾﺪ وﺑﻌﺪه ﻃﺮق ‪ ،‬وأﻓﻀﻞ داﺋﻤﺎ اﺳﺘﺨﺪام اﻟﺪاﻟﺔ‬
‫)(‪ getche‬ﻷﻧﮭﺎ ﻻ ﺗﺤﺘﺎج ﻟﻀﻐﻂ ‪ enter‬ﺑﻌﺪ ﻋﻤﻠﯿﮫ اﻹدﺧﺎل ‪.‬‬

‫ﺑﮭﺬه اﻟﻄﺮﯾﻘﮫ اﻟﻘﺎدﻣﺔ ‪ ،‬ﺳﻮف ﻧﻘﻮم ﺑﻘﺮاءة ﺟﻤﯿﻊ اﻟﻨﺼﻮص اﻟﻤﺮاد ﺗﺸﻔﯿﺮھﺎ ﻓﻲ ﺧﻮارزﻣﯿﺎت‬
‫اﻟﺘﺸﻔﯿﺮ ) ھﻲ ﻟﯿﺴﺖ اﻟﻄﺮﯾﻘﺔ اﻷﻓﻀﻞ ‪ ،‬ﻟﻜﻨﮭﺎ ﺗﺆدي اﻟﻐﺮض( ‪.‬‬

‫‪69‬‬
‫‪PDF created with pdfFactory Pro trial version www.pdffactory.com‬‬
‫وﻓﻲ ﺣﺎل أردﻧﺎ ﻣﻌﺎﻟﺠﮫ ال‪ string‬ﻓﻲ ﺣﻠﻘﮫ ‪ ،‬ﻓﯿﻜﻮن اﻟﺘﻌﺎﻣﻞ ﻣﻌﮭﺎ ﻛﻤﺎ ھﻮ اﻟﺤﺎل ﻣﻊ اﻟﻤﺼﻔﻮﻓﺔ‬
‫]‪ str[i‬أي ﺑﺎﺳﺘﺨﺪام ‪. index‬‬

‫ﻧﺄﺗﻲ اﻵن إﻟﻰ ﺧﻮارزﻣﯿﺎت اﻟﻔﺼﻞ اﻷول وھﻲ اﻟﺨﻮارزﻣﯿﺎت اﻟﺮﯾﺎﺿﯿﺔ ‪:‬‬

‫ﺗﻢ ﻛﺘﺎﺑﮫ أﻛﺜﺮ ﻣﻦ‬ ‫ﺇﻳﺠﺎﺩ ﺍﻟﻘﺎﺳﻢ ﺍﻟﻤﺸﺘﺮﻙ ﺍﻷﻋﻈﻢ ‪Greatest Common Divisor‬‬
‫ﻃﺮﯾﻘﮫ ﻟﺘﻄﺒﯿﻖ ھﺬه اﻟﺨﻮارزﻣﯿﺔ ‪ ،‬وﯾﻤﻜﻨﻚ اﺳﺘﺨﺪام ﻣﺎ ﺗﺸﺎء ‪،‬‬

‫اﻟﺤﻞ اﻷول ‪ ،‬وھﻮ ﺑﻄﺮﯾﻘﮫ ﻋﺎدﯾﮫ ‪: Classical‬‬

‫وھﻨﺎ ﻃﺮﯾﻘﺘﮫ ﺑﻌﺪ ﻣﻌﺮﻓﮫ اﻷﺻﻐﺮ ﻣﻦ ﺑﯿﻦ ﻋﺪدﯾﻦ ﯾﺘﻢ اﺧﺘﺒﺎر ﺑﺎﻗﻲ ﻗﺴﻤﮫ ﻛﻞ ﻋﺪد ﻣﻦ ھﺬﯾﻦ اﻟﻌﺪدﯾﻦ‬
‫ﻣﻊ اﻟﻌﺪد اﻟﺼﻐﯿﺮ ‪ ،‬ﻓﺈذا ﻛﺎن ﺑﺎﻗﻲ اﻟﻘﺴﻤﺔ ﻟﻠﻌﺪﯾﻦ ﻓﻲ ﻧﻔﺲ اﻟﻠﺤﻈﺔ ﯾﺴﺎوي ‪ ، 0‬ﻣﻌﻨﺎھﺎ وﺻﻠﻨﺎ ﻟﻠﻘﺎﺳﻢ‬
‫اﻟﻤﺸﺘﺮك اﻷﻋﻈﻢ ‪ ،‬واﻻ ﻧﻄﺮح ﻣﻦ اﻟﻌﺪد واﺣﺪ وﻧﻌﯿﺪ اﻟﻜﺮه ﻣﺮه أﺧﺮى ‪.‬‬

‫ﺣﻞ أﺧﺮ ‪ ،‬ﺑﻮاﺳﻄﺔ ﺧﻮارزﻣﯿﺔ أﻗﻠﯿﺪس ‪ ،‬وﺗﻢ ﻛﺘﺎﺑﮫ ﺛﻼﺛﺔ ‪ implementation‬ﻟﮭﺎ ‪ ،‬اﻷول واﻟﺜﺎﻧﻲ‬
‫ﻣﺘﺸﺎﺑﮭﺎن ‪ ،‬واﻟﺜﺎﻟﺚ ﺗﻢ اﺳﺘﺨﺪام ﻣﻔﮭﻮم اﻟﻨﺪاء اﻟﺬاﺗﻲ ‪Recursion Function‬‬

‫‪70‬‬
‫‪PDF created with pdfFactory Pro trial version www.pdffactory.com‬‬
‫اﻟﺤﻞ ﺑﻮاﺳﻄﺔ اﻟﻨﺪاء اﻟﺬاﺗﻲ ‪:‬‬

‫ﺧﻮﺍﺭﺯﻣﻴﺔ ﺍﻗﻠﻴﺪﺱ ﺍﻟﻤﻤﺘﺪﺓ‬

‫أوﻻ اﻟﻘﻮاﻧﯿﻦ ھﻲ ‪:‬‬

‫واﻟﺤﻞ ھﻮ ‪:‬‬

‫‪71‬‬
‫‪PDF created with pdfFactory Pro trial version www.pdffactory.com‬‬
Trial Division ‫ﺍﺧﺘﺒﺎﺭ ﺃﻭﻟﻴﻪ ﺍﻟﻌﺪﺩ ﺑﺎﺳﺘﺨﺪﺍﻡ‬

‫ﺍﻟﺘﻌﺎﻣﻞ ﻣﻊ ﺍﻟﻠﻮﻏﺮﻳﺘﻢ‬

72
PDF created with pdfFactory Pro trial version www.pdffactory.com
‫‪Fast Exponentiation Algorithms‬‬
‫إﯾﺠﺎد ‪ x^y‬ﻋﻨﺪﻣﺎ ﯾﻜﻮن ‪ y‬ﻛﺒﯿﺮا ﺟﺪا ‪:‬‬

‫وھﺬه ھﻲ اﻟﻄﺮﯾﻘﮫ اﻟﺘﻘﻠﯿﺪﯾﺔ ‪ ،‬ﺣﯿﺚ ﻧﻌﻤﻞ ﺣﻠﻘﮫ ﺑﻌﺪد ‪ y‬وﻣﻦ ﺛﻢ ﻧﻀﺮب ‪ x‬ﻓﻲ ﻧﻔﺴﮫ وﻧﺨﺰن اﻟﻨﺎﺗﺞ‬
‫ﻓﻲ ﻣﺘﻐﯿﺮ أﺧﺮ ‪.‬‬
‫اﻟﻨﻮع ‪ ، __int64‬ھﻮ ﻧﻔﺴﮫ ‪ long long int‬وﻣﺪى اﻷﻋﺪاد ﺑﮫ ﻛﺒﯿﺮ ‪. 2^64 -1 ،‬‬

‫وﻟﻜﻦ ھﺬه اﻟﻄﺮﯾﻘﮫ ﻏﯿﺮ ﺟﯿﺪه ‪ ،‬وﺧﺎﺻﺔ ﻓﻲ ﺣﺎل ﻛﺎن ‪ y‬ﻛﺒﯿﺮ ‪ ،‬ﻷﻧﻨﺎ ﺳﻮف ﻧﻤﺮ ﺑﻌﺪد ‪ y‬ﻣﺮه ‪ ،‬وھﻮ‬
‫ﺷﻲء ﻏﯿﺮ ﻋﻤﻠﻲ اذا ﻛﺎن ﻣﺜﻼ ‪. 2^1024‬‬

‫وھﺬه اﻟﻄﺮﯾﻘﮫ اﻷﻓﻀﻞ ‪:‬‬

‫‪73‬‬
‫‪PDF created with pdfFactory Pro trial version www.pdffactory.com‬‬
‫ﻧﺨﺘﺘﻢ ﺑﺮاﻣﺠﻨﺎ اﻟﺮﯾﺎﺿﯿﺔ ‪ ،‬ﺑﺒﺮﻧﺎﻣﺞ ﺍﻟﺘﺤﻮﻳﻞ ﺑﻴﻦ ﺃﻧﻈﻤﻪ ﺍﻷﻋﺪﺍﺩ ‪hex , binary , ،‬‬
‫‪ ، decimal , octal‬وھﺬه ﺗﺼﺮﯾﺢ اﻟﺪوال ‪ ،‬ﻋﻠﻤﺎ ‪ ،‬ﺑﺄن اﻟﺒﺮﻧﺎﻣﺞ ﻣﻮﺟﻮد ﻣﻊ اﻟﺒﺮاﻣﺞ اﻟﻤﺮﻓﻘﺔ ‪،‬‬
‫وﯾﻤﻜﻨﻚ اﻟﺮﺟﻮع إﻟﯿﮫ ﻟﻘﺮاﺋﮫ ﺗﻌﺮﯾﻒ اﻟﺪوال ‪.‬‬

‫اﻟﺒﺮﻧﺎﻣﺞ "ﻏﯿﺮ ﺿﺮوري" ﻓﻲ ﻛﺘﯿﺒﻨﺎ ھﺬا ‪ ،‬ﻟﻜﻦ وﺿﻌﻨﮭﺎ ﻣﻦ ﺑﺎب اﻟﻔﺎﺋﺪة ‪.‬‬

‫ﺷﻔﺮﺓ ﻗﻴﺼﺮ ‪Caesar Cipher‬‬


‫ﻛﻤﺎ رأﯾﻨﺎ ﻓﻲ ﺷﻔﺮة ﻗﯿﺼﺮ ﯾﻜﻮن اﻟﻤﻔﺘﺎح )ﻣﻘﺪار اﻹزاﺣﺔ( ھﻮ ‪ . 3‬وﻓﻲ ﺣﺎل ﺗﻌﺪى اﻟﺤﺮف اﻟﻨﺎﺗﺞ‬
‫ﻋﻦ أﺧﺮ ﺣﺮف ﻓﻲ اﻷﺑﺠﺪﯾﺔ ﻓﯿﺠﺐ أن ﻧﺮﺟﻊ إﻟﻰ اﻟﺤﺮف اﻷول ‪.‬‬
‫ﻛﯿﻒ ﯾﻤﻜﻦ ﺑﺮﻣﺠﮫ ذﻟﻚ ؟‬
‫ھﻨﺎك ﻋﺪه ﺣﻠﻮل ‪ ،‬وﻟﻜﻨﻲ أﻓﻀﻞ ﺣﻠﯿﻦ ﻣﻨﮭﺎ ‪ ،‬وھﻤﺎ ‪:‬‬

‫اﻟﺤﻞ اﻷول ‪:‬‬


‫ﻋﻤﻞ ﻣﺼﻔﻮﻓﺘﯿﻦ ‪ ،‬اﻷوﻟﻰ ﻟﻠﺤﺮوف اﻟﻌﺎدﯾﺔ )اﻟﻨﺺ اﻷﺻﻠﻲ( واﻷﺧﺮى ﻟﻠﻨﺺ اﻟﻤﺸﻔﺮ اﻟﻨﺎﺗﺞ ﻣﻦ‬
‫ﺧﻮارزﻣﯿﺔ ﻗﯿﺼﺮ ‪ ،‬اﻷوﻟﻰ ﻧﻘﻮم ﺑﺘﮭﯿﺌﺘﮭ ﺎ ﺑﺎﻟﺤﺮوف ﻣﻦ ‪ A‬إﻟﻰ ‪ ، Z‬واﻟﺜﺎﻧﯿﺔ ﻧﮭﯿﺌﮭﺎ ﺑﺤﺮوف ﻣﻦ ‪D‬‬
‫إﻟﻰ ‪ Z‬ﺛﻢ ‪. A,B,C‬‬

‫‪char normalChar[26] ; // contain the character alphabetic form A-Z‬‬


‫‪char cipherChar[26] ; // container character from D-Z+A,B,C‬‬

‫اﻵن ﻋﻤﻠﯿﮫ اﻟﺘﮭﯿﺌﺔ ‪:‬‬


‫‪// initializing normalChar and cipherChar‬‬
‫; ‪int i‬‬
‫)‪for (char ch='A' , i=0 ; i<26 ; i++,ch++‬‬

‫‪74‬‬
‫‪PDF created with pdfFactory Pro trial version www.pdffactory.com‬‬
normalChar[i] = ch ;

for (i=0 ; i<26 ; i++)


cipherChar[i] = normalChar[(i+3)%26];

، inputChar ‫ ﻧﻔﺮض أﻧﻨﺎ أدﺧﻠﻨﺎ اﻟﻨﺺ اﻟﻤﺮاد ﺗﺸﻔﯿﺮه ﻓﻲ اﻟﻤﺼﻔﻮﻓﺔ‬، ‫ ﻟﻜﻲ ﻧﻘﻮم ﺑﺎﻟﺘﺸﻔﯿﺮ‬، ‫اﻵن‬
: outputChar ‫وﻧﺮﯾﺪ اﻟﻨﺺ اﻟﻤﺸﻔﺮ ﯾﻜﻮن ﻓﻲ اﻟﻤﺼﻔﻮﻓﺔ‬
for (i=0 ; i<length ; i++)
{
if ( inputChar[i] == ' ' ) // if it's space , ignore it
{
outputChar[i] = ' ' ;
continue;
}

int x = (int)inputChar[i] ; // take the character as number

x = x - 65 ; // make the number from 0-25

outputChar[i] = cipherChar[x] ; // assign the cipher char to output


cout << outputChar[i] ;
}

‫ وھﻜﺬا ﺗﺤﺼﻠﻨﺎ ﻋﻠﻰ ﻗﯿﻤﮫ‬، int ‫ ﻗﻤﻨﺎ ﺑﺘﺤﻮﯾﻞ اﻟﺤﺮف اﻷول ﻓﻲ اﻟﻤﺼﻔﻮﻓﺔ إﻟﻰ ﻧﻮع‬، ‫داﺧﻞ اﻟﺤﻠﻘﺔ‬
. 66 ‫ ﻓﻘﯿﻤﮫ اﻷﺳﻜﻲ ھﻨﺎ ﻓﻲ ھﺬه اﻟﺤﺎﻟﺔ‬B ‫ وﻟﻨﻔﺮض أﻧﮫ اﻟﺤﺮف‬، ‫اﻷﺳﻜﻲ اﻟﺨﺎص ﺑﺎﻟﺤﺮف اﻷول‬
‫ وھﻨﺎ‬، 25 ‫ إﻟﻰ‬0 ‫ ﻟﻜﻲ ﻧﺮﺟﻊ ﻗﯿﻤﮫ اﻟﻤﺘﻐﯿﺮ إﻟﻰ رﻗﻢ ﻣﺪاه ﻣﻦ‬، 65 ‫ﺑﻌﺪھﺎ ﻧﻄﺮح ﻣﻦ ھﺬه اﻟﻘﯿﻤﺔ‬
‫ اﻟﺘﻲ ﻗﻤﻨﺎ‬cipherChar ‫ اﻟﺨﺎص ﺑﻤﺼﻔﻮﻓﺔ اﻟﺤﺮوف اﻟﻤﺸﻔﺮة‬index‫ﯾﻜﻮن ھﺬا اﻟﻤﺘﻐﯿﺮ ھﻮ ال‬
. ‫ﺑﺘﮭﯿﺌﺘﮭﺎ ﻓﻲ اﻟﺒﺪاﯾﺔ‬

‫ وﻧﺮﯾﺪ اﻟﻨﺺ اﻷﺻﻠﻲ ﻓﻲ‬outputChar ‫ ﻟﻨﻔﺮض أن اﻟﻨﺺ اﻟﻤﺸﻔﺮ ﻣﻮﺟﻮد داﺧﻞ‬، ‫ﻟﻔﻚ اﻟﺘﺸﻔﯿﺮ‬
newNormal

for (int i=0 ; i<length ; i++)


{
if ( outputChar[i] == ' ' )
{
newNormal[i] = ' ' ;
continue;
}

int x = (int)outputChar[i] ; // get cipher char , convert to int

x = x - 65 ; // return it to number
x = x - key ; // sub from it the key

// if it's negative make it from the begin of array


if ( x<0) x = 26-abs(x) ;

newNormal[i] = normalChar[x] ;
cout << newNormal[i] ;
}

75
PDF created with pdfFactory Pro trial version www.pdffactory.com
‫اﻟﺤﻞ اﻟﺜﺎﻧﻲ واﻟﺬي أﻓﻀﻠﮫ ‪ ،‬ﻟﻠﺘﺸﻔﯿﺮ ﻧﻘﻮم ﺑﺎﻟﺘﺎﻟﻲ ‪:‬‬

‫ﯾﮭﻤﻨﺎ ھﻨﺎ اﻟﺴﻄﺮ اﻷول ‪ ،‬ﻷﻧﻨﺎ ﺳﻨﺴﺘﺨﺪﻣﮫ ﻛﺜﯿﺮا ﻓﻲ اﻟﺸﻔﺮات اﻟﻘﺎدﻣﺔ ‪ ،‬وﻧﺒﺪأ ﺑﺸﺮﺣﮫ ﻣﻦ داﺧﻞ‬
‫اﻷﻗﻮاس ‪ ،‬أوﻻ ﻧﺄﺧﺬ اﻟﺤﺮف اﻷول ﻣﻦ اﻟﻨﺺ اﻷﺻﻠﻲ وﻧﻘﻮم ﺑﺘﺤﻮﯾﻠﮫ إﻟﻰ ‪ int‬ﻷﺧﺬ ﻗﯿﻤﮫ اﻷﺳﻜﻲ‬
‫اﻟﺨﺎص ﺑﺎﻟﺤﺮف ‪ ،‬ﺑﻌﺪھﺎ ﻧﻄﺮح ﻣﻨﮫ ‪ 65‬ﻟﻜﻲ ﻧﺤﺼﺮ اﻟﻘﯿﻤﺔ ﻣﻦ ‪ 0‬إﻟﻰ ‪ ، 25‬اﻵن ﻧﺠﻤﻊ إﻟﯿﮭﺎ‬
‫اﻟﻤﻔﺘﺎح ‪ ،‬وھﻮ ھﻨﺎ ﻓﻲ ﺧﻮارزﻣﯿﺔ ﻗﯿﺼﺮ ‪ ، 3‬وﻧﺄﺧﺬ ﺑﺎﻗﻲ اﻟﻘﺴﻤﺔ اﻟﻨﺎﺗﺞ ﻋﻠﻰ ‪ ، 26‬ﺑﻌﺪھﺎ ﻧﺮﺟﻊ‬
‫اﻟﺤﺮف إﻟﻰ ﻗﯿﻤﺘﮫ وذﻟﻚ ﺑﺠﻤﻊ ‪ 65‬إﻟﯿﮫ ‪ .‬أﺧﯿﺮا ﻧﺴﻨﺪ ھﺬه اﻟﻘﯿﻤﺔ ﺑﻌﺪ ﺗﺤﻮﯾﻠﮭﺎ إﻟﻰ ﺣﺮف إﻟﻰ اﻟﻨﺺ‬
‫اﻟﻤﺸﻔﺮ ‪.‬‬

‫وﻟﻔﻚ اﻟﺘﺸﻔﯿﺮ ‪ ،‬ﻧﻘﻮم ﺑﺎﻟﺘﺎﻟﻲ ‪:‬‬

‫وھﻲ ﻣﺸﺎﺑﮫ ﻟﻄﺮﯾﻘﺔ اﻟﺘﺸﻔﯿﺮ ﻣﺎ ﻋﺪا ﻓﻲ اﻟﺴﻄﺮ اﻷول ﻧﻘﻮم ﺑﻄﺮح اﻟﻤﻔﺘﺎح ﻣﻦ اﻟﺤﺮف اﻷول ‪ ،‬أﻣﺎ‬
‫اﻟﺴﻄﺮ اﻟﺜﺎﻧﻲ ‪ ،‬ﻓﮭﻮ ﯾﺘﺄﻛﺪ ﻣﻦ اﻟﻘﯿﻤﺔ اﻟﺴﺎﺑﻘﺔ )‪ (x‬أﻛﺒﺮ ﻣﻦ ‪، 0‬و إﻻ ﻓﻲ ھﺬه اﻟﺤﺎﻟﺔ أﻃﺮح ‪– 26‬‬
‫اﻟﻘﯿﻤﺔ اﻟﻤﻄﻠﻘﺔ ﻟﮭﺬا اﻟﺤﺮف ‪ ،‬وﻟﻨﻌﺮف اﻟﻐﺮض ﻣﻨﮫ ﻧﺄﺧﺬ اﻟﻤﺜﺎل اﻟﺘﺎﻟﻲ ‪:‬‬
‫اﻟﺤﺮف ‪ E‬ﻧﺤﻮﻟﮫ إﻟﻰ ﻗﯿﻤﮫ اﻷﺳﻜﻲ ﻟﺘﺨﺮج إﻟﯿﻨﺎ اﻟﺮﻗﻢ ‪ ، 69‬اﻵن ﻧﻄﺮح ﻣﻨﮫ ‪ 65‬ﻟﯿﺼﺒﺢ ﻟﺪﯾﻨﺎ ‪، 4‬‬
‫وﻧﻄﺮح ﻣﻨﮭﺎ اﻟﻤﻔﺘﺎح اﻟﺬي ھﻮ ‪ ، 3‬ﻟﯿﺨﺮج ﻟﺪﯾﻨﺎ ‪ ، 1‬ﻧﺄﺧﺬ ‪ 1‬ﺑﺎﻗﻲ ﻗﺴﻤﮫ ‪ 26‬ﻟﯿﺨﺮج واﺣﺪ ﻧﻔﺴﮫ ‪.‬‬
‫اﻵن اﻟﺴﻄﺮ اﻟﺜﺎﻧﻲ ﻻ ﯾﮭﻢ ‪ ،‬ﻷن اﻟﻘﯿﻤﺔ أﻛﺒﺮ ﻣﻦ ‪. 0‬‬

‫ﻧﺄﺧﺬ اﻟﺤﺮف ‪ ، A‬ﻧﺤﻮﻟﮫ إﻟﻰ ﻗﯿﻤﮫ اﻷﺳﻜﻲ ﻟﺘﺨﺮج ﻟﺪﯾﻨﺎ اﻟﻘﯿﻤﺔ ‪ 65‬ﻧﻄﺮح ﻣﻨﮭﺎ ‪ 65‬ﯾﻄﻠﻊ ﻟﺪﯾﻨﺎ ‪، 0‬‬
‫ﻧﻄﺮح ﻣﻨﮭﺎ اﻟﻤﻔﺘﺎح ‪ 3‬ﻟﯿﺨﺮج ﻟﺪﯾﻨﺎ ‪ ، 3-‬اﻵن ﻧﻨﻘﺪ اﻟﺴﻄﺮ اﻟﺜﺎﻧﻲ وﻧﻄﺮح ‪ 23 = 3- 26‬وﻗﯿﻤﺘﮫ ھﻲ‬
‫اﻟﺤﺮف ‪ X‬وھﻮ اﻟﺤﺮف اﻟﺼﺤﯿﺢ ‪.‬‬

‫ﺷﻔﺮﺓ ‪ROT13‬‬
‫ﺑﻨﻔﺲ ﻃﺮﯾﻘﮫ ﺷﻔﺮه ﻗﯿﺼﺮ ‪ ،‬ﻟﻜﻦ ھﻨﺎ اﻟﻤﻔﺘﺎح ﯾﻜﻮن ‪ ، 13‬وداﻟﮫ اﻟﺘﺸﻔﯿﺮ ‪ ،‬ھﻲ ﻧﻔﺴﮭﺎ اﻟﺘﻲ ﺗﻘﻮم ﺑﻔﻚ‬
‫اﻟﺘﺸﻔﯿﺮ ‪.‬‬

‫‪76‬‬
‫‪PDF created with pdfFactory Pro trial version www.pdffactory.com‬‬
‫ﺍﻟﺘﺸﻔﻴﺮ ﺑﻄﺮﻳﻘﻪ ‪Affine Cipher‬‬
‫اﻟﻘﻮاﻧﯿﻦ ‪:‬‬

‫اﻵن ﻟﻤﻌﺮﻓﮫ ھﻞ ‪ m‬و ‪ n‬أوﻟﯿﺎن ﻓﯿﻤﺎ ﺑﯿﻨﮭﻤﺎ ‪ ،‬ﯾﺠﺐ أن ﯾﻜﻮن اﻟﻘﺎﺳﻢ اﻟﻤﺸﺘﺮك اﻷﻋﻈﻢ ﻟﮭﻤﺎ ﯾﺴﺎوي‬
‫واﺣﺪ ‪ ،‬ﻓﻨﻘﻮم ﺑﺎﺳﺘﺨﺪام داﻟﮫ ‪ GCD‬ﻹﯾﺠﺎد اﻟﻘﺎﺳﻢ ) واﻟﺘﻲ ﻗﺪ ذﻛﺮﻧﺎھﺎ ﺳﺎﺑﻘﺎ( ‪ ،‬وﻧﻘﺎرن اﻟﻨﺎﺗﺞ ھﻞ‬
‫ﯾﺴﺎوي واﺣﺪ ‪ ،‬اذا ﻛﺎن ﻛﺬﻟﻚ ھﻢ أوﻟﯿﺎن ﻓﯿﻤﺎ ﺑﯿﻨﮭﻤﺎ ‪ ،‬واﻻ ھﻢ ﻏﯿﺮ ذﻟﻚ ‪.‬‬

‫وﻧﻄﺒﻖ ﻗﺎﻧﻮن اﻟﺘﺸﻔﯿﺮ ‪:‬‬

‫‪77‬‬
‫‪PDF created with pdfFactory Pro trial version www.pdffactory.com‬‬
‫وﻟﻔﻚ اﻟﺘﺸﻔﯿﺮ ‪ ،‬ﻧﺴﺘﺪﻋﻲ داﻟﮫ ‪ extended Euclid‬ﺧﻮارزﻣﯿﺔ اﻗﻠﯿﺪس اﻟﻤﻤﺘﺪة ‪ ،‬ﻹﯾﺠﺎد اﻟﻤﻌﻜﻮس‬
‫‪ ،‬وﺑﻌﺪھﺎ ‪:‬‬

‫ﺷﻔﺮات ﻋﺎﺋﻠﮫ ‪: Vigenere‬‬

‫ھﺬه اﻟﺸﻔﺮات ﻣﺘﺸﺎﺑﮫ ﻓﯿﻤﺎ ﺑﯿﻨﮭﻤﺎ ﺑﺸﻜﻞ ﻛﺒﯿﺮ )أﻗﺼﺪ ﻣﻦ ﻧﺎﺣﯿﺔ ﺑﺮﻣﺠﯿﮫ( ‪ ،‬ﻟﺬﻟﻚ ﺳﻮف ﯾﻜﻮن ﻣﻦ‬
‫اﻟﺴﮭﻞ ﺗﺘﺒﻊ ھﺬه اﻟﺸﻔﺮات ‪ ،‬وﺧﺎﺻﺔ اذا ﻛﻨﺖ ﺗﻌﺮف ﻃﺮﯾﻘﮫ ﻋﻤﻞ ﻛﻞ ﺷﻔﺮه )أي ﻗﻤﺖ ﺑﻘﺮاءة‬
‫اﻟﻔﺼﻞ اﻟﺜﺎﻧﻲ( ‪.‬‬

‫ﺷﻔﺮﺓ ﻓﻴﺠﻨﻴﺮ ﺍﻟﺒﺴﻴﻄﺔ ‪Simple Shift Vigenere Cipher‬‬

‫ﻟﻠﺘﺸﻔﯿﺮ ﻧﻘﻮم ﺑﺠﻤﻊ اﻟﻤﻔﺘﺎح ﻣﻊ اﻟﻨﺺ اﻷﺻﻠﻲ ‪) 26 %‬ﺑﺎﻟﻀﺒﻂ ﻛﻤﺎ ھﻮ اﻟﺤﺎل ﻣﻊ ﺷﻔﺮه ﻗﯿﺼﺮ( ‪،‬‬
‫ﻟﻜﻦ ﻓﻲ ﺣﺎل اﻧﺘﮭﻲ اﻟﻤﻔﺘﺎح ﺳﻮف ﯾﺘﻜﺮر )أي ﯾﺮﺟﻊ ﻣﻦ اﻟﺒﺪاﯾﺔ( ‪ ،‬وھﻨﺎ ﺗﻜﻮن اﻟﻔﻜﺮة ‪ ،‬ﺑﺄن أﻋﺮف‬
‫ﻃﻮل اﻟﻤﻔﺘﺎح ‪ ،‬ﺑﻌﺪھﺎ أﻗﻮم ﺑﺤﺼﺮ ﻣﺪى اﻟﻤﻔﺘﺎح )أي ﯾﻜﻮن ﻣﻦ اﻟﺒﺪاﯾﺔ وﺣﺘﻰ اﻟﻨﮭﺎﯾﺔ ‪ ،‬وﻓﻲ ﺣﺎل‬
‫ﺗﻜﺮر ﯾﺮﺟﻊ ﻣﻦ اﻟﺒﺪاﯾﺔ( وﯾﻤﻜﻦ ﻋﻤﻞ ذﻟﻚ ﻋﻦ ﻃﺮﯾﻖ ﻣﻌﺎﻣﻞ ﺑﺎﻗﻲ اﻟﻘﺴﻤﺔ ‪ ،‬ﻛﻤﺎ ھﻮ اﻟﻤﺜﺎل اﻟﺘﺎﻟﻲ ‪:‬‬

‫واﻟﺒﺎﻗﻲ ﻛﻤﺎ ھﻮ ﻓﻲ ﺧﻮرزﻣﯿﮫ ﻗﯿﺼﺮ ‪ ،‬اﻵن ﻟﻔﻚ اﻟﺘﺸﻔﯿﺮ ‪:‬‬

‫‪78‬‬
‫‪PDF created with pdfFactory Pro trial version www.pdffactory.com‬‬
‫ﺷﻔﺮﻩ ﻓﻴﺠﻴﻨﺮ ﺍﻟﻜﺎﻣﻠﺔ ‪Full Vigenere Cipher‬‬

‫وھﻨﺎ ﯾﺠﺐ ﻓﻲ اﻟﺒﺪاﯾﺔ أن ﻧﻨﺸﺊ ﺟﺪول اﻟﺘﺸﻔﯿﺮ ‪ ، a tabular recta‬وﯾﻤﻜﻦ إﻧﺸﺎﺋﮫ ﯾﺪوﯾﺎ ﻋﻦ‬
‫ﻃﺮﯾﻖ ﻣﺼﻔﻮﻓﺔ ﻣﻦ ﺑﻌﺪﯾﻦ وﻧﻘﻮم ﺑﺘﻌﺒﺌﺘﮭﺎ ﺑﺠﻤﯿﻊ اﻟﺤﺮوف ﻛﻢ ﻓﻲ اﻟﺠﺪول ‪ ،‬وﻟﻜﻨﮫ ﺣﻞ ﻣﺘﻌﺐ‬
‫وﯾﻔﻀﻞ اﺳﺘﺨﺪام اﻟﺤﻠﻘﺔ ‪ ،‬اﻟﺠﺪول ﻛﻤﺎ ﻓﻲ اﻟﺸﻜﻞ اﻟﺘﺎﻟﻲ )وﻗﺪ ﺳﺒﻖ ﻋﺮﺿﮫ ﻓﻲ اﻟﻔﺼﻞ اﻟﺜﺎﻧﻲ( ‪:‬‬

‫ﻋﻤﻞ اﻟﺠﺪول ‪:‬‬

‫اﻵن ﻟﻠﺘﺸﻔﯿﺮ ﻧﺄﺧﺬ ﻧﻘﻄﮫ ﺗﻘﺎﻃﻊ اﻟﺤﺮف ﻣﻦ اﻟﻨﺺ اﻷﺻﻠﻲ وﻣﻦ اﻟﻤﻔﺘﺎح ‪) ،‬أﻛﺮر ‪:‬راﺟﻊ اﻟﻔﺼﻞ‬
‫اﻟﺜﺎﻧﻲ ‪ ،‬ﺣﺘﻰ ﺗﺴﺘﻄﯿﻊ ﻓﮭﻢ اﻟﻄﺮﯾﻘﮫ ( ‪ .‬واﻟﺪاﻟﺔ اﻟﺘﻲ ﺗﺮﺟﻊ ﻧﻘﻄﮫ اﻟﺘﻘﺎﻃﻊ ھﻲ ‪:‬‬

‫‪79‬‬
‫‪PDF created with pdfFactory Pro trial version www.pdffactory.com‬‬
: ‫اﻵن ﻟﻠﺘﺸﻔﯿﺮ‬

: ‫وﻟﻔﻚ اﻟﺘﺸﻔﯿﺮ‬

80
PDF created with pdfFactory Pro trial version www.pdffactory.com
‫ﺷﻔﺮﻩ ﻓﺠﻴﻨﻴﺮ ﺗﻠﻘﺎﺋﻴﺔ ﺍﻟﻤﻔﺘﺎﺡ ‪Auto Key Vigenere Cipher‬‬

‫وﻓﻲ ھﺬه اﻟﺸﻔﺮه وﺑﻌﺪ اﻧﺘﮭﺎء اﻟﻤﻔﺘﺎح ‪ ،‬ﯾﺪﺧﻞ اﻟﻤﻔﺘﺎح اﻷﺻﻠﻲ ﻓﻲ ﻋﻤﻠﯿﮫ اﻟﺘﺸﻔﯿﺮ ‪ ،‬أي ﯾﺼﺒﺢ ھﻮ‬
‫اﻟﻤﻔﺘﺎح ‪ .‬وﻓﻲ ﻋﻤﻠﯿﮫ ﻓﻚ اﻟﺘﺸﻔﯿﺮ وﺑﻌﺪ اﻧﺘﮭﺎء اﻟﻤﻔﺘﺎح ‪ ،‬ﯾﻜﻮن اﻟﻤﻔﺘﺎح اﻟﺤﺎﻟﻲ ھﻮ أول ﺣﺮف ﺗﻢ ﻓﻚ‬
‫ﺗﺸﻔﯿﺮه ‪ ،‬واﻟﻤﻔﺘﺎح اﻟﺘﺎﻟﻲ ‪ ،‬ھﻮ ﺛﺎﻧﻲ ﺣﺮف ﻓﻚ ﺗﺸﻔﯿﺮه وھﻜﺬا )راﺟﻊ اﻟﻔﺼﻞ اﻟﺜﺎﻧﻲ ‪ ،‬ﻟﻠﻤﺰﯾﺪ ﻣﻦ‬
‫اﻷﻣﺜﻠﺔ واﻟﺘﻮﺿﯿﺢ( ‪.‬‬

‫اﻵن وﻗﺒﻞ اﻟﺒﺪء ﺑﺎﻟﺘﺸﻔﯿﺮ ‪ ،‬اﻟﻔﻜﺮة ھﻨﺎ‪ ،‬أن ﻧﻘﺎرن اﻟﻤﻔﺘﺎح ﺑﺎﻟﻨﺺ اﻷﺻﻠﻲ ‪ ،‬ﻓﺈذا ﻛﺎﻧﺎ ﻧﻔﺲ اﻟﻄﻮل‬
‫ﻛﺎن ﺑﮭﺎ ‪ ،‬واﻻ ﻗﻢ ﺑﺠﻤﻊ اﻟﺤﺮف اﻷول ﻣﻦ اﻟﻨﺺ اﻷﺻﻠﻲ ﺑﻌﺪ أﺧﺮ ﺣﺮف ﻓﻲ اﻟﻤﻔﺘﺎح ‪ ،‬واﺟﻤﻊ‬
‫اﻟﺤﺮف اﻟﺜﺎﻧﻲ ﻣﻦ اﻟﻨﺺ اﻷﺻﻠﻲ ﺑﻌﺪ ﺛﺎﻧﻲ أﺧﺮ ﺣﺮف ﻓﻲ اﻟﻤﻔﺘﺎح ‪ ،‬واﺳﺘﻤﺮ ھﻜﺬا إﻟﻰ أن ﯾﺼﺒﺢ‬
‫اﻟﻨﺺ اﻷﺻﻠﻲ ﯾﺴﺎوي اﻟﻤﻔﺘﺎح ‪.‬‬

‫اﻵن اﻟﺘﺸﻔﯿﺮ ﺳﻮف ﯾﻜﻮن ﺑﺎﻟﻄﺮﯾﻘﺔ اﻟﺘﻘﻠﯿﺪﯾﺔ ﻛﻤﺎ ﻓﻲ ﺷﻔﺮه ﻗﯿﺼﺮ ‪ ،‬ﻻن اﻟﻤﻔﺘﺎح ﺣﺎﻟﯿﺎ ﯾﺴﺎوي‬
‫اﻟﻨﺺ اﻷﺻﻠﻲ ‪:‬‬

‫‪81‬‬
‫‪PDF created with pdfFactory Pro trial version www.pdffactory.com‬‬
‫وﻟﻔﻚ اﻟﺘﺸﻔﯿﺮ ‪ ،‬ﻓﻲ ﻛﻞ ﺧﻄﻮه ﻧﻘﻮم ﺑﺠﻤﻊ اﻟﻨﺺ اﻷﺻﻠﻲ )اﻟﺬي ﺗﻢ ﻓﻚ ﺗﺸﻔﯿﺮه ﻓﻲ ھﺬه اﻟﻠﺤﻈﺔ(‬
‫إﻟﻰ أﺧﺮ اﻟﻤﻔﺘﺎح ‪:‬‬

‫ﺷﻔﺮﻩ ﻓﻴﺠﻴﻨﺮ ﻃﻮﻳﻠﺔ ﺍﻟﻤﻔﺘﺎﺡ ‪the Running key Vigenere Cipher‬‬

‫ھﻨﺎ ﯾﺠﺐ أن ﻧﺘﺤﻘﻖ ﻣﻦ اﻟﺸﺮط ﻗﺒﻞ اﻟﺒﺪء ﻓﻲ اﻟﺘﺸﻔﯿﺮ ‪ ،‬وھﻮ أن اﻟﻤﻔﺘﺎح ﯾﻜﻮن أﻃﻮل ﻣﻦ اﻟﻨﺺ‬
‫اﻟﻌﺎدي )أو ﯾﺴﺎوﯾﮫ( ‪ ،.‬وﺗﻜﻮن ﻋﻤﻠﯿﮫ اﻟﺘﺸﻔﯿﺮ وﻓﻚ اﻟﺘﺸﻔﯿﺮ ﻋﺎدﯾﮫ ﻛﻤﺎ ﻓﻲ اﻷﻣﺜﻠﺔ اﻟﺴﺎﺑﻘﺔ ‪.‬‬

‫ھﻨﺎ ﻣﺜﺎل ﺑﯿﯿﻦ ﻛﯿﻔﯿﮫ اﻟﺘﺤﻘﻖ ‪ ،‬وﻓﻲ ﺣﺎل ﻛﺎن ﻃﻮل اﻟﻤﻔﺘﺎح أﻗﻞ ‪ ،‬ﯾﺘﻢ اﻟﺨﺮوج وﻻ ﺗﺘﻢ ﻋﻤﻠﯿﺔ‬
‫اﻟﺘﺸﻔﯿﺮ ‪:‬‬

‫‪82‬‬
‫‪PDF created with pdfFactory Pro trial version www.pdffactory.com‬‬
‫ﺷﻔﺮﺓ ﺑﻼﻓﻴﺮ ‪Playfair Cipher‬‬
‫ﺷﻔﺮه ﺑﻼﻓﯿﺮ أﺧﺬت ﻣﻨﻲ اﻟﻜﺜﯿﺮ ﻣﻦ اﻷﺳﻄﺮ‪ ،‬ﻟﺬﻟﻚ ﻟﻦ أﺿﻌﮭﺎ ھﻨﺎ ‪ ،‬وﯾﻤﻜﻨﻚ ﻣﺸﺎھﺪه اﻟﻜﻮد ﻣﺮﻓﻖ‬
‫ﻣﻊ اﻟﻜﺘﺎب ‪ ،‬ﻋﻠﻤﺎ ﺑﺄن ﺗﻄﺒﯿﻘﮭﺎ ﺳﮭﻞ ‪،‬اﺿﺎﻓﮫ إﻟﻰ أﻧﻲ ﻗﻤﺖ ﺑﻜﺘﺎﺑﺔ اﻟﻜﺜﯿﺮ ﻣﻦ اﻟﺘﻌﻠﯿﻘﺎت اﻟﺘﻲ ﺳﻮف‬
‫ﺗﻮﺿﺢ ﻋﻤﻞ ﻛﻞ داﻟﮫ ‪ .‬وﺑﺈذن اﷲ ﺗﻜﻮن واﺿﺤﺔ ﻟﻠﺠﻤﯿﻊ ‪.‬‬

‫ﺷﻔﺮﻩ ‪Reverse Cipher‬‬


‫ھﻨﺎ ﺑﻌﺪ إدﺧﺎل اﻟﻨﺺ ﻧﻘﻮم ﺑﻄﺒﺎﻋﺘﮫ ﻣﻌﻜﻮس )ﻣﻦ اﻟﻨﮭﺎﯾﺔ إﻟﻰ اﻟﺒﺪاﯾﺔ( ‪ ،‬ﻟﻜﻦ ﻻﺣﻆ ھﻨﺎ اﺳﺘﺨﺪﻣﻨﺎ‬
‫ﻃﺒﺎﻋﮫ ﻛﻞ ‪ 5‬ﺣﺮوف ﻓﻲ ﺑﻠﻮك )أي ﺗﻔﺼﻞ ﺑﯿﻨﮭﻢ ﻣﺴﺎﻓﺔ( وھﻮ أﻣﺮ ﻣﻔﺮوض أن ﯾﻜﻮن ﻓﻲ ﺟﻤﯿﻊ‬
‫اﻟﺸﻔﺮات اﻟﺴﺎﺑﻘﺔ ‪ ،‬وﯾﻜﻮن ﻋﻠﯿﻚ ﺗﻄﺒﯿﻘﮭﺎ ﻛﻮاﺟﺐ ﻣﻨﺰﻟﻲ ‪J‬‬

‫‪83‬‬
‫‪PDF created with pdfFactory Pro trial version www.pdffactory.com‬‬
‫ ﻣﻘﺪﻣﻪ ﻓﻲ ﺍﻟﺘﺸﻔﻴﺮ ﺑﺎﻟﻄﺮﻕ ﺍﻟﺤﺪﻳﺜﺔ‬: ‫ﺍﻟﻔﺼﻞ ﺍﻟﺮﺍﺑﻊ‬

Introduction to Modern
Cryptography

84
PDF created with pdfFactory Pro trial version www.pdffactory.com
‫ﻟﻤﺎﺫﺍ ﺑﺎﻟﺘﺸﻔﻴﺮ ‪ Why Cryptography‬؟‬

‫ﻗﺪ ﺗﺘﺴﺎءل أﺧﻲ اﻟﻜﺮﯾﻢ وﺗﻘﻮل " أﻧﺎ ﻻ اﺣﺘﺎج ﻷي ﻧﻮع ﻣﻦ اﻟﺘﺸﻔﯿﺮ ‪ ،‬ﺑﺒﺴﺎﻃﮫ ‪ ،‬ﻷﻧﮫ ﻟﯿﺲ ﻟﺪى أي‬
‫ﺷﻲء ﻷﺧﻔﯿﮫ ‪ ،‬وﻻ داﻋﻲ ﻟﮭﺬه اﻟﺤﻤﺎﯾﺔ" ؟‬

‫ﺣﺴﻨﺎ أﺧﻲ ‪ ،‬ﻟﻜﻦ دﻋﻨﻲ أﺷﺎھﺪ ﻣﻠﻔﺎﺗﻚ اﻟﻄﺒﯿﺔ ‪ ،‬أو ﻛﺸﻒ ﺣﺴﺎﺑﺎﺗﻚ ﻓﻲ اﺣﺪ اﻟﺒﻨﻮك ‪ ،‬أو ﺣﺎﻓﻈﮫ‬
‫ﻧﻘﻮدك ‪ ،‬أو دﻋﻨﻲ اﺳﺘﺨﺪم رﻗﻢ)اﻟﮭﻮﯾﺔ( اﻟﺠﻮاز اﻟﺨﺎص ﺑﻚ ‪ ،‬أو ﻋﻠﻰ اﻗﻞ ﺗﻘﺪﯾﺮ دﻋﻨﻲ اﺳﺘﺨﺪم‬
‫اﻟﺒﺎﺳﻮرد اﻟﺨﺎص ﺑﺪﺧﻮل اﻟﻤﻨﺘﺪى ‪ ،‬أو اﻟﺒﺮﯾﺪ اﻟﺨﺎص ﺑﻚ ‪.‬‬

‫اﻟﻤﻘﺼﺪ ھﻨﺎ ‪ ،‬أﻧﻨﺎ ﺟﻤﯿﻌﺎ ﻟﺪﯾﻨﺎ ﻣﻌﻠﻮﻣﺎت ﺑﺤﺎﺟﮫ إﻟﻰ أن ﺗﺒﻘﻰ ﺳﺮﯾﮫ ﻋﻦ اﻟﺠﻤﯿﻊ ‪ ،‬ﺑﺎﻟﺘﺄﻛﯿﺪ ﺳﺘﺸﻌﺮ‬
‫ﺑﻌﺪم اﻻرﺗﯿﺎح ﻣﺜﻼ ﻓﻲ ﺣﺎﻟﮫ ﻋﺮﻓﻨﺎ ﻛﻠﻨﺎ ﺑﻤﻮاﻋﯿﺪ زﯾﺎراﺗﻚ ﻟﻠﻄﺒﯿﺐ ‪ ،‬ﻣﺎ ھﻲ اﻻدوﯾﮫ واﻟﻌﻼﺟﺎت اﻟﺘﻲ‬
‫ﺗﺴﺘﺨﺪﻣﮭﺎ ‪ ،‬ﻣﺎ ھﻲ اﻷﻣﺮاض اﻟﻤﺼﺎب ﺑﮭﺎ )ﻋﺎﻓﺎﻧﺎ اﷲ وإﯾﺎﻛﻢ( ‪ ..‬ﺳﺒﺐ أﺧﺮ ﻧﺤﻦ ﻧﺮﯾﺪ اﻟﺤﻔﺎظ ﻋﻠﻰ‬
‫ﺗﻠﻚ اﻟﻤﻌﻠﻮﻣﺎت ﻣﻦ اﻟﻤﺨﺘﺮﻗﯿﻦ ‪ ،‬ﺗﺨﯿﻞ اﺣﺪھﻢ ﺳﺮق اﻟﺒﺎﺳﻮرد اﻟﺨﺎص ﺑﻚ ﻓﻲ اﻟﻤﻨﺘﺪى ودﺧﻞ‬
‫ﺑﺤﺴﺎﺑﻚ وﺑﺪا ﯾﺴﺐ وﯾﻌﻠﻦ ﻓﻲ اﻷﻋﻀﺎء ﻣﺎذا ﺳﯿﻜﻮن ﻣﻮﻗﻔﻚ ‪ ،‬ﺑﺎﻟﺘﺄﻛﯿﺪ أھﻮن ﻣﻦ اﻟﺬي ﺗﻢ اﺳﺘﺨﺪام‬
‫ﺑﻄﺎﻗﺘﮫ اﻻﺋﺘﻤﺎﻧﯿﺔ وﺳﺮﻗﮫ ﻣﺒﻠﻎ ‪. J $1000‬‬

‫اﻟﺸﺮﻛﺎت أﯾﻀﺎ ﻟﺪﯾﮭﺎ اﻟﻌﺪﯾﺪ ﻣﻦ اﻷﺳﺮار )اﻻﺳﺘﺮاﺗﯿﺠﯿﺎت ‪ ،‬ﺗﻔﺎﺻﯿﻞ اﻟﻤﻨﺘﺠﺎت ‪ ،‬ﻣﻌﻠﻮﻣﺎت‬


‫اﻟﻤﻮﻇﻔﯿﻦ ‪ ،‬ﻧﺘﺎﺋﺞ أﺑﺤﺎث ﺳﺮﯾﮫ ( ‪ ،‬وﺣﺘﻰ اﻟﺸﺮﻛﺎت اﻟﻨﺼﺎﺑﺔ " وھﻢ ﻛﺜﺮ" ﺗﺮﯾﺪ اﻟﺤﻔﺎظ ﻋﻠﻰ ھﺬه‬
‫اﻟﻨﺸﺎﻃﺎت اﻟﺪﻧﯿﺌﺔ ﺑﻌﯿﺪا ﻋﻦ اﻷﻋﯿﻦ ‪ ،‬ﻛﻞ ھﺬه اﻟﺸﺮﻛﺎت )ﺑﻐﺾ اﻟﻨﻈﺮ ﻋﻦ ﺷﺮﻋﯿﺘﮭﺎ( ﺗﺮﯾﺪ أن ﺗﺤﻔﻆ‬
‫ﻣﻌﻠﻮﻣﺎﺗﮭﺎ ﺑﻌﯿﺪا اﻟﻨﺎس )ﻗﺪ ﯾﻜﻮﻧﻮا ﻣﻨﺎﻓﺴﯿﻦ ‪ ،‬ﻣﺨﺘﺮﻗﯿﻦ "ھﻜﺮ أم ﻛﺮاﻛﺮ"( ‪.‬‬

‫اﻟﺤﻤﺎﯾﺔ اﻟﻤﻘﺪﻣﺔ ﻣﻦ ﻗﺒﻞ ﻧﻈﺎم اﻟﺘﺸﻐﯿﻞ ‪:‬‬

‫ﻓﻲ اﻟﻤﺎﺿﻲ ﻛﺎﻧﺖ ﻋﻤﻠﯿﮫ اﻟﺤﻤﺎﯾﺔ ﺑﺴﯿﻄﺔ ﺟﺪا ‪ ،‬ﻓﻘﻂ ﻛﻞ ﻣﺎ ﻋﻠﯿﻚ ھﻮ أن ﺗﻀﻊ ﻣﻠﻔﺎﺗﻚ ﻓﻲ اﻟﺪرج ﺛﻢ‬
‫إﻏﻼق ﺑﺎب اﻟﻤﻜﺘﺐ ﺑﺎﻟﻤﻔﺘﺎح !! وإذا ﻛﻨﺖ ﺗﺮﯾﺪ ﺣﻤﺎﯾﺔ أﻛﺜﺮ ﯾﻤﻜﻨﻚ اﻹﺳﺘﻌﺎﻧﮫ "ﺑﻄﺒﻠﮫ ﻛﺒﯿﺮة" واﻧﺘﮭﻰ‬
‫اﻷﻣﺮ ‪ ،‬ﻟﻜﻦ ﺣﺎﻟﯿﺎ اﻷﻣﺮ اﺧﺘﻠﻒ ﺑﺸﻜﻞ ﻛﺒﯿﺮ ‪ ،‬ﻓﺎﻟﻤﻠﻔﺎت أﺻﺒﺤﺖ ﺗﺤﻔﻆ ﻓﻲ اﻟﺠﮭﺎز واﻟﮭﺎردﯾﺴﻚ‬
‫واﻟﺴﻲ دي ‪ CD‬و وﺳﺎﺋﻞ أﺧﺮى ﻏﯿﺮھﺎ ‪ ،‬اﻟﺴﺆال ھﻮ ﻛﯿﻒ ﯾﻤﻜﻦ ﺣﻤﺎﯾﺔ اﻟﮭﺎدرﯾﺴﻚ ؟‬

‫وھﻨﺎ ﯾﺄﺗﻲ دور ﻧﻈﺎم اﻟﺘﺸﻐﯿﻞ‪ ،‬اﻏﻠﺐ ﻧﻈﻢ اﻟﺘﺸﻐﯿﻞ ﺗﻘﺪم ﻧﻮع ﻣﻦ اﻟﺤﻤﺎﯾﺔ وﺗﺴﻤﻰ اﻟﺼﻼﺣﯿﺎت‬
‫‪ permissions‬واﻟﺘﻲ ﺗﺴﻤﺢ ﻟﻤﺴﺘﺨﺪﻣﯿﻦ ﻣﻌﯿﻨﯿﻦ اﻟﺪﺧﻮل إﻟﻰ اﻟﻨﻈﺎم‪ ،‬وذﻟﻚ ﻋﻦ ﻃﺮﯾﻖ إﺟﺮاء‬
‫اﻟﺪﺧﻮل )ﻧﺎﻓﺬة ‪ ، (login‬وﻓﻲ ﺣﺎﻟﮫ إدﺧﺎل اﺳﻢ اﻟﻤﺴﺘﺨﺪم واﻟﺒﺎﺳﻮرد اﻟﺼﺤﯿﺤﯿﻦ ﯾﺘﻢ اﻟﺪﺧﻮل إﻟﻰ‬
‫اﻟﻨﻈﺎم ‪ ،‬وﺣﺘﻰ ﺑﻌﺪ اﻟﺪﺧﻮل ﻓﻲ ﺣﺎﻟﮫ ﻗﻢ ﺑﺤﺬف ﻣﻠﻒ ﻣﻌﯿﻦ ﻓﺈن ﻧﻈﺎم اﻟﺘﺸﻐﯿﻞ ﯾﻨﻈﺮ أوﻻ ھﻞ آﻧﺖ‬
‫ﻣﻦ ﻟﻚ اﻟﺼﻼﺣﯿﺔ ﻟﺤﺬف ھﺬا اﻟﻤﻠﻒ وﻓﻲ ﺣﺎﻟﮫ اﻟﻨﻔﻲ ﻓﺎﻧﻚ ﻟﻦ ﺗﺴﺘﻄﯿﻊ ﺣﺬف اﻟﻤﻠﻒ أﺑﺪا) ﻃﺒﻌﺎ‬
‫ﻣﺴﺘﺨﺪﻣﯿﻦ اﻧﻈﻤﮫ ‪ Unix-Like‬ﯾﻌﺮﻓﻮا ھﺬه اﻟﺘﻔﺎﺻﯿﻞ ﺑﺸﻜﻞ ﻛﺒﯿﺮ(‬

‫واﻟﺸﺨﺺ اﻟﺬي ﯾﻜﻮن ﻟﺪﯾﮫ اﻟﺼﻼﺣﯿﺔ ﻟﻔﻌﻞ ﺷﻲء ھﻮ اﻟﻤﺪﯾﺮ ‪ administrator‬أو ‪ ، root‬وھﻮ‬
‫اﻟﺬي ﯾﻌﻄﻰ اﻟﺼﻼﺣﯿﺎت ﻟﺒﺎﻗﻲ اﻟﻤﺴﺘﺨﺪﻣﯿﻦ ‪ ،‬ھﻮ اﻟﺬي ﯾﻌﻄﻞ اﻟﺤﺴﺎﺑﺎت ‪ ،‬ھﻮ اﻟﺬي ﯾﻌﻄﻲ‬
‫اﻟﺒﺎﺳﻮرد ﻓﻲ ﺣﺎل ﻓﻘﺪ اﺣﺪھﻢ اﻟﺒﺎﺳﻮرد اﻟﺨﺎص ﺑﮫ ‪ ،‬ھﻮ اﻟﻤﺪﯾﺮ ﺑﻤﻌﻨﻰ اﻟﻜﻠﻤﺔ ‪.‬‬

‫ﻛﯿﻒ ﯾﻌﺮف ﻧﻈﺎم اﻟﺘﺸﻐﯿﻞ أن اﻟﺸﺨﺺ اﻟﻤﻮﺟﻮد ھﻮ اﻟﻤﺪﯾﺮ اﻟﻔﻌﻠﻲ ؟ ﻋﻦ ﻃﺮﯾﻖ اﺳﻢ اﻟﻤﺴﺘﺨﺪم و‬
‫اﻟﺒﺎﺳﻮرد ﺑﺎﻟﻄﺒﻊ‪ ،‬ﻟﻜﻦ وﺑﻜﻞ أﺳﻒ اﻟﻄﺮق ﻟﻤﺮاوﻏﮫ اﻟﻨﻈﺎم وﻛﺴﺮ ﺣﻤﺎﯾﺔ ﺑﺎﺳﻮرد اﻟﻤﺪﯾﺮ أﺻﺒﺤﺖ‬
‫ﻣﻨﺘﺸﺮة وﺑﻜﺜﺮة‪ ،‬ﻓﻲ وﯾﻨﺪوز ‪ xp home‬ﯾﻜﻔﻲ أن ﺗﺪﺧﻞ ﻋﻦ ﻃﺮﯾﻖ اﻟﻮﺿﻊ اﻷﻣﻦ ‪safe Mode‬‬
‫ﻟﻠﺪﺧﻮل إﻟﻰ اﻟﻨﻈﺎم !! وھﻨﺎك اﻟﻜﺜﯿﺮ ﻣﻦ اﻟﺒﺮاﻣﺞ ﻟﻜﺴﺮ وﺗﻐﯿﯿﺮ اﻟﺒﺎﺳﻮرد ﻟﻸﻏﻠﺐ اﻻﻧﻈﻤﮫ‪..‬‬

‫‪85‬‬
‫‪PDF created with pdfFactory Pro trial version www.pdffactory.com‬‬
‫ﻛﻤﺨﺘﺮق أرﯾﺪ أن ادﺧﻞ إﻟﻰ اﻟﻨﻈﺎم أول ﻣﺎ أﻓﻜﺮ ﻓﯿﮫ ھﻮ اﺳﻢ اﻟﻤﺴﺘﺨﺪم اﻟﺬي ﯾﺄﺗﻲ ﻣﻊ اﻟﻨﻈﺎم‬
‫‪ ،preset account‬ﺑﺎﻻﺿﺎﻓﮫ إﻟﻰ أن اﻏﻠﺐ أﻧﻈﻤﮫ وﯾﻨﺪوز ﯾﻜﻮن ﻓﯿﮭﺎ اﺳﻢ اﻟﻤﺴﺘﺨﺪم اﻟﺨﺎص‬
‫ﺑﺎﻟﻤﺪﯾﺮ ھﻮ ‪ administrator‬وﺑﺪون ﺑﺎﺳﻮرد‪ ،‬وﻟﻸﺳﻒ اﻟﻜﺜﯿﺮ ﻣﻦ اﻟﻤﺴﺘﺨﺪﻣﯿﻦ ﯾﺘﺮﻛﻮن ھﺬا‬
‫اﻟﺤﺴﺎب ﺑﺪون ﺗﻐﯿﯿﺮ‪ ،‬وﻓﻲ ھﺬه اﻟﺤﺎﻟﺔ اﻟﺪﺧﻮل إﻟﻰ اﻟﻨﻈﺎم أﻣﺮ ﻓﻲ ﻣﻨﺘﮭﻰ اﻟﺒﺴﺎﻃﺔ وﺳﻮف اﺷﻜﺮ‬
‫اﻟﺸﺮﻛﺔ اﻟﻤﻨﺘﺠﺔ ﻋﻠﻰ ھﺬه ﻟﺼﻨﯿﻌﮫ اﻟﺘﻲ ﻻ ﺗﻨﺴﻰ ‪. J‬‬

‫ﻟﻸﺳﻒ اﻟﻤﺴﺘﺨﺪم ﻃﻠﻊ ﻋﺎﻣﻞ ﺣﺴﺎﺑﮫ وﻣﻐﯿﺮ اﻟﺒﺎﺳﻮرد‪ ،‬اذا ﺳﺄﺑﺤﺚ ﻋﻦ ﻃﺮﯾﻖ أﺧﺮ وھﻮ اﻟﺒﺤﺚ ﻋﻦ‬
‫اﺳﻢ اﻟﻤﺴﺘﺨﺪم واﻟﺒﺎﺳﻮرد ﯾﻌﻨﻲ ﺗﺨﻤﯿﻨﮫ‪ ،‬ﻓﻲ اﻷﻓﻼم واﻟﻤﺴﻠﺴﻼت اﻷﻣﺮ ﺳﮭﻞ ﻟﻠﻐﺎﯾﺔ‪ ،‬دﻗﯿﻘﮫ أو اﺛﻨﯿﻦ‬
‫وﯾﺘﻢ اﻟﻜﺸﻒ ﻋﻦ ھﺬا اﻟﺒﺎﺳﻮرد وﯾﺘﻢ اﻟﺪﺧﻮل إﻟﻰ اﻟﻨﻈﺎم‪ ،‬ﻟﻜﻦ اﻟﺤﻘﯿﻘﺔ ﺗﺨﺘﻠﻒ ﻛﺜﯿﺮا‪ ،‬رﺑﻤﺎ اذا ﺑﺤﺜﺖ‬
‫ﻓﻲ اﻟﻤﻜﺘﺐ ﺗﺠﺪ ﺑﻌﺾ اﻷوراق ﻣﻜﺘﻮب ﻋﻠﯿﮭﺎ اﻟﺒﺎﺳﻮرد )أﯾﻀﺎ ھﺬه ﻓﻲ اﻷﻓﻼم ﻓﻘﻂ( ‪.‬‬

‫ﺣﺴﻨﺎ‪ ،‬ﻋﻠﻰ اﻟﻌﻤﻮم ھﻨﺎك ﻃﺮﯾﻘﮫ ﺗﺴﺘﺨﺪﻣﮭﺎ اﻟﻜﺜﯿﺮ ﻣﻦ اﻟﺠﺎﻣﻌﺎت واﻟﻤﺆﺳﺴﺎت وھﻲ اﺳﻢ اﻟﻤﺴﺘﺨﺪم‬
‫ھﻮ ﻧﻔﺴﮫ اﺳﻢ اﻟﺒﺎﺳﻮرد‪ ،‬وﻗﺪ ﺣﺼﻞ ھﺬا اﻷﻣﺮ ﻣﻌﻲ ﻓﻲ اﻟﺠﺎﻣﻌﺔ ودﺧﻠﺖ إﻟﻰ اﻟﻨﻈﺎم‪ ،‬ﻛﺎن اﺳﻢ‬
‫اﻟﻤﺴﺘﺨﺪم واﻟﺒﺎﺳﻮرد ﻋﺒﺎرة ﻋﻦ اﺳﻢ اﻟﺸﺮﻛﺔ اﻟﻤﺼﻨﻌﺔ ﻟﻠﺸﺎﺷﺔ‪ ،‬ﻣﻜﻮﻧﮫ ﻣﻦ ﺛﻼث ﺣﺮوف‪ ،‬ﻃﺒﻌﺎ ﺑﻌﺪ‬
‫اﻟﻌﺪﯾﺪ ﻣﻦ اﻟﻤﺤﺎوﻻت اﻟﺒﺎﺋﺖ ﺑﺎﻟﻔﺸﻞ‪ ،‬وﻟﻢ اﻧﺘﺒﮫ إﻟﻰ اﻧﮫ اﻟﺒﺎﺳﻮرد ﻣﻜﺘﻮب ﻓﻲ أﺳﻔﻞ اﻟﺸﺎﺷﺔ‪.‬‬

‫ﺣﺴﻨﺎ ‪ ،‬ﻓﻲ ﺣﺎل اﺳﻢ اﻟﻤﺴﺘﺨﺪم ﻟﻢ ﯾﻜﻦ ھﻮ اﻟﺒﺎﺳﻮرد ‪ ،‬ﻣﺎذا اﻓﻌﻞ ؟ ﻣﻊ اﻷﺧﺬ ﺑﺎﻻﻋﺘﺒﺎر إﻧﻲ اﻋﺮف‬
‫اﺳﻢ اﻟﻤﺴﺘﺨﺪم ‪ ،‬ﻻ ﺗﻮﺟﺪ ﻃﺮﯾﻘﮫ إﻻ ﺑﺎﻟﺘﺨﻤﯿﻦ ﺣﻮل اﻟﺒﺎﺳﻮرد ‪ ،‬اﺳﻢ اﻟﺰوﺟﺔ ‪ ،‬رﻗﻢ اﻟﮭﺎﺗﻒ ‪ ،‬ﺗﺎرﯾﺦ‬
‫اﻟﻤﯿﻼد ‪ ،‬اﺳﻢ اﻟﺤﺒﯿﺒﺔ ‪ ،‬ﻣﻤﻤﻤﻢ ﻣﺸﻜﻠﮫ أﻟﯿﺲ ﻛﺬﻟﻚ ! ﺑﺎﻟﻄﺒﻊ ﻻ ‪ ،‬ﻓﮭﻨﺎك اﻟﻜﺜﯿﺮ ﻣﻦ اﻟﺒﺮاﻣﺞ ﺗﻘﻮم‬
‫ﺑﻌﻤﻠﯿﺎت اﻟﺘﺨﻤﯿﻦ ﻧﯿﺎﺑﺔ ﻋﻨﻚ ‪ ، password cracker‬وﻓﻲ ﺣﺎﻟﮫ اﻟﺒﺎﺳﻮرد ﺿﻌﯿﻒ ‪ ،‬ﺳﻮف ﺗﺪﺧﻞ‬
‫إﻟﻰ اﻟﻨﻈﺎم ﻓﻲ ﺧﻼل دﻗﺎﺋﻖ ‪.‬‬

‫ھﻨﺎك ﺑﺮﻧﺎﻣﺞ اﺳﻤﮫ ‪ l0phtCrack‬ﯾﺴﺘﺨﺪم ﻣﻦ ﻗﺒﻞ ﻣﺪراء اﻻﻧﻈﻤﮫ ‪ ،‬وﻇﯿﻔﺘﮫ ﺗﻐﯿﯿﺮ اﻟﺒﺎﺳﻮدرات‬
‫اﻟﻤﺴﺘﺨﺪﻣﺔ ﻓﻲ اﻟﺸﺒﻜﺔ ‪) ،‬ﺑﺎﻟﻄﺒﻊ ﻓﻲ ﺣﺎل اﻟﻤﺪﯾﺮ ﯾﺴﺘﻄﯿﻊ ذﻟﻚ ‪ ،‬اﻟﻜﺮاﻛﺮ ﯾﻔﻌﻠﮭﺎ أﯾﻀﺎ (‬

‫ﻧﻮع أﺧﺮ ﻣﻦ أﻧﻮاع اﻟﮭﺠﻮم ھﻮ ﺗﺠﺎوز ﻧﻈﺎم اﻟﺘﺸﻐﯿﻞ ‪ ،‬وھﻮ ﯾﺘﻄﻠﺐ ﺑﻌﺾ اﻟﺨﺒﺮة ﻓﻲ ھﺬا اﻟﻤﺠﺎل ‪،‬‬
‫ﻣﺜﻼ ‪ ، Data Recovery Attack‬وھﻨﺎ ﺳﻮف ﯾﻘﻮم ﺑﻘﺮاءة اﻟﮭﺎردﯾﺴﻚ ﺑﺖ ﺑﺖ وﺗﺠﻤﯿﻌﮭﺎ ﻟﺒﻨﺎء‬
‫اﻟﻤﻠﻒ اﻷﺻﻠﻲ ‪ ،‬وھﺬه اﻟﺒﺮاﻣﺞ اﻟﻐﺮض ﻣﻨﮭﺎ ﻟﯿﺲ ﻟﻠﮭﺠﻮم وﻟﻜﻦ اﻟﻜﺮاﻛﺮز ھﻢ اﻟﺬﯾﻦ اﺳﺘﻔﺎدوا ﻣﻨﮭﺎ‬
‫ﻓﺎﻏﻠﺐ ﺑﺮاﻣﺞ اﺳﺘﻌﺎده اﻟﺒﯿﺎﻧﺎت ﯾﺘﻢ اﺳﺘﺨﺪاﻣﮭﺎ ﻣﻦ ﻗﺒﻞ اﻟﻤﺨﺘﺼﯿﻦ ﻓﻲ اﺳﺘﺮﺟﺎع اﻟﺒﯿﺎﻧﺎت ‪ ،‬ﻣﺜﻼ‬
‫ﺧﺮب ﻋﻠﯿﻚ اﻟﻨﻈﺎم ‪ System Crash‬أو ﺣﺪث ‪ Bad Sector‬ﻓﻲ اﻟﮭﺎدرﯾﺴﻚ اﻟﺨﺎص ﺑﻚ ‪ ،‬ﻛﻞ ﻣﺎ‬
‫ﻋﻠﯿﻚ )ﻓﻲ ﺣﺎل اﻧﻚ ﻣﺴﺘﺨﺪم( اﻟﺬھﺎب إﻟﻰ ﺧﺒﺮاء اﺳﺘﺮﺟﺎع اﻟﺒﯿﺎﻧﺎت ‪ ،‬وھﻮ ﺳﻮف ﯾﺴﺘﺨﺪﻣﻮا ھﺬه‬
‫اﻟﺒﺮاﻣﺞ ﻻﺳﺘﻌﺎده ﺑﯿﺎﻧﺎﺗﻚ ‪ .‬ﻧﻔﺲ اﻷﻣﺮ ﺳﻮف ﯾﻘﻮم اﻟﻤﺨﺘﺮق ﺑﺎﺳﺘﺨﺪام ھﺬه اﻟﺒﺮاﻣﺞ ﻟﺘﺠﺎوز ﻧﻈﺎم‬
‫اﻟﺘﺸﻐﯿﻞ‪..‬‬

‫ﻧﻮع أﺧﺮ ﻣﻦ اﻟﮭﺠﻮم وھﻮ اﻟﮭﺠﻮم ﻋﻠﻰ اﻟﺬاﻛﺮة ‪ ، Memory Reconstruction Attack‬ﻓﻲ‬
‫اﻟﺒﺪاﯾﺔ ﻋﻨﺪﻣﺎ ﻧﺘﻌﺎﻣﻞ ﻣﻊ ﺑﺮﻧﺎﻣﺞ ﻣﺎ ﺑﺎﻟﻄﺒﻊ ﺳﻮف ﺗﻜﻮن ﺟﻤﯿﻊ اﻟﺘﻌﻠﻤﯿﺎت ﻣﻮﺟﻮدة ﻓﻲ اﻟﺬاﻛﺮة ‪،‬‬
‫وﺳﻮف ﺗﻜﻮن ھﻨﺎك اﺷﺎره ﻓﻲ اﻟﻤﻮﻗﻊ اﻟﻤﺤﻔﻮظ ﻓﯿﮭﺎ ﺗﻌﻠﯿﻤﺎت اﻟﺒﺮﻧﺎﻣﺞ ‪ ،‬وﻋﻨﺪﻣﺎ ﻧﻨﺘﮭﻲ ﻣﻦ‬
‫اﻟﺒﺮﻧﺎﻣﺞ وﻧﻘﻮم ﺑﺈﻏﻼﻗﮫ ‪ ،‬ﻓﺴﻮف ﯾﻘﻮم ﻣﺪﯾﺮ اﻟﺬاﻛﺮة ﻓﻲ اﻟﻨﻈﺎم ﺑﺤﺬف ھﺬه اﻻﺷﺎره دون ﺣﺬف‬
‫اﻟﻤﺤﺘﻮى اﻟﺤﻘﯿﻘﻲ ﻟﮭﺎ ‪ ،‬ﺑﺎﻟﻄﺒﻊ ﻣﻦ اﻟﻤﻤﻜﻦ أن ﯾﺄﺗﻲ أي ﺑﺮﻧﺎﻣﺞ أﺧﺮ وﯾﺤﻞ ﻓﻲ ﻧﻔﺲ اﻟﻤﻮﻗﻊ وﯾﺤﺬف‬
‫ﺗﻠﻚ اﻟﺒﯿﺎﻧﺎت ‪ ،‬وﻣﻦ اﻟﻤﻤﻜﻦ أن ﺗﻜﻮن ﻣﻮﺟﻮدة ‪ ..‬ھﺠﻮم اﻟﺬاﻛﺮة ﯾﻘﻮم ﺑﻌﻤﻞ ﻣﺴﺢ ﻟﻠﺬاﻛﺮة وﻛﺘﺎﺑﮫ ﺗﻠﻚ‬
‫اﻟﺒﯿﺎﻧﺎت اﻟﺘﻲ ﻻ ﺗﻮﺟﺪ ﻋﻠﯿﮭﺎ اﺷﺎره ‪) ،‬ﻻ اﻋﻠﻢ ﻛﻢ ﯾﺘﻢ ﺗﻄﺒﯿﻖ ھﺬا اﻟﮭﺠﻮم ﻋﻠﻰ ارض اﻟﻮاﻗﻊ( ‪.‬‬

‫ﻣﺸﻜﻠﮫ أﺧﺮى ‪ ،‬وھﻲ اﻟﺬاﻛﺮة اﻟﻈﺎھﺮﯾﺔ ‪ ،‬اﻏﻠﺐ اﻧﻈﻤﮫ اﻟﺘﺸﻐﯿﻞ ﺗﺤﺘﻮي ﻋﻠﻰ ‪Virtual Memory‬‬

‫‪86‬‬
‫‪PDF created with pdfFactory Pro trial version www.pdffactory.com‬‬
‫وھﻨﺎ ﯾﺘﻢ اﺳﺘﺨﺪام اﻟﮭﺎدرﯾﺴﻚ ﻛﺬاﻛﺮه ‪ ،‬وﻣﺒﺪأ ﻋﻤﻠﮭﺎ ﻓﻲ ﺣﺎﻟﮫ اﻣﺘﻸت اﻟﺬاﻛﺮة ﯾﺘﻢ إﻓﺮاغ ﺑﻌﺾ ﻣﻦ‬
‫ﻣﺤﺘﻮﯾﺎﺗﮭﺎ اﻟﺘﻲ ﻟﻢ ﺗﺴﺘﺨﺪم ﻣﻦ وﻗﺖ ﻃﻮﯾﻞ إﻟﻰ اﻟﮭﺎدرﯾﺴﻚ ﻓﻲ ﻣﻜﺎن ﻣﻌﯿﻦ ‪ ،‬ﺑﻌﺪھﺎ ﻓﻲ ﺣﺎل ﻃﻠﺒﺖ‬
‫ﺗﻠﻚ اﻟﻤﻮاﻗﻊ )اﻟﺘﻲ أﺻﺒﺤﺖ ﻣﻮﺟﻮدة ﻓﻲ اﻟﮭﺎردﯾﺴﻚ( ﺳﻮف ﯾﻘﻮم ﻧﻈﺎم اﻟﺬاﻛﺮة ﺑﻌﻤﻞ ﺗﺒﺪﯾﻞ ‪Swap‬‬
‫ﺑﯿﻦ اﻟﻤﺤﺘﻮﯾﺎت ‪ ،‬ﻋﻠﻰ اﻟﻌﻤﻮم ﻓﻲ ﻋﺎم ‪ 1999‬ﻗﺎم اﺣﺪھﻢ ﺑﻜﺘﺎﺑﮫ ﺑﺮﻧﺎﻣﺞ ﻟﻤﺴﺢ ھﺬا اﻟﻤﻜﺎن اﻟﺘﻲ‬
‫ﺗﺤﻔﻆ ﻓﯿﮫ اﻟﺬاﻛﺮة وﺗﻤﻜﻦ ﻣﻦ إﯾﺠﺎد اﻟﺒﺎﺳﻮرد اﻟﺨﺎص ﺑﮫ ﻓﻲ اﺣﺪ اﻟﺒﺮاﻣﺞ‪.‬‬

‫ﻛﻞ ﻃﺮق اﻟﮭﺠﻮم اﻟﺴﺎﺑﻘﺔ ‪ ،‬دﻟﯿﻞ ﻋﻠﻰ أﻧﻚ وﺣﺘﻰ "ﺑﻨﻈﺎم ﺗﺸﻐﯿﻠﻚ اﻟﺨﺎرق" ﻗﺪ ﺗﻜﻮن ﺑﯿﺎﻧﺎت وﻣﻠﻔﺎﺗﻚ‬
‫ﻓﻲ ﺧﻄﺮ ‪ ،‬ﻟﺬﻟﻚ ﻻ ﺑﺪ ﻣﻦ اﺿﺎﻓﮫ اﻟﺤﻤﺎﯾﺔ ﺑﻮاﺳﻄﺔ اﻟﺘﺸﻔﯿﺮ و ﻋﺪم اﻻﻋﺘﻤﺎد ﻋﻠﻰ ﺗﻠﻚ اﻟﺤﻤﺎﯾﺔ‬
‫اﻟﻤﻘﺪﻣﺔ ﻣﻦ ﻧﻈﺎم اﻟﺘﺸﻐﯿﻞ واﻻﻓﺘﺮاض ﺑﺄن اﻟﻤﺨﺘﺮق ﯾﻌﺮف أﺳﺎﻟﯿﺐ اﻟﺘﺮاوغ واﻻﺧﺘﺮاق ‪،‬‬
‫واﻟﺘﺸﻔﯿﺮ ھﻮ ﺑﺒﺴﺎﻃﮫ ﺗﺤﻮﯾﻞ اﻟﻨﺼﻮص اﻟﻤﻔﮭﻮﻣﺔ ﻏﻠﻰ ﻛﻼم ﻏﯿﺮ ﻣﻔﮭﻮم ‪، gibberish‬‬

‫ﻣﺜﻞ‪my name is wajdy , im a Beginer in java programming :‬‬


‫ﺗﺼﺒﺢ‪kjdkp isjeu epdmp owdkl kld dkl kqklq ds :‬‬

‫وﺣﺘﻰ ﻟﻮ اﺳﺘﻄﺎع اﻟﻤﺨﺘﺮق ﺑﺎﻟﻮﺻﻮل إﻟﻰ ﻧﻈﺎﻣﻚ وﻛﺴﺮه ‪ ،‬ﺳﻮف ﯾﺸﺎھﺪ ﻣﻠﻔﻚ ﺑﺎﻟﺼﻮرة اﻟﺴﺎﺑﻘﺔ ‪،‬‬
‫وﻟﻦ ﯾﺤﺼﻞ ﻋﻠﻰ ﺷﻲء ﻣﻔﯿﺪ أﺑﺪا ‪.‬‬

‫ﯾﻌﻨﻲ ﺑﺎﻟﺘﺸﻔﯿﺮ ﺳﻮف ﺗﺤﺼﻞ ﻋﻠﻰ )أھﺪاف اﻟﺘﺸﻔﯿﺮ (‪:‬‬


‫*اﻟﺨﺼﻮﺻﯿﺔ أو اﻟﺴﺮﯾﺔ ‪Privacy‬‬
‫ﻟﻦ ﯾﺴﺘﻄﯿﻊ اﺣﺪ ﻗﺮاﺋﮫ ﻣﻠﻔﺎﺗﻚ اﻟﺴﺮﯾﺔ )وﻣﻠﻔﺎﺗﻚ اﻟﻄﺒﯿﺔ( ‪ ،‬إﻻ ﻣﻦ ﺗﺮﯾﺪه أﻧﺖ ﻓﻘﻂ !‬

‫*ﺗﻜﺎﻣﻞ اﻟﺒﯿﺎﻧﺎت ‪Data Integrity‬‬


‫وﯾﻌﻨﻲ اﻟﺘﺄﻛﺪ ﻣﻦ أن رﺳﺎﻟﺘﻚ ﻟﻢ ﺗﺘﻐﯿﺮ )ﻗﺎم اﺣﺪھﻢ ﺑﺘﻐﯿﯿﺮ ﺷﻲء ﻣﺎ ( أﺛﻨﺎء إرﺳﺎﻟﻚ ﻟﻠﺮﺳﺎﻟﺔ ‪ ،‬أو ﻗﺎم‬
‫ﺑﺘﻐﯿﯿﺮ ﻣﻠﻒ ﻣﺤﻔﻮظ ﻣﺴﺒﻘﺎ ‪.‬‬

‫*اﻟﺘﺤﻘﻖ ‪Authentication‬‬
‫اﻟﺘﺤﻘﻖ ﻣﻦ اﻟﺸﺨﺺ اﻟﻔﻼﻧﻲ ھﻮ اﻟﺸﺨﺺ اﻟﺬي ﺗﺮﯾﺪه ﻟﻘﺮاﺋﮫ اﻟﺮﺳﺎﻟﺔ ‪،‬‬

‫*ﻋﺪم اﻹﻧﻜﺎر ‪: nonrepudiation‬‬


‫ﻣﺼﻄﻠﺢ ﻏﺮﯾﺐ ﻗﻠﯿﻼ ‪ ،‬وﻟﻜﻦ اﻟﻔﺎﺋﺪة ھﻨﺎ ﺟﻌﻞ اﻟﺸﺨﺺ اﻟﻤﺮﺳﻞ ﻟﻠﺮﺳﺎﻟﺔ اﻻﻟﺘﺰام وﻋﺪم إﻧﻜﺎر اﻧﮫ‬
‫ھﻮ اﻟﺸﺨﺺ اﻟﻤﺮﺳﻞ ﻟﻠﺮﺳﺎﻟﺔ ‪.‬‬

‫ﺍﻟﺘﺸﻔﻴﺮ ﺑﺎﻟﻤﻔﺘﺎﺡ ﺍﻟﻤﺘﻨﺎﻇﺮ ‪: Symmetric key Cryptography‬‬

‫ﻧﺬﻛﺮ ﻣﺮه أﺧﺮى أن اﻟﺘﺸﻔﯿﺮ ھﻮ ﻋﺒﺎرة ﻋﻦ ﺗﺤﻮﯾﻞ اﻟﻤﻌﻠﻮﻣﺎت اﻟﻤﻔﮭﻮﻣﺔ إﻟﻰ ﻣﻌﻠﻮﻣﺎت ﻏﯿﺮ‬
‫ﻣﻔﮭﻮﻣﮫ ‪ ، Gibberish‬واﻟﻌﻤﻠﯿﺔ اﻟﻌﻜﺴﯿﺔ ﻓﻚ اﻟﺘﺸﻔﯿﺮ ‪ ،‬ھﻲ ﻋﻤﻠﯿﮫ ﺗﺤﻮﯾﻞ اﻟﻤﻌﻠﻮﻣﺎت اﻟﻐﯿﺮ ﻣﻔﮭﻮﻣﮫ‬
‫إﻟﻰ ﻣﻌﻠﻮﻣﺎت ﻣﻔﮭﻮﻣﮫ ‪.‬‬

‫اﻟﻨﻮع اﻷول ﻣﻦ أﻧﻮاع اﻟﺘﺸﻔﯿﺮ ھﻮ‪ :‬اﻟﺘﺸﻔﯿﺮ ﺑﺎﻟﻤﻔﺘﺎح اﻟﻤﺘﻨﺎﻇﺮ ‪ ،‬وھﻨﺎ ﺳﻮف ﻧﺴﺘﺨﺪم ﻣﻔﺘﺎح ﻣﻊ‬
‫ﺧﻮارزﻣﯿﺔ )ھﻨﺎك اﻟﻜﺜﯿﺮ( ﻟﺘﺸﻔﯿﺮ اﻟﻤﻌﻠﻮﻣﺎت ‪ ،‬وﺳﻮف ﻧﺴﺘﺨﺪم ﻧﻔﺲ اﻟﻤﻔﺘﺎح وﻧﻔﺲ اﻟﺨﻮارزﻣﯿﺔ‬
‫ﻟﻔﻚ اﻟﺘﺸﻔﯿﺮ ‪) .‬ﻻﺣﻆ ﯾﺠﺐ أن ﺗﻜﻮن ﻧﻔﺲ اﻟﻤﻔﺘﺎح وﻧﻔﺲ اﻟﺨﻮارزﻣﯿﺔ ‪ ،‬وﻣﻦ ھﻨﺎ ﺟﺎء اﻻﺳﻢ‬
‫"ﻣﺘﻨﺎﻇﺮ" ( ‪.‬‬

‫‪87‬‬
‫‪PDF created with pdfFactory Pro trial version www.pdffactory.com‬‬
‫وﻟﻨﻀﺮب ﻣﺜﺎل ﺑﺴﯿﻂ ﯾﻮﺿﺢ اﻟﻌﻤﻠﯿﺔ ‪:‬‬

‫اﻷخ ﻣﺤﻤﺪ ھﻮ ﻣﻨﺪوب ﻣﺒﯿﻌﺎت ﻓﻲ اﺣﺪ اﻟﺸﺮﻛﺎت اﻟﻜﺒﺮى ‪ ،‬وﻗﺪ وﺻﻠﺘﮫ رﺳﺎﻟﺔ ﻣﻦ ﻣﺪﯾﺮ ﻗﺴﻢ‬
‫اﻟﻤﺒﯿﻌﺎت اﻷخ ﻋﻠﻲ ‪ ،‬ھﺬه اﻟﺮﺳﺎﻟﺔ ﺗﺤﺘﻮي ﻋﻠﻰ ﻣﻌﻠﻮﻣﺎت ﺳﺮﯾﮫ ﺟﺪا ﺧﺎﺻﺔ ﺑﺎﻷﺳﻌﺎر اﻟﺠﺪﯾﺪة‬
‫ﻟﻠﻤﻨﺘﺠﺎت وﺑﻌﺾ اﻷﻣﻮر اﻟﺨﺎﺻﺔ ﻓﻲ اﻟﺸﺮﻛﺔ ‪.‬‬

‫اﻵن ﻗﺮر أﺧﻮﻧﺎ ﻣﺤﻤﺪ ھﻮ واﻟﻤﺪﯾﺮ ﻋﻠﻲ اﻟﺤﻔﺎظ ﻋﻠﻰ ھﺬه اﻟﺮﺳﺎﻟﺔ اﻟﺴﺮﯾﺔ ﻟﺪﯾﮭﻤﺎ ﻓﻘﻂ ‪ ،‬ﻓﻤﺎ ھﻮ‬
‫اﻟﺴﺒﯿﻞ ﻟﺬﻟﻚ ؟ ﻗﺪ ﯾﺴﺘﻄﯿﻊ اﻷخ ﻣﺤﻤﺪ ﺣﻔﻆ اﻟﺮﺳﺎﻟﺔ ﻟﺪﯾﮫ ﻓﻲ اﻟﻤﻜﺘﺐ ﻓﻲ اﻟﺪرج )ﻟﻜﻨﮫ ﯾﺨﺎف ﻣﻦ أن‬
‫ﺗﺴﺮق ﻣﻦ اﻟﺪرج( ‪ ،‬أو رﺑﻤﺎ ﯾﺤﻔﻆ ﺗﻠﻚ اﻟﺮﺳﺎﻟﺔ ﻓﻲ رأﺳﮫ ) ﻟﻜﻦ ﻟﻸﺳﻒ اﻟﺮﺳﺎﻟﺔ ﻃﻮﯾﻠﺔ ﺟﺪا( ‪،‬‬
‫وھﻮ ﯾﺤﺘﺎج إﻟﯿﮭﺎ ﻓﻲ ﻋﻤﻠﯿﮫ اﻟﺒﯿﻊ ﻻن ﺑﮭﺎ أﺳﻌﺎر اﻟﻤﻨﺘﺠﺎت ‪) ...‬ﻟﺬﻟﻚ ﯾﺠﺐ أن ﯾﺤﻤﻠﮭﺎ ﻣﻌﮫ( ‪.‬‬

‫ﻗﺪ ﯾﻘﻮم اﻷخ ﻣﺤﻤﺪ ﺑﺤﻔﻆ ھﺬه اﻟﺮﺳﺎﻟﺔ ﻓﻲ ﺟﮭﺎزه اﻟﻤﺤﻤﻮل واﻟﻘﯿﺎم ﺑﻮﺿﻊ ﺑﺎﺳﻮرد ﻋﻠﻰ اﻟﻨﻈﺎم‬
‫وﺑﻌﺾ اﻟﺼﻼﺣﯿﺎت ‪ ،‬ﻟﻜﻦ رأﯾﻨﺎ ﻗﺒﻞ ﻗﻠﯿﻞ أن ھﺬه اﻟﻄﺮﯾﻘﮫ ﻏﯿﺮ ﻛﺎﻓﯿﮫ ‪ ،‬ﻗﺪ ﯾﻀﯿﻊ اﻟﺠﮭﺎز اﻟﻤﺤﻤﻮل‬
‫أو ﻗﺪ ﯾﺴﺮق ﻣﻨﮫ وﺑﻌﺪھﺎ ﺗﻨﻜﺸﻒ ﻛﻞ اﻟﻤﻌﻠﻮﻣﺎت وﺗﻀﯿﻊ اﻟﺸﺮﻛﺔ ‪.‬‬

‫أﺧﯿﺮا ﻗﺮر أﺧﻮﻧﺎ ﻣﺤﻤﺪ ﺗﺸﻔﯿﺮ ﺗﻠﻚ اﻟﺮﺳﺎﻟﺔ ‪ ،‬وﺑﻤﺎ اﻧﮫ ﻻ ﯾﻌﺮف أي ﺷﯿﺌﺎ ﻓﻲ اﻟﺒﺮﻣﺠﺔ ﻗﺎم ﺑﺸﺮاء‬
‫ﺑﺮﻧﺎﻣﺞ ﻣﻦ اﻷخ ‪ romansy‬ﯾﻘﻮم ﺑﺘﺸﻔﯿﺮ اﻟﺮﺳﺎﻟﺔ ‪ ،‬ھﺬا اﻟﺒﺮﻧﺎﻣﺞ ﺑﺴﯿﻂ ﻓﻲ ﻋﻤﻠﮫ ‪User-‬‬
‫‪ friendly‬وﯾﺤﺘﻮي ﻋﻠﻰ ﺛﻼﺛﺔ أزرار واﺣﺪ ﻟﻠﺘﺸﻔﯿﺮ‪ ،‬و واﺣﺪ ﻟﻔﻚ اﻟﺘﺸﻔﯿﺮ ‪ ،‬و واﺣﺪ ﻟﺘﺤﻤﯿﻞ‬
‫اﻟﻤﻠﻒ ﻣﻦ اﻟﺠﮭﺎز ‪ ،‬وﺑﻜﻞ ﺑﺴﺎﻃﮫ ﻟﻜﻲ ﯾﻌﻤﻞ ﯾﻘﻮم ﻣﺤﻤﺪ ﺑﺘﺤﻤﯿﻞ اﻟﻤﻠﻒ )اﻟﺮﺳﺎﻟﺔ( ‪ ،‬واﻟﻀﻐﻂ ﻋﻠﻰ‬
‫زر اﻟﺘﺸﻔﯿﺮ ‪ Encryption‬وﺑﻌﺪھﺎ ﺗﺘﺤﻮل اﻟﺮﺳﺎﻟﺔ إﻟﻰ ﻛﻼم ﻏﯿﺮ ﻣﻔﮭﻮم )ﻣﺸﻔﺮ( ‪ ،‬وﻓﻲ ﺣﺎل‬
‫ﺣﺼﻞ اﻟﻤﺨﺘﺮق ﻋﻠﻰ ﺗﻠﻚ اﻟﺮﺳﺎﻟﺔ اﻟﻨﺎﺗﺠﮫ ﻓﺒﺎﻟﺘﺄﻛﯿﺪ ﻟﻦ ﯾﻔﮭﻢ ﺷﻲء‪..‬‬

‫اﻵن اذا أراد أﺧﻮﻧﺎ ﻣﺤﻤﺪ ﻓﻚ اﻟﺘﺸﻔﯿﺮ )اﻟﻌﻤﻠﯿﺔ اﻟﻌﻜﺴﯿﺔ( ﻛﻞ ﻣﺎ ﻋﻠﯿﮫ ھﻮ ﺗﺤﻤﯿﻞ اﻟﺮﺳﺎﻟﺔ اﻟﻤﺸﻔﺮة‬
‫وﺑﻌﺪھﺎ اﻟﻀﻐﻂ ﻋﻠﻰ زر ﻓﻚ اﻟﺘﺸﻔﯿﺮ ‪ ،‬وﺗﺮﺟﻊ اﻟﺮﺳﺎﻟﺔ إﻟﻰ ﺣﺎﻟﺘﮭﺎ اﻻﺻﻠﯿﮫ‪..‬‬

‫‪88‬‬
‫‪PDF created with pdfFactory Pro trial version www.pdffactory.com‬‬
‫اﻟﻤﺸﻜﻠﺔ اﻟﺤﻘﯿﻘﺔ ھﻨﺎ ‪ ،‬ﻓﻲ ﺣﺎل ﺣﺼﻞ اﻟﻤﺨﺘﺮق ﻋﻠﻰ ﺑﺮﻧﺎﻣﺞ اﻟﺘﺸﻔﯿﺮ ھﺬا اﻟﺨﺎص ﺑﺎﻷخ‬
‫‪ Romansy‬ھﻨﺎ ﻛﻞ ﻣﺎ ﻋﻠﻰ اﻟﻤﺨﺘﺮق ﺗﺤﻤﯿﻞ اﻟﻤﻠﻒ اﻟﻤﺸﻔﺮ وﺿﻐﻂ زر ﻓﻚ اﻟﺘﺸﻔﯿﺮ وﺑﻌﺪھﺎ‬
‫ﯾﺤﺼﻞ ﻋﻠﻰ اﻟﺮﺳﺎﻟﺔ !! ﻣﻦ اﻟﻤﻤﻜﻦ أن ﺗﻘﻮل "ﻛﯿﻒ ﯾﺴﺘﻄﯿﻊ اﻟﺤﺼﻮل ﻋﻠﻰ ﺑﺮﻧﺎﻣﺞ اﻟﺘﺸﻔﯿﺮ" ‪،‬‬
‫اﻟﺠ ﻮاب ﺑﺎﻟﺘﺄﻛﯿﺪ ھﻮ ﺳﯿﺤﺼﻞ ﻋﻠﯿﮫ ‪ ،‬اذا ﻛﻨﺖ ﺗﺴﺘﻄﯿﻊ إﺧﻔﺎء ھﺬا اﻟﺒﺮﻧﺎﻣﺞ ﻓﻠﻤﺎذا ﻻ ﺗﺨﻔﻰ اﻟﺮﺳﺎﻟﺔ‬
‫ﻣﻦ اﻷﺻﻞ ‪ ،‬وﻻ ﺗﺤﺘﺎج ﻟﺒﺮﻧﺎﻣﺞ ﻟﺒﺮﻧﺎﻣﺞ اﻷخ ‪ Romansy‬وﻻ أﺻﻼ ﻟﻠﺘﺸﻔﯿﺮ ﻛﻜﻞ ‪.‬‬

‫ﺑﺎﻟﺘﺄﻛﯿﺪ أﺧﻮﻧﺎ ﻣﺤﻤﺪ ﻻ ﯾﺴﺘﻄﯿﻊ إﺧﻔﺎء ھﺬا اﻟﻤﻠﻒ ‪ ،‬اذا ﻣﺎ اﻟﻌﻤﻞ اذا ؟؟ ﻣﻤﻤﻤﻢ ﺑﺎﻟﺘﺄﻛﯿﺪ ھﻮ ﯾﺤﺘﺎج‬
‫إﻟﻰ ﺷﻲء إﺿﺎﻓﻲ ‪ ،‬أﻻ وھﻮ اﻟﻤﻔﺘﺎح اﻟﺴﺮي ‪. Secret Key‬‬

‫ﻗﺎم اﻷخ ﻣﺤﻤﺪ ﺑﺈﺑﻼغ ‪ romansy‬وﻗﺪ ﺗﻢ اﺿﺎﻓﮫ ﺧﺎﺻﯿﺔ إدﺧﺎل اﻟﻤﻔﺘﺎح ‪ ،‬اﻵن اﻟﺒﺮﻧﺎﻣﺞ ﻟﻜﻲ ﯾﻌﻤﻞ‬
‫ﯾﺠﺐ أن ﯾﻘﻮم اﻷخ ﻣﺤﻤﺪ ﺑﺘﺤﻤﯿﻞ اﻟﻤﻠﻒ )اﻟﺮﺳﺎﻟﺔ( إﻟﻰ اﻟﺒﺮﻧﺎﻣﺞ ‪ ،‬وﯾﺪﺧﻞ اﻟﻤﻔﺘﺎح ﺳﺮي )إي رﻗﻢ‬
‫ﯾﺤﻔﻈﮫ ﺗﻤﺎﻣﺎ( ﺑﻌﺪھﺎ ﯾﻀﻐﻂ ﻋﻠﻰ زر اﻟﺘﺸﻔﯿﺮ ‪ ،‬واﻟﻨﺎﺗﺞ ھﻮ اﻟﻤﻠﻒ اﻟﻤﺸﻔﺮ )اﻟﻐﯿﺮ ﻣﻔﮭﻮم(‪.‬‬

‫ﻓﻲ ﺣﺎل أراد اﻷخ ﻣﺤﻤﺪ ﺑﺎﻟﻘﯿﺎم ﺑﺎﻟﻌﻤﻠﯿﺔ اﻟﻌﻜﺴﯿﺔ ‪ ،‬ﻛﻞ ﻣﺎ ﻋﻠﯿﮫ ﺗﺤﻤﯿﻞ اﻟﻤﻠﻒ اﻟﻤﺸﻔﺮ إﻟﻰ اﻟﺒﺮﻧﺎﻣﺞ‬
‫‪ ،‬وإدﺧﺎل اﻟﺮﻗﻢ اﻟﺴﺮي اﻟﺬي اﺳﺘﺨﺪﻣﮫ ﻟﻠﺘﺸﻔﯿﺮ ‪ ،‬واﻟﻀﻐﻂ ﻋﻠﻰ زر ﻓﻚ اﻟﺘﺸﻔﯿﺮ ‪ ،‬واﻟﻨﺎﺗﺞ ھﻮ‬
‫اﻟﻤﻠﻒ اﻷﺻﻠﻲ )أو اﻟﺮﺳﺎﻟﺔ ( ‪.‬‬

‫اﻵن ﻓﻲ ﺣﺎل أﺧﻮﻧﺎ اﻟﻤﺨﺘﺮق ﺣﺼﻞ ﻋﻠﻰ اﻟﺒﺮﻧﺎﻣﺞ واﻟﺮﺳﺎﻟﺔ اﻟﻤﺸﻔﺮة وأراد اﻟﻘﯿﺎم ﺑﺎﻟﻌﻤﻠﯿﺔ اﻟﻌﻜﺴﯿﺔ‬
‫‪ ،‬ھﻮ ﻟﻶﺳﻒ ﻻ ﯾﻤﻠﻚ اﻟﻤﻔﺘﺎح اﻟﺴﺮي ‪ ،‬وﺳﻮف ﯾﻜﺘﺐ وﯾﺨﻤﻦ ووو وﻓﻲ ﻛﻞ ﻣﺮه ﯾﻜﺘﺐ ﻣﻔﺘﺎح ﺳﺮي‬
‫ﺧﺎﻃﺊ ﺳﻮف ﯾﻜﻮن ھﻨﺎك ﻧﺎﺗﺞ ﻏﯿﺮ ﻣﻔﮭﻮم ‪.‬‬

‫‪89‬‬
‫‪PDF created with pdfFactory Pro trial version www.pdffactory.com‬‬
‫وھﻜﺬا ‪ ،‬أي اﺣﺪ ﻟﻦ ﯾﺴﺘﻄﯿﻊ اﻟﺤﺼﻮل ﻋﻠﻰ اﻟﺮﺳﺎﻟﺔ اﻻﺻﻠﯿﮫ إﻻ ﺑﻌﺪ ﻛﺘﺎﺑﮫ اﻟﻤﻔﺘﺎح اﻟﺴﺮي ‪ ،‬وإذا‬
‫ادﺧﻞ اﻟﻤﻔﺘﺎح اﻟﺨﺎﻃﺊ ﺳﻮف ﯾﻜﻮن اﻟﻨﺎﺗﺞ ﻏﯿﺮ ﻣﻔﮭﻮم ‪،‬وﺣﺘﻰ ﻟﻮ ﻛﺎن ھﺬا اﻟﻤﻔﺘﺎح اﻟﺨﺎﻃﺊ اﻗﻞ ﻣﻦ‬
‫اﻟﻤﻔﺘﺎح اﻟﺴﺮي ﺑﺮﻗﻢ واﺣﺪ ‪.‬‬

‫ﻃﺮﯾﻘﮫ اﻟﺘﺸﻔﯿﺮ اﻟﺴﺎﺑﻘﺔ اﻟﺘﻲ اﺳﺘﺨﺪﻣﻨﺎھﺎ ﺗﺴﻤﻰ )اﻟﺘﺸﻔﯿﺮ ﺑﺎﻟﻤﻔﺘﺎح اﻟﻤﺘﻨﺎﻇﺮ أو اﻟﻤﺘﻤﺎﺛﻞ‬
‫‪ (Symmetric key Cryptography‬واﻟﺒﻌﺾ ﯾﺴﻤﯿﮭﺎ ‪Secret key Cryptography‬‬
‫‪ ،‬أﯾﻀﺎ اﺳﻢ )اﻟﺘﺸﻔﯿﺮ اﻟﺘﻘﻠﯿﺪي ‪ ، ( Conventional Encryption‬ﻟﻜﻦ ﻧﺤﻦ ﻧﺄﺧﺬ اﻟﻤﺼﻄﻠﺢ‬
‫اﻷول ‪.‬‬

‫ﺑﺎﻟﻨﺴﺒﺔ إﻟﻰ ﻋﻠﻢ اﻟﺘﺸﻔﯿﺮ ھﻨﺎك اﻟﻜﺜﯿﺮ ﻣﻦ اﻟﻤﺼﻄﻠﺤﺎت ﻟﮭﺎ ﻧﻔﺲ اﻟﻤﻌﻨﻰ ‪ ،‬ﻋﻠﻰ اﻟﻌﻤﻮم ﺳﺄﺣﺎول‬
‫وﺿﻊ اﻷﻏﻠﺐ واﻷﺷﮭﺮ ھﻨﺎ ‪.‬‬
‫ﻓﻲ ﺣﺎل أردت أن ﺗﺤﻮل اﻟﻤﻌﻠﻮﻣﺎت اﻟﻤﻔﮭﻮﻣﺔ إﻟﻰ ﻏﯿﺮ ﻣﻔﮭﻮﻣﮫ ﺗﺴﻤﻰ اﻟﻌﻤﻠﯿﺔ ﺗﺸﻔﯿﺮ‬
‫‪Encryption‬‬
‫ﻓﻲ ﺣﺎل أردت أن ﺗﺤﻮل اﻟﻤﻌﻠﻮﻣﺎت اﻟﻐﯿﺮ ﻣﻔﮭﻮﻣﮫ إﻟﻰ ﻣﻔﮭﻮﻣﮫ ﺗﺴﻤﻰ اﻟﻌﻤﻠﯿﺔ ﻓﻚ اﻟﺘﺸﻔﯿﺮ‬
‫‪Decryption‬‬

‫ﻟﻠﺘﺸﻔﯿﺮ أو ﻓﻚ اﻟﺘﺸﻔﯿﺮ ‪ ،‬ﯾﺠﺐ أن ﺗﺘﺒﻊ ﺧﻮارزﻣﯿﺔ ‪ Algorithm‬ﻣﻌﯿﻨﮫ ‪ ،‬اﻟﺨﻮارزﻣﯿﺔ ھﻲ‬


‫ﻣﺠﻤﻮﻋﮫ ﺧﻄﻮات ﻣﺮﺗﺒﮫ ﺑﻄﺮﯾﻘﮫ ﻣﻌﯿﻨﺔ ﺗﺆدي ھﺪف ﻣﻌﯿﻦ ‪ ،‬ﺑﺎﻟﻄﺒﻊ ﻣﻔﮭﻮم اﻟﺨﻮارزﻣﯿﺔ ﻣﻔﮭﻮم ﻟﺪى‬
‫اﻏﻠﺐ اﻟﻤﺒﺮﻣﺠﯿﻦ ‪ ،‬وﺗﺴﺘﻄﯿﻊ ﺗﻄﺒﯿﻖ اﻟﺨﻮارزﻣﯿﺔ ﺑﺄي ﻟﻐﺔ ﺑﺮﻣﺠﮫ ‪ ،‬اﻟﻤﮭﻢ ﻓﻲ اﻟﺘﺸﻔﯿﺮ اﻟﺨﻮارزﻣﯿﺔ‬
‫ﻣﻤﻜﻦ أن ﺗﻜﻮن ﻋﻠﻤﯿﮫ رﯾﺎﺿﯿﮫ ﻣﻌﻘﺪه ﻟﻠﻐﺎﯾﺔ وﻣﻤﻜﻦ أن ﺗﻜﻮن ﻋﻤﻠﯿﮫ ﺟﻤﻊ ﺑﺘﺎت أو ﻋﻤﻠﯿﮫ ‪XOR‬‬
‫) ﻓﻲ اﻏﻠﺐ اﻟﺨﻮارزﻣﯿﺎت اﻟﺘﻌﺎﻣﻞ ﺑﯿﻜﻮن ﻋﻠﻰ ﺣﺴﺐ اﻟﺒﺖ ‪ ، bit‬ﻟﺬﻟﻚ ﺳﻮف ﺗﺴﺘﺨﺪم ﻋﻤﻠﯿﺎت اﻟـ‬
‫‪. (Bitwise operation‬‬

‫‪90‬‬
‫‪PDF created with pdfFactory Pro trial version www.pdffactory.com‬‬
‫اﻟﺒﯿﺎﻧﺎت )أو اﻟﺮﺳﺎﻟﺔ( اﻟﺘﻲ ﻧﺮﯾﺪ إﺟﺮاء ﻋﻤﻠﯿﮫ اﻟﺘﺸﻔﯿﺮ ﻋﻠﯿﮭﺎ ﺗﺴﻤﻰ )اﻟﻨﺺ اﻟﻮاﺿﺢ ‪plain text‬‬
‫أو اﻟﻨﺺ اﻷﺻﻠﻲ ‪.( clear text‬‬
‫اﻟﺒﯿﺎﻧﺎت ﺑﻌﺪ اﻟﺘﺸﻔﯿﺮ ﺗﺴﻤﻰ )اﻟﻨﺺ اﻟﻤﺸﻔﺮ ‪. ( cipher text‬‬

‫اﻟﺨﻮارزﻣﯿﺔ ھﻲ اﻟﺘﻲ ﺗﻘﻮم ﺑﺎﻟﺘﺸﻔﯿﺮ ‪ ،‬وﺗﺤﺘﺎج إﻟﻰ ﻣﻔﺘﺎح ‪ ، Key‬ﻗﺪ ﯾﻜﻮن رﻗﻢ أو ﻣﻜﻮن ﻣﻦ ﻋﺪه‬
‫أرﻗﺎم‪.‬‬

‫ﻟﺪﯾﻨﺎ أﯾﻀﺎ ﺻﺪﯾﻘﻨﺎ اﻟﻤﺨﺘﺮق ‪ ، attacker‬وھﻮ اﻟﺬي ﻧﺨﺎف ﻣﻨﮫ ‪ ،‬وﻧﺸﻔﺮ ﺣﺘﻰ ﻻ ﯾﻄﻠﻊ ﻋﻠﯿﮭﺎ ‪،‬‬
‫وھﺪﻓﮫ ھﻮ اﻟﺘﺨﺮﯾﺐ أو اﻟﺴﺮﻗﺔ أو اﻟﺘﻼﻋﺐ ﺑﻤﺸﺎﻋﺮﻧﺎ ‪. J‬‬

‫اﻟﻌﻠﻢ اﻟﺬي ﯾﺴﺘﺨﺪم ﻟﻜﺴﺮ اﻟﺨﻮارزﻣﯿﺎت وإﯾﺠﺎد ﻧﻘﻂ اﻟﻀﻌﻒ ﺑﮭﺎ ﯾﺴﻤﻰ ‪Cryptanalysis‬‬
‫واﻟﺸﺨﺺ اﻟﺬي ﯾﻘﻮم ﺑﮭﺬا اﻟﻌﻠﻢ ﯾﺴﻤﻰ ‪) cryptanalyst‬ﯾﻜﻤﻦ ﺗﺴﻤﯿﺘﮫ ﻛﺎﺳﺮ اﻟﺸﻔﺮه ( ‪.‬‬

‫ﻛﻞ اﻟﺨﻮارزﻣﯿﺎت ﯾﻤﻜﻦ أن ﺗﻜﺴﺮ وﺗﺨﺘﺮق ‪ ،‬ﻟﻜﻦ اﻟﺸﻲء اﻟﺠﯿﺪ ھﻮ اﻧﮫ اذا ﻛﺎﻧﺖ اﻟﺨﻮارزﻣﯿﺔ ﻗﻮﯾﮫ‬
‫‪ ،‬ﻗﺪ ﯾﺄﺧﺬ وﻗﺖ اﻟﻜﺴﺮ وﻗﺘﺎ ﻃﻮﯾﻼ ﺟﺪا ‪ ،‬ﻋﻨﺪھﺎ ﺗﻜﻮن اﻟﻨﺘﯿﺠﺔ ‪ . too late‬ﻟﺬﻟﻚ اﻟـ‬
‫‪ cryptanalyst‬ﯾﻘﻮﻣﻮا ﺑﺈﯾﺠﺎد ﻧﻘﺎط اﻟﻀﻌﻒ اﻟﺘﻲ ﺗﺴﺎﻋﺪ أي ﺷﺨﺺ ﺑﺎﺧﺘﺮاق ﺗﻠﻚ اﻟﺨﻮارزﻣﯿﺎت‬
‫ﻓﻲ أﺳﺮع وﻗﺖ !! واﻟﻤﺨﺘﺮق ﺑﺎﻟﺘﺄﻛﯿﺪ ﯾﻘﻮم ﺑﺎﺳﺘﺨﺪام اﻟﻨﺘﺎﺋﺞ اﻟﺨﺎﺻﺔ ﺑﺎﻟـ ‪ cryptanalyst‬وأﯾﻀﺎ‬
‫ﻟﺪﯾﮫ اﻟﻌﺪﯾﺪ ﻣﻦ اﻟﻄﺮق واﻷدوات اﻟﺨﺎﺻﺔ‪.‬‬

‫اذا اﻟﻨﺘﯿﺠﺔ ھﻲ أن اﻟـ ‪ cryptographer‬ھﻮ اﻟﺬي ﯾﻄﻮر اﻧﻈﻤﮫ اﻟﺘﺸﻔﯿﺮ ‪ ،‬اﻟـ ‪ cryptanalyst‬ﯾﻘﻮم‬
‫ﺑﺈﯾﺠﺎد ﻧﻘﺎط اﻟﻀﻌﻒ ﻓﯿﮭﺎ وھﻲ ﺧﺪﻣﮫ ﻋﻈﯿﻤﺔ ﻟﻠﻤﺸﻔﺮﯾﻦ ‪ ،‬ﺣﯿﺚ أﻧﮭﻢ ﯾﻜﺘﺸﻔﻮا اﻟﺜﻐﺮات وﯾﻘﻮﻣﻮا‬
‫ﺑﻨﺸﺮھﺎ ﻟﻠﺠﻤﯿﻊ ‪ ،‬ﺑﻌﻜﺲ اﻟﻤﺨﺘﺮق اﻟﺬي ﯾﻜﺸﻒ اﻟﺜﻐﺮة وﯾﺤﺘﻔﻆ ﺑﮭﺎ ﻟﻨﻔﺴﮫ ﻷﺟﻞ اﻻﺧﺘﺮاق‪.‬‬

‫ﻣﺎ ﻫﻮ ﺍﻟﻤﻔﺘﺎﺡ ‪ ،‬ﻭﻣﺎ ﻫﻲ ﺃﻫﻤﻴﺘﻪ‬

‫ﻓﻲ اﻟﺘﺸﻔﯿﺮ ﺑﺎﻟﻤﻔﺘﺎح اﻟﻤﺘﻨﺎﻇﺮ ‪ Symmetric‬اﻟﻤﻔﺘﺎح اﻟﺬي ﯾﺴﺘﺨﺪم ﻟﻠﺘﺸﻔﯿﺮ ھﻮ ﻧﻔﺴﮫ اﻟﺬي ﯾﺴﺘﺨﺪم‬
‫ﻟﻔﻚ اﻟﺘﺸﻔﯿﺮ ‪ ،‬وﻣﻦ ھﻨﺎ ﺟﺎءت ﻛﻠﻤﮫ اﻟﻤﺘﻨﺎﻇﺮ)أو اﻟﻤﺘﻤﺎﺛﻞ( ‪ ،‬ﯾﻌﻨﻲ ھﻮ ﻧﻔﺴﮫ ﻣﻦ اﻟﻄﺮﻓﯿﻦ ‪،‬‬
‫اﻟﺼﻮره اﻟﺘﺎﻟﯿﺔ ﺗﻮﺿﺢ اﻟﻌﻤﻠﯿﺔ ‪:‬‬

‫‪91‬‬
‫‪PDF created with pdfFactory Pro trial version www.pdffactory.com‬‬
‫ﻻﺣﻆ اﻧﮫ ﻓﻲ ﺣﺎﻟﮫ ﺷﻔﺮت اﻟﺮﺳﺎﻟﺔ ﺑﺨﻮارزﻣﯿﺔ ﻣﻌﯿﻨﮫ )ﻣﺜﻼ ‪ ( DES‬وﻣﻔﺘﺎح ﻣﻌﯿﻦ )ﻣﺜﻼ ‪، (10‬‬
‫اﻵن ﻓﻲ ﺣﺎﻟﮫ ﻓﻚ اﻟﺘﺸﻔﯿﺮ ﯾﺠﺐ أن اﺳﺘﺨﺪم ﻧﻔﺲ اﻟﺨﻮارزﻣﯿﺔ وﻧﻔﺲ اﻟﻤﻔﺘﺎح واﻻ ﻓﻠﻦ اﺣﺼﻞ ﻋﻠﻰ‬
‫اﻟﻨﺺ اﻷﺻﻠﻲ‪.‬‬

‫ﻧﻌﻮد ﻟﻠﺴﺆال ‪ ،‬ﻣﺎ ھﻲ أھﻤﯿﮫ اﻟﻤﻔﺘﺎح ؟؟؟‬


‫ﻟﻘﺪ رأﯾﻨﺎ ﻓﻲ اﻟﻤﺜﺎل اﻟﺴﺎﺑﻖ )ﻣﺤﻤﺪ وﻋﻠﻲ ‪ ،‬ﻋﻨﺪﻣﺎ ﻟﻢ ﯾﺴﺘﺨﺪﻣﻮا ﻣﻔﺘﺎح ﺳﺮي( اﻧﮫ ﻓﻲ ﺣﺎﻟﮫ ﺣﺼﻮل‬
‫اﻟﻤﺨﺘﺮق ﻋﻠﻰ اﻟﺒﺮﻧﺎﻣﺞ )أو ﻣﻌﺮﻓﮫ اﻟﺨﻮارزﻣﯿﺔ اﻟﻤﺴﺘﺨﺪﻣﺔ ﻓﻲ اﻟﺘﺸﻔﯿﺮ( ﻓﺎﻧﮫ ﺑﻜﻞ ﺑﺴﺎﻃﮫ ﯾﺴﺘﻄﯿﻊ‬
‫إرﺟﺎع اﻟﻨﺺ اﻟﻤﺸﻔﺮ إﻟﻰ اﻟﻨﺺ اﻷﺻﻠﻲ ‪.‬‬

‫ﻗﺪ ﯾﺴﺄل أﺣﺪﻛﻢ ﺳﺆال "ﺣﺴﻨﺎ ‪ ،‬ﻟﻤﺎذا ﻻ اﺧﺘﺮع ﺧﻮارزﻣﯿﺔ وأﺑﻘﯿﮭﺎ ﺳﺮﯾﮫ ﻋﻦ اﻟﺠﻤﯿﻊ وﺑﮭﺬا ﻻ‬
‫ﯾﻌﺮﻓﮭﺎ اﻟﻤﺨﺘﺮق وﺑﺎﻟﺘﺎﻟﻲ ﻻ اﺣﺘﺎج إﻟﻰ ﻣﻔﺘﺎح" ؟؟‬

‫ﺳﺆال ﺟﯿﺪ ‪ ،‬وﻟﻜﻦ ﻟﮫ ﻋﺪه ﻣﺸﺎﻛﻞ ‪ ،‬أوﻻ ﻻن اﻟﻤﺨﺘﺮﻗﯿﻦ داﺋﻤﺎ ﯾﻜﺴﺮوا وﯾﺨﺘﺮﻗﻮا اﻟﺨﻮارزﻣﯿﺔ‬
‫)ﺳﻨﺸﺎھﺪ ﺑﻌﺪ ﻗﻠﯿﻞ ﺑﻌﻀﺎ ﻣﻦ اﻻﻣﺜﻠﮫ اﻟﻮاﻗﻌﯿﺔ( ‪ ،‬ﺛﺎﻧﯿﺎ ‪ ،‬ﻓﻲ ﺣﺎل اﻧﻚ ﻟﻢ ﺗﻜﻦ ﺧﺒﯿﺮ ﻓﻲ اﻟﺘﺸﻔﯿﺮ وﻻ‬
‫ﺗﺴﺘﻄﯿﻊ ﺗﻄﻮﯾﺮ ﺧﻮارزﻣﯿﺔ ﺧﺎﺻﺔ ﺑﻚ )ﻣﺜﻞ أﺧﻮﻧﺎ ﻣﺤﻤﺪ( ﯾﺠﺐ ﻓﻲ ﺗﻠﻚ اﻟﺤﺎﻟﺔ أن ﺗﺜﻖ ﺑﺎﻟﺸﺮﻛﺔ‬
‫اﻟﻤﻨﺘﺠﺔ ﻟﻠﺒﺮﻧﺎﻣﺞ )اﻟﺨﻮارزﻣﯿﺔ( اﻟﺬي ﺗﺴﺘﺨﺪﻣﮫ )ﻓﻲ ھﺬه اﻟﺤﺎﻟﺔ ﯾﺠﺐ أن ﺗﺜﻖ ب ‪ ( Romansy‬؟‬
‫ھﻞ ﯾﺴﺘﻄﯿﻊ أﺣﺪﻛﻢ أن ﯾﻤﻨﺢ ﺷﺮﻛﮫ ﻣﺎ ﻛﻞ ھﺬه اﻟﺜﻘﺔ ‪ ،‬ﺑﺎﻟﻄﺒﻊ ﻻ ‪.‬‬
‫وھﻨﺎ ﯾﺄﺗﻲ اﻟﺴﺆال اﻟﺤﻘﯿﻘﻲ ‪ ،‬ﻣﻦ ﺗﺜﻖ ﺑﺤﻔﻆ أﺳﺮارك ‪ ،‬ﺧﻮازرﻣﯿﮫ ﯾﺠﺐ أن ﺗﻜﻮن ﺳﺮﯾﮫ ﻣﻦ‬
‫اﻟﺠﻤﯿﻊ‪ ،‬أم اﻟﺨﻮارزﻣﯿﺔ اﻟﺘﻲ ﺗﺆدي ﻋﻤﻠﮭﺎ ﺑﺸﻜﻞ ﺟﯿﺪ وﺣﺘﻰ ﻟﻮ ﻋﺮﻓﮭﺎ اﻟﺠﻤﯿﻊ ‪ ،‬وھﻨﺎ ﯾﺄﺗﻲ دور‬
‫اﻟﻤﻔﺘﺎح ﻓﻲ ﺣﺎل اﺧﺘﺮت اﻟﺨﯿﺎر اﻟﺜﺎﻧﻲ ‪.‬‬

‫اﻟﻤﻔﺘﺎح ﯾﺠﻌﻠﻚ ﺗﺸﻌﺮ ﺑﺎﻻرﺗﯿﺎح اﻟﺘﺎم ‪ ،‬ﻷﻧﻚ اذا ﺷﻔﺮت اﻟﺨﻮارزﻣﯿﺔ ﺑﺎﺳﺘﺨﺪام اﻟﻤﻔﺘﺎح ‪ ،‬ﺳﻮف‬
‫ﺗﻜﻮن ﻣﮭﻤﺘﻚ اﻟﺤﻔﺎظ ﻋﻠﻰ اﻟﻤﻔﺘﺎح ﻓﻘﻂ ‪ ،‬ﺑﺎﻟﺘﺄﻛﯿﺪ ھﻮ أﺳﮭﻞ ﺑﻜﺜﯿﺮ ﻣﻦ اﻟﺤﻔﺎظ ﻋﻠﻰ اﻟﺨﻮارزﻣﯿﺔ اﻟﺘﻲ‬
‫اﺧﺘﺮﻋﺘﮭﺎ‪.‬‬

‫أﯾﻀﺎ ﻓﻲ ﺣﺎل اﺳﺘﺨﺪﻣﺖ ﻣﻔﺘﺎح ﺗﺸﻔﯿﺮ ﻟﻜﻞ رﺳﺎﻟﺔ ‪ ،‬ﻓﻲ ﺣﺎل ﺗﻢ ﻛﺴﺮ اﺣﺪ اﻟﻤﻔﺎﺗﯿﺢ ‪ ،‬ﻓﺎن ﺑﺎﻗﻲ‬
‫اﻟﺮﺳﺎﺋﻞ ﺗﻜﻮن ﺳﺮﯾﮫ وﻏﯿﺮ ﻣﻜﺸﻮﻓﺔ ‪ ،‬ﻋﻠﻰ اﻟﻌﻜﺲ اذا اﺳﺘﺨﺪﻣﺖ ﺧﻮارزﻣﯿﺔ ﻣﻦ ﺗﻄﻮﯾﺮك وﺗﻢ‬
‫ﻛﺸﻔﮭﺎ ﻓﺎن ﻛﻞ اﻟﺮﺳﺎﺋﻞ ﺳﻮف ﺗﻨﻜﺸﻒ أﯾﻀﺎ‪.‬‬

‫‪92‬‬
‫‪PDF created with pdfFactory Pro trial version www.pdffactory.com‬‬
‫اﻟﺴﺆال اﻟﺴﺎﺑﻖ ﻧﻄﺮﺣﮫ ﻣﺮه أﺧﺮى ‪ "،‬ﻓﻲ ﺣﺎل ﺷﻔﺮت اﻟﺮﺳﺎﻟﺔ ﺑﺨﻮارزﻣﯿﺔ ﻻ ﯾﻌﺮﻓﮭﺎ اﺣﺪ ‪ ،‬وإذا‬
‫اﺳﺘﺨﺪﻣﺖ ﻣﻔﺘﺎح ﻓﻠﻦ اﺑﻠﻎ اﺣﺪ ﺑﻄﻮل اﻟﻤﻔﺘﺎح " ھﻞ ﺗﻜﻮن اﻟﺮﺳﺎﻟﺔ أﻣﻨﮫ ؟‬

‫وھﻨﺎك ﺛﻼﺛﺔ أﺟﻮﺑﮫ ‪:‬‬

‫اﻟﺠﻮاب اﻷول ‪ :‬ھﻢ داﺋﻤﺎ ﯾﻌﺮﻓﻮن اﻟﺨﻮارزﻣﯿﺔ‪:‬‬

‫اﻟﻤﺨﺘﺮﻗﯿﻦ ﺳﻮف ﯾﻌﺮﻓﻮا اﻟﺨﻮارزﻣﯿﺔ ﻣﮭﻤﺎ ﻓﻌﻠﺖ ‪ ،‬وﻻ أي واﺣﺪ ﻓﻲ ﺗﺎرﯾﺦ اﻟﺘﺸﻔﯿﺮ ﺗﻤﻜﻦ ﻣﻦ إﺑﻘﺎء‬
‫ﺧﻮارزﻣﯿﺘﮫ ﺳﺮﯾﮫ ‪ ،‬ﻟﻄﺎﻟﻤﺎ ﺗﻤﻜﻦ اﻟﺠﻮاﺳﯿﺲ ﻓﻲ اﻟﺤﺮب ﻛﺸﻒ اﻟﺨﻮارزﻣﯿﺎت ﺳﻮاء ﺑﺎﺳﺘﺨﺪام‬
‫ﻋﻤﻠﯿﺎت رﯾﺎﺿﯿﮫ أو أﺟﮭﺰه ﻟﻜﺴﺮ اﻟﺸﻔﺮات ‪ ،‬أو ﺣﺘﻰ ﯾﻮﻇﻔﻮا ﺟﻮاﺳﯿﺲ ﻟﺪى اﻟﻌﺪو ‪ ،‬أو ﯾﺴﺮﻗﻮا‬
‫اﻟﺨﻮارزﻣﯿﺔ ‪ ،‬أو ﯾﺴﺮﻗﻮا اﻟﺠﮭﺎز اﻟﻤﺴﺘﺨﺪم ﻟﻠﺘﺸﻔﯿﺮ ‪.‬‬

‫ﻓﻲ اﻟﺤﺮب اﻟﻌﺎﻟﻤﯿﺔ اﻟﺜﺎﻧﯿﺔ ‪ ،‬ﺗﻤﻜﻦ اﻟﺠﻨﻮد اﻟﺒﻮﻟﻨﺪﯾﯿﻦ ﻣﻦ ﺳﺮﻗﮫ اﻟﺠﮭﺎز اﻷﻟﻤﺎﻧﻲ اﻟﺬي ﻛﺎن اﻷﻟﻤﺎن‬
‫ﯾﺴﺘﺨﺪﻣﻮه ﻟﻠﺘﺸﻔﯿﺮ )اﺳﻤﮫ ‪ ( Engima‬وﺗﻢ ﺑﯿﻌﮫ ﻟﻠﺒﺮﯾﻄﺎﻧﯿﯿﻦ )اﻟﺤﻠﻔﺎء( وﺑﻌﺪھﺎ ﺗﻤﻜﻦ ھﺆﻻء‬
‫اﻟﺤﻠﻔﺎء ﻣﻦ ﻛﺴﺮ اﻏﻠﺐ اﻟﺮﺳﺎﺋﻞ اﻻﻟﻤﺎﻧﯿﮫ !!‬

‫وﺑﺪون أي ﺳﺮﻗﮫ ‪ ،‬ﻓﺎن اﻟـ ‪ cryptanalysts‬ﯾﺴﺘﻄﯿﻌﻮا ﺑﺒﺴﺎﻃﮫ ﻛﺴﺮ اﻟﺸﻔﺮات ‪ ،‬ﻓﻔﻲ اﻟﺤﺮب‬
‫اﻟﻌﺎﻟﻤﯿﺔ اﻟﺜﺎﻧﯿﺔ ﺗﻤﻜﻦ ﻛﺎﺳﺮي اﻟﺸﻔﺮات اﻷﻣﺮﯾﻜﯿﯿﻦ )اﺳﻤﮭﻢ ‪ ( Code breaker‬ﻣﻦ ﻣﻌﺮﻓﮫ‬
‫ﻃﺮﯾﻘﮫ ﻋﻤﻞ اﻟﺠﮭﺎز اﻟﻤﺴﺘﺨﺪم ﻓﻲ اﻟﺘﺸﻔﯿﺮ ﻟﺪى اﻟﯿﺎﺑﺎﻧﯿﯿﻦ) ﺑﺪون اﻟﺤﺎﺟﺔ إﻟﻰ ﺳﺮﻗﮫ اﻟﺠﮭﺎز( ‪.‬‬

‫ﻣﺜﺎل آﺧﺮ ‪ ،‬ھﻨﺎك ﺧﻮارزﻣﯿﺔ اﺳﻤﮭﺎ ‪ RC4‬اﺧﺘﺮﻋﺖ ﻣﻦ ﻗﺒﻞ ﺷﺮﻛﮫ ‪ RSA‬ﻓﻲ ﻋﺎم ‪ 1987‬ﻟﻜﻦ ﻟﻢ‬
‫ﺗﻨﺸﺮ ‪ ،‬ﻛﻞ اﻟـ ‪ cryptanalysts‬واﻟﻤﺸﻔﺮﯾﻦ اﺟﻤﻌﻮا ﻓﻲ ذﻟﻚ اﻟﻮﻗﺖ أن ھﺬه اﻟﺨﻮارزﻣﯿﺔ آﻣﻨﮫ‬
‫ﺟﺪا وﺗﺠﻌﻞ اﻟﺒﯿﺎﻧﺎت ﺳﺮﯾﮫ ﻟﻠﻐﺎﯾﺔ ‪ ،‬وﻟﻢ ﺗﻨﺸﺮ ﺗﻠﻚ اﻟﺨﻮارزﻣﯿﺔ ﻷﻏﺮاض ﺑﯿﻊ ﺑﺮاﻣﺞ ﻟﻠﺘﺸﻔﯿﺮ ) وﻟﯿﺲ‬
‫ﻷﻏﺮاض ﻋﺴﻜﺮﯾﮫ( ‪ ،‬اﻟﻤﮭﻢ ﻓﻲ ‪ 1994‬ﻗﺎم اﺣﺪ اﻟﮭﻜﺮز ﺑﻮﺿﻊ اﻟﺨﻮارزﻣﯿﺔ ﻣﺸﺮوﺣﺔ ﺑﺎﻟﺘﻔﺼﯿﻞ‬
‫ﻓﻲ اﻻﻧﺘﺮﻧﺖ ! ﻛﯿﻒ ﻋﺮف ھﺬا اﻟﮭﻜﺮز اﻟﺨﻮارزﻣﯿﺔ ؟؟ ﺑﺎﻟﺘﺄﻛﯿﺪ ﻣﻦ ﺧﻼل ﺑﺮاﻣﺞ ‪Disassembly‬‬
‫‪ ،And Debugger‬وھﻲ ﺑﺮاﻣﺞ ﺗﺴﺘﺨﺪم ﻟﻔﺘﺢ اﻟﻤﻠﻔﺎت اﻟﺘﻨﻔﯿﺬﯾﺔ وﺗﺘﺒﻌﮭﺎ ﺳﻄﺮ ﺑﺴﻄﺮ وﺗﻐﯿﯿﺮ‬
‫اﻷﻛﻮاد واﻟﻜﺜﯿﺮ ﻣﻦ اﻷﻣﻮر اﻟﺘﻲ ﯾﻌﺮﻓﮭﺎ اﻟﻜﺮاﻛﺮز ‪ .‬ﺣﺎﻟﯿﺎ ﺧﻮارزﻣﯿﺔ ‪ RC4‬ﺗﺴﺘﺨﺪم ﻛﺠﺰء ﻣﻦ‬
‫ﺑﺮوﺗﻮﻛﻮل اﻟـ ‪ SSL‬وھﻲ ﻣﻦ اﺣﺪ اﻟﺨﻮارزﻣﯿﺎت اﻟﺘﻲ ﺗﺴﺘﺨﺪم اﻟﻤﻔﺘﺎح اﻟﻤﺘﻨﺎﻇﺮ ﻟﻠﺘﺸﻔﯿﺮ‪.‬‬

‫ﺑﻌﺾ اﻷﺣﯿﺎن ﻣﻤﻜﻦ أن ﺗﺒﻘﻰ اﻟﺨﻮارزﻣﯿﺔ ﺳﺮﯾﮫ ﻟﺒﻌﺾ اﻟﻮﻗﺖ وﻟﻜﻨﮭﺎ ﺗﻨﻜﺸﻒ ﻓﻲ اﻟﻨﮭﺎﯾﺔ ‪ ،‬ﻣﺜﻼ‬
‫ﻓﻲ اﻟﺤﺮب اﻟﻌﺎﻟﻤﯿﺔ اﻟﺜﺎﻧﯿﺔ اﺳﺘﺨﺪم اﻷﻣﺮﯾﻜﺎن ﻟﻐﺔ ‪ Navajo‬وﻃﺒﻌﺎ اﻟﯿﺎﺑﺎﻧﯿﯿﻦ ﻟﻢ ﯾﻜﻮﻧﻮا ﻋﻠﻰ ﻋﻠﻢ‬
‫ﺑﮭﺬه اﻟﻠﻐﺔ ‪ ،‬ﻟﺬﻟﻚ اﻟﺮﺳﺎﺋﻞ اﻻﻣﺮﯾﻜﯿﮫ ﻛﺎﻧﺖ ﻣﺸﻔﺮه ‪ .‬ﻟﻜﻦ ﺣﺎﻟﯿﺎ اﻏﻠﺐ اﻟﺠﯿﻮش ﺗﺤﺘﻮي ﻋﻠﻰ ﻓﺮﯾﻖ‬
‫ﻛﺎﻣﻞ ﻣﻦ اﻟﻌﻠﻤﺎء ﺑﺎﺳﺘﻄﺎﻋﺘﮭﻢ ﺗﻌﻠﻢ أي ﻟﻐﺔ ﻣﮭﻤﺎ ﻛﺎﻧﺖ وﺑﺄﺳﺮع وﻗﺖ ‪.‬‬

‫اﻟﺠﻮاب اﻟﺜﺎﻧﻲ ‪ :‬ﻻ ﺗﺴﺘﻄﯿﻊ ﺟﻨﻰ اﻟﻤﺎل ﻣﻦ اﻟﺨﻮارزﻣﯿﺔ اﻟﺴﺮﯾﺔ‪:‬‬

‫ﻷﻧﻚ ﻓﻲ ﺣﺎل ﻋﻤﻠﺖ ﺑﺮﻧﺎﻣﺞ وﻗﻤﺖ ﺑﺒﯿﻌﮫ ﻓﺒﺎﻟﺘﺄﻛﯿﺪ ﺳﻮف ﯾﻘﻮم اﺣﺪ اﻟﮭﺎﻛﺮ ﺑﺎﺳﺘﺨﺪام ﻃﺮق اﻟﮭﻨﺪﺳﺔ‬
‫اﻟﻌﻜﺴﯿﺔ واﻟﻮﺻﻮل إﻟﻰ ﺧﻮارزﻣﯿﺘﻚ )ﻛﻤﺎ ﺣﺼﻞ ﻓﻲ ‪ . ( RC4‬ﻟﺬﻟﻚ اﻟﺨﻮارزﻣﯿﺔ اﻟﺘﻲ ﻃﻮرﺗﮭﺎ‬
‫ﺳﻮف ﺗﺴﺘﺨﺪﻣﮭﺎ ﻟﻨﻔﺴﻚ أﻧﺖ وﺣﺒﯿﺒﺘﻚ ﻓﻘﻂ ‪. J‬‬

‫اﻟﺠﻮاب اﻟﺜﺎﻟﺚ ‪ :‬اﻟﺨﻮارزﻣﯿﺎت اﻟﻤﻌﺮوﻓﺔ ھﻲ أﻛﺜﺮ آﻣﺎﻧﺎ‪:‬‬

‫ﻷﻧﮭﺎ ﺗﻜﻮن ﻣﺜﺒﺘﮫ أﻧﮭﺎ آﻣﻨﮫ ﻣﻦ ﻗﺒﻞ ﺟﻤﯿﻊ اﻟـ ‪ cryptanalysts‬واﻟﻤﺸﻔﺮﯾﻦ ‪ ،‬ﻣﻦ اﻟﻤﻤﻜﻦ أن ھﺆﻻء‬

‫‪93‬‬
‫‪PDF created with pdfFactory Pro trial version www.pdffactory.com‬‬
‫‪ cryptanalysts‬ﻗﺪ اﻗﺮوا ﺑﻌﺪم وﺟﻮد ﺛﻐﺮات ﺑﺨﻮارزﻣﯿﺔ ﻣﻌﯿﻨﮫ ‪ ،‬ﺑﻌﺪھﺎ ﺑﻔﺘﺮة ﻗﻤﺖ أﻧﺖ ﺑﻜﺸﻒ‬
‫ﺛﻐﺮه ﻓﯿﮭﺎ ‪ ،‬ﻧﻌﻢ ﻣﻤﻜﻦ وﻟﻜﻦ اﺣﺘﻤﺎل ﺿﻌﯿﻒ ﺟﺪا ﺟﺪا ‪.‬‬

‫ﻓﻲ ﺣﺎل اﻗﺮ اﻟﺠﻤﯿﻊ ﺑﺎن اﻟﺨﻮارزﻣﯿﺔ آﻣﻨﮫ وﻻ ﺗﻮﺟﺪ ﺛﻐﺮات ﺑﮭﺎ ‪ ،‬ﻓﺎن ﻓﺮﺻﮫ إﯾﺠﺎد ﺛﻐﺮه ﺿﺌﯿﻠﺔ‬
‫ﻟﻠﻐﺎﯾﺔ ‪.‬‬

‫ﺗﻮﻟﻴﺪ ﺍﻟﻤﻔﺘﺎﺡ ‪: Key Generation‬‬

‫ﻓﻲ اﻟﺘﺸﻔﯿﺮ اﻟﻤﺘﻨﺎﻇﺮ ‪ ،‬اﻟﻤﻔﺘﺎح ﻋﺒﺎرة ﻋﻦ رﻗﻢ وﻃﻮﻟﮫ ﻋﻠﻰ ﺣﺴﺐ ﻧﻮع اﻟﺨﻮارزﻣﯿﺔ )‪ 64‬ﺑﺖ‬
‫ﻣﺜﻼ(‪ ،‬وﯾﻤﻜﻦ ﺗﻮﻟﯿﺪه ﺑﺼﻮره ﻋﺸﻮاﺋﯿﺔ ‪ ،‬اﻟﺴﺆال ھﻨﺎ ﻛﯿﻒ ﯾﺘﻢ ﺗﻮﻟﯿﺪ اﻷرﻗﺎم اﻟﻌﺸﻮاﺋﯿﺔ ؟‬

‫ﺣﺴﻨﺎ ‪ ،‬اﻷرﻗﺎم اﻟﻌﺸﻮاﺋﯿﺔ ھﻲ ﺑﻜﻞ ﺑﺴﺎﻃﮫ أرﻗﺎم ﻣﺜﻞ )‪ (100،5 ،1،3‬ﯾﺘﻢ اﺧﺘﯿﺎرھﺎ ﺑﺸﻜﻞ ﻋﺸﻮاﺋﻲ‪،‬‬
‫اﻏﻠﺐ اﻟﻤﺒﺮﻣﺠﯿﻦ ﯾﻌﺮﻓﻮن ﻗﯿﻤﮫ ھﺬه اﻷﻋﺪاد ﻓﮭﻲ ﺗﺴﺘﺨﺪم ﺑﻜﺜﺮة ﻓﻲ ﻋﺪه ﻧﻮاﺣﻲ ﻣﺜﻞ اﻷﻟﻌﺎب‬
‫‪ ،Game‬ﻧﻤﺬﺟﮫ وﻣﺤﺎﻛﺎة اﻟﺤﺎﺳﺐ ‪ Simulation And Modeling‬واﻟﺘﺸﻔﯿﺮ‬
‫‪ Cryptography‬وﻏﯿﺮھﺎ ﻣﻦ اﻟﻤﺠﺎﻻت ‪.‬‬

‫ﻓﻲ اﻟﺘﺸﻔﯿﺮ ‪ ،‬أھﻢ ﻣﺎ ﯾﺠﺐ أن ﯾﺘﻮﻓﺮ ﻓﻲ ھﺬه اﻷﻋﺪاد ھﻮ أن ﻻ ﺗﺘﻜﺮر أﺑﺪا ‪ ،‬أﯾﻀﺎ أن ﺗﺘﺠﺎوز‬
‫اﻻﺧﺘﺒﺎرات اﻻﺣﺼﺎﺋﯿﮫ ‪ ،‬اﻻﺧﺘﺒﺎرات اﻻﺣﺼﺎﺋﯿﮫ ھﻲ ﻣﺠﻤﻮﻋﮫ اﺧﺘﺒﺎرات ﯾﺘﻢ ﺗﻄﺒﯿﻘﮭﺎ ﻋﻠﻰ اﻷﻋﺪاد‬
‫)أو اﻟﻌﺪد( ﻟﻜﻲ ﺗﻌﺮف ھﻞ ھﻲ ﻋﺸﻮاﺋﯿﺔ أم ﻻ‪..‬‬

‫ﻟﻨﻔﺘﺮض ﻟﺪﯾﻨﺎ ﻣﺠﻤﻮﻋﮫ ﻣﻦ اﻷﻋﺪاد )أﻟﻒ ﻋﺪد ﻣﺜﻼ( ‪ ،‬وﻗﻤﻨﺎ ﺑﺴﺆال اﺣﺪ اﻟﺬﯾﻦ ﯾﻘﻮﻣﻮن ﺑﮭﺬه‬
‫اﻻﺧﺘﺒﺎرات "ھﻞ ھﺬه اﻷﻋﺪاد ﻋﺸﻮاﺋﯿﺔ أم ﻻ "‪ ،‬ﻛﻞ ﻣﺎ ﯾﻘﻮﻣﮫ ھﺬا اﻟﺸﺨﺺ )اﻹﺣﺼﺎﺋﻲ( ﺑﺎﻟﻘﯿﺎم‬
‫ﺑﺘﺤﻮﯾﻞ اﻷﻋﺪاد أوﻻ إﻟﻰ اﻟﺘﺮﻣﯿﺰ اﻟﺜﻨﺎﺋﻲ ‪ Binary Format‬أي ﯾﻘﻮم ﺑﺘﺤﻮﯾﻞ اﻷﻋﺪاد إﻟﻰ ‪ 0‬و‪، 1‬‬
‫ﺑﻌﺪھﺎ ﯾﻘﻮم ﺑﺈﺟﺮاء ﻋﺪه اﺧﺘﺒﺎرات ﻋﻠﻰ ھﺬه اﻷﻋﺪاد ‪ ،‬اﻻﺧﺘﺒﺎرات ﺗﻜﻮن ﻋﺒﺎرة ﻋﻦ ﻋﺪه اﺳﺌﻠﮫ‪:‬‬
‫ھﻞ اﻟﻌﺪد ‪ 1‬ﯾﻈﮭﺮ ﺑﻨﻔﺲ ﺗﻜﺮار ‪ 0‬؟ أم أﻛﺜﺮ أم اﻗﻞ ؟‬
‫ھﻞ اﻟﻌﺪدﯾﻦ ‪1‬و ‪ 0‬ﯾﻈﮭﺮان ﺑﺸﻜﻞ ﻣﺤﺪد ﻛﻞ ﻣﺮه ؟ )ﻣﺜﻼ ﺗﺄﺗﻲ ‪ 1‬أوﻻ ﺑﻌﺪھﺎ ‪ (0‬؟‬
‫وﻏﯿﺮھﺎ ﻣﻦ اﻻﺳﺌﻠﮫ‪....‬‬

‫اﻟﻤﮭﻢ ‪ ،‬ﺑﻌﺪھﺎ ﻓﻲ ﺣﺎل ﻧﺠﺢ اﻻﺧﺘﺒﺎر ‪ ،‬ﺗﻜﻮن اﻷﻋﺪاد اﻟﻌﺸﻮاﺋﯿﺔ اﻟﺘﻲ أﻋﻄﯿﺘﮭﺎ ﻟﻺﺣﺼﺎﺋﻲ ﻣﺤﺘﻤﻠﮫ‬
‫أن ﺗﻜﻮن ﻋﺸﻮاﺋﯿﺔ !! ﻻ ﻧﺴﺘﻄﯿﻊ أن ﻧﻘﻮل ھﻲ ﻋﺸﻮاﺋﯿﺔ ﺑﺼﻮره ﻣﺆﻛﺪه ‪ ، %100‬ﻟﻤﺎذا ‪ ،‬ﺳﻨﻌﺮف‬
‫ﻻﺣﻘﺎ ‪.‬‬

‫‪94‬‬
‫‪PDF created with pdfFactory Pro trial version www.pdffactory.com‬‬
‫ﻣﻮﻟﺪﺍﺕ ﺍﻷﺭﻗﺎﻡ ﺍﻟﻌﺸﻮﺍﺋﻴﺔ ‪ A Random Number Generator‬ﺍﺧﺘﺼﺎﺭﺍ ‪: RNG‬‬

‫ﻋﺮﻓﻨﺎ أن اﻷﻋﺪاد اﻟﻌﺸﻮاﺋﯿﺔ ھﻲ أﻋﺪاد ﺗﻜﻮن ﺑﺼﻮره ﻋﺸﻮاﺋﯿﺔ وﻏﯿﺮ ﻣﺮﺗﺒﮫ ‪ ،‬ﺣﺴﻨﺎ اﻟﺴﺆال اﻟﺬي‬
‫ﯾﻄﺮح ﻧﻔﺴﮫ ‪ :‬ﻣﻦ أﯾﻦ ﯾﻤﻜﻦ اﻟﺤﺼﻮل ﻋﻠﻰ ھﺬه اﻷﻋﺪاد اﻟﻌﺸﻮاﺋﯿﺔ ؟؟‬

‫ھﻨﺎك ﻣﺼﺪرﯾﻦ‪:‬‬
‫اﻷول ھﻮ ﻟﺘﻮﻟﯿﺪ أﻋﺪاد ﻋﺸﻮاﺋﯿﺔ ﺣﻘﯿﻘﯿﺔ أو ﻛﺎﻣﻠﺔ ‪ RNG‬أو ‪ ، True RNG‬وھﻨﺎ ﻓﻲ ھﺬه اﻟﺤﺎﻟﺔ‬
‫ﺳﻮف ﻧﺴﺘﺨﺪم أﺟﮭﺰه ﺧﺎﺻﺔ ﻟﺘﻮﻟﯿﺪ اﻷﻋﺪاد )ﺗﺄﺧﺬ ﻣﺪﺧﻞ ﯾﺘﻐﯿﺮ ﺑﺎﺳﺘﻤﺮار( ﻣﺜﻞ ﻗﯿﺎس اﻟﻈﺮوف‬
‫اﻟﺠﻮﯾﺔ ‪ ،‬ﺣﺴﺎب ﺳﺮﯾﺎن اﻟﺘﯿﺎر اﻟﻜﮭﺮﺑﺎﺋﻲ وﻏﯿﺮھﺎ وھﺬه اﻷﻋﺪاد ﺑﺎﻟﻄﺒﻊ ﺳﻮف ﺗﺠﺘﺎز اﻻﺧﺘﺒﺎر‬
‫اﻹﺣﺼﺎﺋﻲ‪..‬‬

‫وإذا ﻃﻠﺒﻨﺎ ﻣﻦ ھﺬه اﻻﺟﮭﺰه أﻋﺪاد ﻋﺸﻮاﺋﯿﺔ أﺧﺮى ‪ ،‬ﻓﻠﻦ ﻧﺤﺼﻞ ﻋﻠﻰ ﻧﻔﺲ اﻟﻨﺎﺗﺞ أﺑﺪا ‪ ،‬وﻟﺬﻟﻚ ﻻن‬
‫اﻟﻤﺨﺮج )اﻷﻋﺪاد( ﺗﻌﺘﻤﺪ ﻋﻠﻰ ﻣﺪﺧﻞ ﻏﯿﺮ ﺛﺎﺑﺖ )ﯾﺘﻐﯿﺮ ﺑﺎﺳﺘﻤﺮار( ‪ ،‬ﻟﺬﻟﻚ ﻓﺈن اﻷﻋﺪاد اﻟﻌﺸﻮاﺋﯿﺔ‬
‫اﻟﻨﺎﺗﺠﮫ ﻣﻦ ھﺬه اﻷﺟﮭﺰة ﻻ ﺗﺘﻜﺮر اﺑﺪآ ‪ ،‬وﻟﮭﺬه ﺗﺴﻤﻰ ﺑﺎﻷﻋﺪاد اﻟﻌﺸﻮاﺋﯿﺔ اﻟﺼﺤﯿﺤﺔ أو اﻟﻜﺎﻣﻠﺔ‬
‫‪. True Random Number‬‬

‫ﻗﺮأت ﻋﻦ أن ﺷﺮﻛﮫ ‪ Intel‬ﺗﻘﻮم ﺑﺎﺳﺘﺨﺪام ‪ RNG‬ﯾﻮﺿﻊ داﺧﻞ اﻟﻨﻈﺎم وﯾﻘﻮم ﺑﺤﺴﺎب اﻟﺤﺮارة أو‬
‫ﺷﻲء ﻣﺸﺎﺑﮫ ‪ ،‬وھﻮ ﻣﺼﺪر ﯾﺘﻐﯿﺮ ﺑﺎﺳﺘﻤﺮار ‪ ،‬أﯾﻀﺎ ھﺬا اﻟﺠﮭﺎز ﻻ ﯾﺄﺗﻲ ﻣﻊ أي ﻣﻌﺎﻟﺞ ﺑﻨﺘﯿﻮم )إﻻ‬
‫ﻣﻊ اﻟﻄﻠﺐ( ‪ ،‬ﻟﻜﻦ ﯾﺤﺘﻤﻞ ذﻟﻚ ﻓﻲ اﻟﺴﻨﻮات اﻟﻤﻘﺒﻠﺔ ‪.‬‬

‫ﺷﺮﻛﺎت أﺧﺮى ﻣﺜﻞ ‪ : nCipher, Chrysalis‬ﺗﺒﯿﻊ أﺟﮭﺰه ﺗﺴﻤﻰ ‪cryptographic‬‬


‫‪ accelerators‬ھﺬه اﻻﺟﮭﺰه ﺗﺄﺗﻲ ﺑـ ‪) ، RNG‬ﺳﻮف ﻧﻠﻘﻲ ﻧﻈﺮه ﺑﺴﯿﻄﺔ ﻋﻠﻰ‬
‫‪ cryptographic accelerators‬ﺑﻌﺪ ﻗﻠﯿﻞ ( ‪.‬‬

‫اﻟﻤﺼﺪر اﻵﺧﺮ ﻟﺘﻮﻟﯿﺪ اﻷرﻗﺎم اﻟﻌﺸﻮاﺋﯿﺔ ھﻮ ‪Pseudo -Random Number Generator‬‬


‫)اﻷﻋﺪاد اﻟﻌﺸﻮاﺋﯿﺔ اﻟﻤﺰﯾﻔﺔ ( ‪:‬‬

‫ﻣﻦ أﯾﻦ ﯾﻤﻜﻨﻨﺎ اﻟﺤﺼﻮل ﻋﻠﻰ أﻋﺪاد ﻋﺸﻮاﺋﯿﺔ اذا ﻛﻨﺎ ﻻ ﻧﻤﻠﻚ ھﺬه اﻻﺟﮭﺰه ‪ ،‬اﻟﺠﻮاب ﺑﺎﺳﺘﺨﺪام ﻣﻮﻟﺪ‬
‫اﻷﻋﺪاد اﻟﻤﺰﯾﻔﺔ ‪ ،‬وھﻮ ﻋﺒﺎرة ﻋﻦ ﺧﻮارزﻣﯿﺔ ﻟﺘﻮﻟﯿﺪ ھﺬه اﻷﻋﺪاد "اﻟﻤﺰﯾﻔﺔ" ‪ ،‬ﺑﺎﻟﺘﺄﻛﯿﺪ ﻛﻠﻤﮫ‬
‫"ﻣﺰﯾﻔﮫ" ﯾﺴﺒﺐ ﻟﻚ ﺑﻌﻀﺎ ﻣﻦ اﻟﺤﯿﺮة ‪ ،‬ﻟﻜﻨﮫ ﺳﯿﺘﻀﺢ ﺑﻌﺪ ﻗﻠﯿﻞ ‪.‬‬

‫ھﻨﺎ ﻓﻲ ﺣﺎﻟﮫ اﻷﻋﺪاد اﻟﻌﺸﻮاﺋﯿﺔ اﻟﻤﺰﯾﻔﺔ اذا اﺳﺘﺨﺪﻣﻨﺎ اﻟﺨﻮارزﻣﯿﺔ ووﻟﺪﻧﺎ اﻷﻋﺪاد )ﻣﺜﻼ أﻟﻒ ﻋﺪد( ‪،‬‬
‫ﺑﻌﺪھﺎ ذھﺒﻨﺎ إﻟﻰ ﺻﺪﯾﻘﻨﺎ اﻹﺣﺼﺎﺋﻲ وﻗﻤﻨﺎ ﺑﺎﺧﺘﺒﺎر ھﺬه اﻷﻋﺪاد ‪ ،‬اﻟﻨﺎﺗﺞ ھﻮ أن ھﺬه اﻷﻋﺪاد ﺳﻮف‬
‫ﺗﻨﺠﺢ أﯾﻀﺎ ﻓﻲ اﻻﺧﺘﺒﺎر )ﻣﺜﻠﮭﺎ ﻣﺜﻞ ‪ ، ( T-RNG‬ﻟﻜﻨﮭﺎ ﯾﺤﺘﻤﻞ أن ﺗﻜﻮن ﻋﺸﻮاﺋﯿﺔ ‪.‬‬

‫اﻟﺬي ﯾﺠﻌﻞ ھﺬه اﻹﻋﺪاد ﻣﺰﯾﻔﮫ ھﻮ أﻧﮭﺎ ﺗﺘﻜﺮر )وأﻟﻒ ﺧﻂ ﺗﺤﺘﮭﺎ( اذا ﺷﻐﻠﺖ ﻣﻮﻟﺪ اﻷﻋﺪاد اﻟﻤﺰﯾﻔﺔ‬
‫ﻓﻲ ﺟﮭﺎزﯾﻦ ﻣﺨﺘﻠﻔﯿﻦ ﺳﻮف ﯾﻄﻠﻊ ﺑﻨﻔﺲ اﻟﻨﺎﺗﺞ ‪ ،‬اذا ﺷﻐﻠﺖ اﻟﺒﺮﻧﺎﻣﺞ ﺑﻌﺪ ﺳﻨﮫ ﺳﻮف ﯾﻄﻠﻊ ﺑﻨﻔﺲ‬
‫اﻟﻨﺎﺗﺞ ‪.‬‬

‫ﻟﺬﻟﻚ ﻗﺒﻞ ﻗﻠﯿﻞ ﻗﻠﻨﺎ أن اﻟﻨﺘﯿﺠﺔ اﻟﺘﻲ ﯾﺨﺮج ﺑﮭﺎ اﻹﺣﺼﺎﺋﻲ ھﻲ ﻣﺤﺘﻤﻠﮫ أن ﺗﻜﻮن ﻋﺸﻮاﺋﯿﺔ وﻟﯿﺲ‬
‫ﻋﺸﻮاﺋﯿﺔ ‪. %100‬‬
‫اذا اﻹﺣﺼﺎﺋﻲ ﯾﻌﻄﯿﻨﺎ أﺟﺎﺑﮫ ﻋﻠﻰ أن اﻷﻋﺪاد ﻋﺸﻮاﺋﯿﺔ ﻓﻘﻂ ‪ ،‬وﻟﻜﻦ ھﻮ ﻻ ﯾﻌﺮف ھﻞ ھﻲ ﺗﺘﻜﺮر أم‬
‫ﻻ ‪ ،‬ﯾﻌﻄﯿﻨﺎ ﻓﻘﻂ ﻧﺼﻒ اﻻﺟﺎﺑﮫ‪.‬‬

‫‪95‬‬
‫‪PDF created with pdfFactory Pro trial version www.pdffactory.com‬‬
‫ﺣﺴﻨﺎ ‪ ،‬اذا ﻛﺎﻧﺖ اﻷﻋﺪاد ﻓﻲ ‪ PRNG‬ﺗﺘﻜﺮر ‪ ،‬اذا ﻣﺎ ھﻮ اﻟﺸﻲء اﻟﺠﯿﺪ ﻓﯿﮭﺎ ؟؟‬
‫ﻷﻧﮫ ﺑﻜﻞ ﺑﺴﺎﻃﮫ ﯾﻤﻜﻨﻚ أن ﺗﻐﯿﺮ اﻟﻨﺎﺗﺞ ﻋﻦ ﻃﺮﯾﻖ ﻣﺎ ﯾﻌﺮف ﺑﺎﻟـ ‪) Seed‬اﻟﺒﻌﺾ ﯾﺘﺮﺟﻤﻮھﺎ‬
‫ﺑﺎﻟﺒﺬرة( ‪ ،‬ﻛﻤﺎ ھﻮ اﻟﺤﺎل ﻣﻊ ‪ RNG‬ﺗﺄﺧﺬ اﻟﻤﺪﺧﻞ ﻣﻦ )ﻗﯿﺎس اﻟﻈﺮوف اﻟﺠﻮﯾﺔ‪ ،‬اﻟﺘﯿﺎر( ﻓﺈن‬
‫‪PRNG‬ﺗﺄﺧﺬ اﻟﻤﺪﺧﻞ ﻣﻦ )اﻟﺒﺬرة ‪ .( Seed‬اذا ﻏﯿﺮت اﻟﻤﺪﺧﻞ ‪ Seed‬ﺳﻮف ﺗﺘﻐﯿﺮ اﻟﻤﺨﺮﺟﺎت ‪،‬‬
‫ﻓﻲ اﻟـ ‪ RNG‬اﻟﻤﺪﺧﻼت ﺗﺘﻐﯿﺮ ﺑﻨﻔﺴﮭﺎ ﺑﺪون اﻟﺤﺎﺟﺔ إﻟﯿﻚ ‪ ،‬ﻓﻲ ‪ PRNG‬ﯾﺠﺐ ﻋﻠﯿﻚ أن ﺗﻐﯿﺮ‬
‫اﻟﻤﺪﺧﻞ ‪ Seed‬ﻓﻲ ﻛﻞ ﻣﺮه أردت ﻓﯿﮭﺎ اﻟﺤﺼﻮل ﻋﻠﻰ ﻋﺪد ﻋﺸﻮاﺋﻲ ‪.‬‬

‫ﻣﺎ ھﻲ اﻟﺒﺬرة أو اﻟـ ‪ Seed‬؟؟‬


‫ھﺬه اﻟﺒﺬرة ﻣﻤﻜﻦ أن ﺗﻜﻮن ﻣﺜﻼ اﻟﻮﻗﺖ )ﻛﻞ ﺟﺰء ﻣﻦ اﻷﻟﻒ ﻣﻦ اﻟﺜﺎﻧﯿﺔ ‪ ، ( millisecond‬أو ﻣﺜﻼ‬
‫ﻣﺪﺧﻞ ﻣﻦ اﻟﻜﯿﺒﻮرد ‪ ،‬أو ﺣﺮﻛﮫ ﻣﻦ اﻟﻤﺎوس ‪ ،‬أو ﻣﻮﻗﻊ اﻟﻤﺎوس ﻓﻲ اﻟﺸﺎﺷﺔ )ﻋﺪد اﻟﺒﻜﺴﻼت ﻣﻦ‬
‫اﻟﺠﮭﺔ اﻻﻓﻘﯿﮫ واﻟﻌﺎﻣﻮدﯾﮫ( ‪ ،‬ﺑﺎﺧﺘﺼﺎر ﯾﻌﻨﻲ ﻻ ﯾﻤﻜﻦ ﺗﻮﻗﻊ ﻗﯿﻤﺘﮭﺎ ‪.‬‬

‫ﻗﺪ ﺗﺘﺴﺎءل اﻵن ‪" :‬ﻟﻤﺎذا ﻻ اﺳﺘﺨﺪم اﻟـ ‪ Seed‬ﻓﻘﻂ ﺑﺪون اﻟـ ‪ " PRNG‬؟‬
‫ﻟﺴﺒﺒﯿﻦ ‪ ،‬اﻷول ھﻮ اﻟﺤﺎﺟﺔ ﻟﻠﺴﺮﻋﺔ ‪ ،‬ﻓﺠﻤﻊ اﻟـ ‪ Seed‬ﯾﺄﺧﺬ وﻗﺖ ﻃﻮﯾﻞ ﻧﻮﻋﺎ ﻣﺎ ‪،‬‬
‫ﻣﺜﻼ أﻧﺖ ﺑﺤﺎﺟﮫ إﻟﻰ ﻋﺪه اﻵﻻف ﻋﺪد ‪ ،‬اذا اﺳﺘﺨﺪﻣﻨﺎ اﻟـ ‪ Seed‬ﻓﺎﻧﮫ ﯾﺄﺧﺬ وﻗﺘﺎ ﺣﺘﻰ ﯾﺠﻤﻊ اﻷﻋﺪاد‬
‫اﻟﻤﻄﻠﻮﺑﺔ !! ﺗﺨﯿﻞ ﻣﺜﻼ ﺟﻤﻊ ال‪ Seed‬ﻛﺎن ﻋﺒﺎرة ﻋﻦ ﺣﺮﻛﮫ ﻟﻠﻤﺎوس )واﺧﺬ اﻟﻤﻮﻗﻊ( ‪ ،‬ھﻨﺎ ﻟﻜﻲ‬
‫ﻧﻮﻟﺪ ‪ 1000‬ﻋﺪد ﻓﺈﻧﻨﺎ ﺑﺤﺎﺟﮫ إﻟﻰ ‪ 1000‬ﺣﺮﻛﮫ ‪ ،‬ﻣﺸﻮار ﻃﻮﯾﻞ واﺿﺎﻋﮫ ﻟﻠﻮﻗﺖ ‪.‬‬

‫وﻟﻜﻨﻨﺎ اذا اﺳﺘﺨﺪﻣﻨﺎ اﻟـ ‪ PRNG‬ﻛﻞ ﻣﺎ ﻋﻠﯿﻨﺎ ھﻮ إدﺧﺎل ‪ Seed‬واﺣﺪ )ﺑﻄﻮل ‪ 160‬ﺑﺖ ﺗﻘﺮﯾﺒﺎ(‬
‫وﺑﻌﺪھﺎ ﻧﺒﺪأ ﺑﺘﻮﻟﯿﺪ اﻷﻋﺪاد ﺑﺎﺳﺘﺨﺪام ھﺬا ال ‪ ،Seed‬وﺳﻮف ﺗﺨﺮج ﻟﻨﺎ اﻵﻻف ﻣﻦ اﻷﻋﺪاد ﻓﻲ‬
‫ﻏﻀﻮن ﺛﻮاﻧﻲ ‪.‬‬

‫‪96‬‬
‫‪PDF created with pdfFactory Pro trial version www.pdffactory.com‬‬
‫اﻟﺴﺒﺐ اﻵﺧﺮ ھﻮ اﻟـ )‪ ، (entropy‬واﻟـ ‪ PRNG‬ﯾﺰﯾﺪ ﻣﻦ ﻗﯿﻤﮫ ھﺬا اﻟﻤﺘﻐﯿﺮ ‪ ،‬ﻣﻤﺎ ﯾﺠﻌﻞ اﻟﻨﺘﯿﺠﺔ‬
‫ﻋﺸﻮاﺋﯿﺔ أﻛﺜﺮ ‪.‬‬

‫أﯾﻀﺎ اﻏﻠﺐ اﻟـ ‪ PRNG‬ﺗﺴﺘﺨﺪم ﻣﻔﮭﻮم ﯾﺴﻤﻰ ‪ ، message digests‬ﻋﻠﻰ اﻟﻌﻤﻮم ﻓﻜﺮﺗﮫ ﺑﺴﯿﻄﺔ‬
‫ﻣﺜﻞ اﻟﺨﻼط ‪ ، blenders‬اﻟﺨﻼط اﻟﻌﺎدي اﻟﺬي ﯾﺴﺘﺨﺪم ﻓﻲ اﻟﻤﻄﺎﺑﺦ ﯾﺄﺧﺬ اﻟﻌﺪﯾﺪ ﻣﻦ اﻻﻃﻤﻌﮫ‬
‫وﯾﺨﻠﻄﮭﺎ وﯾﺨﺮج اﻟﻨﺎﺗﺞ ﺧﻠﯿﻂ ﻣﻦ اﻻﻃﻌﻤﮫ اﻟﺘﻲ دﺧﻠﺖ ‪ ،‬و اﻟـ ‪ message digests‬ﺗﺄﺧﺬ اﻟﺒﺘﺎت‬
‫وﺗﺪﺧﻠﮭﻢ ھﺬا اﻟﺨﻼط وﯾﺨﺮج اﻟﻨﺎﺗﺞ ﺧﻠﯿﻂ ﺑﺸﻜﻞ ﻋﺸﻮاﺋﻲ ‪.‬‬

‫ﺳﻮف ﻧﺪرس ﺧﻮارزﻣﯿﺎت ﺗﻮﻟﯿﺪ اﻷﻋﺪاد اﻟﻌﺸﻮاﺋﯿﺔ اﻟﻤﺰﯾﻔﺔ )ﻓﻲ اﻟﻨﺴﺨﺔ اﻟﻨﮭﺎﺋﯿﺔ ﻣﻦ اﻟﻜﺘﺎب (‪،‬‬
‫وﻧﻘﻮم ﺑﺘﻄﺒﯿﻘﮭﺎ ﻣﺜﻞ ‪ ، LCG‬ﺑﺎﻟﻤﻨﺎﺳﺒﺔ اﻟﺪوال ‪ rand , random‬ﺗﻮﻟﺪ أﻋﺪاد ﻣﺰﯾﻔﮫ ‪ ،‬و ﻋﻠﻰ‬
‫ﺣﺴﺐ ﻣﺎ ﻗﺮأت اﻧﮫ ‪ random‬ﺗﻮﻟﺪ أﻋﺪاد أﻛﺜﺮ ﻋﺸﻮاﺋﯿﺔ ‪.‬‬

‫ﺍﻟﻬﺠﻮﻡ ﻋﻠﻰ ﺍﻟﺒﻴﺎﻧﺎﺕ ﺍﻟﻤﺸﻔﺮﺓ ‪Attacks on Encrypted Data‬‬


‫اﻟﻤﺨﺘﺮق ھﻮ اﻟﺸﺨﺺ اﻟﺬي ﯾﺮﯾﺪ ﺳﺮﻗﮫ اﻟﻤﻌﻠﻮﻣﺎت ‪ ،‬وﻟﻜﻲ ﯾﺤﺼﻞ ﻋﻠﻰ اﻟﻤﻌﻠﻮﻣﺎت ﯾﺠﺐ أن ﯾﻔﻚ‬
‫ﺗﺸﻔﯿﺮ اﻟﺒﯿﺎﻧﺎت اﻟﻤﺸﻔﺮة ‪ ،‬وﻟﻔﻚ اﻟﺘﺸﻔﯿﺮ ﻓﺈن ﻟﺪﯾﮫ ﻃﺮﯾﻘﺘﺎن ‪ ،‬ﻣﻌﺮﻓﮫ اﻟﻤﻔﺘﺎح ‪ ،‬أو ﻛﺴﺮ‬
‫اﻟﺨﻮارزﻣﯿﺔ ‪.‬‬

‫‪ Attacks on Keys‬اﻟﮭﺠﻮم ﻋﻠﻰ اﻟﻤﻔﺘﺎح ‪:‬‬


‫ھﻨﺎ ﯾﻘﻮم اﻟﻤﺨﺘﺮق ﺑﺘﻄﺒﯿﻖ ھﺠﻮم ﯾﺴﻤﻰ اﻟﻘﻮه اﻟﻌﻨﯿﻔﺔ ‪ brute-force attack‬وﻃﺮﯾﻘﺘﮫ ھﻮ أن‬
‫ﯾﺠﺮب ﻣﻔﺘﺎح ﻣﻔﺘﺎح إﻟﻰ أن ﯾﺼﻞ إﻟﻰ اﻟﻤﻔﺘﺎح اﻟﻤﻄﻠﻮب‪.‬‬

‫ﻟﻨﻔﺮض أن اﻟﻤﻔﺘﺎح ﯾﻘﻊ ﻓﻲ اﻟﻨﻄﺎق ﻣﻦ ‪ 0‬إﻟﻰ ‪ ) 100,000,000,000‬ﻣﺎﺋﮫ ﺑﻠﯿﻮن( ‪ ،‬أوﻻ ﯾﻘﻮم‬


‫اﻟﻤﺨﺘﺮق ﺑﺈدﺧﺎل اﻟﺮﻗﻢ ‪ 0‬إﻟﻰ ﺧ ﻮارزﻣﯿﺔ ﻓﻚ اﻟﺘﺸﻔﯿﺮ وﯾﻘﻮم ﺑﺈدﺧﺎل اﻟﺮﺳﺎﻟﺔ اﻟﻤﺸﻔﺮة أﯾﻀﺎ ‪ ،‬ﺑﻌﺪھﺎ‬
‫ﯾﻨﻈﺮ إﻟﻰ اﻟﻨﺘﯿﺠﺔ ھﻞ ھﻲ ﻣﻌﻘﻮﻟﺔ أو ﻣﻔﮭﻮﻣﮫ ‪ ،‬اذا ﻛﺎﻧﺖ اﻻﺟﺎﺑﮫ ﻧﻌﻢ ﻓﺈذاَ اﻟﻤﻔﺘﺎح ھﻮ ‪ ، 0‬أﻣﺎ اذا‬
‫ﻛﺎﻧﺖ اﻻﺟﺎﺑﮫ ﺑـ ﻻ ‪ ،‬ﻓﯿﻘﻮم ﺑﺘﺠﺮﺑﺔ اﻟﻤﻔﺘﺎح ‪ 1‬و ﺑﻌﺪھﺎ ‪ 2‬و‪ 100‬و ‪.100,000,000,000 ...‬‬

‫‪97‬‬
‫‪PDF created with pdfFactory Pro trial version www.pdffactory.com‬‬
‫ﺗﺬﻛﺮ أن اﻟﺨﻮارزﻣﯿﺔ ﺗﻘﻮم ﺑﻌﻤﻠﮭﺎ ﺑﻐﺾ اﻟﻨﻈﺮ ھﻞ اﻟﻤﻔﺘﺎح ﺻﺤﯿﺢ أم ﺧﺎﻃﺊ ‪ ،‬وﻓﻲ ﻛﻞ ﻣﻔﺘﺎح‬
‫ﺧﺎﻃﺊ اﻟﻨﺘﯿﺠﺔ ﺗﻜﻮن ﻏﯿﺮ ﻣﻔﮭﻮﻣﮫ ‪ ،‬ﻟﺬﻟﻚ ﯾﺠﺐ ﻋﻠﻰ اﻟﻤﺨﺘﺮق اﻟﻨﻈﺮ إﻟﻰ اﻟﻨﺘﯿﺠﺔ ﻓﻲ ﻛﻞ ﻣﺮه‬
‫ﯾﺠﺮب ﻓﯿﮭﺎ ﻣﻔﺘﺎح ‪ ،‬اﻟﻤﺨﺘﺮق اﻟﺬﻛﻲ ﯾﻜﺘﺐ ﺑﺮﻧﺎﻣﺞ ﯾﻘﻮم ﺑﻔﺤﺺ اﻟﺮﺳﺎﻟﺔ ھﻞ ھﻲ ﻣﻔﮭﻮﻣﮫ )ﺿﻤﻦ‬
‫ﻧﻄﺎق اﻷﻋﺪاد اﻻﺑﺠﺪﯾﮫ( ؟ ﻧﻌﻢ اذا أرﺳﻞ ھﺬا ھﻮ اﻟﻤﻔﺘﺎح ‪ ،‬واﻻ ﺟﺮب اﻟﺮﻗﻢ اﻟﺘﺎﻟﻲ ‪...‬‬

‫ﻓﻲ ﺣﺎﻟﮫ ‪ 100‬ﺑﻠﯿﻮن رﻗﻢ ‪ ،‬ﻗﺪ ﯾﺤﺼﻞ اﻟﻤﺨﺘﺮق ﻋﻠﻰ اﻟﻤﻔﺘﺎح ﻣﻦ أول ﺗﺠﺮﺑﮫ ‪ ،‬وﯾﻤﻜﻦ ﻣﻦ اﻟﺘﺠﺮﺑﺔ‬
‫اﻻﺧﯿﺮه ‪ ،‬ﻋﻠﻰ اﻟﻌﻤﻮم ﻓﻲ اﻟﻤﺘﻮﺳﻂ ﻗﺪ ﯾﺤﺼﻞ ﻋﻠﯿﮫ ﻓﻲ ‪ 50‬ﺑﻠﯿﻮن ﻣﺤﺎوﻟﮫ ‪ ،‬اﻟﺴﺆال ھﻮ ﻛﻢ ﻣﻦ‬
‫اﻟﻮﻗﺖ ﺗﺄﺧﺬ ﻋﻤﻠﯿﮫ ﺗﺠﺮﺑﮫ ‪ 50‬ﺑﻠﯿﻮن ﻣﻔﺘﺎح ؟ ‪ 3‬ﺳﻨﻮات ؟ ‪ 3‬ﺷﮭﻮر؟ ‪ 3‬أﯾﺎم ؟‬

‫ﻟﻨﻔﺮض اﻧﻚ ﺗﺮﯾﺪ اﻟﺤﻔﺎظ ﻋﻠﻰ اﻟﺮﺳﺎﻟﺔ ﻟﻤﺪه ‪ 3‬ﺳﻨﻮات ‪ ،‬وان اﻟﻤﺨﺘﺮق ﯾﺴﺘﻄﯿﻊ ﻣﺤﺎوﻟﮫ ‪ 50‬ﺑﻠﯿﻮن‬
‫ﻣﻔﺘﺎح ﻓﻲ ‪ 3‬دﻗﺎﺋﻖ اذا ﻋﻠﯿﻚ ﺗﻜﺒﯿﺮ اﻟﻤﻔﺘﺎح وﺟﻌﻞ اﻟﻤﺪى ﻣﻦ ‪ 0‬إﻟﻰ ‪ 100‬ﺑﻠﯿﻮن ﺑﻠﯿﻮن ﺑﻠﯿﻮن ﺑﻠﯿﻮن‬
‫ﺑﻠﯿﻮن ﺑﻠﯿﻮن ‪ ،‬وھﻜﺬا ﯾﺄﺧﺬ اﻟﻤﺨﺘﺮق وﻗﺘﺎ أﻃﻮل ﺣﺘﻰ ﯾﺠﺪ اﻟﻤﻔﺘﺎح اﻟﺼﺤﯿﺢ‪..‬‬

‫ھﺬا اﻟﻤﻔﮭﻮم ﯾﻌﺮف ﺑـ ﺣﺠﻢ اﻟﻤﻔﺘﺎح ‪ ، Key Size‬اﻟﻨﻘﻮد ﺗﻘﺎس ﺑﻘﯿﻤﺘﮭﺎ ‪ ،‬اﻟﺬھﺐ ﺑﺎﻟﻮزن ‪ ،‬اﻟﻤﻔﺘﺎح‬
‫ﻓﻲ اﻟﺘﺸﻔﯿﺮ ﯾﻘﺎس ﺑﻌﺪد اﻟﺒﺘﺎت ‪ ، bits‬واﻟﻤﻔﺎﺗﯿﺢ ﻓﻲ اﻟﺘﺸﻔﯿﺮ اﻟﻤﺘﻨﺎﻇﺮ ﺗﻜﻮن ﻋﺎده ﺑﻄﻮل ‪ bit 40‬أو‬
‫‪ bit 56‬أو ‪) bit 128‬وھﻮ اﻷﻓﻀﻞ( ‪ .‬وھﻜﺬا ‪...‬‬

‫ﻣﺪى اﻟـ ‪ 40‬ﺑﺖ ھﻮ ﻣﻦ ‪ 0‬إﻟﻰ ‪ 1‬ﺗﺮ ﻟﯿﻮن‬


‫ﻣﺪى اﻟـ ‪ 56‬ﺑﺖ ھﻮ ﻣﻦ ‪ 0‬إﻟﻰ ‪ 72‬ﻛﺮ وﻟﯿﻮن ‪quadrillion‬‬
‫ﻣﺪى اﻟـ ‪ 128‬ﺑﺖ ھﻮ ﻣﻦ ‪ 0‬إﻟﻰ ‪ .....‬أﻓﻀﻞ أن ﻧﻘﻮل ‪ 128‬ﺑﺖ ﻓﻘﻂ‬

‫ﺑﺎﺧﺘﺼﺎر ‪ ،‬اذا ﻛﻨﺖ ﺗﺮﯾﺪ أن ﺗﺠﻌﻞ ﻋﻤﻞ اﻟﻤﺨﺘﺮق أﻛﺜﺮ ﺻﻌﻮﺑﺔ ‪ ،‬ﻗﻢ ﺑﺘﻜﺒﯿﺮ ﺣﺠﻢ اﻟﻤﻔﺘﺎح ‪ ،‬اﻟﻤﻔﺘﺎح‬
‫اﻟﻜﺒﯿﺮ ﯾﻀﻤﻦ ﻟﻚ ﺣﻤﺎﯾﺔ اﻛﺒﺮ ‪.‬‬

‫ﻓﻲ ﻋﺎم ‪ ، 1997‬ﺗﻢ ﻛﺴﺮ اﻟـ ‪ 40‬ﺑﺖ ﻓﻲ ﺛﻼث ﺳﺎﻋﺎت ‪ ،‬و ﺗﻢ ﻛﺴﺮ ‪ 48‬ﺑﺖ ﻓﻲ ‪ 280‬ﺳﺎﻋﺔ ‪..‬‬
‫)ﻛﻞ ﺑﺖ زﯾﺎدة ﯾﺄﺧﺬ ﺿﻌﻒ اﻟﻤﺪة اﻟﺴﺎﺑﻘﺔ ‪ ،‬ﻣﺜﻼ ‪ 40‬ﺑﺖ ﺗﺄﺧﺬ ‪ 3‬ﺳﺎﻋﺎت ‪ 41 ،‬ﺑﺖ ﺗﺄﺧﺬ ‪ 6‬ﺳﺎﻋﺎت‬
‫‪،‬وھﻜﺬا ( ‪.‬‬

‫ﻓﻲ ‪ ، 1999‬ﺗﻢ ﻛﺴﺮ ‪ 56‬ﺑﺖ ﻓﻲ ‪ 24‬ﺳﺎﻋﺔ ) ﺗﻢ ﻛﺴﺮه ﻣﻦ ﻗﺒﻞ ‪Electronic Frontier‬‬


‫‪ Foundation‬وﺗﻢ اﺳﺘﺨﺪام ﺟﮭﺎز ﺧﺎص ﻓﻘﻂ ﻟﻜﺴﺮ ﺧﻮرزﻣﯿﮫ ‪. ( DES‬‬

‫ﺑﺎﻟﻄﺒﻊ اﻟﻤﺨﺘﺮق ﻟﻦ ﺗﻜﻮن ﻟﺪﯾﮫ ھﺬه اﻹﻣﻜﺎﻧﯿﺎت وﺑﺎﻟﺘﺎﻟﻲ ﺳﻮف ﯾﺄﺧﺬ وﻗﺘﺎ أﻃﻮل ﺑﻜﺜﯿﺮ ﻣﻦ اﻟﺸﺮﻛﺔ‬
‫اﻟﺴﺎﺑﻘﺔ ‪ ،‬وﻟﻜﻦ ﻧﺤﻦ ھﻨﺎ ﻧﻔﺘﺮض أن اﻟﻤﺨﺘﺮق ﻋﺒﺎرة ﻋﻦ ﺣﻜﻮﻣﺔ أو اﻟـ ‪ FPI‬ﻧﻔﺴﮭﺎ ‪.‬‬

‫ﺣﺎﻟﯿﺎ ‪ 128‬ﺑﺖ ھﻮ أﻓﻀﻞ ﺣﺠﻢ ﻟﻠﻤﻔﺘﺎح اﻟﻤﺘﻨﺎﻇﺮ ‪ ،‬رﺑﻤﺎ ﻓﻲ ﺣﺎل ﻛﺴﺮه ﺳﻮف ﻧﻨﺘﻘﻞ إﻟﻰ ‪ 512‬ﺑﺖ‬
‫)وھﻮ اﻛﺒﺮ ﺣﺠﻢ ﻟﻠﻤﻔﺘﺎح وﻧﻈﺮﯾﺎ ﻻ ﯾﻤﻜﻦ ﻛﺴﺮه ﺑﮭﺬه اﻟﻄﺮﯾﻘﮫ )‪ (brute-force attack‬اﺑﺪآ ( ‪.‬‬

‫وﻣﻦ اﻟﻤﻤﻜﻦ أن ﯾﻘﻮم اﻟﻤﺨﺘﺮق ﺑﺎﻟﮭﺠﻮم ﻋﻠﻰ اﻟﻤﻔﺘﺎح وﻟﻜﻦ ﺑﻄﺮﯾﻘﮫ أﺧﺮى ‪ ،‬وھﻲ ﻣﺤﺎوﻟﮫ ﺗﻮﻟﯿﺪ‬
‫‪ PRNG‬ﺑﻨﻔﺲ اﻟﺒﺬرة ‪ Seed‬اﻟﺘﻲ ﻗﻤﺖ ﺑﺈدﺧﺎﻟﮭﺎ ﻓﻲ اﻟـ ‪ ، PRNG‬اذا اﺳﺘﺨﺪﻣﺖ ‪ Seed‬ﺻﻐﯿﺮ‬
‫‪ ،‬ﻗﺪ ﯾﻘﻮم اﻟﻤﺨﺘﺮق ﺑﺘﺠﺮﺑﺔ رﻗﻢ رﻗﻢ إﻟﻰ أن ﯾﺠﺪ ال ‪ Seed‬اﻟﺼﺤﯿﺢ )ﻗﺪ ﺣﺼﻞ ھﺬا ﻟﺸﺮﻛﮫ ﻧﺖ‬
‫ﺳﻜﯿﺐ ‪ ،‬ﺳﺄذﻛﺮه ﺑﻌﺪ ﻗﻠﯿﻞ( ‪ ،‬ﻟﺬﻟﻚ ﻋﻠﯿﻚ ﻋﻨﺪﻣﺎ ﺗﺨﺘﺎر ‪ Seed‬أن ﺗﺨﺘﺎر واﺣﺪ ﻣﻤﺘﺎز وﻻ ﯾﻤﻜﻦ‬
‫ﺗﺨﻤﯿﻨﮫ ‪...‬‬

‫‪98‬‬
‫‪PDF created with pdfFactory Pro trial version www.pdffactory.com‬‬
‫ﻧﻈﺮه ﺣﻮل ‪: Netscape’s Seed‬‬

‫أن اﻟﺘﺸﻔﯿﺮ ﺑﺎﻟﻤﻔﺘﺎح اﻟﻤﺘﻨﺎﻇﺮ ھﻮ اﺣﺪ ﻣﻜﻮﻧﺎت ‪ SSL‬اﻟﺬي اﺧﺘﺮع ﻣﻦ ﻗﺒﻞ اﻟﻌﻠﻤﺎء ﻓﻲ ﺷﺮﻛﮫ ﻧﺖ‬
‫ﺳﻜﯿﺐ )اﺣﺪ اﻟﻌﻠﻤﺎء ﺑﻞ رﺋﯿﺲ اﻟﻌﻠﻤﺎء ﻓﻲ ﻓﺘﺮه اﻟﺘﺴﻌﯿﻨﺎت ھﻮ اﻟﻌﺎﻟﻢ اﻟﻌﺮﺑﻲ اﻟﻤﺼﺮي ﻃﺎھﺮ اﻟﺠﻤﻞ‬
‫‪ ،‬واﻟﺬي اﺧﺘﺮع اﻟﺨﻮارزﻣﯿﺔ اﻟﺘﻲ ﺗﻌﺮف ﺑـ ‪ ELGAMAL‬ﻧﺴﺒﮫ إﻟﻰ اﺳﻤﮫ ‪ ،‬ﺳﺄﺗﻜﻠﻢ ﻋﻨﮫ ﻓﻲ‬
‫اﻟﻨﺴﺨﺔ اﻟﻨﮭﺎﺋﯿﺔ ( ‪ ،‬وﻓﻲ وﻗﺖ ﺗﻮﻟﯿﺪ اﻻﺗﺼﺎل ﻓﻲ ‪ SSL‬ﯾﺠﺐ أن ﯾﻮﻟﺪ رﻗﻢ ﻋﺸﻮاﺋﻲ ‪ ،‬وﻗﺪ‬
‫اﺳﺘﺨﺪﻣﺖ اﻟﺸﺮﻛﺔ ‪ PRNG‬ﯾﺠﻤﻊ اﻟﻤﻌﻠﻮﻣﺎت )اﻟﻮﻗﺖ ‪ +‬رﻗﻢ اﻟﻌﻤﻠﯿﺔ ‪ ( process ID‬واﺳﺘﺨﺪم‬
‫ﻛﺒﺬره ‪ Seed‬ﻟﻠﻤﻮﻟﺪ ‪. PRNG‬‬

‫ﺑﺎﻟﻨﺴﺒﺔ إﻟﻰ ‪ process ID‬ﻓﯿﻤﻜﻦ اﻟﺤﺼﻮل ﻋﻠﯿﮫ ﻣﻦ ﺧﻼل اﻟﺪﺧﻮل إﻟﻰ ﻧﻔﺲ اﻟﺠﮭﺎز اﻟﺬي وﻟﺪه ‪،‬‬
‫أو ﯾﻤﻜﻦ ﺗﻄﺒﯿﻖ ھﺠﻮم ‪ brute-force attack‬ﺣﯿﺚ ﻃﻮﻟﮫ ﻓﻘﻂ ‪ 15‬ﺑﺖ ‪ ،‬أﻣﺎ ﺑﺎﻟﻨﺴﺒﺔ إﻟﻰ اﻟﻮﻗﺖ‬
‫‪ ،‬اﺳﺘﺨﺪﻣﺖ اﻟﺸﺮﻛﺔ اﻟﺜﻮاﻧﻲ ) وﻟﯿﺲ ﺟﺰء ﻣﻦ اﻷﻟﻒ ﻣﻦ اﻟﺜﻮاﻧﻲ( وﻟﺬﻟﻚ ھﻨﺎك ‪ 60‬ﺛﺎﻧﯿﮫ ﻓﻘﻂ ‪.‬‬

‫ﻋﻠﻰ اﻟﻌﻤﻮم ﻓﻲ ‪ 1995‬ﻗﺎم ‪ Goldberg‬و ‪ Wagner‬ﺑﺈﯾﺠﺎد ال ‪ Seed‬وﺑﺎﻟﺘﺎﻟﻲ إﯾﺠﺎد اﻟﻤﻔﺘﺎح ﻓﻲ‬


‫اﻗﻞ ﻣﻦ دﻗﯿﻘﮫ ‪ ،‬ﺳﻮاء ﻛﺎن اﻟﻤﻔﺘﺎح ‪ 40‬ﺑﺖ أو ‪ 128‬ﺑﺖ ‪ ،‬ﺳﻮف ﯾﺄﺧﺬ اﻗﻞ ﻣﻦ دﻗﯿﻘﮫ !!‬

‫وﻗﺪ ﻗﺎﻣﺖ ﻧﺖ ﺳﻜﯿﺐ ﺑﻌﺪھﺎ ﺑﺎﺿﺎﻓﮫ ‪ Seed‬ﺟﺪﯾﺪ ﯾﻌﺘﻤﺪ ﻋﻠﻰ ﻋﺪه ﻋﻮاﻣﻞ‪:‬‬
‫‪. mouse position, memory status, last key pressed, audio volume, and‬‬
‫‪many others‬‬
‫وھﻜﺬا ﯾﺼﻌﺐ إﯾﺠﺎد ال ‪. Seed‬‬

‫ﻛﺴﺮ اﻟﺨﻮارزﻣﯿﺔ ‪: Breaking the Algorithm‬‬

‫اﻟﻄﺮﯾﻘﮫ اﻷﺧﺮى ﻟﻠﮭﺠﻮم ﻋﻠﻰ اﻟﺒﯿﺎﻧﺎت اﻟﻤﺸﻔﺮة ھﻲ ﻛﺴﺮ اﻟﺨﻮارزﻣﯿﺔ ‪ ،‬وھﻨﺎ ﯾﻌﺘﻤﺪ ﻋﻠﻰ ﻗﻮه‬
‫ﻣﻼﺣﻈﮫ وذﻛﺎء اﻟﻤﺨﺘﺮق ‪ ،‬ﻣﺜﻼ ﻻﺣﻆ أن رﻗﻢ ﻣﻌﯿﻦ ﯾﻈﮭﺮ ﻓﻲ ﻣﻜﺎن ﻣﻌﯿﻦ ‪ ،‬ھﻨﺎ ﯾﺴﺘﻄﯿﻊ ﺗﺨﻤﯿﻦ‬
‫ھﺬا اﻟﻌﺪد ﺑﻌﺪ ﺗﺠﺮﺑﮫ اﻟﻌﺪﯾﺪ ﻣﻦ اﻟﻤﺤﺎوﻻت ﺣﺘﻰ ﯾﺤﺼﻞ ﻋﻠﻰ اﻟﻨﺺ اﻷﺻﻠﻲ ‪.‬‬

‫ﻣﺜﻞ ﺗﻠﻚ اﻟﺨﻮارزﻣﯿﺎت اﻟﻀﻌﯿﻔﺔ ﯾﻤﻜﻦ أن ﺗﺨﺘﺮق وﺣﺘﻰ ﻟﻮ ﻛﺎن ﺣﺠﻢ اﻟﻤﻔﺘﺎح ﻛﺒﯿﺮ ‪.‬‬

‫‪99‬‬
‫‪PDF created with pdfFactory Pro trial version www.pdffactory.com‬‬
‫ﺑﻌﺪ أن ﻋﺮﻓﻨﺎ ﻣﺎ ھﻮ اﻟﺘﺸﻔﯿﺮ ﺑﺎﻟﻤﻔﺘﺎح اﻟﻤﺘﻨﺎﻇﺮ وأھﻤﯿﮫ اﻟﻤﻔﺘﺎح ‪ ،‬ﺗﺒﻘﻰ أن ﻧﻌﺮف ﻣﺎ ھﻲ‬
‫اﻟﺨﻮارزﻣﯿﺎت اﻟﺘﻲ ﺗﻨﻄﻮي ﺗﺤﺖ ھﺬا اﻟﻨﻮع ﻣﻦ أﻧﻮاع اﻟﺘﺸﻔﯿﺮ )ﺗﺬﻛﺮ أن ھﻨﺎك ﻧﻮﻋﯿﻦ ‪ ،‬اﻷول ھﻮ‬
‫اﻟﺘﺸﻔﯿﺮ ﺑﺎﻟﻤﻔﺘﺎح اﻟﻤﺘﻨﺎﻇﺮ ‪ ،‬واﻟﺜﺎﻧﻲ ﺑﺎﻟﻤﻔﺘﺎح ﻏﯿﺮ اﻟﻤﺘﻨﺎﻇﺮ ( ‪.‬‬

‫ھﻨﺎك ﻧﻮﻋﯿﻦ ﻣﻦ أﻧﻮاع اﻟﺘﺸﻔﯿﺮ ﺑﺎﻟﻤﻔﺘﺎح اﻟﻤﺘﻨﺎﻇﺮ ‪Symmetric Key Cryptography‬‬


‫وھﻤﺎ ‪:‬‬
‫*ﺷﻔﺮات اﻟﻜﺘﻞ ‪Block Cipher‬‬
‫*ﺷﻔﺮات اﻟﺘﺪﻓﻖ ‪Stream Cipher‬‬

‫ﺷﻔﺮﺍﺕ ﺍﻟﻜﺘﻞ ‪Block Cipher‬‬

‫ﺷﻔﺮات اﻟﻜﺘﻞ )ﻛﻤﺎ ھﻮ واﺿﺢ ﻣﻦ اﺳﻤﮭﺎ( ﺗﻌﻤﻞ ﻋﻠﻰ ‪) Block‬ﻛﺘﻠﮫ( ﻣﻦ اﻟﺒﯿﺎﻧﺎت ﻓﻲ ﻛﻞ ﻣﺮه ‪،‬‬
‫ﻋﻨﺪﻣﺎ ﺗﺰود اﻟﺨﻮارزﻣﯿﺔ )أو ﺑﺮﻧﺎﻣﺞ اﻟﺘﺸﻔﯿﺮ( ﺑﺎﻟﻨﺺ اﻷﺻﻠﻲ ھﻨﺎ ﻓﻲ ھﺬا اﻟﻨﻮع ﯾﻘﻮم ﺑﺘﻘﺴﯿﻢ‬
‫اﻟﻨﺺ إﻟﻰ ﻋﺪه ﻣﻦ اﻟﻜﺘﻞ ‪ ،‬ﻛﻞ ﻛﺘﻠﮫ ﺣﺠﻤﮭﺎ ﯾﻜﻮن ‪ 64‬ﺑﺖ وأﺣﯿﺎﻧﺎ ‪ 128‬ﺑﺖ ) ‪ 16‬ﺑﺎﯾﺖ( ‪ ،‬ﻃﺒﻌﺎ‬
‫اﻟﺤﺠﻢ ﺑﯿﻜﻮن ﻋﻠﻰ ﺣﺴﺐ اﻟﺨﻮارزﻣﯿﺔ اﻟﻤﺴﺘﺨﺪﻣﺔ‬

‫ﻧﺄﺧﺬ ﻣﺜﺎل ﺑﺴﯿﻂ ‪:‬‬


‫ﻟﻨﻔﺮض أن ﻃﻮل اﻟﻨﺺ اﻷﺻﻠﻲ ‪ 227‬ﺑﺎﯾﺖ ‪ ،‬واﻟﺨﻮارزﻣﯿﺔ ﺗﺄﺧﺬ ‪ 16‬ﺑﺎﯾﺖ ﻓﻲ ﻛﻞ ﻣﺮه ‪ ،‬اﻵن ﻓﻲ‬
‫ﻣﺮﺣﻠﮫ اﻟﺘﺸﻔﯿﺮ ‪ ،‬ﻧﺪﺧﻞ اﻟﻤﻔﺘﺎح ‪ ،‬واﻟﻜﺘﻠﺔ اﻷوﻟﻰ )أول ‪ 16‬ﺑﺎﯾﺖ( ‪ ،‬وﻧﺒﺪأ ﻋﻤﻠﯿﮫ اﻟﺘﺸﻔﯿﺮ ‪ ،‬واﻟﻨﺎﺗﺞ‬
‫ھﻮ ﻧﺺ ﻣﺸﻔﺮ ﺑﻄﻮل ‪ 16‬ﺑﺎﯾﺖ أﯾﻀﺎ ‪ .‬ﺑﻌﺪھﺎ ﻧﺄﺧﺬ اﻟﻜﺘﻠﺔ اﻟﺜﺎﻧﯿﺔ )ﺛﺎﻧﻲ ‪ 16‬ﺑﺎﯾﺖ ( ‪ ،‬و ﻧﺒﺪأ ﻓﻲ‬
‫ﻋﻤﻠﯿﮫ اﻟﺘﺸﻔﯿﺮ ‪ ،‬واﻟﻨﺎﺗﺞ ھﻮ أﯾﻀﺎ ﻧﺺ ﻣﺸﻔﺮ ﺑﻄﻮل ‪ 16‬ﺑﺎﯾﺖ ‪ ،‬وھﻜﺬا ﺳﺘﺴﺘﻤﺮ اﻟﻌﻤﻠﯿﺔ ‪ 14‬ﻣﺮه‬
‫)وھﻨﺎ ﺗﻜﻮن ﺷﻔﺮت ‪ 224‬ﺑﺎﯾﺖ ﻣﻦ اﻟﻨﺺ اﻷﺻﻠﻲ(‪.‬‬

‫اﻵن ﺑﻘﯿﺖ ‪ 3‬ﺑﺎﯾﺘﺎت وﻟﻜﻦ اﻟﺨﻮارزﻣﯿﺔ ﻻ ﺗﻌﻤﻞ إﻻ اذا ﻛﺎﻧﺖ اﻟﻜﺘﻠﺔ ﺑﻄﻮل ‪ 16‬ﺑﺎﯾﺖ ‪ ،‬اذا ﻣﺎ اﻟﻌﻤﻞ‬
‫؟؟ ھﻨﺎ ﺳﻮف ﺗﺴﺘﺨﺪم ﻣﻔﮭﻮم ﺟﺪﯾﺪ اﺳﻤﮫ اﻟﺤﺸﻮ ‪ Padding‬وھﻮ ﺑﻜﻞ ﺑﺴﺎﻃﮫ ﯾﻌﻤﻞ ﻋﻠﻰ اﺿﺎﻓﮫ‬
‫ﺑﺎﯾﺘﺎت اﺿﺎﻓﯿﮫ إﻟﻰ اﻟﻜﺘﻠﺔ اﻟﻨﺎﻗﺼﺔ ﺣﺘﻰ ﺗﻜﺘﻤﻞ وﺗﺼﺒﺢ ﺑﺎﻟﺤﺠﻢ اﻟﻤﻄﻠﻮب‪ .‬وھﻨﺎك ﻋﺪه ﻃﺮق ﻟﻠﺤﺸﻮ‬

‫‪100‬‬
‫‪PDF created with pdfFactory Pro trial version www.pdffactory.com‬‬
‫ﺳﻮف ﻧﺬﻛﺮ اﺷﮭﺮھﺎ ‪ ،‬ﻋﻠﻰ اﻟﻌﻤﻮم ﻓﻲ ﺣﺎل اﺳﺘﺨﺪﻣﻨﺎ أي ﻃﺮﯾﻘﮫ ﯾﺠﺐ أن ﺗﻜﻮن ﻣﻔﮭﻮﻣﮫ ﻟﻠﺸﺨﺺ‬
‫اﻟﺬي ﻧﺮﯾﺪه أن ﯾﻔﻚ ﺗﺸﻔﯿﺮ اﻟﺮﺳﺎﻟﺔ أي ﯾﻌﺮف ھﺬه اﻟﺒﺎﯾﺘﺎت ھﻲ ﺑﺎﯾﺘﺎت اﺿﺎﻓﯿﮫ‪.‬‬

‫اﻟﻄﺮﯾﻘﮫ اﻷﺷﮭﺮ ﻟﻠﺤﺸﻮ ‪ :‬ھﻲ أن ﻧﻌﺮف أوﻻ ﻋﺪد اﻟﺒﺎﯾﺘﺎت اﻟﺘﻲ ﺳﻮف ﻧﻀﯿﻔﮭﺎ إﻟﻰ اﻟﻜﺘﻠﺔ اﻟﻨﺎﻗﺼﺔ ‪،‬‬
‫ﻓﻲ اﻟﻤﺜﺎل اﻟﺴﺎﺑﻖ ﻛﺎﻧﺖ ) ‪ 13‬ﺑﺎﯾﺖ ( ‪ ،‬ﺑﻌﺪھﺎ ﻧﻘﻮم ﺑﺘﻜﺮار ھﺬا اﻟﻌﺪد ﻓﻲ ﻛﻞ ﺑﺎﯾﺖ ﻓﻲ اﻟﻜﺘﻠﺔ ‪ ،‬أي‬
‫اﻧﮫ ﺳﻨﺤﺸﻮ اﻟﻌﺪد "‪ "13‬ﺛﻼﺛﺔ ﻋﺸﺮ ﻣﺮه ‪ ،‬وﺗﺴﻤﻰ ھﺬه اﻟﻄﺮﯾﻘﮫ ‪PKC#5‬‬

‫ﻓﻲ ﻋﻤﻠﯿﮫ ﻓﻚ اﻟﺘﺸﻔﯿﺮ ‪ ،‬ﺳﻨﻨﻈﺮ إﻟﻰ اﻟﻜﺘﻠﺔ اﻻﺧﯿﺮه وﻧﺮى إن ﻛﺎن ھﻨﺎك ﻋﺪد ﻣﺎ ﯾﺘﻜﺮر ﻓﻲ ﻛﻞ ﺧﺎﻧﮫ‬
‫ﻣﻦ ﺧﺎﻧﺎت اﻟﻜﺘﻠﺔ اﻻﺧﯿﺮه ‪ ،‬وﻣﻨﮫ ﺳﻮف ﻧﻌﺮف ھﻞ ﻛﺎن ھﻨﺎك ﺣﺸﻮ أو ﻻ ‪.‬‬

‫ﻃﺒﻌﺎ ﻋﻨﺪ اﻟﺘﺸﻔﯿﺮ ‪ ،‬ﻓﻲ ﺣﺎﻟﮫ اﻟﻜﺘﻠﺔ اﻻﺧﯿﺮه ﺗﺴﺎوي ‪ 16‬ﺑﺎﯾﺖ ﻓﻼ ﯾﻮﺟﺪ داﻋﻲ ﻟﻠﺤﺸﻮ )أﺻﻼ ﻻ‬
‫ﯾﻮﺟﺪ ﻣﻜﺎن ﻟﻠﺤﺸﻮ(‪.‬‬

‫اﻟﻤﺸﻜﻠﺔ ﻓﻲ ھﺬا اﻟﻨﻮع "ﺷﻔﺮه اﻟﻜﺘﻞ " ‪ Block Cipher‬ھﻮ اﻧﮫ ﻓﻲ ﺣﺎﻟﮫ ﻛﺎﻧﺖ ھﻨﺎك ﻛﻠﻤﺎت ﺗﺘﻜﺮر‬
‫ﻛﺜﯿﺮا ﻓﻲ اﻟﻨﺺ اﻷﺻﻠﻲ ‪ ،‬ﻓﺈﻧﮭﺎ ﺑﻌﺪ اﻟﺘﺸﻔﯿﺮ ﺳﻮف ﯾﻜﻮن اﻟﻨﺺ اﻟﻤﺸﻔﺮ ﻣﺘﺸﺎﺑﮫ أﯾﻀﺎ ‪.‬‬

‫ﻣﺜﻼ اﻻﺳﻢ " ‪ " wajdy essam‬ﻇﮭﺮ ‪ 3‬ﻣﺮات ﻓﻲ ﻣﻮاﻗﻊ ﻣﺨﺘﻠﻔﺔ ﻓﻲ اﻟﻨﺺ اﻷﺻﻠﻲ )أو‬
‫اﻟﺮﺳﺎﻟﺔ( ‪ .‬ﻣﺜﻼ ﻇﮭﺮ ﻓﻲ اﻟﻜﺘﻠﺔ اﻷوﻟﻰ )أول ‪ 16‬ﺑﺎﯾﺖ( واﻟﻜﺘﻠﺔ اﻟﺮاﺑﻌﺔ )راﺑﻊ ‪ 16‬ﺑﺎﯾﺖ( واﻟﻜﺘﻠﺔ‬
‫اﻟﻌﺎﺷﺮ)ﻋﺎﺷﺮ ‪ 16‬ﺑﺎﯾﺖ(‪.‬‬

‫اﻵن ﻋﻨﺪ اﻟﺘﺸﻔﯿﺮ ‪،‬‬


‫دﺧﻠﺖ اﻟﻜﺘﻠﺔ اﻷوﻟﻰ "‪ "Wajdy Essam‬وﺗﺘﺸﻔﺮ إﻟﻰ "‪"Selrurjgqm‬‬
‫دﺧﻠﺖ اﻟﻜﺘﻠﺔ اﻟﺮاﺑﻌﺔ "‪ "Wajdy Essam‬وﺗﺘﺸﻔﺮ إﻟﻰ " ‪" Selrurjgqm‬‬
‫دﺧﻠﺖ اﻟﻜﺘﻠﺔ اﻟﻌﺎﺷﺮة "‪ "Wajdy Essam‬وﺗﺘﺸﻔﺮ إﻟﻰ " ‪" Selrurjgqm‬‬

‫ﻧﻼﺣﻆ اﻧﮫ ﯾﻤﻜﻦ ﻟﻠﻤﺨﺘﺮق ﻣﻌﺮﻓﮫ أن اﻟﺜﻼﺛﺔ " ‪ " Selrurjgqm‬ھﻲ ﻋﺒﺎرة ﻋﻦ ﺟﻤﻠﮫ واﺣﺪه ‪،‬‬
‫وھﻨﺎ ﻣﻤﻜﻦ أن ﯾﻜﺴﺮھﺎ ﺑﺴﮭﻮﻟﮫ ‪.‬‬

‫اﻟﺤﻞ ﻟﺘﺠﻨﺐ ﻣﺜﻞ ھﺬا اﻟﺘﻜﺮار ھﻮ اﺳﺘﺨﺪام أﺳﺎﻟﯿﺐ ﺗﺴﻤﻰ" ‪ Mode Of Operation‬أﻧﻤﺎط أو‬
‫أﺳﺎﻟﯿﺐ اﻟﻌﻤﻠﯿﺎت" واﻟﺒﻌﺾ ﯾﻄﻠﻖ ﻋﻠﯿﮭﺎ ‪ Feedback Modes‬ﺳﻨﺘﻨﺎول ھﺬه اﻷﺳﺎﻟﯿﺐ ﻓﻲ‬
‫اﻟﻨﺴﺨﺔ اﻟﻨﮭﺎﺋﯿﺔ ﻣﻦ اﻟﻜﺘﺎب ‪.‬‬

‫ﻋﻠﻰ اﻟﻌﻤﻮم اﺷﮭﺮ ھﺬه اﻷﺳﺎﻟﯿﺐ ھﻮ ‪ cipher block chaining‬اﺧﺘﺼﺎرا )‪ ، (CBC‬ھﻨﺎ ﻓﻲ‬
‫ھﺬا اﻟﻨﻤﻂ ﺳﻮف ﻧﻄﺒﻖ اﻟﻌﻤﻠﯿﺔ ‪ XOR‬ﻓﻲ اﻟﻨﺺ اﻷﺻﻠﻲ اﻟﺤﺎﻟﻲ و اﻟﻨﺺ اﻟﻤﺸﻔﺮ اﻟﺴﺎﺑﻖ ‪.‬‬

‫‪101‬‬
‫‪PDF created with pdfFactory Pro trial version www.pdffactory.com‬‬
‫ﻛﺘﻠﮫ اﻟﻨﺺ اﻷﺻﻠﻲ اﻟﺤﺎﻟﻲ ‪ XOR‬ﻛﺘﻠﮫ اﻟﻨﺺ اﻟﻤﺸﻔﺮ اﻟﺴﺎﺑﻘﺔ ‪ ،‬وﺑﻌﺪھﺎ ﺳﻮف ﻧﺠﺮي ﻋﻤﻠﯿﮫ‬
‫اﻟﺘﺸﻔﯿﺮ ‪.‬‬

‫ﺑﺎﻟﻨﺴﺒﺔ إﻟﻰ ﻛﺘﻠﮫ اﻟﻨﺺ اﻷول ‪ ،‬ﻟﻦ ﯾﻜﻮن ھﻨﺎك ﻧﺺ ﻣﺸﻔﺮ ﺳﺎﺑﻖ ﻟﺬﻟﻚ ﺳﻮف ﻧﻄﺒﻖ اﻟﻌﻤﻠﯿﺔ ﻣﻊ‬
‫ﻣﺘﻐﯿﺮ اﺳﻤﮫ ‪ initialization vector‬اﺧﺘﺼﺎرا ‪. IV‬‬

‫وھﻜﺬا ﺳﻮف ﻧﻨﮭﻲ ﻣﺸﻜﻠﮫ ﺗﻜﺮار اﻟﺒﯿﺎﻧﺎت ﺑﮭﺬه اﻟﻄﺮﯾﻘﮫ ‪.‬‬

‫ﺷﻔﺮﻩ ﺍﻟﺘﺪﻓﻖ ‪Stream Ciphers‬‬

‫اﻟﻨﻮع اﻟﺜﺎﻧﻲ ﻣﻦ أﻧﻮاع اﻟﺘﺸﻔﯿﺮ ﺑﺎﻟﻤﻔﺘﺎح اﻟﻤﺘﻨﺎﻇﺮ ھﻮ ﺷﻔﺮه اﻟﺘﺪﻓﻖ ‪ ،‬وھﻨﺎ ﺳﻮف ﻧﺘﻌﺎﻣﻞ ﻣﻊ ﺑﺖ ﺑﺖ‬
‫أو ﺑﺎﯾﺖ ﺑﺎﯾﺖ وﻟﯿﺲ ﻛﺘﻠﮫ ﻛﺘﻠﮫ ‪ ،‬وﻋﻤﻠﯿﮫ ﺗﻮﻟﯿﺪ اﻟﻤﻔﺘﺎح ‪ Key Stream‬ﻣﻦ اﻟﻤﻤﻜﻦ أن ﺗﻌﺘﻤﺪ ﻋﻠﻰ‬
‫اﻟﻨﺺ اﻟﻤﺸﻔﺮ اﻟﺴﺎﺑﻖ وﻣﻦ اﻟﻤﻤﻜﻦ ﻻ )ھﻨﺎك ﻧﻮﻋﯿﻦ ﻣﻦ ھﺬا اﻟﻨﻮع ‪ ،‬ﻧﻮع ﻣﺘﺰاﻣﻦ وﻧﻮع ﻏﯿﺮ‬
‫ﻣﺘﺰاﻣﻦ ( ‪.‬‬

‫‪102‬‬
‫‪PDF created with pdfFactory Pro trial version www.pdffactory.com‬‬
‫‪ Block VS Stream‬ﻣﻦ ﺍﻷﻓﻀﻞ‬

‫ﺷﻔﺮه اﻟﺘﺪﻓﻖ ھﻲ أﺳﺮع ﺑﻜﺜﯿﺮ ﻣﻦ ﺷﻔﺮات اﻟﻜﺘﻞ وﻋﻤﻠﯿﮫ ﻛﺘﺎﺑﮫ ﺑﺮاﻣﺞ ﺳﮭﻠﮫ وأﻛﻮدھﺎ اﻗﻞ ﺑﻜﺜﯿﺮ ﻣﻦ‬
‫اﻟﻜﺘﻞ ‪ ،‬واﺣﺪ اﺷﮭﺮ أﻧﻮاع ﺷﻔﺮات اﻟﺘﺪﻓﻖ ‪ RC4‬وھﻲ أﺳﺮع ﺑﻜﺜﯿﺮ ﻣﻦ أي ﻧﻮع ﻣﻦ أﻧﻮاع ﺷﻔﺮات‬
‫اﻟﻜﺘﻞ ‪ ،‬وﺗﺘﻄﻠﺐ ﺣﻮاﻟﻲ ‪ 30‬ﺳﻄﺮ ﻓﻘﻂ ﻓﻲ اﻟﻜﻮد ‪ .‬ﻣﻌﻈﻢ ﺷﻔﺮات اﻟﻜﺘﻞ ﺗﺄﺧﺬ ﻋﻠﻰ اﻷﻗﻞ ‪400-200‬‬
‫ﺳﻄﺮ‪.‬‬
‫ﺷﻔﺮات اﻟﻜﺘﻞ ﻣﻦ ﺟﮭﺔ أﺧﺮى ﺗﺴﻤﺢ ﺑﺎﻋﺎده اﺳﺘﺨﺪام اﻟﻤﻔﺘﺎح ‪ ،‬ﺑﻌﻜﺲ ﺷﻔﺮات اﻟﺘﺪﻓﻖ اﻟﺘﻲ ﺗﺴﺘﺨﺪم‬
‫اﻟﻤﻔﺘﺎح ﻣﺮه واﺣﺪه ﻓﻘﻂ ‪ ،‬ﻓﻲ اﻟﻜﺜﯿﺮ ﻣﻦ اﻷﺣﯿﺎن ﯾﺠﺐ أن ﻧﺸﻔﺮ اﻟﻌﺪﯾﺪ ﻣﻦ اﻷﺷﯿﺎء ﺑﻤﻔﺘﺎح واﺣﺪ‪.‬‬

‫ﻣﺜﺎل ‪ ،‬ﺷﺮﻛﮫ ﻟﺪﯾﮭﺎ ﻗﺎﻋﺪة ﺑﯿﺎﻧﺎت ﺿﺨﻤﮫ ﻟﻠﻌﻤﻼء ﺗﺤﺘﻮي ﻣﻌﻠﻮﻣﺎﺗﮭﻢ ﻣﻦ أرﻗﺎم ھﻮاﺗﻒ وﺑﻄﺎﻗﺎت‬
‫اﺋﺘﻤﺎﻧﯿﺔ وﻏﯿﺮھﺎ ‪ ،‬ﻓﻲ ﺣﺎل اﺳﺘﺨﺪﻣﺖ ﺷﻔﺮات اﻟﺘﺪﻓﻖ ﺳﻮف ﺗﺘﻄﻠﺐ ﻟﻜﻞ ﻣﺪﺧﻞ )ﻋﻤﯿﻞ( ﻣﻔﺘﺎح‬
‫ﺧﺎص وھﺬا ﯾﺘﻄﻠﺐ ﻣﺌﺎت ﻣﻦ اﻟﻤﻔﺎﺗﯿﺢ وھﻮ أﻣﺮ ﻏﯿﺮ ﻋﻤﻠﻲ ‪ ،‬أﻣﺎ ﻓﻲ ﺣﺎﻟﮫ اﺳﺘﺨﺪﻣﺖ ﺷﻔﺮات اﻟﻜﺘﻞ‬
‫ﻓﺈﻧﮭﺎ ﺗﺸﻔﺮ ﺟﻤﯿﻊ اﻟﺒﯿﺎﻧﺎت ﺑﺎﺳﺘﺨﺪام ﻣﻔﺘﺎح واﺣﺪ ‪ ،‬وﻟﻔﻚ ﺗﺸﻔﯿﺮ ﺑﯿﺎﻧﺎت أي ﻋﻤﯿﻞ ﻧﺴﺘﺨﺪم ﻧﻔﺲ‬
‫اﻟﻤﻔﺘﺎح ‪ .‬ﻋﻤﻠﯿﮫ اداره اﻟﻤﻔﺘﺎح أﺳﮭﻞ ﺑﻜﺜﯿﺮ ﻓﻲ ھﺬه اﻟﺤﺎﻟﺔ‪.‬‬

‫ﻟﺬﻟﻚ ﻓﻲ ﻣﻌﻈﻢ ﻗﻮاﻋﺪ اﻟﺒﯿﺎﻧﺎت ﯾﺘﻢ اﺳﺘﺨﺪام ﺷﻔﺮات اﻟﻜﺘﻞ ‪ Block Cipher‬وأﯾﻀﺎ ﻓﻲ ﺑﺮاﻣﺞ‬
‫اﻟﺒﺮﯾﺪ اﻻﻟﻜﺘﺮوﻧﻲ ‪ ،‬وأﯾﻀﺎ ﻓﻲ ﺑﺮاﻣﺞ ﺗﺸﻔﯿﺮ اﻟﻤﻠﻔﺎت‪.‬‬

‫‪Digital Encryption Standard‬‬

‫ﻓﻲ ﺑﺪاﯾﮫ اﻟﺴﺒﻌﯿﻨﺎت ﺗﻢ ﻣﻌﺮﻓﮫ اﻧﮫ اﻏﻠﺐ اﻟﺸﻔﺮات اﻟﻘﺪﯾﻤﺔ ﻟﻢ ﺗﻌﺪ ﻣﺠﺪﯾﮫ وﻏﯿﺮ ﻧﺎﻓﻌﺔ ﻟﻠﺘﺸﻔﯿﺮ ‪ ،‬وﻟﮭﺬا‬
‫ﻗﺮر ﻋﻠﻤﺎء ﻓﻲ ﺷﺮﻛﮫ ‪ IBM‬ﺑﻌﻤﻞ ﺧﻮارزﻣﯿﺔ ﺟﺪﯾﺪة ﻟﻠﺘﺸﻔﯿﺮ ﺗﺒﻨﻰ ﻋﻠﻰ ﺑﻨﯿﺔ ﻗﺪﯾﻤﺔ ﺗﺴﻤﻰ‬
‫‪) Lucifer‬ﻧﺴﺒﮫ إﻟﻰ ﻣﺨﺘﺮﻋﮭﺎ ‪ ، ( Horst Feistel‬وﻣﻦ ﺧﻼل ﻣﺴﺎﻋﺪه وﻛﺎﻟﮫ اﻷﻣﻦ اﻟﻘﻮﻣﻲ‬
‫‪ NSA‬ﺗﻢ ﻋﻤﻞ ﺧﻮارزﻣﯿﺔ ‪. DES‬‬

‫‪ DES‬ھﻲ اﺣﺪ ﺷﻔﺮات اﻟﻜﺘﻞ ‪ ، Block Cipher‬وﺗﺄﺧﺬ ﻣﻔﺘﺎح ﺑﻄﻮل ‪ 56‬ﺑﺖ ‪ ،‬وﺗﻌﻤﻞ ﻋﻠﻰ ﻛﺘﻠﮫ‬
‫ﻃﻮﻟﮭﺎ ‪ 64‬ﺑﺖ ‪.‬‬

‫وﻓﻲ اﻟﺜﻤﺎﻧﯿﻨﺎت ﻟﻢ ﯾﺘﻢ اﻛﺘﺸﺎف أي ﺛﻐﺮه ﻓﻲ ‪ DES‬ﻟﺬﻟﻚ ﻛﺎﻧﺖ اﻗﻮي اﻟﺨﻮارزﻣﯿﺎت ﻓﻲ ذﻟﻚ اﻟﻮﻗﺖ‪،‬‬
‫وﻟﻜﺴﺮ أي رﺳﺎﻟﺔ ﻣﺸﻔﺮه ﺑﮭﺎ ﻟﻢ ﯾﻜﻦ ھﻨﺎك إﻻ اﺳﺘﺨﺪام ھﺠﻮم اﻟـ ‪ ، brute-force‬وﻷن ﻃﻮل‬
‫اﻟﻤﻔﺘﺎح ‪ 56‬ﺑﺖ )ﻣﺪاه ﻣﻦ ‪ 0‬إﻟﻰ ‪ 72‬ﻛﻮارﻟﺪﯾﻮن( و اﻻﺟﮭﺰه ﺑﻄﯿﺌﺔ ﻟﻠﻐﺎﯾﺔ ‪ ،‬ﻓﻜﺎﻧﺖ ﻋﻤﻠﯿﮫ اﻟﻜﺴﺮ‬
‫ﺗﺘﻄﻠﺐ ﺳﻨﮫ ﻛﺎﻣﻠﺔ‪.‬‬

‫وﻓﻲ ‪ 1999‬وﻓﻲ اﺣﺪ اﻟﻤﺆﺗﻤﺮات ﺗﻢ ﻛﺴﺮ ھﺬه اﻟﺨﻮارزﻣﯿﺔ ﻓﻲ ‪ 24‬ﺳﺎﻋﺔ ﻣﻦ ﻗﺒﻞ ‪the‬‬
‫‪ Foundation Electronic Frontier‬اذا اﻟﻌﺎﻟﻢ ﯾﺠﺐ أن ﯾﻨﺘﻘﻞ إﻟﻰ ﺧﻮارزﻣﯿﺔ أﺧﺮى ‪.‬‬

‫‪Triple DES‬‬

‫اﺣﺪ اﻟﺒﺪاﺋﻞ ﻛﺎﻧﺖ ﺧﻮارزﻣﯿﺔ ‪ Triple DES‬أو اﻟﺒﻌﺾ ﯾﺴﻤﻮھﺎ ‪ ، 3DES‬ھﻲ ﺑﻜﻞ ﺑﺴﺎﻃﮫ ‪DES‬‬
‫وﻟﻜﻦ ﺛﻼﺛﺔ ﻣﺮات ‪ ،‬ﯾﻌﻨﻲ ﺳﻮف ﺗﺪﺧﻞ اﻟﻜﺘﻠﺔ اﻷوﻟﻰ )‪ 16‬ﺑﺎﯾﺖ( إﻟﻰ اﻟﺨﻮارزﻣﯿﺔ ﺑﺎﻟﻤﻔﺘﺎح اﻷول ‪،‬‬
‫واﻟﻨﺎﺗﺞ ﺳﻮف ﯾﺪﺧﻞ إﻟﻰ اﻟﺨﻮارزﻣﯿﺔ ﻣﻊ اﻟﻤﻔﺘﺎح اﻟﺜﺎﻧﻲ ‪ ،‬واﻟﻨﺎﺗﺞ ﺳﻮف ﯾﺪﺧﻞ ﻣﻊ اﻟﻤﻔﺘﺎح اﻟﺜﺎﻟﺚ ‪.‬‬

‫‪103‬‬
‫‪PDF created with pdfFactory Pro trial version www.pdffactory.com‬‬
‫ھﻨﺎ ﺳﻮف ﻧﺴﺘﺨﺪم ﺛﻼﺛﺔ ﻣﻔﺎﺗﯿﺢ ‪ ،‬ﻛﻞ ﻣﻨﮭﺎ ﺑﻄﻮل ‪ 56‬ﺑﺖ )أي ﻛﺄﻧﮭﺎ ‪ 168‬ﺑﺖ( ‪ ،‬ﻗﺪ ﺗﺴﺄل وﺗﻘﻮل‬
‫"اذا ﻛﺎﻧﺖ ﻛﺴﺮ ﻣﻔﺘﺎح واﺣﺪ ﯾﺄﺧﺬ ‪ 24‬ﺳﺎﻋﺔ ‪ ،‬اذا ﻛﺴﺮ ﺛﻼﺛﺔ ﻣﻔﺎﺗﯿﺢ ﺳﻮف ﯾﺄﺧﺬ ‪ 72‬ﺳﺎﻋﺔ" ھﻞ‬
‫ھﺬا ﺻﺤﯿﺢ ؟‬

‫ﺑﺎﻟﻄﺒ ﻊ ﻻ ‪ ،‬واﻟﯿﻚ ﻣﺜﺎل ﺑﺴﯿﻂ ‪:‬‬

‫ﻟﻨﻔﺘﺮض أن اﻟﻤﻔﺎﺗﯿﺢ اﻟﺜﻼﺛﺔ ‪ A , b , c‬ﻛﻞ ﻣﻨﮭﺎ ﻣﺪاه ﻣﻦ ‪ 0‬إﻟﻰ ‪quadrillion ..72‬‬


‫وأن اﻟﻤﻔﺘﺎح ھﻮ ‪:‬‬
‫‪A=1‬‬
‫‪B = 33,717‬‬
‫‪C = 1,419,222‬‬

‫اﻵن اﻟﻤﺨﺘﺮق ﺳﻮف ﯾﺠﺮب ‪ b=0 , c=0 a=0 ,‬وھﻮ ﻟﯿﺲ اﻟﻤﻔﺘﺎح اﻟﺼﺤﯿﺢ‪..‬‬

‫ﺑﻌﺪھﺎ ﺳﻮف ﯾﺠﺮب اﻟﻤﻔﺘﺎح ‪ c=0 a=1, b=0 ,‬وھﻮ ﻟﯿﺲ اﻟﻤﻔﺘﺎح اﻟﺼﺤﯿﺢ ‪..‬‬
‫)ﻣﻊ اﻟﻌﻠﻢ ﺑﺄن اﻷول ‪ a‬ﺻﺤﯿﺢ( ﻟﻜﻦ ﻛﯿﻒ ﯾﻌﺮف اﻟﻤﺨﺘﺮق ذﻟﻚ ؟ اﻟﻨﺘﯿﺠﺔ ﻟﻢ ﺗﻈﮭﺮ ﺻﺤﯿﺤﺔ إﻻ اذا‬
‫ﻛﺎﻧﺖ اﻟﺜﻼﺛﺔ ﻣﻔﺎﺗﯿﺢ ﺻﺤﯿﺤﺔ واﻻ ﻓﺴﻮف ﯾﺪور ﻓﻲ ﺣﻠﻘﮫ ﻣﻔﺮﻏﮫ‪.‬‬

‫‪104‬‬
‫‪PDF created with pdfFactory Pro trial version www.pdffactory.com‬‬
‫ﻋﻠﻰ اﻟﻌﻤﻮم ‪ DES 3‬ﻟﮭﺎ ﻣﺸﻜﻠﮫ وھﻲ أﻧﮭﺎ ﺑﻄﺌﯿﮫ ﺟﺪا ‪ ،‬اﻟـ ‪ DES‬اﻟﻌﺎدﯾﺔ ھﻲ ﺑﻄﯿﺌﺔ ‪ ،‬ﻓﻤﺎ ﺑﺎﻟﻚ ﺑـ‬
‫‪ DES‬ﺛﻼث ﻣﺮات ‪ ،‬واﻏﻠﺐ اﻟﺘﻄﺒﯿﻘﺎت ﺗﺘﻄﻠﺐ اﻟﺴﺮﻋﺔ ﻓﻲ اﻟﻌﻤﻞ ‪ ،‬وھﺬه اﻟﺨﻮارزﻣﯿﺔ ﻻ ﺗﻨﻔﻊ‬
‫ﻷﻧﮭﺎ ﺑﻄﯿﺌﺔ ﺟﺪا ‪ ،‬اذا اﻟﻌﺎﻟﻢ ﻣﺮه أﺧﺮى ﺑﺤﺎﺟﮫ إﻟﻰ ﺧﻮارزﻣﯿﺔ!!‬

‫اﻟﺒﺪاﺋﻞ‪:‬‬
‫ﺑﻌﺪ ﻣﺸﻜﻠﮫ اﻟﺒﻂء ﻓﻲ ﺧﻮارزﻣﯿﺔ اﻟـ ‪ ، DES 3‬اﺗﺠﮫ اﻟﻌﺪﯾﺪ ﻣﻦ اﻷﻓﺮاد واﻟﺸﺮﻛﺎت ﻟﺘﻄﻮﯾﺮ‬
‫ﺧﻮارزﻣﯿﺎﺗﮭﻢ اﻟﺨﺎﺻﺔ وﻛﺎﻧﺖ اﻟﻨﺘﯿﺠﺔ أن ھﻨﺎك اﻟﻌﺪﯾﺪ ﻣﻦ اﻟﺨﻮارزﻣﯿﺎت اﻟﺠﯿﺪة واﻟﺘﻲ ﺗﺄﺧﺬ ﻣﻔﺎﺗﯿﺢ‬
‫ﻣﺘﻐﯿﺮ اﻟﻄﻮل )وﻟﯿﺲ ﺛﺎﺑﺘﺔ اﻟﻄﻮل ﻛﻤﺎ ﻓﻲ ‪ ، ( DES‬ﻣﻦ ھﺬه اﻟﺨﻮارزﻣﯿﺎت‬
‫‪. RC2, RC5, IDEA, CAST, SAFER, Blowfish‬‬
‫ھﺬه اﻟﺨﻮارزﻣﯿﺎت ﺑﺎﻟﺮﻏﻢ ﻣﻦ ﻗﻮﺗﮭﺎ ﻟﻢ ﺗﺼﺒﺢ واﺳﻌﺔ اﻻﻧﺘﺸﺎر ﻛﻤﺎ ﻓﻲ ‪ DES‬و ‪. Triple DES‬‬
‫اذا اﻟﻌﺎﻟﻢ ﺑﺤﺎﺟﮫ ھﺬه اﻟﻤﺮة إﻟﻰ ﻣﻘﯿﺎس أو ﺧﻮارزﻣﯿﺔ واﺳﻌﺔ اﻻﻧﺘﺸﺎر ﻛـ ‪DES‬‬

‫‪Advanced Encryption Standard‬‬

‫ﻧﺘﯿﺠﺔ ﻟﮭﺬا اﻷﻣﺮ ﻗﺎم اﻟﻤﻌﮭﺪ اﻟﻮﻃﻨﻲ ﻟﻠﻤﻌﺎﯾﯿﺮ ‪National Institute of Standards and‬‬
‫‪ Technology‬اﺧﺘﺼﺎرا ‪ ، NIST‬ﺑﺎﺳﺘﺪﻋﺎء ﺟﻤﯿﻊ اﻟﻤﮭﺘﻤﯿﻦ ﺑﮭﺬا اﻷﻣﺮ وﻛﻠﻔﺖ ﺑﻜﻞ ﻣﻨﮭﻢ ﺑﻌﻤﻞ‬
‫ﺧﻮازرﻣﯿﺘﮫ اﻟﺨﺎﺻﺔ وﻓﻲ اﻟﻨﮭﺎﯾﺔ أﻗﻮى ﺧﻮارزﻣﯿﺔ ﺳﻮف ﺗﻜﻮن ھﻲ اﻟﻤﻘﯿﺎس اﻟﺠﺪﯾﺪ ‪ ، AES‬وﻗﺪ‬
‫ﻗﺪﻣﺖ ‪ 15‬ﺧﻮارزﻣﯿﺔ )ﻣﻨﮭﺎ اﻟﻘﻮي وﻣﻨﮭﺎ اﻟﻀﻌﯿﻒ( ‪.‬‬

‫وﻓﻲ ‪ 1999‬ﻗﺎﻣﺖ ‪ NIST‬ﺑﺎﺧﺘﯿﺎر أﻓﻀﻞ ‪ 5‬ﺧﻮارزﻣﯿﺎت ﺑﻌﺪ إﺟﺮاء اﻟﻌﺪﯾﺪ ﻣﻦ اﻻﺧﺘﺒﺎرات ‪ ،‬وﻗﺪ‬
‫ﺟﻌﻠﺖ اﻷﻣﺮ ﺑﺎﻟﺘﺼﻮﯾﺖ ﻷﻓﻀﻞ ﺧﻮارزﻣﯿﺔ ‪ ،‬وﻓﻲ ‪ 2000‬ﺗﻢ اﺧﺘﯿﺎر ﺧﻮارزﻣﯿﺔ ‪Rijndael‬‬
‫ﻛﺎﻟﻤﻘﯿﺎس اﻟﺠﺪﯾﺪ ‪. AES‬‬

‫ﺍﺩﺍﺭﻩ ﺍﻟﻤﻔﺘﺎﺡ ﺍﻟﻤﺘﻨﺎﻇﺮ ‪: Symmetric-Key Management‬‬

‫ﺗﻮﺻﻠﻨﺎ ﺳﺎﺑﻘﺎ إﻟﻰ أن اﻟﺘﺸﻔﯿﺮ ﺑﺎﻟﻤﻔﺘﺎح اﻟﻤﺘﻨﺎﻇﺮ ﯾﻘﻮم ﺑﺘﺸﻔﯿﺮ اﻟﺮﺳﺎﻟﺔ ﺑﻤﻔﺘﺎح ﻣﺎ ‪ ،‬ﺛﻢ ﯾﻘﻮم ﺑﻔﻚ‬
‫اﻟﺘﺸﻔﯿﺮ ﺑﻨﻔﺲ اﻟﻤﻔﺘﺎح ‪ ،‬ﻟﺬﻟﻚ ﻋﻤﻠﯿﮫ اﻟﺤﻔﺎظ ﻋﻠﻰ اﻟﻤﻔﺘﺎح أﻣﺮ ﻓﻲ ﻏﺎﯾﺔ اﻻھﻤﯿﮫ ‪ ،‬ﻓﺈذا اﻧﻜﺸﻒ‬
‫اﻟﻤﻔﺘﺎح اﻧﻜﺸﻔﺖ ﺟﻤﯿﻊ اﻷﺳﺮار ‪ ،‬ﻟﺬﻟﻚ ﯾﺠﺐ ﺣﻔﻆ اﻟﻤﻔﺘﺎح ﻓﻲ ﻣﻜﺎن اﻣﻦ ﺟﺪا ‪ ،‬ﻋﻤﻠﯿﮫ اﻟﺤﻔﺎظ ﻋﻠﻰ‬
‫اﻟﻤﻔﺘﺎح ﺗﺴﻤﻰ ﺑـ اداره اﻟﻤﻔﺘﺎح ‪. Symmetric-Key Management‬‬

‫رﺑﻤﺎ اﻵن ﺗﺘﺴﺎءل"اذا ﻛﺎن ھﻨﺎك ﻣﻜﺎن أﺳﺘﻄﯿﻊ أن اﺣﻔﻆ ﻓﻲ اﻟﻤﻔﺘﺎح ‪ ،‬ﻓﻠﻤﺎذا ﻻ اﺣﻔﻆ اﻟﺮﺳﺎﻟﺔ ﻓﻲ‬
‫ذﻟﻚ اﻟﻤﻜﺎن وﻻ اﺣﺘﺎج إﻟﻰ اﻟﺘﺸﻔﯿﺮ" ؟‬

‫ﻓﻲ اﻟﺤﻘﯿﻘﺔ ﺣﻔﻆ ﻣﻔﺘﺎح اﻟﺘﺸﻔﯿﺮ )‪ 56‬ﺑﺖ ﻣﺜﻼ( ﯾﻜﻮن أﺳﮭﻞ ﻛﺜﯿﺮا ﻣﻦ ﺣﻔﻆ اﻟﺮﺳﺎﻟﺔ )ﺑﻌﺾ اﻷﺣﯿﺎن‬
‫ﺣﺠﻤﮭﺎ ﯾﻜﻮن ﻣﺌﺎت ﻣﻦ اﻟﻤﯿﻐﺎ ﺑﺎﯾﺖ ‪ ، ( MB‬ﺑﺎﻻﺿﺎﻓﮫ إﻟﻰ ھﻨﺎك ﺣﻠﻮل ﻟﺤﻔﻆ اﻟﻤﻔﺘﺎح ﻋﻦ ﻃﺮﯾﻖ‬
‫ﺣﻔﻈﮭﺎ داﺧﻞ أﺟﮭﺰه ﺻﻐﯿﺮه ﻣﺼﻤﻤﺔ ﻟﮭﺬا اﻟﻐﺮض‪.‬‬

‫‪Password-Based Encryption‬‬

‫إن اﻟﻤﻔﺘﺎح اﻟﺬي ﻛﻨﺎ ﻧﺴﺘﺨﺪﻣﮫ ﻟﻠﺘﺸﻔﯿﺮ وﻓﻚ اﻟﺘﺸﻔﯿﺮ ﯾﺴﻤﻰ ﻓﻲ اﻟﺤﻘﯿﻘﺔ "ﺑﻤﻔﺘﺎح اﻟﺠﻠﺴﺔ ‪session‬‬
‫‪ ، "key‬وأﺣﺪ اﻟﻄﺮق ﻟﺤﻤﺎﯾﺔ ھﺬا اﻟﻤﻔﺘﺎح ھﻲ ﻋﻦ ﻃﺮﯾﻖ ﺗﺸﻔﯿﺮه أﯾﻀﺎ ‪ ،‬أي أن اﻟﻤﻔﺘﺎح )ﻣﻔﺘﺎح‬
‫اﻟﺠﻠﺴﺔ( ﯾﺤﺘﺎج إﻟﻰ ﻣﻔﺘﺎح آﺧﺮ ﻟﻜﻲ ﯾﺘﻢ ﺗﺸﻔﯿﺮه‪.‬‬

‫‪105‬‬
‫‪PDF created with pdfFactory Pro trial version www.pdffactory.com‬‬
‫ھﺬه اﻟﻌﻤﻠﯿﺔ ﺗﺴﻤﻰ ﺑﺎﻟـ ‪ password-based encryption‬واﺧﺘﺼﺎرا ‪. PBE‬‬

‫ﯾﻌﻨﻲ ﻣﻔﺘﺎح اﻟﺠﻠﺴﺔ ‪ session key‬ھﻮ اﻟﻤﻔﺘﺎح اﻟﺬي ﻧﺴﺘﺨﺪﻣﮫ ﻓﻲ اﻟﺘﺸﻔﯿﺮ وﻓﻚ اﻟﺘﺸﻔﯿﺮ‬
‫وﻣﻔﺘﺎح ﺗﺸﻔﯿﺮ اﻟﻤﻔﺘﺎح ‪ key encryption key‬ھﻮ اﻟﻤﻔﺘﺎح اﻟﺬي ﻧﺴﺘﺨﺪﻣﮫ ﻟﺘﺸﻔﯿﺮ ﻣﻔﺘﺎح اﻟﺠﻠﺴﺔ ‪،‬‬
‫واﺧﺘﺼﺎرا ﯾﺴﻤﻰ ‪. KEK‬‬

‫اﻵن ﺑﻤﺎ أن اﻟﻤﻔﺘﺎح ‪) KEK‬ﻣﻦ اﻵن وﺻﺎﻋﺪا ﻧﺴﻤﯿﮫ ﺑﮭﺬا اﻻﺳﻢ( ھﻮ اﻟﺬي ﯾﺴﺘﺨﺪم ﻟﺘﺸﻔﯿﺮ وﻓﻚ‬
‫ﺗﺸﻔﯿﺮ ﻣﻔﺘﺎح اﻟﺠﻠﺴﺔ ‪ ،‬اﻟﺴﺆال ھﻞ أﻧﺎ ﺑﺤﺎﺟﮫ إﻟﻰ ﺣﻤﺎﯾﺔ ھﺬا اﻟـ ‪ KEK‬؟‬
‫اﻟﺠﻮاب ‪ ،‬ھﻮ ﻻ ‪ ،‬ﻋﻨﺪﻣﺎ ﻧﺮﯾﺪ أن ﻧﺸﻔﺮ اﻟﻤﻌﻠﻮﻣﺎت ﻧﻘﻮم ﺑﺘﻮﻟﯿﺪ ھﺬا اﻟﻤﻔﺘﺎح )ﺑﺄﺣﺪ ﻃﺮق ﺗﻮﻟﯿﺪ‬
‫اﻷرﻗﺎم اﻟﻌﺸﻮاﺋﯿﺔ( ﺑﻌﺪھﺎ ﻧﻘﻮم ﺑﺎﺳﺘﺨﺪاﻣﮫ وﻣﻦ ﺛﻢ ﻧﺤﺬﻓﮫ ‪ ،‬وﻓﻲ ﺣﺎﻟﮫ ﻓﻚ اﻟﺘﺸﻔﯿﺮ ﻧﻘﻮم ﺑﺘﻮﻟﯿﺪ ھﺬا‬
‫اﻟﻤﻔﺘﺎح ﻣﺮه أﺧﺮى وﻧﺴﺘﺨﺪﻣﮫ وﻣﻦ ﺛﻢ ﻧﺤﺬﻓﮫ ‪ ،‬وﻓﻲ ﻣﺮﺣﻠﮫ ﺗﻮﻟﯿﺪ ھﺬا اﻟﻤﻔﺘﺎح ﯾﺠﺐ أن ﻧﺪﺧﻞ‬
‫ﺑﺎﺳﻮرد ﻣﻌﯿﻦ ﺳﻮاء ﻓﻲ ﻣﺮﺣﻠﮫ اﻟﺘﺸﻔﯿﺮ أو ﻓﻚ اﻟﺘﺸﻔﯿﺮ ‪.‬‬

‫ﺑﺼﻮره ﻣﺒﺴﻄﮫ ‪ ،‬ﻣﻔﺘﺎح اﻟﺠﻠﺴﺔ ‪ Session key‬ھﻮ اﻟﺬي ﯾﺸﻔﺮ اﻟﻤﻌﻠﻮﻣﺎت وﻧﻘﻮم ﺑﺘﻮﻟﯿﺪه‬
‫ﻋﺸﻮاﺋﯿﺎ ‪.‬‬
‫ﻣﻔﺘﺎح اﻟـ ‪ KEK‬ھﻮ اﻟﺬي ﯾﺸﻔﺮ ﻣﻔﺘﺎح اﻟﺠﻠﺴﺔ وﻧﻘﻮم ﺑﺘﻮﻟﯿﺪه ﻋﻦ ﻃﺮﯾﻖ ‪password-based‬‬
‫‪.encryption‬‬

‫وﯾﺘﻢ ﺗﻮﻟﯿﺪ اﻟـ ‪: KEK‬‬


‫‪ -1-‬إدﺧﺎل ﺑﺎﺳﻮرد‬
‫‪ -2-‬اﺳﺘﺨﺪام أي ﻃﺮﯾﻘﮫ ﻟﺘﻮﻟﯿﺪ أرﻗﺎم ﻋﺸﻮاﺋﯿﺔ ﻟﺘﻮﻟﯿﺪ اﻟـ ‪) salt‬اﻟﻤﻠﺢ( ‪.‬‬
‫‪ -3-‬ﻧﺪﺧﻞ اﻟﺒﺎﺳﻮرد واﻟﻤﻠﺢ ﻣﻊ ﺑﻌﺾ داﺧﻞ اﻟﺨﻼط ‪ blender‬واﻟﻨﺎﺗﺞ ھﻮ ﺧﻠﯿﻂ ﻣﻦ اﻟﺒﺘﺎت‬
‫اﻟﻌﺸﻮاﺋﯿﺔ ‪ ،‬ﻟﻘﺪ ﺗﻄﺮﻗﻨﺎ ﺳﺎﺑﻘﺎ ﻋﻦ اﻟـ‪ blender‬وﺳﻮف ﻧﺘﺤﺪث ﻋﻨﮫ ﺑﺎﻟﺘﻔﺼﯿﻞ ﻻﺣﻘﺎ ‪.‬‬
‫‪ -4-‬ﻧﺄﺧﺬ ﻣﺎ ﯾﻜﻔﻲ ﻣﻦ اﻟﺨﻠﯿﻂ اﻟﺴﺎﺑﻖ وﻧﻀﻌﮫ داﺧﻞ اﻟﻤﻔﺘﺎح ‪ ، KEK‬وﺑﻌﺪھﺎ ﻧﺴﺘﺨﺪم اﻟـ ‪KEK‬‬
‫ﻟﺘﺸﻔﯿﺮ ﻣﻔﺘﺎح اﻟﺠﻠﺴﺔ ﺛﻢ ﻧﺤﺬف ھﺬا اﻟـ ‪ ، KEK‬وﻧﺤﺘﻔﻆ ﺑﺎﻟﻤﻠﺢ ‪.‬‬
‫‪ -5-‬اﻵن ﺗﻢ ﺗﺸﻔﯿﺮ اﻟﺮﺳﺎﻟﺔ ‪ ،‬وﯾﺠﺐ آن ﺗﺤﻔﻆ اﻟﻤﻠﺢ ﻷﻧﮫ ﺳﻮف ﯾﺴﺘﺨﺪم ﻓﻲ ﻓﻚ اﻟﺘﺸﻔﯿﺮ ‪.‬‬

‫ﻣﺎ ھﻮ ھﺬا اﻟﻤﻠﺢ ‪ ،‬ﺑﺎﻟﺘﺄﻛﯿﺪ ھﻮ ﻟﯿﺲ اﻟﺬي ﺗﺴﺘﺨﺪﻣﮫ ﻓﻲ اﻟﻄﻌﺎم ‪ ،‬وﺳﻮف ﻧﺘﻄﺮق ﻟﮫ ﺑﻌﺪ ﻗﻠﯿﻞ ‪.‬‬

‫‪106‬‬
‫‪PDF created with pdfFactory Pro trial version www.pdffactory.com‬‬
‫اﻵن ﻟﻔﻚ اﻟﺘﺸﻔﯿﺮ‪:‬‬
‫‪ -1-‬ﻧﺪﺧﻞ اﻟﺒﺎﺳﻮرد اﻟﺬي أدﺧﻠﻨﺎه ﻓﻲ ﻋﻤﻠﯿﮫ اﻟﺘﺸﻔﯿﺮ‬
‫‪ -2-‬ﻧﺄﺗﻲ ﺑﺎﻟﻤﻠﺢ اﻟﺬي اﺣﺘﻔﻈﻨﺎ ﺑﮫ ﻓﻲ ﻣﺮﺣﻠﮫ اﻟﺘﺸﻔﯿﺮ‬
‫‪ -3-‬ﻧﺪﺧﻞ اﻟﻤﻠﺢ واﻟﺒﺎﺳﻮرد ﻓﻲ ﻧﻔﺲ اﻟﺨﻼط اﻟﺬي اﺳﺘﺨﺪﻣﻨﺎه ﻓﻲ ﻋﻤﻠﯿﮫ اﻟﺘﺸﻔﯿﺮ ‪ ،‬ﻓﻲ ﺣﺎل اﺧﺘﻠﻒ‬
‫اﺣﺪھﻢ ﺳﻮف ﯾﻜﻮن اﻟﻨﺎﺗﺞ ﻋﺒﺎرة ﻋﻦ ‪ KEK‬ﺧﺎﻃﺊ ‪ ،‬وﻓﻲ ﺣﺎل ﻛﺎﻧﻮا ﺻﺤﯿﺤﯿﻦ ﻓﺎﻟﻨﺎﺗﺞ ھﻮ اﻟـ‬
‫‪KEK‬اﻟﺼﺤﯿﺢ‬
‫‪ -4-‬ﻧﺴﺘﺨﺪم اﻟـ ‪ KEK‬ﻟﻔﻚ ﻣﻔﺘﺎح اﻟﺠﻠﺴﺔ ‪ ،‬وﺑﻌﺪھﺎ ﻧﺴﺘﺨﺪم ﻣﻔﺘﺎح اﻟﺠﻠﺴﺔ ﻟﻔﻚ ﺗﺸﻔﯿﺮ اﻟﺮﺳﺎﻟﺔ‪..‬‬
‫واﻧﺘﮭﺖ اﻟﺨﻄﻮات ‪ ،‬واﻟﺼﻮرة اﻟﺘﺎﻟﯿﺔ ﺗﻮﺿﺢ اﻟﻌﻤﻠﯿﺔ ‪:‬‬

‫دﻋﻨﺎ ﻧﻮﺿﺢ ﺑﻌﻀﺎ ﻣﻦ اﻟﻨﻘﺎط و اﻻﺳﺌﻠﮫ اﻟﺘﻲ رﺑﻤﺎ ﺳﺘﺘﺴﺎءل ﻋﻨﮭﺎ ‪:‬‬

‫‪ Mixing Algorithms and KEK‬ﻟﻤﺎذا ﻧﺨﻠﻂ ﺑﯿﻦ اﻟﺒﺎﺳﻮرد واﻟﻤﻠﺢ ؟ ﻟﻤﺎذا ﻻ ﯾﻜﻮن اﻟﺒﺎﺳﻮرد‬
‫ھ ﻮ اﻟـ ‪KEK‬‬
‫اﻟﺠﻮاب ‪ ،‬ﻻن اﻟﺒﺎﺳﻮرد ﻻ ﯾﺤﺘﻮي ﻋﻠﻰ اﻟﻜﺜﯿﺮ ﻣﻦ ‪ ، Entropy‬ﻟﺬﻟﻚ ھﻮ ﻏﯿﺮ ﻛﺎﻓﻲ اﺑﺪآ ‪ ،‬ﻓﮭﻨﺎ‬
‫ﻧﺴﺘﺨﺪم ھﺬه اﻟﺨﻮارزﻣﯿﺔ ﻟﻠﺨﻠﻂ ﺑﯿﻦ اﻟﻤﻠﺢ واﻟﺒﺎﺳﻮرد وﺑﺬﻟﻚ اﻟﻨﺘﯿﺠﺔ أﻛﺜﺮ ﻋﺸﻮاﺋﯿﺔ‪..‬‬

‫‪107‬‬
‫‪PDF created with pdfFactory Pro trial version www.pdffactory.com‬‬
‫ﻣﺎ أھﻤﯿﮫ ھﺬا اﻟﻤﻠﺢ ‪ The Necessity of Salt‬؟‬
‫ھﺬا اﻟﻤﻠﺢ ﺑﺒﺴﺎﻃﮫ ﯾﺴﺘﺨﺪم ﻟﻤﻨﻊ ﻣﺤﺎوﻻت ﺗﺨﻤﯿﻦ اﻟﺒﺎﺳﻮرد ‪ ،‬ﻷﻧﮫ ﻓﻲ ﺣﺎﻟﮫ اﺳﺘﺨﺪﻣﻨﺎ اﻟﺒﺎﺳﻮرد ﻓﻘﻂ‬
‫ك ‪ KEK‬ﻓﺎن اﻟﻤﺨﺘﺮق ﺑﻤﻜﺎﻧﮫ أن ﯾﻨﺸﺊ ﻗﺎﻣﻮس ﺑﮫ ﻛﻞ اﻏﻠﺐ اﻟﺒﺎﺳﻮردات واﻟﻤﻔﺎﺗﯿﺢ وﺑﻌﺪھﺎ ﯾﺒﺪأ‬
‫ﻓﻲ اﻟﺒﺤﺚ ﻋﻦ اﻟﺒﺎﺳﻮرد اﻟﺨﺎص ﺑﻚ ﻟﻜﻲ ﯾﻌﺮف اﻟـ ‪ ) KEK‬ھﺬا اﻟﮭﺠﻮم ﯾﻌﺮف ﺑـ ‪dictionary‬‬
‫‪. ( attack‬‬

‫ﻟﻜﻦ اذا اﺳﺘﺨﺪﻣﻨﺎ اﻟﻤﻠﺢ ‪ ،‬ﻓﺎن اﻟﻤﺨﺘﺮق ﻟﻜﻲ ﯾﻌﺮف اﻟـ ‪ KEK‬ﯾﺠﺐ ﻓﻲ اﻟﺒﺪاﯾﺔ أن ﯾﻌﺮف ھﺬا اﻟﻤﻠﺢ‬
‫ﻟﻠﺒﺎﺳﻮرد اﻟﻔﻼﻧﻲ ھﻞ ھﻮ ﺻﺤﯿﺢ أم ﻻ ‪ ،‬اذا ﻛﺎن ﻏﯿﺮ ﺻﺤﯿﺢ ﯾﻘﻮم ﺑﺘﺠﺮﺑﺔ ﻣﻠﺢ أﺧﺮ ﻓﻲ ﻧﻔﺲ‬
‫اﻟﺒﺎﺳﻮرد اﻟﺴﺎﺑﻖ ‪ ،‬اذا ﻛﺎن ﻏﯿﺮ ﺻﺤﯿﺢ ﯾﻘﻮم ﺑﺘﺠﺮﺑﺔ ﻣﻠﺢ آﺧﺮ ﻓﻲ ﻧﻔﺲ اﻟﺒﺎﺳﻮرد ‪ ،‬ﺑﻌﺪھﺎ ﯾﻐﯿﺮ‬
‫اﻟﺒﺎﺳﻮرد وﯾﺠﺮب اﻷﻣﻼح )‪ (J‬ﻣﺮه أﺧﺮى ‪ ،‬وھﻜﺬا ﯾﻜﻮن اﻷﻣﺮ ﻃﻮﯾﻞ ﺟﺪا ﺟﺪا ﺟﺪا‪..‬‬

‫اﻵن وﺑﻌﺪ ﺗﺸﻔﯿﺮ ﻣﻔﺘﺎح اﻟﺠﻠﺴﺔ ﺑﺎﺳﺘﺨﺪام ﻣﻔﺘﺎح ‪ ، KEK‬ھﻞ ﺗﻌﺘﺒﺮ ﻓﻲ أﻣﺎن ﻛﺎﻣﻞ ﻣﻦ ﺟﻤﯿﻊ‬
‫اﻟﮭﺠﻤﺎت ؟‬
‫ﺑﺎﻟﻄﺒﻊ ﻻ ‪ ،‬ﻻن اﻟﻤﺨﺘﺮق ﺑﺈﻣﻜﺎﻧﮫ ﻋﻤﻞ ھﺠﻮم ﻋﻠﻰ اﻟﻤﻔﺘﺎح ‪ ) KEK‬ھﺠﻮم اﻟﻘﻮه اﻟﻌﻨﯿﻔﺔ ‪( Brute‬‬
‫‪Force attack‬وﯾﻘﻮم ﺑﺘﺠﺮﺑﺔ ﻣﻔﺘﺎح ﻣﻔﺘﺎح إﻟﻰ أن ﯾﺼﻞ إﻟﻰ اﻟﻤﻄﻠﻮب ‪.‬‬

‫أو ﺑﺈﻣﻜﺎﻧﮫ ﻋﻤﻞ ھﺠﻮم ﻋﻠﻰ اﻟﺒﺎﺳﻮرد ) ‪ ، ( Brute Force Attack‬وﯾﻘﻮم ﺑﺈدﺧﺎل اﻟﺒﺎﺳﻮرد‬
‫واﻟﻤﻠﺢ ﻓﻲ اﻟﺨﻼط ‪ ،‬ﺑﻌﺪھﺎ ﯾﺄﺧﺬ اﻟﻨﺎﺗﺞ ‪ KEK‬وﯾﻔﻚ ﺗﺸﻔﯿﺮ ﻣﻔﺘﺎح اﻟﺠﻠﺴﺔ وﺑﻌﺪھﺎ ﯾﻔﻚ ﺗﺸﻔﯿﺮ‬
‫اﻟﺒﯿﺎﻧﺎت ‪ ،‬وإذا ﻟﻢ ﯾﺼﻠﺢ اﻟﺒﺎﺳﻮرد ﯾﻘﻮم ﺑﺘﻐﯿﯿﺮه واﺧﺘﯿﺎر واﺣﺪ أﺧﺮ ‪.‬‬

‫ﻗﺪ ﺗﺒﺪو اﻟﻌﻤﻠﯿﺔ ﻃﻮﯾﻠﺔ ‪ ،‬ﻟﻜﻦ ﻓﻲ اﻟﺤﻘﯿﻘﺔ أﺳﺎﻟﯿﺐ ھﺠﻮم ‪ Brute Force‬ﻗﺪ ﺗﺄﺧﺬ أﺳﺎﻟﯿﺐ ﻣﺘﻄﻮرة ‪،‬‬
‫ﻣﺜﻼ ﻋﻤﻞ اﻟﺒﺮﻧﺎﻣﺞ ﺑﺎﻟﺘﻮازي ‪ in parallel‬وھﻨﺎ ﺳﻮف ﯾﺴﺘﻔﯿﺪ ﻣﻦ ﻋﻤﻞ اﻟﻤﻌﺎﻟﺞ ﺑﺸﻜﻞ ﻛﺒﯿﺮ ‪،‬‬
‫أﯾﻀﺎ ﻣﻦ اﻟﻤﻤﻜﻦ أن ﯾﻌﻤﻞ أﻛﺜﺮ ﻣﻦ ﺟﮭﺎز ﻓﻲ ﻋﻤﻠﯿﮫ اﻟﻜﺴﺮ ‪.‬‬

‫‪108‬‬
‫‪PDF created with pdfFactory Pro trial version www.pdffactory.com‬‬
‫أﯾﻀﺎ ﻣﻦ اﻟﻤﻤﻜﻦ أن ﯾﻘﻮم اﻟﻤﺨﺘﺮق ﺑﺎﺳﺘﺨﺪام ھﺠﻮم اﻟﻘﺎﻣﻮس ‪ dictionary Attack‬وھﻨﺎ ﯾﻘﻮم‬
‫ﺑﻌﻤﻞ ﻗﺎﻋﺪة ﺑﯿﺎﻧﺎت ﻷﻏﻠﺐ اﻟﺒﺎﺳﻮردات ﻓﻲ ﺟﻤﯿﻊ اﻟﻠﻐﺎت ‪ ،‬ﺑﻌﺪھﺎ ﯾﻘﻮم ﺑﺘﺠﺮﺑﺔ ھﺬه اﻟﺒﺎﺳﻮردات ‪.‬‬
‫وھﺬا اﻟﮭﺠﻮم ﺑﺎﻟﻄﺒﻊ أﺳﺮع ﻣﻦ ھﺠﻮم اﻟـ ‪ Brute Force‬ﻷﻧﮫ ﯾﻜﻮن ﻣﺤﺪود ﻋﻠﻰ ﻣﺠﻤﻮﻋﮫ ﻣﻦ‬
‫اﻟﺒﺎﺳﻮردات ‪.‬‬

‫ﻟﺘﻔﺎدي أﻧﻮاع اﻟﮭﺠﻮم ﻓﻲ ﻣﺮﺣﻠﮫ اﺧﺘﯿﺎر اﻟﺒﺎﺳﻮرد ﯾﺠﺐ اﺧﺘﯿﺎر ﺑﺎﺳﻮرد ﻗﻮي ﻣﺜﻞ‬
‫‪14G:c*%3 wM*-l6g]_Bnp? d86‬‬

‫اﻟﺒﺎﺳﻮرد اﻟﺴﺎﺑﻖ ﺟﯿﺪ ﺟﺪا ﺑﻞ ﻣﻤﺘﺎز وﯾﺼﻌﺐ ﺗﺨﻤﯿﻨﮫ ‪ ،‬ﻟﻜﻦ ﻣﻦ اﻟﺬي ﯾﺴﺘﻄﯿﻊ أن ﯾﺤﻔﻆ ﻣﺜﻞ ھﺬا‬
‫اﻟﺒﺎﺳﻮرد ؟ ﻻ أﺣﺪ ﺑﺎﻟﻄﺒﻊ ‪ ،‬ﻋﻠﻰ اﻟﻌﻤﻮم اذا ﻛﺎﻧﺖ ﻟﺪﯾﻚ اﻟﻘﺪرة ﻓﻲ ﺣﻔﻆ ﻣﺜﻞ ھﺬا اﻟﺒﺎﺳﻮرد ‪ ،‬ﻓﻠﻦ‬
‫ﺗﻜﻮن ﻟﺪﯾﻚ أي ﻣﺸﻜﻠﮫ ﺑﻌﺪ اﻵن ‪.‬‬

‫و اﻟﺘﻮﺻﯿﺎت واﻟﻤﻘﺎﻻت ﺑﺸﺄن اﺧﺘﯿﺎر ﻛﻠﻤﺎت اﻟﺴﺮ ھﻲ ﻛﺜﯿﺮة ‪ ،‬واﺷﮭﺮ اﻟﺨﻄﻮات ھﻲ أن ﯾﻜﻮن‬
‫ﻣﻜﻮن ﻣﻦ ﻋﺪه أرﻗﺎم وﺣﺮوف ﺑﺸﻜﻞ ﻣﺨﺘﻠﻂ وﻋﻠﻰ اﻗﻞ ﺗﻘﺪﯾﺮ ‪ 10‬ﺣﺮوف ‪ ،‬أﯾﻀﺎ اﺳﺘﺨﺪام ﺑﺎﺳﻮرد‬
‫ﻣﺨﺘﻠﻒ ﻟﻜﻞ ﺣﺴﺎب ‪ ،‬وﻋﺪم اﺳﺘﺨﺪام ﻛﻠﻤﺎت ﻣﻌﺮوﻓﮫ ﻣﺜﻞ اﻷﺳﻤﺎء وأرﻗﺎم اﻟﮭﺎﺗﻒ أو ﻣﺎ ﺷﺎﺑﮫ ‪.‬‬

‫ﺃﺟﻬﺰﻩ ﺣﻔﻆ ﺍﻟﻤﻔﺎﺗﻴﺢ ‪Hardware-Based Key Storage‬‬


‫ﻟﻘﺪ رأﯾﻨﺎ ﻗﺒﻞ ﻗﻠﯿﻞ أن اﺣﺪ ﻃﺮق ﺣﻔﻆ اﻟﻤﻔﺘﺎح ھﻮ اﺳﺘﺨﺪام اﻟـ ‪ ، PBE‬اﺣﺪ اﻟﺤﻠﻮل اﻷﺧﺮى ھﻲ‬
‫اﺳﺘﺨﺪام أﺟﮭﺰه ﺧﺎﺻﺔ ﻟﺤﻔﻆ اﻟﻤﻔﺎﺗﯿﺢ ‪ ،‬ﺑﻌﺾ ھﺬه اﻻﺟﮭﺰه ﺻﻐﯿﺮ ﺟﺪا وﯾﺴﻤﻰ ‪، Token‬‬
‫وﺑﻌﻀﮭﺎ ﻛﺒﯿﺮ وﯾﺴﻤﻰ ‪. crypto accelerators‬‬

‫ال ‪Token‬ﺑﻌﺾ اﻷﺣﯿﺎن ﺗﻜﻮن ﺑﻄﺎﻗﺔ ﺑﻼﺳﺘﯿﻜﯿﺔ ‪ ،‬أو ﺑﻄﺎﻗﺔ ذﻛﯿﮫ )ﺗﺤﺘﻮي ﻋﻠﻰ ﺟﮭﺎز داﺧﻠﮭﺎ( ‪،‬‬
‫أو ﺣﺘﻰ ﺧﺎﺗﻢ ﺻﻐﯿﺮ ‪ ،‬أو ﺟﮭﺎز ﯾﻮﺻﻞ ﺑﻔﺘﺤﮫ ‪ ، USB‬ھﺬه اﻟـ ‪ Token‬ﺗﺤﺘﻮي ﻋﻠﻰ ﻣﻌﺎﻟﺞ ﺻﻐﯿﺮ‬
‫ﺑﺪاﺧﻠﮭﺎ ‪ ،‬وذاﻛﺮه ﺻﻐﯿﺮ اﻟﺤﺠﻢ ﻃﺒﻌﺎ اﻟﻤﻮاﺻﻔﺎت ﺑﯿﻨﮭﺎ ﺗﺨﺘﻠﻒ ﻋﻠﻰ ﺣﺴﺐ اﻟﺸﺮﻛﺔ اﻟﻤﺼﻨﻌﺔ ﻟﮭﺎ ‪،‬‬
‫ﺑﻌﺾ ھﺬه ال ‪ Token‬ﯾﺄﺗﻲ ﺑﺬاﻛﺮه ﻛﺒﯿﺮة ﻣﺜﻞ ﻧﻮع اﺳﻤﮫ ‪. 1970s era PC :‬‬

‫‪109‬‬
‫‪PDF created with pdfFactory Pro trial version www.pdffactory.com‬‬
‫اﻟﻤﯿﺰة اﻻﺳﺎﺳﯿﮫ ﻓﻲ ھﺬه اﻟـ ‪ Token‬ھﻮ أن اﻟﻤﺨﺘﺮق ﻻ ﯾﺴﺘﻄﯿﻊ اﻟﻮﺻﻮل إﻟﯿﮭﺎ ‪ ،‬وﺣﺘﻰ إن‬
‫اﺳﺘﻄﺎع ﺳﺮﻗﮫ اﺣﺪھﺎ ﻓﺈﻧﮭﺎ ﺗﻄﺎﻟﺐ ﺑﺒﺎﺳﻮرد ورﻗﻢ ‪ ، PIN‬وﻓﻲ ﺣﺎل اﺧﻄﺄ اﻟﻤﺨﺘﺮق إدﺧﺎل اﻟﺮﻗﻢ‬
‫ﻋﺪه ﻣﺮات ﺳﻮف ﯾﺒﺪأ ﻧﻈﺎم اﻟﺤﺬف ﺗﻠﻘﺎﺋﻲ ‪ ،‬ﯾﻌﻨﻲ ﯾﺼﻌﺐ ﺟﺪا اﺧﺘﺮاﻗﮭﺎ ‪.‬‬

‫اﺣﺪ اﻻﺳﺘﺨﺪاﻣﺎت اﻷﺧﺮى ﻟﮭﺬه اﻟـ ‪ Token‬ﺑﺎﻻﺿﺎﻓﮫ إﻟﻰ ﺣﻔﻆ اﻟﻤﻔﺎﺗﯿﺢ ‪ ،‬ھﻲ ﺣﻔﻆ اﻟﺒﺎﺳﻮردات ‪،‬‬
‫ﻣﺜﻼ ﻛﺎن ﻟﺪﯾﻚ ﻋﺪه ﺑﺎﺳﻮردات ﻟﻌﺪه ﻣﻮاﻗﻊ ‪ ،‬ﻟﻼﯾﻤﯿﻞ واﻟﺸﺎت واﻟﻤﻨﺘﺪى وﻛﻞ ﺑﺎﺳﻮرد ﻣﺨﺘﻠﻒ ﻋﻦ‬
‫اﻵﺧﺮ ‪ ،‬أﺳﮭﻞ ﻃﺮﯾﻘﮫ ھﻲ ﺣﻔﻆ ھﺬه اﻟﺒﺎﺳﻮردات داﺧﻞ اﻟـ ‪ ، Token‬وﻋﻨﺪﻣﺎ ﺗﺮﯾﺪ اﻟﺪﺧﻮل ﻣﺜﻼ‬
‫إﻟﻰ ﺑﺮﯾﺪك ﻗﻢ ﺑﺘﺮﻛﯿﺐ ﺟﮭﺎز اﻟـ ‪ Token‬ﺑﻌﺪھﺎ ﺗﺄﺧﺬ اﻟﺒﺎﺳﻮرد اﻟﻤﻄﻠﻮب‪.‬‬

‫‪Crypto Accelerators‬‬

‫اﻻﺟﮭﺰه اﻟﻜﺒﯿﺮة اﻟﺘﻲ ﺗﺴﺘﺨﺪم ﻓﻲ ﻋﻤﻠﯿﮫ ﺣﻔﻆ اﻟﻤﻔﺎﺗﯿﺢ ﺗﺴﻤﻰ ﺑـ ‪ ، crypto accelerators‬ھﺬه‬
‫اﻻﺟﮭﺰه ﻟﮭﺎ ﻣﯿﺰه ﺟﯿﺪه ﺟﺪا ‪ ،‬وھﻲ ﺗﺤﺘﻮي ﻋﻠﻰ ﻣﻌﺎﻟﺞ ذﻛﻲ ﺧﺎص ﺑﮭﺎ ‪ ،‬ﻓﻲ ﺣﺎل ﺗﻢ ﺳﺮﻗﮫ اﺣﺪ‬
‫ھﺬه اﻻﺟﮭﺰه وﻗﺎم اﻟﻤﺨﺘﺮق ﺑﻤﺤﺎوﻟﮫ ﻓﺘﺢ اﻟﺠﮭﺎز أو اﺳﺘﺨﺪام أي ﻃﺮﯾﻘﮫ ﻣﻦ ﻃﺮق اﺳﺘﻌﺎده اﻟﺒﯿﺎﻧﺎت‬
‫‪ ،‬ﻓﯿﻘﻮم اﻟﻤﻌﺎﻟﺞ ﺑﺤﺬف ﺟﻤﯿﻊ اﻟﺒﯿﺎﻧﺎت واﻟﻤﻔﺎﺗﯿﺢ‪.‬‬

‫‪110‬‬
‫‪PDF created with pdfFactory Pro trial version www.pdffactory.com‬‬
‫أﯾﻀﺎ ھﺬه اﻻﺟﮭﺰه ﺗﺄﺗﻲ ﺑﻤﻮﻟﺪات ﻟﻸﻋﺪاد اﻟﻌﺸﻮاﺋﯿﺔ اﻟﺼﺤﯿﺤﺔ ‪ RNG‬وﺑﻌﻀﮭﺎ ﯾﺄﺗﻲ ﻣﻮﻟﺪات‬
‫ﻷﻋﺪاد ﻋﺸﻮاﺋﯿﺔ ﻣﺰﯾﻔﮫ ‪ ، PRNG‬ﻟﻜﻦ ﺗﻜﻮن ﺗﮭﯿﺌﮫ اﻟـ ‪ Seed‬ﻣﻦ اﻟﻤﺼﻨﻊ )ﻟﻜﻨﮭﺎ ﻓﻲ اﻟﻨﮭﺎﯾﺔ‬
‫‪. ( Pseudo‬‬

‫‪Biometrics‬‬

‫اﻻﺟﮭﺰه اﻟﺴﺎﺑﻘﺔ اﻟﺘﻲ ذﻛﺮﻧﺎھﺎ ﺳﻮاء ‪ Token‬أو ‪ crypto accelerators‬ﺗﻌﺘﺒﺮ ﺧﯿﺎر ﻣﻤﺘﺎز ﻓﻲ‬
‫ﻋﻤﻠﯿﮫ ﺣﻔﻆ اﻟﻤﻔﺎﺗﯿﺢ و اﻟﺒﺎﺳﻮردات ‪ ،‬ﻟﻜﻦ ﻓﻲ اﻟﺤﻘﯿﻘﺔ ھﺬه اﻻﺟﮭﺰه ﻻ ﺗﻜﻔﻲ ﻟﻀﻤﺎن اﻷﻣﻦ اﻟﺘﺎم ‪،‬‬
‫وﺑﺎﻟﺬات ﻓﻲ اﻟﺠﮭﺎت اﻟﺘﻲ ﯾﺮاد اﻟﺤﻔﺎظ ﻋﻠﻰ اﻟﻤﻌﻠﻮﻣﺎت ﺑﺼﻮره ﺗﺎﻣﺔ ‪ ،‬ﻻن ھﺬه اﻻﺟﮭﺰه ﻗﺪ ﺗﺴﺮق‬
‫وﯾﺴﺮق اﻟﺒﺎﺳﻮرد وﺑﻌﺪھﺎ ﯾﺼﻞ اﻟﻤﺨﺘﺮق إﻟﻰ اﻟﺒﯿﺎﻧﺎت ‪.‬‬

‫ﻟﺬﻟﻚ ﺗﻢ اﺧﺘﺮاع اﻟـ ‪ Biometrics‬وھﻲ ﻋﺪه ﻃﺮق ﺗﺴﺘﺨﺪم ﻟﻠﺘﺄﻛﺪ ﻣﻦ اﻟﺸﺨﺺ اﻟﺬي ﯾﺤﺎول‬
‫اﻟﻮﺻﻮل إﻟﻰ اﻟﺒﯿﺎﻧﺎت ھﻮ اﻟﺸﺨﺺ اﻟﻤﺴﻤﻮح ﻟﮫ ‪ ،‬ﻣﺜﻼ ﺟﮭﺎز اﻟﺘﺄﻛﺪ ﻋﻦ ﻃﺮﯾﻖ ﺑﺼﻤﮫ اﻹﺻﺒﻊ ‪،‬‬
‫وﻃﺒﻌﺎ ﻣﻦ اﻟﻤﺴﺘﺤﯿﻞ أن ﺗﻜﻮن ھﻨﺎك ﺑﺼﻤﺘﯿﻦ ﻣﺘﺸﺎﺑﮭﺘﯿﻦ )ﺣﺘﻰ ﻓﻲ اﻟﺘﻮاﺋﻢ( ‪ ،‬ﺑﻌﺾ ھﺬه اﻻﺟﮭﺰه‬
‫ﺗﺴﺘﻄﯿﻊ ﻣﻌﺮﻓﮫ اﻹﺻﺒﻊ ھﻞ ھﻮ ﻣﻦ إﻧﺴﺎن ﺣﻲ أم ﻣﻦ إﻧﺴﺎن ﻣﯿﺖ أو إﺻﺒﻊ ﻣﻘﻄﻮع!‬

‫أﯾﻀﺎ ھﻨﺎك أﺟﮭﺰه ﻟﻤﺴﺢ ﺷﺒﻜﯿﮫ اﻟﻌﯿﻦ ‪ ،‬وأﺟﮭﺰه ﻟﻠﺘﻌﺮف ﻋﻠﻰ ﻧﺒﺮه اﻟﺼﻮت ‪ ،‬وأﺟﮭﺰه ﻟﻠﺘﻌﺮف‬
‫ﻋﻦ ﻃﺮﯾﻖ اﻟـ ‪ DNA‬وﻏﯿﺮھﺎ ‪ ،‬ﻋﻠﻰ اﻟﻌﻤﻮم ھﺬه اﻻﺟﮭﺰه ﻏﯿﺮ ﻣﻨﺘﺸﺮة ﺑﺸﻜﻞ ﻛﺒﯿﺮ )ﺣﺎﻟﯿﺎ( ﺑﺴﺒﺐ‬

‫‪111‬‬
‫‪PDF created with pdfFactory Pro trial version www.pdffactory.com‬‬
‫ﺗﻜﻠﻔﺘﮭﺎ اﻟﻌﺎﻟﯿﺔ ‪ ،‬وأﯾﻀﺎ ﺑﺴﺒﺐ أﻧﮭﺎ ﻏﯿﺮ ﻣﻮﺛﻮﻗﮫ ﺑﺸﻜﻞ أﻛﯿﺪ ‪ ،‬ﯾﻌﻨﻲ ﻣﺜﻼ اذا أﺻﯿﺐ اﻹﺻﺒﻊ ﺑﺠﺮح‬
‫ھﻞ ﯾﺴﺘﻄﯿﻊ اﻟﺠﮭﺎز اﻟﺘﻌﺮف ﻋﻠﯿﮫ ‪ ،‬ﻓﻲ ﺣﺎل اﺳﺘﺨﺪام ﻧﺒﺮه اﻟﺼﻮت وأﺻﯿﺐ اﻟﺸﺨﺺ ﺑﻨﻮﺑﺔ ﺑﺮد أو‬
‫اﻟﺘﮭﺎب ﻓﻲ اﻟﺤﻠﻖ ‪ ،‬ھﻞ ﯾﺴﺘﻄﯿﻊ اﻟﺠﮭﺎز اﻟﺘﻌﺮف ﻋﻠﻰ اﻟﺼﻮت!‬

‫ﺑﺎﻟﺘﺄﻛﯿﺪ ﻣﻊ ﺗﻄﻮر اﻟﻌﻠﻮم وﺧﺎﺻﺔ اﻟﺬﻛﺎء اﻻﺻﻄﻨﺎﻋﻲ ﻓﺎﻧﮫ ﻗﺪ ﯾﺄﺗﻲ ﯾﻮﻣﺎ ﯾﺘﻢ زرع ﺟﮭﺎز ﻛﻤﺒﯿﻮﺗﺮ‬
‫ﺷﺨﺼﻲ داﺧﻞ دﻣﺎغ أي إﻧﺴﺎن وﯾﻜﻮن اﻟﺘﻌﺮف ﻋﻦ ﻃﺮﯾﻖ ﻗﺮاﺋﮫ ھﺬا اﻟﺠﮭﺎز )ﻗﺪ ﻗﺮأت ﻣﻦ ﻓﺘﺮه‬
‫ﻋﻦ أﻣﺮ ﻣﺸﺎﺑﮫ ﻣﻦ ﺷﺮﻛﮫ ﻣﺎﯾﻜﺮوﺳﻮﻓﺖ( ‪.‬‬

‫‪The Key Distribution Problem and Public-Key Cryptography‬‬

‫ﺗﻌﺮﻓﻨﺎ ﻗﺒﻞ ﻗﻠﯿﻞ ﻋﻠﻰ ﺑﻌﻀﺎ ﻣﻦ أﺳﺎﻟﯿﺐ ﺣﻤﺎﯾﺔ اﻟﻤﻔﺘﺎح )ﻣﻔﺘﺎح اﻟﺠﻠﺴﺔ( ‪ ،‬وﯾﻜﻮن إﻣﺎ ﻋﻦ ﻃﺮﯾﻖ‬
‫ﺗﺸﻔﯿﺮه ﻣﺮه أﺧﺮى )‪ ، (PBE‬أو ﻋﻦ ﻃﺮﯾﻖ ﺗﺨﺰﯾﻦ اﻟﻤﻔﺘﺎح ﻓﻲ اﺣﺪ اﻷﺟﮭﺰة اﻟﺨﺎﺻﺔ ﻟﺬﻟﻚ‬
‫‪ ،Token‬إﻟﻰ ھﻨﺎ اﻷﻣﺮ ﺗﺤﺖ اﻟﺴﯿﻄﺮة ‪ ،‬ﻟﻜﻦ ﻣﺎذا اذا أردﻧﺎ أن ﻧﺮﺳﻞ اﻟﻤﻔﺘﺎح إﻟﻰ ﺷﺨﺺ آﺧﺮ‬
‫ﺣﺘﻰ ﯾﻘﻮم ﺑﻔﻚ ﺗﺸﻔﯿﺮ اﻟﺮﺳﺎﻟﺔ اﻟﺘﻲ ﺳﻮف أرﺳﻠﮭﺎ ﻟﮫ ) ﺗﺬﻛﺮ أن اﻟﺘﺸﻔﯿﺮ ﺑﺎﻟﻤﻔﺘﺎح اﻟﻤﺘﻨﺎﻇﺮ ‪ ،‬اﻟﻤﻔﺘﺎح‬
‫ﻧﻔﺴﮫ ﯾﻘﻮم ﺑﺎﻟﺘﺸﻔﯿﺮ وﻓﻚ اﻟﺘﺸﻔﯿﺮ(‪.‬‬

‫ﺑﻌﺒﺎرة ﻣﺒﺴﻄﮫ ‪ ،‬ﻓﻲ ﺣﺎل ﻗﻤﺖ ﺑﺘﺸﻔﯿﺮ رﺳﺎﻟﺔ ﻣﺎ ﺑﮭﺬا اﻟﻤﻔﺘﺎح اﻟﻤﺘﻨﺎﻇﺮ ‪ ،‬ﺑﻌﺪھﺎ أرﺳﻠﺖ اﻟﺮﺳﺎﻟﺔ إﻟﻰ‬
‫اﻟﺸﺨﺺ اﻟﺬي أرﯾﺪ ‪ ،‬ﻓﻲ ﺣﺎل وﺻﻠﺖ اﻟﺮﺳﺎﻟﺔ ﻟﻠﺸﺨﺺ ھﺬا ﺳﻮف ﺗﻜﻮن ﻏﯿﺮ ﻣﻔﮭﻮﻣﮫ وذﻟﻚ ﻻن‬
‫اﻟﻤﻔﺘﺎح اﻟﺬي ﯾﻔﻚ اﻟﺘﺸﻔﯿﺮ ﻣﻌﻲ واﻟﻰ اﻵن ﻟﻢ أرﺳﻠﮫ ﻟﻠﺸﺨﺺ اﻟﻤﺮاد ‪ ،‬أﯾﻀﺎ ﻓﻲ ﺣﺎل ﻛﺎن ھﻨﺎك‬
‫ﻣﺨﺘﺮق ووﺻﻠﺖ اﻟﺮﺳﺎﻟﺔ إﻟﯿﮫ ﺑﻄﺮﯾﻘﮫ ﻣﺎ )ﺳﻮاء ﻗﺎم ﺑﺎﺧﺘﺮاق ﺟﮭﺎز اﻟﺸﺨﺺ اﻟﺬي أرﺳﻠﺖ ﻟﮫ‬
‫اﻟﺮﺳﺎﻟﺔ ‪ ،‬أو ﻗﺎم ﺑﺎﻟﺘﻘﺎط اﻟﺮﺳﺎﻟﺔ أﺛﻨﺎء إرﺳﺎﻟﮭﺎ ( اﻟﻤﮭﻢ ﺳﻮف ﺗﻜﻮن اﻟﺮﺳﺎﻟﺔ أﯾﻀﺎ ﻏﯿﺮ ﻣﻔﮭﻮﻣﮫ ﻷﻧﮫ‬
‫ﻻ ﯾﻤﻠﻚ اﻟﻤﻔﺘﺎح‪.‬‬

‫اذا اﻟﺴﺆال ھﻨﺎ ‪ ،‬ﻛﯿﻒ ﯾﻤﻜﻦ أن أرﺳﻞ اﻟﻤﻔﺘﺎح ﺑﻄﺮﯾﻘﮫ آﻣﻨﮫ إﻟﻰ اﻟﺸﺨﺺ اﻟﺬي أرﯾﺪ ‪ ،‬وﻓﻲ ﻧﻔﺲ‬
‫اﻟﻮﻗﺖ ﻻ ﯾﺴﺘﻄﯿﻊ اﻟﻤﺨﺘﺮق اﻟﺤﺼﻮل ﻋﻠﯿﮫ ؟؟‬
‫ھﺬه اﻟﻤﺸﻜﻠﺔ ﺗﺴﻤﻰ ﺑﻤﺸﻜﻠﮫ إرﺳﺎل اﻟﻤﻔﺘﺎح ‪ ، Key Distribution Problem‬واﻟﺘﻲ ﺑﺴﺒﺒﮭﺎ‬
‫ﺗﻢ اﺧﺘﺮاع اﻟﻄﺮﯾﻘﮫ اﻷﺧﺮى ﻓﻲ اﻟﺘﺸﻔﯿﺮ وھﻲ اﻟﺘﺸﻔﯿﺮ ﺑﺎﻟﻤﻔﺘﺎح ﻏﯿﺮ اﻟﻤﺘﻨﺎﻇﺮ ‪Asymmetric‬‬
‫‪. key Cryptography‬‬

‫ﻗﺒﻞ اﻟﺨﻮض ﻓﻲ اﻟﺘﺸﻔﯿﺮ ﺑﺎﻟﻤﻔﺘﺎح ﻏﯿﺮ اﻟﻤﺘﻨﺎﻇﺮ وﺟﺪت ﺑﻌﻀﺎ ﻣﻦ اﻟﺤﻠﻮل اﻟﺘﻲ ﻗﺪ ﺗﻜﻮن ﻣﻨﺎﺳﺒﺔ‬
‫ﻟﺤﺎﻟﺘﻚ )أي ﻗﺪ ﺗﺴﺘﻄﯿﻊ اﻻﻛﺘﻔﺎء ﺑﮭﺎ( ‪ ،‬ھﺬه اﻟﺤﻠﻮل ھﻲ ‪:‬‬
‫‪-‬إرﺳﺎل اﻟﻤﻔﺘﺎح ﻗﺒﻞ ﻋﻤﻠﯿﮫ اﻹرﺳﺎل‬
‫‪-‬اﺳﺘﺨﺪام ﻃﺮف ﺛﺎﻟﺚ ﻣﻮﺛﻮق ‪ ، Trusted Third Party‬اﺧﺘﺼﺎرا‪TTP‬‬

‫ﻧﺒﺪأ ﺑﺎﻟﺤﻞ اﻷول ‪ :‬إرﺳﺎل اﻟﻤﻔﺘﺎح ﻗﺒﻞ ﻋﻤﻠﯿﮫ اﻹرﺳﺎل ‪:‬‬


‫وھﻨﺎ ﻓﻲ ھﺬه اﻟﺤﺎﻟﺔ ﯾﺠﺐ أن أﻗﻮم ﺑﺈرﺳﺎل اﻟﻤﻔﺘﺎح إﻟﻰ اﻟﺸﺨﺺ اﻟﻤﺮاد ﻗﺒﻞ أن اﺑﺪأ ﻓﻲ إرﺳﺎل‬
‫اﻟﺮﺳﺎﻟﺔ ‪ ،‬وﻟﻜﻦ ﺑﺎﻟﻄﺒﻊ ﯾﺠﺐ أن أﺗﺄﻛﺪ أن اﻻﺗﺼﺎل اﻣﻦ ﺣﺘﻰ أرﺳﻞ اﻟﻤﻔﺘﺎح وأﻧﺎ ﻣﻄﻤﺌﻦ اﻧﮫ ﻻ‬
‫ﯾﻮﺟﺪ اﺣﺪ ﻏﯿﺮ اﻟﺸﺨﺺ اﻟﻤﺮاد إرﺳﺎل اﻟﻤﻔﺘﺎح إﻟﯿﮫ ‪.‬‬
‫ﺣﺴﻨﺎ أأﻣﻦ ﻃﺮﯾﻘﮫ ﻹرﺳﺎل اﻟﻤﻔﺘﺎح ‪ ،‬ھﻲ اﻟﻘﯿﺎم ﺑﺈﻋﻄﺎء اﻟﻤﻔﺘﺎح ﻟﻠﺸﺨﺺ وﺟﮭﺎ ﺑﻮﺟﮫ ‪ ،‬أي أن‬
‫اذھﺐ إﻟﻰ ﻣﻜﺘﺒﮫ أو ﺑﯿﺘﮫ ‪ ،‬ﺑﻌﺪھﺎ أﻗﻮم ﺑﺘﻮﻟﯿﺪ اﻟﻤﻔﺘﺎح واﺣﻔﻆ ﻧﺴﺨﮫ ﻓﻲ ﺟﮭﺎزي ‪ ،‬وﻧﺴﺨﮫ ﻓﻲ ﺟﮭﺎز‬

‫‪112‬‬
‫‪PDF created with pdfFactory Pro trial version www.pdffactory.com‬‬
‫اﻟﺸﺨﺺ اﻟﻤﺮاد ‪ .‬ھﻜﺬا أﻛﻮن ﻣﺘﺄﻛﺪ أن اﻟﻤﺨﺘﺮق ﻻ ﯾﺴﺘﻄﯿﻊ ﻣﻌﺮﻓﮫ اﻟﻤﻔﺘﺎح ﻷﻧﮫ ﺣﺎﻟﯿﺎ ﻻ ﯾﻮﺟﺪ )إﻻ‬
‫اذا ﻛﺎن واﺿﻊ ﺑﻌﻀﺎ ﻣﻦ ﺑﺮاﻣﺞ اﻟﺘﺮوﺟﺎن ‪ key logger‬وﺑﮭﺬا ﻗﺪ ﯾﻌﺮف اﻟﻤﻔﺘﺎح ‪ ،‬ﻟﻜﻦ ﻧﺴﺘﺒﻌﺪ‬
‫ھﺬا اﻷﻣﺮ ﺑﻔﺮض اﻧﮫ أﺟﮭﺰﺗﻨﺎ ﻣﺤﻤﯿﺔ ﻣﻦ اﻟﺘﺮوﺟﻨﺎت( ‪.‬‬

‫اﻵن ﻋﻨﺪﻣﺎ أرﯾﺪ أن أرﺳﻞ رﺳﺎﻟﺔ ﻣﺎ ﻟﺼﺪﯾﻘﻲ ‪ ،‬أﻗﻮم ﺑﺘﺸﻔﯿﺮ اﻟﺮﺳﺎﻟﺔ ﺑﺎﻟﻤﻔﺘﺎح اﻟﻤﺘﻨﺎﻇﺮ ‪ ،‬وأرﺳﻠﮭﺎ‬
‫ﻟﮫ وﺳﻮف ﯾﻘﻮم ﺑﻔﻚ ﺗﺸﻔﯿﺮھﺎ ﺑﺎﻟﻤﻔﺘﺎح اﻟﻤﺘﻨﺎﻇﺮ اﻟﺬي أﻋﻄﯿﺘﮫ إﯾﺎه أﺛﻨﺎء اﻟﻠﻘﺎء‪.‬‬

‫ﺣﺴﻨﺎ ‪ ،‬ﻣﺎذا ﻟﻮ ﻛﺎن اﻟﺸﺨﺺ ﻓﻲ ﺑﻠﺪ ﺑﻌﯿﺪ أو ﻋﻠﻰ اﻗﻞ ﺗﻘﺪﯾﺮ ﻻ أﺳﺘﻄﯿﻊ اﻟﻠﻘﺎء ﺑﮫ ؟‬
‫ﺑﺎﻟﻄﺒﻊ ﻟﻦ أرﺳﻞ اﻟﻤﻔﺘﺎح ﻋﻦ ﻃﺮﯾﻖ اﻻﻧﺘﺮﻧﺖ ﻷﻧﮭﺎ ﺷﺒﻜﮫ ﻏﯿﺮ ﻣﺤﻤﯿﺔ واﺣﺘﻤﺎل ﺗﻮاﺟﺪ اﻟﻤﺨﺘﺮق‬
‫ﻻﻟﺘﻘﺎط اﻟﻤﻔﺘﺎح ﻛﺒﯿﺮ ﺟﺪا ‪ ،‬اذا ﻣﺎ اﻟﺤﻞ ﻓﻲ ھﺬه اﻟﺤﺎﻟﺔ ؟‬

‫ھﻨﺎ أﻗﻮم ﺑﺘﺸﻔﯿﺮ اﻟﻤﻔﺘﺎح اﻟﻤﺘﻨﺎﻇﺮ ﻋﻦ ﻃﺮﯾﻖ اﻟـ ‪) KEK‬ﻃﺒﻌﺎ ﻻزم ادﺧﻞ ﺑﺎﺳﻮرد ﻣﻌﯿﻦ( ‪ ،‬ﺑﻌﺪھﺎ‬
‫أﻗﻮم ﺑﺈرﺳﺎل اﻟﻤﻔﺘﺎح اﻟﻨﺎﺗﺞ إﻟﻰ ﺻﺪﯾﻘﻲ ﻋﻦ ﻃﺮﯾﻖ اﻻﻧﺘﺮﻧﺖ ‪ ،‬ﻓﻲ ﺣﺎل ﺣﺼﻞ اﻟﻤﺨﺘﺮق ﻋﻠﻰ‬
‫اﻟﻤﻔﺘﺎح اﻟﻤﺸﻔﺮ ﻓﺈﻧﮫ ﻻ ﯾﺴﺘﻄﯿﻊ اﻟﺤﺼﻮل ﻋﻠﻰ ﻣﻔﺘﺎح اﻟﺠﻠﺴﺔ ﻷﻧﮫ ﺑﻜﻞ ﺑﺴﺎﻃﮫ ﯾﻮﺟﺪ ﺑﺎﺳﻮرد وھﻮ‬
‫ﻻ ﯾﻤﻠﻜﮫ ‪ ،‬أﯾﻀﺎ ﺻﺪﯾﻘﻲ ﻧﻔﺲ اﻟﺤﺎﻟﺔ ﯾﺠﺐ أن ﯾﺤﺼﻞ ﻋﻠﻰ اﻟﺒﺎﺳﻮرد ﺣﺘﻰ ﯾﻔﻚ ﺗﺸﻔﯿﺮ اﻟﻤﻔﺘﺎح‬
‫وﺑ ﺎﻟﺘﺎﻟﻲ ﯾﻔﻚ ﺗﺸﻔﯿﺮ اﻟﺮﺳﺎﻟﺔ ‪ ،‬ﻛﯿﻒ ﯾﻤﻜﻦ أن أرﺳﻞ اﻟﺒﺎﺳﻮرد ؟؟‬

‫ھﻨﺎ وﺑﻜﻞ ﺑﺴﺎﻃﮫ ﯾﻤﻜﻨﻚ إرﺳﺎﻟﮫ ﻋﻦ ﻃﺮﯾﻖ ﻣﺜﻼ اﻟﮭﺎﺗﻒ ‪ ،‬وھﻜﺬا ﻟﻦ ﯾﺤﺼﻞ ﻋﻠﯿﮫ اﻟﻤﺨﺘﺮق ‪ .‬اذا‬
‫ﻛﻨﺖ ﺗﻌﺘﻘﺪ اﻧﻚ ﻣﺮاﻗﺐ ﺑﻜﻞ اﻟﻮﺳﺎﺋﻞ اﻟﻤﻤﻜﻨﺔ )اﻟﮭﺎﺗﻒ ‪ ،‬اﻻﻧﺘﺮﻧﺖ ‪ ،‬اﻟﻤﻘﺎﺑﻠﺔ اﻟﺸﺨﺼﯿﺔ( ﻓﺒﺎﻟﺘﺄﻛﯿﺪ‬
‫ھﺬه اﻟﻄﺮﯾﻘﮫ ﻟﻦ ﺗﺼﻠﺢ ﻟﻚ وﯾﺠﺐ أن ﺗﺤﻞ اﻟﻤﺸﻜﻠﺔ ﺑﻄﺮﯾﻘﮫ أﺧﺮى ‪ ،‬وﻟﻜﻦ ﻓﻲ ﺣﺎل ﻛﺎن اﻟﮭﺎﺗﻒ‬
‫ﻏﯿﺮ ﻣﺮاﻗﺐ ‪ ،‬ﻓﮭﻲ ﺗﻌﺘﺒﺮ ﻛﺎﻓﯿﮫ وﻣﻨﺎﺳﺒﺔ !‬

‫ﻓﻲ ﺣﺎل ﻛﺎن إرﺳﺎل اﻟﻤﻔﺘﺎح ﻗﺒﻞ اﻹرﺳﺎل ﻣﻨﺎﺳﺐ ﻟﻚ ‪ ،‬ﻣﺎذا اذا ﻛﻨﺖ ﺗﺮﯾﺪ إرﺳﺎل اﻟﻤﻔﺘﺎح إﻟﻰ ﻋﺪه‬
‫أﺷﺨﺎص ﺑﺪﻻ ﻣﻦ ﺷﺨﺺ واﺣﺪ ؟‬

‫اﻟﻌﻤﻠﯿﺔ ﺳﻮف ﺗﺘﺸﻌﺐ ﻛﺜﯿﺮا ﻷﻧﻨﺎ ﻓﻲ ھﺬه اﻟﺤﺎﻟﺔ ﺳﻨﺤﺘﺎج إﻟﻰ اﻟﺬھﺎب إﻟﻰ ﻣﻜﺘﺐ ﻛﻞ ﻋﻤﯿﻞ وﻧﻘﻮم‬
‫ﺑﺘﻮﻟﯿﺪ اﻟﻤﻔﺘﺎح ‪ ،‬ﻛﻞ ﺷﺨﺺ ﯾﺘﻮﻗﻊ رﺳﺎﻟﺔ ﻣﻦ ﺷﺨﺺ ﻣﺎ ﻓﻲ اﻟﺸﺮﻛﺔ ﯾﺤﺘﺎج إﻟﻰ أن ﯾﺬھﺐ إﻟﻰ‬
‫وﯾﻘﻮﻣﻮا ﺑﺘﻮﻟﯿﺪ ﻣﻔﺘﺎح ‪ ،‬وھﻮ ﺣﻞ ﻏﯿﺮ ﻋﻤﻠﻲ ﺑﺘﺎﺗﺎ ‪ ،‬ﻟﻜﻦ ﯾﻤﻜﻦ أن ﺗﻘﻮم اﻟﺸﺮﻛﺔ ﺑﻌﻤﻞ اﺟﺘﻤﺎع‬
‫اﻟﻐﺮض ﻣﻨﮫ ﺗﺒﺎدل اﻟﻤﻔﺎﺗﯿﺢ ﺑﯿﻦ اﻷﺷﺨﺎص ‪ ،‬وھﻮ ﺣﻞ ﺟﯿﺪ ‪ ،‬ﻟﻜﻦ ﺗﺒﻘﻰ ھﻨﺎك ﻣﺸﻜﻠﮫ ﻗﺪوم ﻋﻤﯿﻞ‬
‫ﺟﺪﯾﺪ ‪ ،‬ﻣﺎ اﻟﺬي ﺳﻮف ﯾﺤﺼﻞ ھﻞ ﯾﻘﻮم ﺟﻤﯿﻊ اﻟﻌﻤﻼء ﺑﺰﯾﺎرة اﻟﻌﻤﯿﻞ اﻟﺠﺪﯾﺪ وﯾﻘﻮم ﺑﺘﺒﺎدل اﻟﻤﻔﺎﺗﯿﺢ‬
‫‪ ،‬وھﻲ ﻣﺸﻜﻠﮫ أﯾﻀﺎ ‪.‬‬

‫اﺿﺎﻓﮫ ﻓﻲ ﺣﺎل زﯾﺎدة ﻋﺪد اﻷﺷﺨﺎص ﻓﻲ ﻋﻤﻠﯿﮫ ﺗﺒﺎدل اﻟﻤﻔﺎﺗﯿﺢ ﺳﻮف ﯾﻜﺒﺮ ﻋﺪد اﻟﺰﯾﺎرات ﺑﺸﻜﻞ‬
‫ﻛﺒﯿﺮ ‪ ،‬ﻓﻲ ﺣﺎل ﻧﺤﻦ اﺛﻨﯿﻦ ﺳﻮف ﯾﻜﻮن ھﻨﺎك ﻟﻘﺎء واﺣﺪ )أو اﺗﺼﺎل واﺣﺪ( ‪ ،‬ﻓﻲ ﺣﺎل ﻛﻨﺎ ﺛﻼﺛﺔ‬
‫ﺳﻮف ﻧﺤﺘﺎج إﻟﻰ ﻟﻘﺎءﯾﻦ )اذھﺐ أﻧﺎ إﻟﻰ اﻟﺸﺨﺺ اﻷول وﻧﻮﻟﺪ ﻣﻔﺘﺎح ‪ ،‬ﺑﻌﺪھﺎ اذھﺐ إﻟﻰ اﻟﺸﺨﺺ‬
‫اﻟﺜﺎﻧﻲ وأﻋﻄﯿﮫ اﻟﻤﻔﺘﺎح( ‪ ،‬ﻓﻲ ﺣﺎل ﻛﻨﺎ أرﺑﻌﮫ ﻓﺴﻮف ﻧﺤﺘﺎج إﻟﻰ ﺳﺘﺔ ﻟﻘﺎﺋﺎت ‪ ،‬ﺑﺸﻜﻞ ﻋﺎم‪:‬‬
‫ﻣﺠﻤﻮﻋﮫ ﻣﻦ اﻷﺷﺨﺎص ﻣﻜﻮن ﻣﻦ ‪ n‬ﻋﺪد ‪ ،‬اذا ﯾﺤﺘﺎﺟﻮن إﻟﻰ ) ‪ 1/2 * (n^2 - n‬ﻟﻘﺎء‪..‬‬

‫ﻣﺜﻼ ‪ 10‬أﺷﺨﺎص ‪ ، 90/2 = 45، 90 = 10- 100 ،‬اذا ﻧﺤﺘﺎج إﻟﻰ ‪ 45‬ﻟﻘﺎء ‪ ،‬اذا ﻛﺎن ھﻨﺎك ‪20‬‬
‫ﺷﺨﺺ ﺳﻮف ﻧﺤﺘﺎج إﻟﻰ ‪ 190‬ﻋﻤﻠﯿﮫ ﺗﺒﺪﯾﻞ ﻣﻔﺎﺗﯿﺢ ‪ ،‬ﻓﻲ ﺣﺎل ﻛﺎﻧﺖ اﻟﺸﺮﻛﺔ ﺑﮭﺎ ‪ 1000‬ﻋﻤﯿﻞ ‪،‬‬
‫ﺳﻮف ﻧﺤﺘﺎج إﻟﻰ ‪ 499500‬ﻋﻤﻠﯿﮫ ﺗﺒﺪﯾﻞ !!‬

‫‪113‬‬
‫‪PDF created with pdfFactory Pro trial version www.pdffactory.com‬‬
‫ﯾﻤﻜﻦ ﺣﻞ ھﺬه اﻟﻤﺸﻜﻠﺔ ‪ ،‬ﻋﻦ ﻃﺮﯾﻖ ﺟﻌﻞ ﺟﻤﯿﻊ اﻷﺷﺨﺎص ﯾﺴﺘﺨﺪﻣﻮا ﻣﻔﺘﺎح واﺣﺪ ‪ ،‬ﻟﻜﻦ ﻓﻲ ﺣﺎل‬
‫ﻣﺜﻼ ﺧﺮوج أﺣﺪ اﻟﻌﻤﻼء ﻣﻨﮭﺎ ﻓﺴﻮف ﺗﻜﻮن ھﻨﺎك ﻣﺸﻜﻠﮫ ﻷﻧﮫ ﯾﻌﺮف اﻟﻤﻔﺘﺎح ‪ ،‬ﻟﺬﻟﻚ ﻋﻠﻰ اﻟﺸﺮﻛﺔ‬
‫أن ﺗﻘﻮم ﺑﺘﻐﯿﺮ اﻟﻤﻔﺘﺎح ‪ ،‬وإﻋﻄﺎء ﺟﻤﯿﻊ اﻟﻌﻤﻼء اﻟﻤﻔﺘﺎح اﻟﺠﺪﯾﺪ )ﻣﻦ ﺧﻼل ﻣﺜﻼ اﻻﺟﺘﻤﺎع( وھﻮ ﺣﻞ‬
‫"ﯾﺒﺪو" ﺟﯿﺪ ‪.‬‬

‫وﺗﺒﺪأ اﻟﻤﺸﺎﻛﻞ ﻓﻲ ﺣﺎل ﺗﻤﻜﻦ اﻟﻤﺨﺘﺮق ﻣﻦ ﻛﺴﺮ رﺳﺎﻟﺔ واﻟﺤﺼﻮل ﻋﻠﻰ اﻟﻤﻔﺘﺎح ‪ ،‬ﺳﻮف ﯾﻜﻮن‬
‫ﺑﺈﻣﻜﺎﻧﮫ ﻛﺴﺮ ﺟﻤﯿﻊ اﻟﺮﺳﺎﺋﻞ )ﻓﻲ ﺣﺎل ﻛﺎن ﻃﻮل اﻟﻤﻔﺘﺎح ‪ 128‬ﺑﺖ واﻟﺨﻮارزﻣﯿﺔ ﺟﯿﺪه ‪ ،‬ﻓﺎﻧﮫ ﻟﻦ‬
‫ﯾﻤﻜﻦ ﻛﺴﺮ اﻟﻤﻔﺘﺎح ﺑﺴﮭﻮﻟﮫ( ﻟﻜﻦ اذا اﻓﺘﺮﺿﻨﺎ اﻧﮫ ﻗﺎم ﺑﺴﺮﻗﺔ اﻟﻤﻔﺘﺎح )ﻣﺜﻼ أﺧﺬه ﻣﻦ ﻋﻤﯿﻞ ﻏﺸﺎش ‪،‬‬
‫أو اﺳﺘﺨﺪم أﺳﻠﻮب اﻟﺘﮭﺪﯾﺪ ( اﻟﻤﮭﻢ ﺣﺼﻞ ﻋﻠﯿﮫ ‪ ،‬ﻓﮭﻨﺎ ﯾﻜﻮن اﻟﻤﺨﺘﺮق ﻗﺪ ﺣﺼﻞ ﻋﻠﻰ ﻛﺸﻒ اﻟﺮﺳﺎﺋﻞ‬
‫ﻷﻧﮫ ﯾﻤﻠﻚ اﻟﻤﻔﺘﺎح ‪ .‬وھﺬا ﻣﺎ ﻻ ﯾﺮﯾﺪه أﺣﺪ ‪ ،‬ﻟﺬﻟﻚ ﺣﻞ "ﻣﻔﺘﺎح واﺣﺪ ﻟﻠﺠﻤﯿﻊ" ﺣﻞ ﻏﯿﺮ ﻋﻤﻠﻲ أﯾﻀﺎ‪.‬‬

‫ﺑﺎﺧﺘﺼﺎر ﯾﻜﻮن ﺣﻞ إرﺳﺎل اﻟﻤﻔﺘﺎح ﻗﺒﻞ ﻋﻤﻠﯿﮫ اﻹرﺳﺎل ﻣﻨﺎﺳﺐ اذا ﻛﺎﻧﺖ ﻋﻤﻠﯿﮫ اﻹرﺳﺎل ﺑﺴﯿﻄﺔ‬
‫)ﺑﯿﻦ ﺷﺨﺼﯿﻦ أو ﺛﻼﺛﺔ ﻣﺜﻼ( ‪ ،‬وإذا ﻛﺎﻧﺖ أﯾﻀﺎ ﻋﻤﻠﯿﮫ اﻹرﺳﺎل ﻋﺒﺮ اﻟﮭﺎﺗﻒ آﻣﻨﮫ ‪.‬‬

‫ﻏﯿﺮ ذﻟﻚ ﺳﻮف ﻧﻠﺠﺄ إﻟﻰ اﻟﺤﻞ اﻟﺜﺎﻧﻲ‪ ،‬و ھﻮ اﺳﺘﺨﺪام ﻃﺮف ﺛﺎﻟﺚ ﻓﻲ اﻟﻌﻤﻠﯿﺔ ‪: TTP‬‬
‫دﻋﻨﺎ ﻧﻮﺿﺢ اﻵﻣﺮ ﺑﻤﺜﺎل ﺑﺴﯿﻂ ‪.‬‬
‫ﻟﻨﻔﺮض ﻣﺤﻤﺪ ﯾﺮﯾﺪ أن ﯾﺮﺳﻞ رﺳﺎﻟﺔ ﻟﻌﻠﻲ ‪ ،‬واﻟﻄﺮف اﻟﺜﺎﻟﺚ ھﻮ ﺳﺎﻣﻲ ‪.‬‬

‫اﻵن ﻓﻲ اﻟﺒﺪاﯾﺔ ﯾﺬھﺐ ﻣﺤﻤﺪ إﻟﻰ اﻟﻄﺮف اﻟﺜﺎﻟﺚ ﺳﺎﻣﻲ وﯾﻘﻮم ﺳﺎﻣﻲ ﺑﺘﻮﻟﯿﺪ ﻣﻔﺘﺎح ‪ KEK‬وﯾﻘﻮم‬
‫ﺑﺘﺨﺰﯾﻦ اﻟﻤﻔﺘﺎح ﻓﻲ ﺟﮭﺎزه ‪ ،‬واﻋﻄﺎء ﻧﺴﺨﮫ ﻣﻦ اﻟـ ‪ KEK‬إﻟﻰ ﻣﺤﻤﺪ‪ .‬ﯾﺄﺗﻲ ﻋﻠﻲ أﯾﻀﺎ إﻟﻰ‬
‫اﻟﻄﺮف اﻟﺜﺎﻟﺚ ﺳﺎﻣﻲ ‪ ،‬وﯾﻘﻮم ﺑﺘﻮﻟﯿﺪ ﻣﻔﺘﺎح ‪ KEK‬وﯾﺨﺰﻧﮫ ﻓﻲ ﺟﮭﺎزه ‪ ،‬وﯾﻌﻄﻲ ﻋﻠﻰ ﻧﺴﺨﮫ ﻣﻦ‬
‫اﻟﻤﻔﺘﺎح‪.‬‬

‫ھﻨﺎ ﻋﻨﺪﻣﺎ ﯾﺮﯾﺪ ﻣﺤﻤﺪ إرﺳﺎل رﺳﺎﻟﺔ إﻟﻰ ﻋﻠﻲ ‪ ،‬ﯾﻘﻮم ﻣﺤﻤﺪ ﺑﻄﻠﺐ ﻣﻔﺘﺎح اﻟﺠﻠﺴﺔ ﻣﻦ اﻟﻄﺮف اﻟﺜﺎﻟﺚ‬
‫ﺳﺎﻣﻲ ‪ ،‬ﯾﻘﻮم ﺳﺎﻣﻲ ﺑﺘﺸﻔﯿﺮ ﻣﻔﺘﺎح اﻟﺠﻠﺴﺔ ﺑﺎﻟﻤﻔﺘﺎح ‪ KEK‬اﻟﺬي ﻗﺎم ﺑﺘﻮﻟﯿﺪه ھﻮ و ﻣﺤﻤﺪ ﻓﻲ اﻟﺒﺪاﯾﺔ‬
‫‪ ،‬وﯾﻘﻮم ﺑﺈرﺳﺎل اﻟﻤﻔﺘﺎح اﻟﻤﺸﻔﺮ إﻟﻰ ﻣﺤﻤﺪ ‪ ،‬وﯾﻘﻮم ﺑﺘﺸﻔﯿﺮ ﻣﻔﺘﺎح اﻟﺠﻠﺴﺔ أﯾﻀﺎ ﻣﺮه أﺧﺮى وﻟﻜﻦ‬
‫ﺑﻤﻔﺘﺎح ﻋﻠﻲ وﯾﻘﻮم ﺑﺈرﺳﺎﻟﮫ إﻟﻰ ﻋﻠﻲ‪.‬‬

‫‪114‬‬
‫‪PDF created with pdfFactory Pro trial version www.pdffactory.com‬‬
‫ھﻨﺎ ﻓﻲ ھﺬه اﻟﻌﻤﻠﯿﺔ ﺳﺎﻣﻲ ھﻮ اﻟﻮﺳﯿﻂ ﺑﯿﻦ اﻻﺛﻨﯿﻦ ‪ ،‬ھﻮ اﻟﻮﺣﯿﺪ اﻟﺬي ﯾﻤﻠﻚ ﻣﻔﺘﺎح اﻟﺠﻠﺴﺔ ‪ ،‬وھﻮ‬
‫اﻟﻮﺣﯿﺪ اﻟﺬي ﯾﻤﻜﻨﮫ ﻗﺮاءه اﻟﺮﺳﺎﺋﻞ ‪ ،‬ﻟﺬﻟﻚ ﯾﺠﺐ أن ﯾﻜﻮن ﻃﺮف ﻣﻮﺛﻮق ‪ ،‬واﻻ ﺳﻮف ﺗﻨﻜﺸﻒ ﻛﻞ‬
‫اﻟﺮﺳﺎﺋﻞ ‪ ،‬وﻷن اﻟﻄﺮف اﻟﻤﻮﺛﻮق ﻗﺪ ﯾﻜﻮن ﻏﯿﺮ ﻣﻮﺟﻮد ﺑﺎﻟﻨﺴﺒﺔ ﻷﻏﻠﺒﻨﺎ ﻓﮭﺬا اﻟﺤﻞ ﻏﯿﺮ ﻣﺠﺪي‬
‫ﻟﻠﻜﺜﯿﺮ ﻣﻨﺎ ‪ ،‬وﯾﺠﺐ أن ﻧﺤﻞ اﻟﻤﺸﻜﻠﺔ ﺑﻄﺮﯾﻘﮫ أﻓﻀﻞ‪..‬‬

‫وﻣﻦ ھﻨﺎ ﺟﺎءت اﻟﻄﺮﯾﻘﮫ اﻷﺧﺮى ﻟﻠﺘﺸﻔﯿﺮ وھﻲ اﻟﺘﺸﻔﯿﺮ ﺑﺎﻟﻤﻔﺘﺎح اﻟﻐﯿﺮ ﻣﺘﻨﺎﻇﺮ ‪Asymmetric‬‬
‫‪ ،key Cryptography‬ﺑﺎﻟﻤﻨﺎﺳﺒﺔ اﻏﻠﺐ اﻟﻜﺘﺐ ﺗﺴﻤﻰ ھﺬه اﻟﻄﺮﯾﻘﮫ ﺑﺎﺳﻢ آﺧﺮ وھﻮ اﻟﺘﺸﻔﯿﺮ‬
‫ﺑﺎﻟﻤﻔﺘﺎح اﻟﻌﺎم )أو اﻟﻤﻌﻠﻦ ‪ ،( Public-Key Cryptography‬ﻋﻠﻰ اﻟﻌﻤﻮم اﻻﺳﻤﯿﻦ ﯾﺆدﯾﺎن‬
‫ﻧﻔﺲ اﻟﻐﺮض ‪.‬‬

‫‪ Public-Key Cryptography and the Digital Envelope‬ﺍﻟﺘﺸﻔﻴﺮ‬


‫ﺑﺎﻟﻤﻔﺘﺎﺡ ﺍﻟﻌﺎﻡ ‪ ،‬ﻭﺍﻟﻈﺮﻑ ﺍﻟﺮﻗﻤﻲ ‪:‬‬

‫ﻓﻲ اﻟﺴﺒﻌﯿﻨﯿﺎت ﺗﻢ اﺧﺘﺮاع ﺗﻠﻚ اﻟﻄﺮﯾﻘﮫ ‪ ،‬وھﻲ ﺗﺴﺘﺨﺪم ﻣﻔﺘﺎﺣﯿﻦ ‪ ،‬ﻣﻔﺘﺎح ﻋﺎم ‪public Key‬‬
‫ﻟﻠﺘﺸﻔﯿﺮ ‪ ،‬وﻣﻔﺘﺎح ﺧﺎص ‪ private Key‬ﻟﻔﻚ اﻟﺘﺸﻔﯿﺮ ‪ ،‬ﻣﺜﻼ اذا أراد ﻣﺤﻤﺪ إرﺳﺎل رﺳﺎﻟﺔ ﻣﺸﻔﺮه‬
‫ﻟﻌﻠﻲ ﺑﺎﺳﺘﺨﺪام اﻟﺘﺸﻔﯿﺮ ﺑﺎﻟﻤﻔﺘﺎح اﻟﻐﯿﺮ ﻣﺘﻨﺎﻇﺮ )أو اﻟﻤﻌﻠﻦ أو اﻟﻌﺎم( ‪ ،‬ﯾﻘﻮم ﻣﺤﻤﺪ ﺑﺄﺧﺬ اﻟﻤﻔﺘﺎح اﻟﻌﺎم‬
‫ﻣﻦ ﻋﻠﻲ ‪ ،‬وﺑﻌﺪھﺎ ﯾﻘﻮم ﺑﺘﺸﻔﯿﺮ اﻟﺮﺳﺎﻟﺔ ﺑﮭﺬا اﻟﻤﻔﺘﺎح ‪ ،‬ﺑﻌﺪھﺎ ﯾﻘﻮم ﺑﺈرﺳﺎل اﻟﺮﺳﺎﻟﺔ إﻟﻰ ﻋﻠﻲ اﻟﺬي‬
‫ﯾﻘﻮم ﺑﻔﻚ اﻟﺘﺸﻔﯿﺮ ﺑﺎﻟﻤﻔﺘﺎح اﻟﺨﺎص ﺑﮫ‪..‬‬

‫اﻟﻤﻔﺘﺎح اﻟﻌﺎم ‪ public Key‬ﯾﻜﻮن ﻣﻌﺮوف ﻟﻠﺠﻤﯿﻊ وأي ﺷﺨﺺ ﯾﺴﺘﻄﯿﻊ اﻟﺤﺼﻮل ﻋﻠﯿﮫ ) ھﻮ‬
‫ﯾﺴﺘﺨﺪم ﻓﻘﻂ ﻟﻠﺘﺸﻔﯿﺮ( ‪.‬‬
‫اﻟﻤﻔﺘﺎح اﻟﺨﺎص ‪ private Key‬ﯾﻜﻮن ﻏﯿﺮ ﻣﻌﺮوف )ﻣﻌﺮوف ﻟﺸﺨﺺ واﺣﺪ( وھﻮ ﯾﺴﺘﺨﺪم ﻟﻔﻚ‬
‫اﻟﺘﺸﻔﯿﺮ‬
‫وﻟﻜﻲ ﻧﻜﻮن أﻛﺜﺮ ﺻﻮاﺑﺎ ‪ ،‬ﻓﺎن اﻟﻤﻔﺘﺎح اﻟﻌﺎم ﯾﺴﺘﺨﺪم ﻟﺘﺸﻔﯿﺮ ﻣﻔﺘﺎح اﻟﺠﻠﺴﺔ ؟؟ ﻣﺎ ھﺬا اﻟﻜﻼم !!‬
‫دﻋﻨﺎ ﻧﻌﯿﺪ اﻟﻤﺜﺎل ﻣﺮه أﺧﺮى‪...‬‬

‫ﻣﺤﻤﺪ ﯾﺮﯾﺪ إرﺳﺎل رﺳﺎﻟﺔ ﻟﻌﻠﻲ ‪ ،‬وﯾﺮﯾﺪ ﻃﺮﯾﻘﮫ آﻣﻨﮫ ﻹرﺳﺎل اﻟﻤﻔﺘﺎح ‪ ،‬ﻟﺬﻟﻚ ﺗﻢ اﺧﺘﯿﺎر ﻃﺮﯾﻘﮫ‬
‫اﻟﺘﺸﻔﯿﺮ ﺑﺎﻟﻤﻔﺘﺎح اﻟﻐﯿﺮ ﻣﺘﻨﺎﻇﺮ ‪ ،‬ﺑﻌﺪھﺎ ﯾﻘﻮم ﻣﺤﻤﺪ ﺑﺘﺸﻔﯿﺮ اﻟﺮﺳﺎﻟﺔ ﺑﺨﻮارزﻣﯿﺔ اﻟﺘﺸﻔﯿﺮ ﺑﺎﻟﻤﻔﺘﺎح‬
‫اﻟﻤﺘﻨﺎﻇﺮ )ﻻﺣﻆ اﻟﻤﺘﻨﺎﻇﺮ ‪ ،‬ﺳﺄذﻛﺮ اﻟﺴﺒﺐ ﺑﻌﺪ ﻗﻠﯿﻞ( ‪ ،‬وﺑﻌﺪھﺎ ﯾﻘﻮم ﺑﺄﺧﺬ اﻟﻤﻔﺘﺎح اﻟﻌﺎم ﻟﻌﻠﻲ )اﻟﺬي‬
‫ھﻮ ﻣﻌﺮوف ﻟﻠﺠﻤﯿﻊ( وﯾﻘﻮم ﺑﺘﺸﻔﯿﺮ اﻟﻤﻔﺘﺎح )اﻟﺠﻠﺴﺔ( ﺑﻌﺪھﺎ ﯾﺮﺳﻞ ھﺬا اﻟﻤﻔﺘﺎح اﻟﻤﺸﻔﺮ واﻟﺮﺳﺎﻟﺔ‬
‫إﻟﻰ ﻋﻠﻲ ‪ ،‬اﻟﺬي ﯾﻘﻮم ﺑﺪوره ﺑﻔﻚ ﺗﺸﻔﯿﺮ اﻟﻤﻔﺘﺎح ﺑﺎﻟﻤﻔﺘﺎح اﻟﺨﺎص ‪ ،‬ﺑﻌﺪھﺎ ﯾﻘﻮم ﺑﻔﻚ ﺗﺸﻔﯿﺮ‬
‫اﻟﺮﺳﺎﻟﺔ‪..‬‬

‫‪115‬‬
‫‪PDF created with pdfFactory Pro trial version www.pdffactory.com‬‬
‫ﻟﻤﺎذا ﻗﻤﻨﺎ ﺑﺘﺸﻔﯿﺮ اﻟﺮﺳﺎﻟﺔ ﺑﺨﻮارزﻣﯿﺔ اﻟﺘﺸﻔﯿﺮ ﺑﺎﻟﻤﻔﺘﺎح اﻟﻤﺘﻨﺎﻇﺮ ؟‬
‫وﻟﺬﻟﻚ ﺑﺴﺒﺐ اﻟﺴﺮﻋﺔ واﻷداء ‪ ،‬ﻓﺎﻟﺘﺸﻔﯿﺮ ﺑﺎﻟﻤﻔﺘﺎح اﻟﻤﺘﻨﺎﻇﺮ أﺳﺮع ﺑﻜﺜﯿﺮ ﻣﻦ اﻟﺘﺸﻔﯿﺮ ﺑﺎﻟﻤﻔﺘﺎح اﻟﻐﯿﺮ‬
‫ﻣﺘﻨﺎﻇﺮ ‪،‬‬
‫اﻟﺘﺸﻔﯿﺮ ﺑﺎﻟﻤﻔﺘﺎح اﻟﻤﺘﻨﺎﻇﺮ ﯾﺸﻔﺮ ‪ MB 50‬ﻓﻲ اﻟﺜﺎﻧﯿﺔ اﻟﻮاﺣﺪة‬
‫اﻟﺘﺸﻔﯿﺮ ﺑﺎﻟﻤﻔﺘﺎح ﻏﯿﺮ اﻟﻤﺘﻨﺎﻇﺮ ﯾﺸﻔﺮ ‪ KB 200-20‬ﻓﻲ اﻟﺜﺎﻧﯿﺔ اﻟﻮاﺣﺪة ‪– .‬ﻻﺣﻆ اﻟﻔﺮق‪. -‬‬

‫ﻟﺬﻟﻚ ﯾﺴﺘﺨﺪم اﻟﻤﻔﺘﺎح اﻟﻤﺘﻨﺎﻇﺮ ﻟﺘﺸﻔﯿﺮ اﻟﺮﺳﺎﻟﺔ ‪ ،‬وﯾﺴﺘﺨﺪم اﻟﻤﻔﺘﺎح اﻟﻐﯿﺮ ﻣﺘﻨﺎﻇﺮ)اﻟﻌﺎم( ﻟﺘﺸﻔﯿﺮ‬
‫اﻟﻤﻔﺘﺎح اﻟﻤﺘﻨﺎﻇﺮ ‪ ،‬اﻟﻌﻤﻠﯿﺔ اﻟﺴﺎﺑﻘﺔ ﺗﺴﻤﻰ ﺑﺎﻟﻈﺮف اﻟﺮﻗﻤﻲ ‪. Digital Envelope‬‬

‫ھﺬه اﻟﻌﻤﻠﯿﺔ ﻣﺸﺎﺑﮫ ﻟﻌﻤﻠﯿﮫ ‪ ، Password Based Encryption‬ﻷﻧﮭﺎ ﻓﻲ ‪ PBE‬ﻧﻘﻮم ﺑﺎﺧﺘﯿﺎر‬


‫ﺧﻮارزﻣﯿﺔ ﻟﺘﺸﻔﯿﺮ اﻟﻨﺺ ﻣﻦ ﻧﻮع ‪ ، Symmetric‬ﺑﻌﺪھﺎ ﻧﻘﻮم ﺑﺘﻮﻟﯿﺪ ﻣﻔﺘﺎح اﻟﺠﻠﺴﺔ ‪ ،‬وﻧﻘﻮم‬
‫ﺑﺘﺸﻔﯿﺮ ﻣﻔﺘﺎح اﻟﺠﻠﺴﺔ ﺑﺎﺳﺘﺨﺪام ‪ ، PBE‬وﻻ ﯾﻤﻜﻦ ﻷي أﺣﺪ ﻓﻚ ﺗﺸﻔﯿﺮ ﻣﻔﺘﺎح اﻟﺠﻠﺴﺔ إﻻ ﻓﻲ ﺣﺎل‬
‫ﻛﺎن ﯾﻤﻠﻚ اﻟﺒﺎﺳﻮرد اﻟﺼﺤﯿﺢ ‪.‬‬

‫أﻣﺎ ھﻨﺎ ﻓﻲ ‪ ، Digital Envelope‬ﻧﻘﻮم ﺑﺎﺧﺘﯿﺎر ﺧﻮارزﻣﯿﺔ ﻟﺘﺸﻔﯿﺮ اﻟﺮﺳﺎﻟﺔ ﻣﻦ ﻧﻮع‬


‫‪ ، Symmetric‬وﻧﻘﻮم ﺑﺘﻮﻟﯿﺪ ﻣﻔﺘﺎح اﻟﺠﻠﺴﺔ ‪ ،‬ﺑﻌﺪھﺎ ﻧﺤﺼﻞ ﻋﻠﻰ اﻟﻤﻔﺘﺎح اﻟﻌﺎم ﻣﻦ اﻟﻄﺮف اﻷﺧﺮ‬
‫اﻟﺬي أرﯾﺪ إرﺳﺎل اﻟﺮﺳﺎﻟﺔ إﻟﯿﮫ ‪ ،‬وأﻗﻮم ﺑﺘﺸﻔﯿﺮ ﻣﻔﺘﺎح اﻟﺠﻠﺴﺔ ﺑﮭﺬا اﻟﻤﻔﺘﺎح اﻟﻌﺎم ‪ ،‬وأﻗﻮم ﺑﺈرﺳﺎل‬
‫اﻟﻨﺺ اﻟﻤﺸﻔﺮ )ب‪ ( Symmetric‬أﺿﺎﻓﮫ إﻟﻰ ﻣﻔﺘﺎح اﻟﺠﻠﺴﺔ اﻟﻤﺸﻔﺮ )ﺑﺎﻟﻤﻔﺘﺎح اﻟﻌﺎم( ﻟﻠﻄﺮف‬
‫اﻷﺧﺮ ‪ ،‬وھﻨﺎ ﯾﻘﻮم اﻟﻄﺮف اﻷﺧﺮ ﺑﺎﺳﺘﻼم اﻟﺮﺳﺎﻟﺔ ‪ ،‬وﯾﻘﻮم ﺑﻔﻚ ﺗﺸﻔﯿﺮ ﻣﻔﺘﺎح اﻟﺠﻠﺴﺔ ﺑﺎﺳﺘﺨﺪام‬
‫اﻟﻤﻔﺘﺎح اﻟﺨﺎص ﺑﮫ ‪ ،‬وﺑﻌﺪھﺎ ﯾﺤﺼﻞ ﻋﻠﻰ ﻣﻔﺘﺎح اﻟﺠﻠﺴﺔ ‪ ،‬وﻣﻨﮫ ﯾﻘﻮم ﺑﻔﻚ ﺗﺸﻔﯿﺮ اﻟﺮﺳﺎﻟﺔ ‪.‬‬

‫ﻻﺣﻆ أن ھﺬه اﻟﻄﺮﯾﻘﮫ ﻗﺪ ﺣﻠﺖ ﻣﺸﻜﻠﮫ ﺗﻮزﯾﻊ اﻟﻤﻔﺎﺗﯿﺢ ‪ ،‬ﺣﯿﺚ ﻛﻞ ﻣﺎ اﻷﻣﺮ اﺳﺘﺨﺪام ﻃﺮﯾﻘﮫ‬
‫‪ ، public Key Cryptography‬وﺑﻌﺪھﺎ ﻻ ﺣﺎﺟﮫ ﻟﻄﺮف ﺛﺎﻟﺚ ‪ ،‬أو ﺗﻮزﯾﻊ اﻟﻤﻔﺎﺗﯿﺢ ﻗﺒﻞ ﺑﺪء‬
‫اﻹرﺳﺎل ‪.‬‬

‫‪ History of Public-Key Cryptography‬ﻟﻤﺤﻪ ﺗﺎﺭﻳﺨﻴﺔ ﻋﻦ ﺍﻟﺘﺸﻔﻴﺮ‬


‫ﺑﺎﻟﻄﺮﻳﻘﺔ ﻏﻴﺮ ﻣﺘﻨﺎﻇﺮﺓ‬

‫ﻓﻲ ﻣﻨﺘﺼﻒ ﻋﺎم ‪ 1970‬ﻗﺎم اﻟﺒﺮوﻓﺴﻮر ‪ Martin Hellman‬واﻟﻄﺎﻟﺐ اﻟﺨﺮﯾﺞ ‪Whitfield‬‬


‫‪ Diffie‬ﻣﻦ ﺟﺎﻣﻌﮫ ﺳﺘﺎﻧﻔﻮرد ﺑﺎﻟﺒﺤﺚ ﻓﻲ ﻣﻮاﺿﯿﻊ اﻟﺘﺸﻔﯿﺮ وﺧﺎﺻﺔ ﻣﺸﻜﻠﮫ إرﺳﺎل اﻟﻤﻔﺎﺗﯿﺢ ‪Key‬‬
‫‪ ، Distribution Problem‬وﻗﺎﻣﻮا ﺑﺎﻟﺘﻮﺻﻞ إﻟﻰ ﻧﺘﯿﺠﺔ ھﻲ أﻧﮫ ﯾﻤﻜﻦ ﺗﺒﺎدل ﻣﻔﺎﺗﯿﺢ ﺳﺮﯾﮫ ﻋﻦ‬
‫ﻃﺮﯾﻖ إرﺳﺎل ﻣﻌﻠﻮﻣﺎت ﻋﺎﻣﮫ ‪ ،‬ﺣﯿﺚ ﯾﻤﻜﻦ إرﺳﺎل رﺳﺎﺋﻞ ﻓﻲ ﺧﻄﻮط ﻏﯿﺮ آﻣﻨﮫ وﻣﻠﯿﺌﺔ‬
‫ﺑﺎﻟﻤﺨﺘﺮﻗﯿﻦ وﻣﻊ ذﻟﻚ ﺗﺼﻞ أﻣﻨﮫ ‪ ،‬وﻓﻲ ﻋﺎم ‪ 1976‬ﻧﺸﺮوا اﻟﻮرﻗﺔ اﻟﻌﻠﻤﯿﺔ اﻟﺘﻲ ﺗﺼﻒ اﻟﻄﺮﯾﻖ اﻟﺘﻲ‬
‫ﺗﻮﺻﻠﻮا ﻟﮭﺎ وﻛﺎﻧﺖ ﺑﻌﻨﻮان ‪ ، New Direction in Cryptography‬وﻗﺎﻣﻮا ﺑﺘﺴﻤﯿﮫ ﻃﺮﯾﻖ‬
‫اﻹرﺳﺎل ھﺬه ﺑﺎﺳﻢ ‪ Diffe-Hellman‬واﺧﺘﺼﺎرا ‪. DH‬‬

‫وﻓﻲ ﻋﺎم ‪ 1977‬ﻗﺎم اﻟﺒﺮوﻓﯿﺴﻮر ‪ Ron Rivest‬ﻣﻦ ﻣﻌﮭﺪ ‪ ، MIT‬ﻣﻊ زﻣﻼﺋﮫ ‪Adi Shamir ,‬‬
‫‪ Len Adleman‬ﺑﺎﻻھﺘﻤﺎم ﺑﮭﺬه اﻟﺨﻮارزﻣﯿﺔ ‪ ، DH‬وﻗﺎﻣﻮا ﺑﺘﻄﺒﯿﻘﮭﺎ ﻟﺘﻜﻮن أول ﺧﻮارزﻣﯿﺔ ﻣﻦ‬
‫ﻧﻮع ‪ Public key Cryptography‬وﺗﻤﺖ ﺗﺴﻤﯿﺘﮭﺎ ﺑﺎﺳﻢ ‪) RSA‬اﻟﺤﺮف اﻷول ﻣﻦ ﻛﻞ اﺳﻢ ( ‪.‬‬

‫‪116‬‬
‫‪PDF created with pdfFactory Pro trial version www.pdffactory.com‬‬
‫وﻓﻲ ﻋﺎم ‪ ، 1985‬ﻗﺎم ‪ Neal Koblitz‬ﻣﻦ ﺟﺎﻣﻌﮫ واﺷﻨﻄﻦ و ‪ Victor Miller‬ﻣﻦ ﻣﺮﻛﺰ ﺑﺤﻮث‬
‫ﺗﺎﺑﻊ ﻟـ ‪ ، IBM‬ﺑﺎﻟﺒﺤﺚ ﻓﻲ ﻓﺮع ﻣﻦ ﻓﺮوع اﻟﺮﯾﺎﺿﯿﺎت ﻏﯿﺮ ﻣﻨﺘﺸﺮ ﻓﻲ ذﻟﻚ اﻟﻮﻗﺖ وھﻮ ‪elliptic‬‬
‫‪ curves‬وذﻛﺮوا أﻧﮫ ﯾﻤﻜﻦ اﻻﺳﺘﻔﺎدة ﻣﻨﮫ ﻓﻲ ﺗﻄﺒﯿﻖ ﺗﺸﻔﯿﺮ ﻣﻦ ﻧﻮع ‪public key‬‬
‫‪ ، Cryptography‬وﻣﻊ ﺑﺪاﯾﮫ اﻟﺘﺴﻌﯿﻨﺎت ﺑﺪأ ھﺬا اﻟﻨﻮع ﻣﻦ اﻟﺨﻮارزﻣﯿﺎت ﺑﺎﻟﻈﮭﻮر ‪.‬‬

‫وﺑﻌﺪ ذﻟﻚ ﺑﺪأت اﻟﻌﺪﯾﺪ ﻣﻦ اﻟﺨﻮارزﻣﯿﺎت ﺑﺎﻟﻈﮭﻮر وﺑﺎﻻﻧﺘﺸﺎر ‪ ،‬ﻟﻜﻦ أﻛﺜﺮ اﻟﺨﻮارزﻣﯿﺎت اﻧﺘﺸﺎرا ‪:‬‬
‫‪RSA‬‬
‫‪ECDH - Elliptic Curve Diffie-Hellman‬‬
‫‪Algamal‬‬

‫ﺍﻟﺘﻮﻗﻴﻊ ﺍﻟﺮﻗﻤﻲ ﻭﺧﻼﺻﺎﺕ ﺍﻟﺮﺳﺎﺋﻞ ‪The Digital Signature and Message‬‬


‫‪Digests‬‬

‫ﻧﺄﺧﺬ ﻣﺜﺎل ﺑﺴﯿﻂ ﻟﻜﻲ ﯾﻮﺿﺢ ﻃﺮﯾﻘﮫ اﻟﺘﻮﻗﯿﻊ اﻟﺮﻗﻤﻲ ‪ ،‬وﻧﺘﺮك اﻟﺘﻔﺎﺻﯿﻞ اﻷﺧﺮى إﻟﻰ ﺻﺪور‬
‫اﻟﻨﺴﺨﺔ اﻟﻨﮭﺎﺋﯿﺔ ‪.‬‬

‫ﺻﺪﯾﻘﻨﺎ ﻣﺤﻤﺪ ﻟﺪﯾﮫ ﻣﻔﺘﺎﺣﯿﻦ ‪ ،‬اﺣﺪھﻤﺎ ﻣﻔﺘﺎح ﻋﺎم واﻵﺧﺮ ﻣﻔﺘﺎح ﺧﺎص )اﻟﺘﺸﻔﯿﺮ ﺑﺎﻟﻤﻔﺘﺎح ﻏﯿﺮ‬
‫اﻟﻤﺘﻨﺎﻇﺮ(‬

‫اﻵن ھﻮ ﯾﺮﯾﺪ إرﺳﺎل رﺳﺎﻟﺔ ﻷﺣﺪ أﺻﺪﻗﺎﺋﮫ ‪ ،‬ﻛﻞ ﻣﺎ ﻋﻠﯿﮫ إرﺳﺎل اﻟﻤﻔﺘﺎح اﻟﻌﺎم )ﯾﻜﻮن ﻣﻮﺟﮫ‬
‫ﻟﻠﺠﻤﯿﻊ( ‪ ،‬أﻣﺎ اﻟﻤﻔﺘﺎح اﻟﺨﺎص ﻓﯿﺤﺘﻔﻆ ﺑﮫ ﻟﻨﻔﺴﮫ ‪ ،‬اﻟﻤﻔﺘﺎح اﻟﻌﺎم ﯾﺴﺘﺨﺪم ﻟﻠﺘﺸﻔﯿﺮ واﻟﺨﺎص ﻟﻔﻚ‬
‫اﻟﺘﺸﻔﯿﺮ ‪.‬‬

‫‪117‬‬
‫‪PDF created with pdfFactory Pro trial version www.pdffactory.com‬‬
‫ﻓﻲ ﺣﺎﻟﮫ أراد ﻣﺤﻤﺪ إرﺳﺎل رﺳﺎﻟﺔ إﻟﻰ ﻋﻠﻲ وﻛﺎن ﯾﺮﯾﺪ أن اﺳﺘﺨﺪام اﻟﺘﻮﻗﯿﻊ اﻟﺮﻗﻤﻲ )اﻟﺬي ﻋﻦ‬
‫ﻃﺮﯾﻘﮫ ﯾﺴﺘﻄﯿﻊ ﻋﻠﻲ اﻟﺘﺄﻛﺪ ﻣﻦ أن ﻣﺤﻤﺪ ھﻮ ﻣﺮﺳﻞ اﻟﺮﺳﺎﻟﺔ ‪ ،‬أﯾﻀﺎ ﯾﻤﻜﻦ ﻣﻌﺮﻓﮫ أي ﺗﻐﯿﯿﺮ ﺣﺼﻞ‬
‫ﻋﻠﻰ اﻟﺮﺳﺎﻟﺔ أﺛﻨﺎء إرﺳﺎﻟﮫ ( ‪ ،‬ﻛﻞ ﻣﺎ ﻋﻠﻰ ﻣﺤﻤﺪ ھﻮ أن ﯾﺄﺧﺬ اﻟﺮﺳﺎﻟﺔ ﺑﻌﺪ ﻛﺘﺎﺑﺘﮭﺎ وﯾﺪﺧﻠﮭﺎ إﻟﻰ‬
‫اﺣﺪ اﻟﺪوال اﻟﮭﺎﺷﯿﺔ )ﻣﺜﻞ ‪ md5‬و ‪ SHA-1‬وﻏﯿﺮھﺎ( ﻟﻜﻲ ﯾﺨﺮج اﻟﻨﺎﺗﺞ )ﯾﺴﻤﻰ ﺑﺎﻟﮭﺎش أو‬
‫‪.(message digest‬‬

‫ﺑﻌﺪ ذﻟﻚ ﯾﻘﻮم ﻣﺤﻤﺪ ﺑﺄﺧﺬ ھﺬا اﻟﮭﺎش وﯾﻘﻮم ﺑﺘﺸﻔﯿﺮه ﺑﺎﺳﺘﺨﺪام اﻟﻤﻔﺘﺎح اﻟﺨﺎص ﺑﮫ ‪ ،‬وھﻜﺬا ﯾﺤﺼﻞ‬
‫ﻣﺤﻤﺪ ﻋﻠﻰ اﻟﺘ ﻮﻗﯿﻊ‬

‫اﻵن ﯾﻘﻮم ﻣﺤﻤﺪ ﺑﺎﺿﺎﻓﮫ اﻟﺘﻮﻗﯿﻊ إﻟﻰ اﻟﺮﺳﺎﻟﺔ اﻟﺘﻲ ﯾﺮﯾﺪ إرﺳﺎﻟﮭﺎ ‪ ..‬وﯾﺮﺳﻠﮭﺎ إﻟﻰ اﻷخ ﻋﻠﻲ‬

‫وﺻﻠﺖ اﻟﺮﺳﺎﻟﺔ إﻟﻰ ﻋﻠﻲ ‪ ،‬ﯾﻘﻮم ﻋﻠﻲ )أو اﻟﺒﺮﻧﺎﻣﺞ اﻟﺬي ﯾﺴﺘﺨﺪﻣﮫ( ﺑﻔﻚ ﺗﺸﻔﯿﺮ اﻟﺘﻮﻗﯿﻊ )اﻟﻨﺎﺗﺞ ھﻮ‬
‫اﻟﮭﺎش( ﺑﺎﺳﺘﺨﺪام اﻟﻤﻔﺘﺎح اﻟﻌﺎم ﻟﻤﺤﻤﺪ ‪ ،‬ﻓﻲ ﺣﺎل اﻧﻔﻚ ﺑﺸﻜﻞ ﺻﺤﯿﺢ ‪ ،‬ﯾﻜﻮن ﻋﻠﻲ ﻗﺪ ﻋﺮف أن‬
‫اﻟﻤﺮﺳﻞ ھﻮ ﻣﺤﻤﺪ وﻟﯿﺲ أي اﺣﺪ آﺧﺮ‪..‬‬

‫أﯾﻀﺎ ﯾﻘﻮم ﺑﺘﻄﺒﯿﻖ اﻟﺪاﻟﺔ اﻟﮭﺎﺷﯿﺔ )اﻟﺘﻲ ﻃﺒﻘﮭﺎ ﻣﺤﻤﺪ( ﻋﻠﻰ اﻟﺮﺳﺎﻟﺔ ‪ ،‬ﻓﻲ ﺣﺎل ﺗﺴﺎوت ﻣﻊ اﻟﮭﺎش ‪،‬‬
‫اذا ﯾﻜﻮن ﻋﻠﻲ ﻗﺪ ﻋﺮف أن اﻟﺮﺳﺎﻟﺔ ﻟﻢ ﺗﺘﻐﯿﺮ أﺛﻨﺎء إرﺳﺎﻟﮭﺎ‪..‬‬

‫‪118‬‬
‫‪PDF created with pdfFactory Pro trial version www.pdffactory.com‬‬
‫ﺍﻟﺨﺎﺗﻤﺔ‬

‫ﻭﻫﻜﺬﺍ ﻧﻜﻮﻥ ﻗﺪ ﻭﺻﻠﻨﺎ ﺇﻟﻰ ﻧﻬﺎﻳﺔ ﻫﺬﺍ ﺍﻟﻜﺘﻴﺐ ﺍﻟﺒﺴﻴﻂ ‪ ،‬ﻋﺴﻰ ﺃﻥ ﺗﻜﻮﻧﻮﺍ ﺃﻥ ﺍﺳﺘﻔﺪﺗﻮﺍ‬
‫ﻣﻨﻪ ﺳﻮﺍﺀ ﺣﺎﻟﻴﺎ ﺃﻡ ﻣﺴﺘﻘﺒﻼ ‪ ،‬ﻭﺍﻋﺬﺭﻭﻧﻲ ﻋﻠﻰ ﺍﻟﺘﻘﺼﻴﺮ ‪،‬‬
‫ﻭﻻ ﺗﻨﺴﻮﻧﻲ ﻣﻦ ﺩﻋﻮﻩ ﺻﺎﻟﺤﻪ ‪.‬‬

‫ﻭﻧﺴﺄﻝ ﺍﷲ ﺗﺒﺎﺭﻙ ﻭﺗﻌﺎﻟﻰ ‪ ،‬ﺃﻥ ﻳﻜﻮﻥ ﻫﺬﺍ ﺍﻟﻌﻤﻞ ﺧﺎﻟﺼﺎ ﻟﻮﺟﻬﻪ‬


‫ﺍﻟﻜﺮﻳﻢ ﻭﺃﻥ ﻳﻌﻴﻨﻨﺎ ﻋﻠﻰ ﺗﻌﻠﻤﻪ ﻭﺗﺒﻠﻴﻐﻪ ﺑﺈﺫﻧﻪ ‪ ،‬ﺇﻧﻪ ﻭﻟﻲ ﺫﻟﻚ‬
‫ﻭﺍﻟﻘﺎﺩﺭ ﻋﻠﻴﻪ‪.‬‬

‫ﻭﺃﺧﻴﺮﺍ ‪ ،‬ﺇﻥ ﻛﺎﻥ ﻣﻦ ﺻﻮﺍﺏ ﻓﻤﻦ ﺍﷲ ﺗﻌﺎﻟﻰ ‪ ،‬ﻭﺇﻥ ﻛﺎﻥ ﻣﻦ ﺧﻄﺄ‬


‫ﻓﻤﻦ ﺃﻧﻔﺴﻨﺎ ﻭﺍﻟﺸﻴﻄﺎﻥ‪.‬‬

‫ﻭﺻﻠﻲ ﺍﻟﻠﻬﻢ ﻭﺳﻠﻢ ﻭﺑﺎﺭﻙ ﻋﻠﻰ ﻧﺒﻴﻨﺎ ﻣﺤﻤﺪ ﻭﻋﻠﻰ ﺍﻟﻪ ﻭﺻﺤﺒﻪ‬
‫ﺃﺟﻤﻌﻴﻦ‪.‬‬

‫ﻭﺁﺧﺮ ﺩﻋﻮﺍﻧﺎ ﺃﻥ ﺍﻟﺤﻤﺪ ﷲ ﺭﺏ ﺍﻟﻌﺎﻟﻤﻴﻦ‪.‬‬


‫ﻭﺍﻟﺴﻼﻡ ﻋﻠﻴﻜﻢ ﻭﺭﺣﻤﻪ ﺍﷲ ﻭﺑﺮﻛﺎﺗﻪ‪.‬‬

‫ﻗﺎﺋﻤﻪ ﺍﻟﻤﺼﺎﺩﺭ ﻭﺍﻟﻤﺮﺍﺟﻊ ‪:‬‬

‫‪The Laws of Cryptography with java code , by Neal R.Wanger‬‬

‫‪Introduction to cryptography with Java applets, David Bishop‬‬

‫‪RSA Security’s Official Guide to Cryptography , Steve Burnett and‬‬


‫‪Stephen Paine‬‬

‫‪www.wikipedia.com‬‬

‫ﻭﺟﺪﻱ ﻋﺼﺎﻡ ﻋﺒﺪ ﺍﻟﺮﺣﻴﻢ‬


‫‪2 – 11 – 2007‬‬
‫‪SudanGeek@hotmail.com‬‬
‫‪WajdyEssam@hotmail.com‬‬

‫‪119‬‬
‫‪PDF created with pdfFactory Pro trial version www.pdffactory.com‬‬

You might also like