Cryptography ةيمعتلا وا ريفشتلا: Kerckhoff's principle: All algorithms must be public; only the keys are secret
Cryptography ةيمعتلا وا ريفشتلا: Kerckhoff's principle: All algorithms must be public; only the keys are secret
Cryptography ةيمعتلا وا ريفشتلا: Kerckhoff's principle: All algorithms must be public; only the keys are secret
The messages to be encrypted, known as the plaintext, are transformed by a function that is
parameterized by a key. The output of the encryption process, known as the ciphertext, is then
transmitted, by messenger or radio.
Key مع المفتاحEncryption حيث يتم تحويلها باستخدام دالة التشفير،Paintext الرسالة المراد تشفيرها تسمى النص االصلي
. ويتم ارسال النص المشفر من المرسل الى الهدفCiphertext الى النص المشفر
The enemy, or intruder, hears and copies down the complete ciphertext. Unlike the intended
recipient, he does not know what the decryption key is and so cannot decrypt the ciphertext easily.
The passive intruder can only listen to the communication channel. The active intruder can record
messages and play them back later, inject his own messages, or modify legitimate messages before
they get to the receiver.
، لهذا فان المتطفل السلبي يستمع فقط لقناة االتصال.الخصم او المتطفل يستمع وينسخ النص المشفر ولكنه ال يستطيع فتحه بسهولة النه ال يملك المفتاح
. يسجل الرسائل ويعيد ارسالها الى المستلم، يعدل في الرسائل،اما المتطفل االيجابي يرسل رسائل جديدة
The art of breaking ciphers, called cryptanalysis, and the art devising them is known as cryptology
Cryptology ومبادئ الحماية يسمىCryptanalysis مبادئ كسر التشفير يسمى
We will use C = EK(P) to mean that the encryption of the plaintext P using key K gives the
ciphertext C. Similarly, P = DK(C) represents the decryption of C to get the plaintext again. It then
follows that DK(EK(P)) = P
Both E and D are mathematical functions of two parameters, and we have written one of the
parameters (the key) as a subscript, rather than as an argument, to distinguish it from the message.
A fundamental rule of cryptography is that one must assume that the cryptanalyst knows the
methods used for encryption and decryption. In other words, the cryptanalyst knows how the
encryption method, E, and decryption, D. The amount of effort necessary to invent, test, and install
a new algorithm every time the old method is compromised has always made it impractical to keep
the encryption algorithm secret. Thinking it is secret when it is not does more harm than good.
The idea that the cryptanalyst knows the algorithms and that the secrecy lies exclusively in the keys
is called Kerckhoff's principle.
بكلمة.للتشفير ولفتح التشفير
ِ رف الطرقَ المستعملة ّ فترض
ُ يَ ْعcryptanalyst بأن َ َبأن الواحد يَ ِجبُ أ َ ْن ي
ّ ِالقاعدة أساسية في الكتابة المشفَّرة
وتنصيب خوارزمية جديدة ُك َّل، واختبار، ان ال ُجه ِد الضروري إلختِراع. D وفتح التشفير،E التشفير َ طريقةcryptanalyst رف ُ يَ ْع،أخرى
الخوارزميات وانcryptanalyst رف ً
ُ الفكرة التي يَ ْع.التشفير غير عملي دائما
َ ْ
َم َّرةٍ يتم اختراق الطريقة القديمة َجعلت ِكتمان خوارزمي ِة
.Kerckhoff َ السريةَ تكمن بشكل خاص في المفاتيحِ تُدْ َعى مبدأ
Kerckhoff's principle: All algorithms must be public; only the keys are secret
فقط مفاتيح التشفير تكون سرية، كل خوارزميات التشفير يجب ان تكون عامة:مبدأ كيركوف
Substitution Ciphers خوارزمية االستبدال
In a substitution cipher each letter or group of letters is replaced by another letter or group of
letters to disguise it. كل حرف او مجموعة من الحروف تستبدل بحرف او مجموعة من الحروف الخفائها
One of the oldest known ciphers is the Caesar cipher, attributed to Julius Caesar. In this method, a
becomes D, b becomes E, c becomes F, ... , and z becomes C. For example, attack becomes
DWWDFN, where plaintext will be given in lower case letters, and ciphertext in upper case letters.
وهكداE بحرفb وحرف،D بحرفa الى الحرف االصلي فيستبدل حرف3 وفي خوارزمية قيصر يتم استبدال الحرف بزيادة
DWWDFN الىattack حيث تصبح الكلمة
A generalization of the Caesar cipher allows the ciphertext alphabet to be shifted by k letters,
instead of 3. In this case k becomes a key to the general method of circularly shifted alphabets.
في. احرف3 بدالً ِم ْن، احرفk لكي يتم ازاحتها بعددciphertext َيسْم ُح ألبجدي ِةCaesar cipher القيصر
َ ان تعميم خوارزمية
. يُصب ُح مفتاح الطريق ِة العا ّم ِة الزاحة األبجدياتَ بشكل دائريk هذه الحال ِة
Monoalphabetic substitution استبدال احادي االبجدية
The next improvement is to have each of the symbols in the plaintext, (the 26 letters for simplicity),
map onto some other letter. يتم استبدال كل حرف في النص االصلي بحرف اخر بشكل عشوائي كما في المثال ادناه
plaintext: a b c d e f g h i j k l m n o p q r s t u v w x y z
ciphertext: Q W E R T Y U I O P A S D F G H J K L Z X C V B N M
َ حرف يُقاب ُل األبجدية26 ِ حيث يكون المفتاح، a monoalphabetic substitution الرمز يُ ْد َعى
ِ للرمز بدل
ِ النظام العا َّم
َ ّ
إن
.ciphertext= QZZQEA ُتحو ُل إلى
ّ سي َ plaintext =attack فان، ووفقا للمفتاحِ اعاله.َالكاملة
The general system of symbol-for-symbol substitution is called a monoalphabetic substitution, with
the key being the 26-letter string corresponding to the full alphabet. For the key above, the plaintext
attack would be transformed into the ciphertext QZZQEA.
The basic attack takes advantage of the statistical properties of natural languages. In English, for
example, e is the most common letter, followed by t, o, a, n, i, etc. The most common two-letter
combinations, or digrams, are th, in, er, re, and an. The most common three-letter combinations, or
trigrams, are the, ing, and, and ion.
.هناك هجوم يعتمد على الخصائص االحصائية للغات الطبيعية حيث يعتمد على مدى تكرار بعض الحروف في الكلمات
Transposition Ciphers خوارزمية التنقيل
Transposition ciphers reorder the letters but do not disguise them. Figure 8-3 shows a common
transposition cipher, the columnar transposition. The cipher is keyed by a word or phrase not
containing any repeated letters. In this example, MEGABUCK is the key.
تقوم خوا رزمية التنقيل على اعادة ترتيب الحروف في النص المشفر بدون اخفائها حيث يتكون مفتاح التشفير من كلمة او عبارة ال
يتم كتابة النص االصلي افقيا في. ويستخدم المفتاح لترقيم االعمدة في المصفوفة بشكل تصاعدي.تحتوي على احرف مكررة
.الصفوف لتعبئة المصفوفة ويتم الحصول على النص المشفر بقراءة االعمدة بشكل تصاعدي حسب ارقامها
The purpose of the key is to number the columns, column 1 being under the key letter closest to the
start of the alphabet, and so on. The plaintext is written horizontally, in rows, padded to fill the
matrix if need be. The ciphertext is read out by columns, starting with the column whose key letter
is the lowest.
للتشفير ولفتح
ِ المفتاح
ِ ت المتماثل ِة ألناو المتناظرة حيث يتم إستعمال نفس ِ سها تس ّمى الخوارزميا
ُ س َندْر
َ تشفير التي
ِ ِ اِ ْن خوارزميا
ت ال
.2-8 التشفير كما هو موضح في الشكل
.n bit مكون منciphertext.حولُها باستخدام المفتا َح إلى ّ ُ وتn bit مكونة منplaintext كتلةBlock cipher ُت َأْخذ
.) (للسرع ِة) أَو باستخدام البرامجِ (للمرون ِةhardware الخوارزميات المشفّرة ي ُْم ِكنُ أَ ْن تُطبّقَ في باستخدام
Simplified Data Encryption Standard (S-DES) Overview معيار تشفير البيانات المبسط
Figure G.1 illustrates the overall structure of the simplified DES,(S-DES). The S-DES encryption
algorithm takes an 8-bit block of plaintext (example: 10111101) and a 10-bit key as input and
produces an 8-bit block of ciphertext as output. The S-DES decryption algorithm takes an 8-bit
block of ciphertext and the same 10-bit key used to produce that ciphertext as input and produces
the original 8-bit block of plaintext.
plaintext َ كتلةS-DES encryption حيث تاخد الخوارزمية، ال ُم َبسَّطS-DES التركيب العا َّم لخوارزمية َ G.1 يوضح الشكل
كما تاخد. كمخرج8 bit مكونة منciphertext َ كمدخالت وتُنت ُج كتلة10 bit ) ومفتاح10111101 : (مثال8 bit مكونة من
كمدخالت10 bit ) ونفس مفتاح10111101 : (مثال8 bit مكونة منciphertext َ كتلةS-DES Decryption الخوارزمية
. كمخرج8 bit االصلية مكونة منplaintext َوتُنت ُج كتلة
التي تتض ّمنُ كلتا عمليات،fK )؛ دالة معقّدة تسمىIP( ) تبديل أولي للمواقع (تقليب:وظائف َ التشفير خمس
َ ُت َتض ّمنُ خوارزمية
fK ت اليمين واليسار؛ الوظيفة ِ ) نصفان البياناSW( ب بسيط ِة التي تبدل ِ والتقليب وت َعتمدُ على مفتاح كمدخل ؛ و وظيفة تقلي َ التبدي َل
.ِ ب األولي
ِ ب التي هي عكس التقلي ِ ثانيةً؛ وأخيرا ً وظيفة تقلي
ّ .G. 1 ) كما هو موضح في الشكلsubkeys (إثنان8 bit الذي يتم منه انشاء مفتاحين فرعيين من10 bit مفتاح
إن المفتا َح
ب الذي ِ التغيير واالزاحة يَ ْمر من خال ِل وظيفة تقلي
َ ناتج عملي ِة.تغيير وازاحة الى اليسار ِ ث ّم عملية.)P10( ض ُع أوالً إلى تقليب َ يُخ
اآلخر والحال ِة
ِ التغيير
ِ التغيير واالزاحة أيضا ً إلى
َ كما َيغذّي نات ُج عملي ِة.)K1( ) للمفتاحِ الثانوي ِ األو ِلP8( 8 bit يُنت ُج نات َج
.)K2( ِ إل ْنتاج المفتاحِ الثانوي ِ الثانيP8 األخرى
The encryption algorithm involves five functions: an initial permutation (IP); a complex function
labeled fK, which involves both permutation and substitution operations and depends on a key input;
a simple permutation function that switches (SW) the two halves of the data; the function f K again;
and finally a permutation function that is the inverse of the initial permutation
A 10-bit key from which two 8-bit subkeys are generated, as shown in Figure G.1. The key is first
subjected to a permutation (P10). Then a shift operation is performed. The output of the shift
operation passes through a permutation function that produces an 8-bit output (P8) for the first
subkey (K1). The output of the shift operation also feeds into another shift and another instance of
P8 to produce the second subkey (K2).
Key generation of S-DES
For example, if the next byte generated by the generator is 01101100 and the next plaintext byte is
11001100, then the resulting ciphertext byte is
/* Initialization */
for i = 0 to 255 do
S[i] = i;
T[i] = K[i mod keylen];
Next we use T to produce the initial permutation of S. This involves starting with S[0] and going
through to S[255], and, for each S [i], swapping S [i] with another byte in S according to a scheme
dictated by T[i]:
/* Initial Permutation of S */
j = 0;
for i = 0 to 255 do
j = (j + S[i] + T[i]) mod 256;
Swap (S[i], S[j]);
Because the only operation on S is a swap, the only effect is a permutation. S still contains all the
numbers from 0 through 255.
STREAM GENERATION
Once the S vector is initialized, the input key is no longer used. Stream generation involves cycling
through all the elements of S [i], and, for each S [i], swapping S [i] with another byte in S according
to a scheme dictated by the current configuration of S. After S[255] is reached, the process
continues, starting over again at S[0]:
/* Stream Generation */
i, j = 0;
while (true)
i = (i + 1) mod 256;
j = (j + S[i]) mod 256;
Swap (S[i], S[j]);
t = (S[i] + S[j]) mod 256;
k = S[t];
To encrypt, XOR the value k with the next byte of plaintext. To decrypt, XOR the value k with the
next byte of ciphertext.