Modern asymmetric cipher
Upcoming SlideShare
Loading in...5
×
 

Modern asymmetric cipher

on

  • 5,370 views

Modern bloc asymmetric ciphers

Modern bloc asymmetric ciphers

Statistics

Views

Total Views
5,370
Views on SlideShare
5,328
Embed Views
42

Actions

Likes
1
Downloads
523
Comments
0

1 Embed 42

http://startnewday85.blogspot.com 42

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

Modern asymmetric cipher Modern asymmetric cipher Presentation Transcript

  • Information Safe Confidentiality Asymmetric cipherVan Hoang NguyenMail: startnewday85@gmail.comDepartment of Computer ScienceFaculty of Information Technology – Hanoi University of Agriculture.
  • Confidentiality• Steganography• Cryptography - Symmetric Ciphers - Asymmetric Ciphers
  • Vấn đề phân phối khóa• Như ta đã biết vấn đề chính yếu tồn tại lâu dài trongmã hóa đối xứng là: Làm như thế nào để trao đổi khóa một cách bí mật giữa những người, những tổ chức mong muốn được trao đổi thông tin với nhau một cách bí mật?• Vấn đề này được gọi là vấn đề phân phối khóa – keydistribution problem Cái khó của vấn đề là tồn tại một nghịch lý giữa sự bí mật và sự công khai
  • Sự xuất hiện của mạng máy tính • Năm 1960, Bộ quốc phòng Mỹ bắt đầu tài trợ cho dự án ARPA. • Năm 1969, ARPANET đã được ra đời. • Năm 1982, thì Internet ra đời.
  • Whitfield Diffie • Whitfield Diffie sinh năm 1944 tại Queens – NewYork. • Lấy bằng cử nhân toán học năm 1965 tại MIT. • Sau đó ông đã làm nhiều việc liên quan tới an ninh máy tính. • Đến năm 1970, ông trở thành cyberpunk đầu tiên. • Ông đặc biệt quan tâm tới vấn đề phân phối khóa. Và sớm nhận ra tầm quan trọng của vấn đề phân phối khóa, đặc biệt khi mạng máy tính ra đời.
  • Martin Hellman • Martin Hellman sinh năm 1945 tại Bronx – NewYork. • Lấy bằng cử nhân khoa học ở NewYork University. • Lấy bằng thạc sĩ và tiến sĩ ở Stanford University. • Làm việc ở IBM’s Watson Research Center những năm 1968-69 và làm Assistant Professor of Electrical Engineering ở MIT những năm 1969-71. • Hiện tại làm giảng viên ở Stanford University.• Ông cũng đặc biệt quan tâm tới vấn đề phân phối khóa.
  • Cuộc hội ngộ của hai thiên tài• Năm 1974, Sau cuộc trò chuyện tại phòng thí nghiệmThomas J.Watson của IBM, Diffie được biết MartinHellman - Một người cũng quan tâm tới vấn đề phânphối khóa như ông.• Ngay tối hôm đó Diffie đã lái xe hơn 5.000 km đểđến gặp Hellman.• Ngay sau buổi nói chuyện đó, Do Hellman không có đủtiền để thuê Diffie như một nghiên cứu viên, nên Diffieđã đăng ký như một nghiên cứu sinh. Công cuộc tìmkiếm giải pháp cho vấn đề phân phối khóa được bắt đầu.Sau đó không lâu thì Ralph C.Merkle cũng ra nhậpnhóm.
  • Ralph C.Merkle • Ralph C.Merkle nhận bằng tiến sĩ năm 1979 tại Stanford University. • Năm 1988, ra nhập Xerox Palo Research Center(PARC) và theo đuổi công nghệ tính toán nano. • Hiện tại là Giáo sư danh dự về tính toán ở Georgia Tech College of Computing và là giám đốc của Georgia Tech Information Security Center. • Hiện tại ông rành nhiều sự quan tâm tới công nghệ nano và đã dành được nhiều giải thưởng trong lĩnh vực này.
  • Giải pháp phân phối khóa• Cuối cùng thì giải pháp cho vấn đề phân phối khóacũng ra đời vào năm 1976. Được gọi là lược đồ trao đổi khóa Diffie-Hellman- Merkle(hay ngắn gọn là Diffie-Hellman). Lược đồ cho phép thiết lập một kênh trao đổi khóa bí mật trên hệ thống công cộng.• Các ông đã công bố những định hướng của vấn đề phânphối khóa tại The National Computer Conference vàotháng 6 năm 1976, và đã gây phấn khích mạnh trongcộng đồng mật mã.• Mặc dù vậy các ông vẫn chưa đưa ra một cài đặt“thực tế” có thể làm việc.
  • Lược đồ trao đổi khóa Diffie – Hellman – Merkle• A và B thống nhất với nhau hai số Y và P: (7,11).• A và B chọn hai số ngẫu nhiên x và z: (3,6).• A tính α=Yx mod P: 73 mod 11 = 2.• B tính β=Yz mod P: 76 mod 11 = 4.• A gửi α cho B và B gửi β cho A.• A tính βx mod P: 43 mod 11=9, B tính αz mod P: 26 mod 11=9.Thật kỳ lạ là A và B đều tính ra số 9. Đó chính là chìa khóa mà A,B sẽsử dụng để trao ttổi thông tin với nhau một cách bí mật.
  • Alice và Bob ra công khai• Diffie đã đưa ra ý tưởng mã hóa khóa công khai(public-key) vào mùa hè năm 1975: - Sử dụng một cặp khóa: một khóa công khai và một khóa riêng bí mật. - Khóa công khai được sử dụng để mã hóa, khóa bí mật được sử dụng để giải mã.• Mặc dù đưa ra ý tưởng, song Diffie chưa đưa rađược một cài đặt thực tế có thể làm việc.
  • Lược đồ mã hóa khóa công khai
  • Alice và Bob ra công khai • James Ellis(1924/25-1997) - Lớn lên ở phía đông thành London những năm 1920. - Nghiên cứu vật lý ở Imperial College London. - Ra nhập Post Office Research Station ở Dollis Hill - Nơi Tommy Flowers đã xây dựng Colossus.- Truyền cảm hứng từ một bài báo không tên của BellTelephone, ông đã tạo ra một ghi nhớ - thể hiện cùng ýtưởng với Diffie, Hellman và Merkle.- Mọi thứ ở GCHQ là top secret, do đó ông không đượcxuất bản nó.
  • Alice và Bob ra công khai• Clifford Cocks và Malcolm Williamson. - Những nhà toán học ở GCHQ đã tiếp nối những công việc của Ellis. - Năm 1973, Cocks đã đưa ra ý tưởng tương tự RSA. Clifford Cocks - Năm 1974, Williamson phát hiện thuật toán tương tự như của Diffie và Hellman. - Mãi đến năm 1997, chính phủ Anh mới xuất bản thông tin về các công việc ở Williamson GCHQ.
  • Tính an toàn của mã hóa Khóa công khai• Cũng như với mã hóa đối xứng, mã hóa khóa công khaicũng luôn phải đương đầu với tấn công vét cạn. Do đótính an toàn của khóa công khai cũng phải dựa trên sốlượng khóa tiềm năng.• Tính an toàn của mã hóa khóa công khai phụ thuộc vàotính khó của những vấn đề tính toán.Do dựa trên tính khó của vấn đề tính toán, nên các thuật toán mã hóakhóa công khai thường phải thao tác trên các con số khá lớn để đảm bảovấn đề tính toán có độ khó đủ để không có lời giải khả thi. Cũng chính vìvậy các thuật toán mã hóa khóa công khai thường chạy chậm.
  • Ứng dụng của mã hóa Khóa công khai• Các ứng dụng với khóa công khai bao gồm 3 loại: - Mã hóa giúp đảm bảo tính bí mật của thông tin. - Làm nền tảng cho chữ ký điện tử. - Được sử dụng để trao đổi khóa.• Một số thuật toán mã hóa khóa công khai chỉ phụcvụ cho các ứng dụng đặc biệt.
  • RSAPublic-key encryption
  • RSA Public-key encrytion Shamir Rivest Adleman
  • RSA Public-key encrytion• Được sáng tạo bởi Rivest, Shamir và Adleman ở MITvào năm 1977.• Là mã công khai được biết đến nhiều nhất và sử dụngrộng rãi nhất.• Dựa trên lũy thừa trên trường hữu hạn các số nguyênmodulo nguyên tố.• Phép lũy thừa cần O((logn)3) phép toán.• Sử dụng các số rất lớn 1024 bits.• Tính an toàn dựa vào độ khó phân tích ra thừa sốcác số lớn. Lũy thừa yêu cầu O(elognloglogn) phép toán.
  • RSA Public-key encrytion• Lược đồ sinh khóa Mỗi người sử dụng sẽ được tạo một RSA publickey và một RSA privatekey tương ứng. Khóa được tạo theo thuật toán sau: Algorithm: Key generation for RSA Sinh ra hai số nguyên tố “lớn” p và q phân biệt và có cỡ gần bằng nhau. Tính n=p.q do đó Ø(n)=(p-1).(q-1) Chọn số ngẫu nhiên e sao cho: 1<e<Ø(n) và gcd(e,Ø(n))=1. Tính số nguyên tố d sao cho: 1<d<Ø(n) và e.d ≡ 1 mod Ø(n). Publickey là PU{e,n} và Privatekey là PR{d,n} hoặc PR{d,p,q}
  • RSA Public-key encrytion• Lược đồ mã hóa: Khi đối tượng B muốn gửi một thông điệp cho đối tượng A. Sau khi đã nhận được khóa công khai(RSA publickey). B sẽ tiến thành mã hóa theo tthuật toán sau: Algorithm: RSA publickey encryption Thi hành việc xác nhận publickey PU{n,e}. Đặc tả thông điệp cần mã hóa như một số nguyên m: m [0,n- 1]. Tính c=me mod n. Gửi c cho A; c chính là ciphertext.
  • RSA Public-key encrytion• Lược đồ giải mã: Khi A nhận được c do B gửi đến. A sẽ thực hiện giải mã thông điệp theo thuật toán sau: Algorithm: RSA publickey decryption m=cd mod n
  • Ví dụ RSA: Key generation• Chọn các số nguyên tố: p=17 và q=11.• Tính n=p.q = 17x11=187.• Tính Ø(n)=(p-1)(q-1) = 16x10=160.• Chọn e: gcd(e,160)=1; lấy e=7.• Xác định d: de≡1 mod 160 và d<160. Giá trị cần tìm là d=13, vì 23x7=161=1x160+1.• Công bố khóa công khai PU={7,187}.• Giữ khóa bí mật PR={23,17,11}.
  • Ví dụ RSA: En/Decryption• Cho mẩu tin m=88.• Mã: c=me mod n = 887 mod 178 = 11.• Giải mã: m=cd mod n = 1123= mod 178 = 88.• Có thể sử dụng định lý phần dư trunghoa để giải mã cho nhanh.
  • Một số khía cạnh tính toán
  • Mã hiệu quả Efficient EncryptionC=Me mod n
  • Mã hiệu quả Efficient EncryptionTính ac mod n?
  • Tính ac mod n?Giả sử: bkbk-1…b1 là biểu diễn trong cơ số 2 của c. Tính ac mod n? c=0; f=1; for i=k downto 1 do BEGIN c=2*c; f=(f*f)mod n; if bi == 1 then BEGIN c=c+1; f=(f*a)mod n END; END; return f;
  • Mã hiệu quả Efficient EncryptionC=me mod n
  • Mã hiệu quả Efficient EncryptionLựa chọn e như thế nào?
  • Mã hiệu quả Efficient EncryptionLựa chọn e như thế nào?• Nếu chọn e nhỏ thì quá trình mã hóa nhanhhơn.• Nên chọn e mà biểu diễn nhị phân của nóchứa ít bit 1. Chẳng hạn như e=3,17 hay65537(216+1).
  • Mã hiệu quả Efficient Encryption • Nhưng e nhỏ thì không an toàn! • Có thể bị tấn công bởi định lý phần dư Trung Hoa.Ví dụ: Với e=3, nếu Alice gửi 3 message cho 3 người khác nhau với n1,n2,n3. Eve có thể: - Có: c1=m3 mod n1 , c2=m3 mod n2, c3=m3 mod n3 - Sử dụng định lý phần dư Trung Hoa để tính: c=m3 mod(n1*n2*n3) - Do m<n1, n2,n3 do đó m3<n1*n2*n3 => Từ đây eve chỉ cần tính căn bậc 3 của m3
  • Giải mã hiệu quả Efficient Decryptionm=c d mod n với e.d ≡ 1 mod Ø(n)
  • Giải mã hiệu quả Efficient Decryption• Với d nhỏ thì quá trình giải mã rõ ràng rấttiện lợi.• Tuy nhiên cũng giống như e, d nhỏ thì RSAtrở nên không an toàn.• Quá trình giải mã thường áp dụng định lýphần dư Trung Hoa để tính toán nhanh hơn.
  • Sinh khóa RSA RSA Key generation• Người sử dụng RSA cần phải: -Xác định ngẫu nhiên 2 số nguyên tố lớn. - Chọn e để tính d.• Các số nguyên tố p,q không dễ suy ra nếubiết tích n=p.q. - Như vậy p và q phải đủ lớn. - p, q thường được đoán và kiểm tra theo nguyên tắc xác suất. - Các số e và d là nghịch đảo của nhau, có thể dùng thuật toán nghịch đảo để tính số này khi biết số kia.
  • Tính an toàn của RSACác phương pháp tấn công: • Tìm kiếm khóa bằng phương pháp vét cạn(không khả thi với kích thước các số đủ lớn). • Tấn công bằng toán học: dựa vào độ khó của việc tính Ø(n) bằng cách phân tích n ra thừa số nguyên tố. • Tấn công thời gian. • Tấn công với bản mã chọn trước.
  • Factoring Problem• Tấn công toán học có 3 dạng: - Phân tích n thành p.q, sau đó tính Ø(n) và d. - Tìm Ø(n) trực tiếp và tính d. - Tìm d trực tiếp.• Hiện tại, ta tin rằng các phương pháp đềutương đương với bài toán phân tích thừa số. - Có các bước tiến chậm theo thời gian. - Hiện tại RSA 1024 và 2048 được cho là an toàn.
  • Timing Attack• Phát triển vào giữa năm 1990.• Paul Kocher chỉ ra rằng kẻ thám mã có thểxác định được khóa riêng nếu theo dõi thời gianmáy tính cần để giải mã các bản tin.• Tấn công thời gian không chỉ áp dụng cho RSAmà cả với các hệ mã công khai khác.• Tấn công thời gian giống như kẻ cướp đoán sựan toàn bằng cách quan sát một người nào đótrong bao lâu chuyển quay điện thoại từ số nàysang số khác.
  • Tấn công bảng mã chọn trước• RSA có điểm yếu với tấn công bảng mã chọntrước.• Kẻ tấn công chọn bản mã và đoán bản rõ đượcgiải mã.• Chọn bản mã để khám phá RSA cung cấp thôngtin để thám mã.• Có thể tính với bộ đệm ngẫu nhiên của bản rõ.• Hoặc sử dụng bộ đệm mã hóa phảnxứng(OASP).