K i

advertisement
‫مروري برالگوريتمهاي رمز متقارن(كليد پنهان)‬
‫علی فانیان‬
‫‪a.fanian@cc.iut.ac.ir‬‬
‫فهرست مطالب‬
‫• معماري اليه اي امنيت‬
‫• اصول الگوريتمهاي رمزنگاري‬
‫• انواع الگوريتمهاي رمز متقارن(كليد پنهان)‬
‫• الگوريتمهاي رمزنگاري قالبي‬
‫• نحوه هاي بکارگيري رمزهاي قطعه اي‬
‫فهرست مطالب‬
‫• معماري اليه اي امنيت‬
‫• اصول الگوريتمهاي رمزنگاري‬
‫• انواع الگوريتمهاي رمز متقارن(كليد پنهان)‬
‫• الگوريتمهاي رمزنگاري قالبي‬
‫• نحوه هاي بکارگيري رمزهاي قطعه اي‬
‫معماري اليه اي امنيت‬
‫كاربرد امنيتي‬
‫پروتكل امنيتي‬
‫الگوريتم ها‬
‫فهرست مطالب‬
‫• معماري اليه اي امنيت‬
‫• اصول الگوريتمهاي رمزنگاري‬
‫• انواع الگوريتمهاي رمز متقارن(كليد پنهان)‬
‫• الگوريتمهاي رمزنگاري قالبي‬
‫• نحوه هاي بکارگيري رمزهاي قطعه اي‬
Terminology
plaintext, cleartext: an “unhidden message”
encrypt: transform a message to hide its meaning
ciphertext: encrypted message
cipher: cryptographic algorithm
decrypt: recover meaning from encrypted message
cryptography: art/science of keeping message secure
cryptanalysis: art/science of breaking ciphertext
cryptology: study of both cryptography and cryptanalysis
Encryption and Decryption
plaintext, cleartext
ciphertext
Encryption
Method
Decryption
Method
ciphertext
plaintext, cleartext
Common Mathematical Symbols
P plaintext (here is a binary value)
C ciphertext (also binary)
E encryption function
D decryption function
E(P) = C
encrypting plaintext yields ciphertext
D(C) = P
decrypting ciphertext yields plaintext
D(E(P)) = P decrypting encrypted
plaintext yields plaintext
Restricted Algorithm
The security of a restricted algorithm requires
keeping the algorithm secret!
Simple Restricted Algorithm
Encryption algorithm
Multiply the plaintext by 2
Decryption algorithm
Divide the ciphertext by 2
plaintext = SECRET = 19 5 3 18 5 20
Ciphertext = 38 10 6 35 10 40
Key-Based Algorithm
The security of key-based algorithms is
based on the secrecy of the algorithm, the
key(s), or both
Simple Key-Based Algorithm
Encryption algorithm
Multiply the plaintext by 2 and add key
Decryption algorithm
Subtract the key and divide the ciphertext by 2
plaintext = SECRET = 19 5 3 18 5 20
Key = 3
Ciphertext = 41 13 9 39 13 43
Secret (Symmetric) Key Algorithms
Decryption key = encryption key
Key agreed in advance between parties
Key kept secret
Like a locked room
Need the key to lock up document
Need the key to unlock room and get document
Public (Asymmetric) Key Algorithms
Encryption and decryption keys are different
Encryption key is public (usually)
Decryption key is private
One key locks, the other unlocks
Symmetric Key Algorithms
Exchanging Messages with
Symmetric Cryptography
Alice
Agree on cryptosystem
plaintext
Agree on key
Bob
key
cipher text
CS
key
CS
plaintext
Crypto-Attacks
 Adversary goal to break cryptosystem
 Assume adversary knows algorithm, but not key
 two general approaches to attacking a
conventional encryption scheme
 Cryptanalysis : rely on the nature of the
algorithm plus perhaps some knowledge of the
general characteristics of the plaintext or even
some sample plaintext–ciphertext pairs
 Brute-force attack : The attacker tries every
possible key on a piece of ciphertext until an
intelligible translation into plaintext is obtained
Crypto-Attacks
 3 types of attacks:
• ciphertext only:
adversary has ciphertext; goal to find plaintext and key
• known plaintext:
adversary has ciphertext, corresponding plaintext; goal to find key
• Chosen Text
• Plaintext message chosen by cryptanalyst, together with its
corresponding ciphertext generated with the secret key
• Ciphertext chosen by cryptanalyst, together with its corresponding
decrypted plaintext generated with the secret key
Crypto-Attacks
 Two definitions are worthy of note.
 unconditionally secure
 no matter how much ciphertext is available
 no matter how much time an opponent has
 it is impossible for opponent to decrypt the
ciphertext
 there is no encryption algorithm that is
unconditionally secure exception of a scheme
known as the one-time pad
 computationally secure
 The cost of breaking the cipher exceeds the
value of the encrypted information.
 The time required to break the cipher exceeds
the useful lifetime of the information.
Crypto-Attacks
‫فهرست مطالب‬
‫• معماري اليه اي امنيت‬
‫• اصول الگوريتمهاي رمزنگاري‬
‫• انواع الگوريتمهاي رمز متقارن(كليد پنهان)‬
‫• الگوريتمهاي رمزنگاري قالبي‬
‫• نحوه هاي بکارگيري رمزهاي قطعه اي‬
‫انواع الگوريتمهاي رمز متقارن‬
‫الگوريتمهاي رمز متقارن بر دو دسته اند‪:‬‬
‫• رمزهاي قالبي يا قطعه اي )‪(Block Cipher‬‬
‫– پردازش پيغام ها بصورت قطعه به قطعه‬
‫– اندازه متعارف قطعات ‪ 128 ،64‬يا ‪ 256‬بيت‬
‫• رمزهاي پي در پي يا دنباله اي )‪(Stream Cipher‬‬
‫– پردازش پيغام ها بصورت پيوسته (بدون تقطيع)‬
‫رمز قطعه اي‬
‫متن واضح (تقسيم شده به قطعات)‬
‫‪K‬‬
‫‪K‬‬
‫‪K‬‬
‫‪K‬‬
‫قطعات خروجي‬
‫‪K‬‬
‫‪K‬‬
‫‪K‬‬
‫رمز دنباله اي‬
‫مولد دنباله‬
‫شبه تصادفي‬
‫‪Ci‬‬
‫‪+‬‬
‫(الف)‬
‫مولد دنباله‬
‫شبه تصادفي‬
‫‪K‬‬
‫‪Pi‬‬
‫‪Pi‬‬
‫‪+‬‬
‫(ب )‬
‫‪K‬‬
‫‪Ci‬‬
‫تابع رمزنگاري کامل(‪)One-Time Pad‬‬
‫•‬
‫ايده ‪ :‬براي رمزکردن يک داده به طول ‪ n‬کليدي به طول ‪ n‬هزينه کنيم‪.‬‬
‫‪Ki‬‬
‫‪Ci‬‬
‫•‬
‫يعني داشتن هر تعداد متن نمونه رمزشده کمکي به تحليلگر نمي کند‪.‬‬
‫•‬
‫امنيت اين روش به تصادفي بودن کليد بستگي دارد‪.‬‬
‫–‬
‫در صورت تصادفي بودن کليد امنيت الگوريتم غير قابل شكست است‪.‬‬
‫‪+‬‬
‫‪Pi‬‬
‫رمز دنباله اي‬
:‫چند الگوريتم نمونه‬
-Physical processes
-LSFR ( Linear Feedback Shift Register )
-BBS( Blum-Blum-Shub)
Linear Feedback Shift Register
Linear shift feedback register with 4 bit register
‫فهرست مطالب‬
‫• معماري اليه اي امنيت‬
‫• اصول الگوريتمهاي رمزنگاري‬
‫• انواع الگوريتمهاي رمز متقارن(كليد پنهان)‬
‫• الگوريتمهاي رمزنگاري قالبي‬
‫• نحوه هاي بکارگيري رمزهاي قطعه اي‬
‫اصول رمزهاي قطعه اي‬
‫• نگاشت قطعات متن واضح به قطعات متن رمزشده بايد‬
‫برگشت پذير (يك به يك) باشد‪.‬‬
‫• الگوريتم قطعات ورودي را در چند مرحله ساده و متوالي‬
‫پردازش ميکند‪ .‬به اين مراحل دور ميگوييم‪.‬‬
‫ً‬
‫• هر دور عموما مبتني بر تركيب اعمال ساده ايي همچون‬
‫جايگزيني و جايگشت استوار است‪.‬‬
‫دو بلوک پايه براي عمليات رمز گذاري‬
‫• جانشيني ‪Substitution‬‬
‫• جایگيزینی یک سمبل با سمبل دیگر‬
‫• ممکن است هم طول نباشند‬
‫• جابگشت ‪Permutation‬‬
‫• ترتيب قرار گرفتن حروف در متن اصلي جابجا ميشود‬
‫استانداردهاي رمزهاي قطعه اي آمريکا ‪:‬‬
‫• رمزهاي قطعه اي استاندارد‬
‫– استاندارد رمزگذاري داده ‪DES‬‬
‫– استاندارد رمزگذاري پيشرفته ‪AES‬‬
‫• تحت نظارت‬
‫)‪National Institute of Science and Technology (NIST‬‬
‫استاندارد رمزگذاري داده ‪DES‬‬
‫•‬
‫مرور‬
‫–‬
‫–‬
‫–‬
‫–‬
‫–‬
‫در سال ‪ 1974‬توسط ‪ IBM‬توليد شد‬
‫• پس از انجام تغييراتي توسط ‪National Security ( NSA‬‬
‫‪ ، )Agency‬در سال ‪ NIST 1976‬آن را پذيرفت‪.‬‬
‫اساس الگوريتم تركيبي از عمليات جانشيني و جايگشتي ميباشد‪.‬‬
‫مشخصات‪:‬‬
‫• طول كليد ‪ 56‬بيت‬
‫• طول قالبهاي ورودي و خروجي ‪ 64 :‬بيت‬
‫• تعداد دورها‪ 16 :‬دور‬
‫الگوريتمهاي رمزگذاري و رمزگشايي عمومي هستند‪ ,‬ولي مباني رياض ي و اصول‬
‫طراحي آنها فاش نشد‪.‬‬
‫در گذشته بسيار پر استفاده بود و هنوز هم از رده خارج نشده است‪.‬‬
‫استاندارد رمزگذاري داده‪DES‬‬
Initial and final permutation steps in DES
DES uses 16 rounds.
A round in DES
(encryption site)
DES Function
The heart of DES is the DES function. The DES function
applies a 48-bit key to the rightmost 32 bits to produce a
32-bit output.
DES function
Expansion P-box
Since RI−1 is a 32-bit input and KI is a 48-bit key, we first
need to expand RI−1 to 48 bits.
Expansion permutation
S-Boxes
The S-boxes do the real mixing (confusion). DES uses 8
S-boxes, each with a 6-bit input and a 4-bit output.
S-boxes
S-box rule
DES cipher and reverse cipher for the first approach
‫‪ DES‬بايد از رده خارج شود‬
‫• در ژانويه ‪ 1999‬اين الگوريتم توسط حمله جستجوي جامع‬
‫فضاي کليد در ‪ 23‬ساعت شکسته شد!‬
‫– بيش از ‪ 1000‬کامپيوتر بر روي اينترنت هر يک بخش کوچکي از کار‬
‫جستجو را انجام دادند‪.‬‬
‫• به الگوريتمهاي امن تر با طول کليد باالتر نياز داريم‪.‬‬
‫• ‪ DES‬طراحي شفاف و روشن ندارد‪.‬‬
‫‪2DES and 3DES‬‬
‫• مسئله ‪:‬‬
‫– آسيب پذيري ‪ DES‬در مقابل حمله آزمون جستجوي كامل‬
‫• راه حل ‪:‬‬
‫– استفاده از الگوريتم هاي رمزنگاري ديگر‬
‫– پيچيده كردن الگوريتم ‪ DES‬از طريق اضافه كردن مراحل رمزنگاري و‬
‫افزايش طول كليد‬
2DES
A pair of semi-weak keys in encryption and decryption
Meet-in-the-Middle Attack
However, using a known-plaintext attack called meet-inthe-middle attack proves that double DES improves this
vulnerability slightly (to 257 tests), but not tremendously
(to 2112).
Continued
Tables for meet-in-the-middle attack
6.45
‫‪3DES‬‬
‫• استفاده از الگوريتم ‪3DES‬‬
‫– از دو مرحله رمزنگاري و يك مرحله رمزگشايي با سه كليد مجزا استفاده مي‬
‫شود‬
‫– فضاي كليد به ‪ 168‬بيت گسترش مي يابد‬
‫– در صورت استفاده از يك كليد يكسان‪ 3DES،‬با ‪ DES‬مطابقت مي كند‬
‫– نسبت به الگوريتمهاي ديگر مانند ‪ Blowfish‬و ‪ RC5‬سرعت كمتري‬
‫دارد‬
‫– تا كنون حمله اي عليه آن گزارش نشده است‬
Triple DES with two keys
‫استاندارد رمزگذاري پيشرفته ‪AES‬‬
‫•‬
‫‪ NIST‬در سال ‪ 1997‬مسابقه اي دو مرحله اي براي طراحي استاندارد‬
‫جديد برگزار کرد‪.‬‬
‫ً‬
‫و‬
‫– تمام طراحي ها بايد بر اساس اصول کامال ر شن انجام شوند‪.‬‬
‫•‬
‫در سال ‪ 2000‬رايندال(‪ )Rijndael‬به عنوان برنده اعالم شد‬
‫– استاندارد رمزگذاري پيشرفته ‪AES‬‬
AES ‫فيناليست هاي مسابقه‬
• MARS
• RC6
• Rijndael
!‫منتخب‬
• Serpent
• Twofish
:‫• مقاله زير اطالعات بيشتر درباره مقايسه فيناليست ها ارائه مي دهد‬
A Performance Comparison of the Five AES Finalists
B. Schneier and D. Whiting
‫فهرست مطالب‬
‫• معماري اليه اي امنيت‬
‫• اصول الگوريتمهاي رمزنگاري‬
‫• انواع الگوريتمهاي رمز متقارن(كليد پنهان)‬
‫• الگوريتمهاي رمزنگاري قالبي‬
‫• نحوه هاي بکارگيري رمزهاي قطعه اي‬
‫نحوه هاي بکارگيري رمزهاي قطعه اي‬
• ECB: Electronic Code Book
• CBC: Cipher Block Chaining
• CFB: Cipher Feed Back
• OFB: Output Feed Back
• CTR: CounTeR mode
‫نحوه بكارگيري ‪ECB‬‬
‫• رمز نگاري‪:‬‬
‫‪PN‬‬
‫‪E‬‬
‫‪P2‬‬
‫‪K‬‬
‫‪CN‬‬
‫• رمز گشايي‪:‬‬
‫‪PN‬‬
‫‪K‬‬
‫‪C2‬‬
‫‪CN‬‬
‫‪D‬‬
‫‪E‬‬
‫‪P1‬‬
‫‪C1‬‬
‫‪C2‬‬
‫‪K‬‬
‫‪D‬‬
‫‪P2‬‬
‫‪E‬‬
‫‪K‬‬
‫‪C1‬‬
‫‪K‬‬
‫‪D‬‬
‫‪K‬‬
‫‪P1‬‬
‫• اشکال اساس ي‪ :‬هر متن واضح به ازاء کليد ثابت هميشه به يک متن رمز‬
‫شده نگاشته ميشود‪.‬‬
‫– دشمن ميتواند دريابد که پيامهاي يکسان ارسال شده اند‪.‬‬
CBC ‫نحوه بكارگيري‬
P1
P2
P3
IV
+
+
+
K
E
K
C1
E
K
C2
E
:‫• رمز نگاري‬
PN
…
CN-1
+
K
E
C3
CN-1
:‫• رمز گشايي‬
C1
K
IV
D
C2
K
D
C3
K
CN
D
K
D
CN-1
+
+
+
+
P1
P2
P3
PN
‫مد کاري ‪CBC‬‬
‫• اين مد از يك مقدار دهي اوليه تصادفي )‪(IV‬بهره مي گيرد‬
‫• مقدار ‪IV‬در هر بار رمزگذاري به صورت تصادفي تغيير مي كند‬
‫• بهتر است ‪IV‬نيز رمز شده ارسال گردد‬
‫• هر متن آشكار به ازاء كليد ثابت هر بار به يك متن رمز شده‬
‫متفاوت نگاشته مي شود‬
‫نحوه بكارگيري ‪CBC‬‬
‫•‬
‫ملزومات امنيتي‪:‬‬
‫–‬
‫•‬
‫رمزنگاري‪:‬‬
‫–‬
‫–‬
‫•‬
‫عمليات رمزنگاري قابل موازي سازي نيست‪.‬‬
‫مقدار ‪ IV‬و متن واضح بايد در دسترس باشند‪.‬‬
‫رمزگشايي‪:‬‬
‫–‬
‫–‬
‫•‬
‫ً‬
‫‪ IV‬بايد کامال غير قابل پيش بيني و غير قابل دستكاري باشد‬
‫عمليات رمزگشايي قابل موازي سازي است‪.‬‬
‫مقدار ‪ IV‬و متن رمزشده بايد در دسترس باشند‪.‬‬
‫طول پيام‪:‬‬
‫–‬
‫در برخي موارد ممکن است وادار به افزايش طول پيام بشويم‪.‬‬
‫•‬
‫•‬
‫طول پيام بايد مضربي از طول قطعه باشد‪.‬‬
‫پياده سازي‪:‬‬
‫–‬
‫رمز گشايي و رمز نگاري‪ ،‬هر دو بايد پياده سازي شوند‪.‬‬
CFB ‫نحوه بكارگيري‬
‫• رمز نگاري‬
‫• رمزگشايي‬
initialized with IV
initialized with IV
(s)
(s)
shift register (n)
shift register (n)
(n)
(n)
E
K
E
K
(n)
(n)
select s bits
select s bits
(s)
(s)
Pi
(s)
+
(s)
Ci
Ci
(s)
+
(s)
Pi
OFB ‫نحوه بكارگيري‬
‫• رمز نگاري‬
‫• رمزگشايي‬
initialized with IV
initialized with IV
(s)
shift register (n)
(n)
(n)
E
K
E
K
(n)
(n)
select s bits
select s bits
(s)
(s)
Pi
(s)
+
(s)
shift register (n)
(s)
Ci
Ci
(s)
+
(s)
Pi
‫مقايسه ‪ CFB‬و ‪OFB‬‬
‫• موارد استفاده ‪ CFB‬و ‪OFB‬‬
‫– رمز جرياني‬
‫– کاربردهاي بالدرنگ‬
‫• عيب ‪ : CFB‬انتشار خطاي انتقال‬
‫– ‪ OFB‬اين عيب را برطرف مي کند‬
CTR ‫نحوه بكارگيري‬
‫• رمز نگاري‬
‫• رمزگشايي‬
counter + i
counter + i
(n)
K
(n)
E
K
(n)
Pi
(n)
+
E
(n)
(n)
Ci
Ci
(n)
+
(n)
Pi
‫مقايسه کاربرد انواع مدهاي کاري‬
‫لغت نامه‬
Meet-in-the-Middle
attack
Round
Symmetric Encryption
Scheme
Stream Cipher
Block Cipher
Authentication
‫حمله مالقات در ميانه‬
‫دور‬
Brute Force
(‫رمزهاي قالبي(قطعه اي‬
‫جستجوي كامل‬
AES
‫استاندارد رمزگذاري پيشرفته‬
DES
‫استاندارد رمزگذاري داده‬
‫رمزنگاري متقارن‬
)‫رمزهاي پي درپي(دنباله اي‬
‫احراز اصالت‬
Padding
‫افزايش طول پيام‬
Provable Security
‫امنيت قابل اثبات‬
Symmetric Cipher
‫رمزهاي متقارن‬
Differential
cryptanalysis
Key Schedule
‫زمان بندي کليد‬
linear cryptanalysis
‫تحليل تفاضلي‬
‫تحليل خطي‬
plaintext
‫متن واضح‬
Substitution
‫جانشيني‬
Confidentiality
‫محرمانگي‬
Permutation
‫جايگشت‬
parallelization
‫موازي سازي‬
MAC: Message
authentication code
NSA: National
Security Agency
‫کد احراز اصالت پيام‬
Timing Attack
‫حمله زماني‬
Download