SlideShare ist ein Scribd-Unternehmen logo
1 von 39
Downloaden Sie, um offline zu lesen
Information Safe
              Confidentiality
                 Asymmetric cipher
Van Hoang Nguyen
Mail: startnewday85@gmail.com
Department of Computer Science
Faculty 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 trong
mã 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 – key
distribution 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ệm
Thomas J.Watson của IBM, Diffie được biết Martin
Hellman - Một người cũng quan tâm tới vấn đề phân
phố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ìm
kiế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ập
nhó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óa
cũ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ân
phối khóa tại The National Computer Conference vào
tháng 6 năm 1976, và đã gây phấn khích mạnh trong
cộ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 Bell
Telephone, ô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 được
xuấ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 khai
cũ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ào
tí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óa
khóa công khai thường phải thao tác trên các con số khá lớn để đảm bảo
vấ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ục
vụ cho các ứng dụng đặc biệt.
RSA
Public-key encryption
RSA Public-key encrytion




      Shamir   Rivest   Adleman
RSA Public-key encrytion
• Được sáng tạo bởi Rivest, Shamir và Adleman ở MIT
vào năm 1977.

• Là mã công khai được biết đến nhiều nhất và sử dụng
rộ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ên
modulo 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ư trung
hoa để giải mã cho nhanh.
Một số khía cạnh
   tính toán
Mã hiệu quả
 Efficient Encryption




C=Me       mod n
Mã hiệu quả
  Efficient Encryption



Tí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 Encryption




C=me       mod n
Mã hiệu quả
  Efficient Encryption



Lựa chọn e như thế nào?
Mã hiệu quả
    Efficient Encryption
Lựa chọn e như thế nào?
• Nếu chọn e nhỏ thì quá trình mã hóa nhanh
hơ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 hay
65537(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 Decryption



m=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ất
tiện lợi.

• Tuy nhiên cũng giống như e, d nhỏ thì RSA
trở 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ếu
biế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 RSA
Cá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 đều
tươ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 gian
má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 RSA
mà 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ày
sang 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ọn
trước.
• Kẻ tấn công chọn bản mã và đoán bản rõ được
giải mã.

• Chọn bản mã để khám phá RSA cung cấp thông
tin để 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ản
xứng(OASP).

Weitere ähnliche Inhalte

Ähnlich wie Modern asymmetric cipher

Copy (2) of khái niệm về thương mại điện tử
Copy (2) of khái niệm về thương mại điện tửCopy (2) of khái niệm về thương mại điện tử
Copy (2) of khái niệm về thương mại điện tửLợn Tex
 
Khái niệm về thương mại điện tử
Khái niệm về thương mại điện tửKhái niệm về thương mại điện tử
Khái niệm về thương mại điện tửLợn Tex
 
B4-Ma hoa khoa cong khai.ppt
B4-Ma hoa khoa cong khai.pptB4-Ma hoa khoa cong khai.ppt
B4-Ma hoa khoa cong khai.pptKhnhH59
 
Slide_Chữ ký điện tử của chaum van antwerpen
Slide_Chữ ký điện tử của chaum van antwerpenSlide_Chữ ký điện tử của chaum van antwerpen
Slide_Chữ ký điện tử của chaum van antwerpenTai Tran
 
Tổng hợp các tài liệu cryptography thuat toan ma hoa
Tổng hợp các tài liệu cryptography  thuat toan ma hoaTổng hợp các tài liệu cryptography  thuat toan ma hoa
Tổng hợp các tài liệu cryptography thuat toan ma hoaHoi Nguyen
 
Modern block cipher
Modern block cipherModern block cipher
Modern block cipherHoang Nguyen
 
Chuong 5 - Ma hoa khoa Bat doi xung.pdf
Chuong 5 - Ma hoa khoa Bat doi xung.pdfChuong 5 - Ma hoa khoa Bat doi xung.pdf
Chuong 5 - Ma hoa khoa Bat doi xung.pdfDuyNguyn856183
 

Ähnlich wie Modern asymmetric cipher (15)

Copy (2) of khái niệm về thương mại điện tử
Copy (2) of khái niệm về thương mại điện tửCopy (2) of khái niệm về thương mại điện tử
Copy (2) of khái niệm về thương mại điện tử
 
Khái niệm về thương mại điện tử
Khái niệm về thương mại điện tửKhái niệm về thương mại điện tử
Khái niệm về thương mại điện tử
 
B4-Ma hoa khoa cong khai.ppt
B4-Ma hoa khoa cong khai.pptB4-Ma hoa khoa cong khai.ppt
B4-Ma hoa khoa cong khai.ppt
 
Slide_Chữ ký điện tử của chaum van antwerpen
Slide_Chữ ký điện tử của chaum van antwerpenSlide_Chữ ký điện tử của chaum van antwerpen
Slide_Chữ ký điện tử của chaum van antwerpen
 
Tổng hợp các tài liệu cryptography thuat toan ma hoa
Tổng hợp các tài liệu cryptography  thuat toan ma hoaTổng hợp các tài liệu cryptography  thuat toan ma hoa
Tổng hợp các tài liệu cryptography thuat toan ma hoa
 
01 ma hoa
01 ma hoa01 ma hoa
01 ma hoa
 
Luận văn: Đề xuất thuật toán mã hóa văn bản có độ bảo mật cao
Luận văn: Đề xuất thuật toán mã hóa văn bản có độ bảo mật caoLuận văn: Đề xuất thuật toán mã hóa văn bản có độ bảo mật cao
Luận văn: Đề xuất thuật toán mã hóa văn bản có độ bảo mật cao
 
Luận văn: Thuật toán mã hóa văn bản có độ bảo mật cao, HOT
Luận văn: Thuật toán mã hóa văn bản có độ bảo mật cao, HOTLuận văn: Thuật toán mã hóa văn bản có độ bảo mật cao, HOT
Luận văn: Thuật toán mã hóa văn bản có độ bảo mật cao, HOT
 
Luận văn: Ứng dụng mã xyclic cục bộ xây dựng hệ mật, HAY
Luận văn: Ứng dụng mã xyclic cục bộ xây dựng hệ mật, HAYLuận văn: Ứng dụng mã xyclic cục bộ xây dựng hệ mật, HAY
Luận văn: Ứng dụng mã xyclic cục bộ xây dựng hệ mật, HAY
 
Ma hoa.pdf
Ma hoa.pdfMa hoa.pdf
Ma hoa.pdf
 
Modern block cipher
Modern block cipherModern block cipher
Modern block cipher
 
Nhóm 15.pptx
Nhóm 15.pptxNhóm 15.pptx
Nhóm 15.pptx
 
Integrity
IntegrityIntegrity
Integrity
 
Chuong 5 - Ma hoa khoa Bat doi xung.pdf
Chuong 5 - Ma hoa khoa Bat doi xung.pdfChuong 5 - Ma hoa khoa Bat doi xung.pdf
Chuong 5 - Ma hoa khoa Bat doi xung.pdf
 
Hệ mật mã Mekle-Hellman
Hệ mật mã Mekle-HellmanHệ mật mã Mekle-Hellman
Hệ mật mã Mekle-Hellman
 

Mehr von Hoang Nguyen

GANs and Applications
GANs and ApplicationsGANs and Applications
GANs and ApplicationsHoang Nguyen
 
Scrum - An introduction
Scrum - An introductionScrum - An introduction
Scrum - An introductionHoang Nguyen
 
Introduction to Cross-platform App Development
Introduction to Cross-platform App DevelopmentIntroduction to Cross-platform App Development
Introduction to Cross-platform App DevelopmentHoang Nguyen
 
Conistency of random forests
Conistency of random forestsConistency of random forests
Conistency of random forestsHoang Nguyen
 
Trust - Digital Signature
Trust - Digital SignatureTrust - Digital Signature
Trust - Digital SignatureHoang Nguyen
 
SOME SECURITY CHALLENGES IN CLOUD COMPUTING
SOME SECURITY CHALLENGES  IN CLOUD COMPUTINGSOME SECURITY CHALLENGES  IN CLOUD COMPUTING
SOME SECURITY CHALLENGES IN CLOUD COMPUTINGHoang Nguyen
 
Information, Data and Decision Making
Information, Data and Decision MakingInformation, Data and Decision Making
Information, Data and Decision MakingHoang Nguyen
 
Multiple processor systems
Multiple processor systemsMultiple processor systems
Multiple processor systemsHoang Nguyen
 
Multiprocessor Systems
Multiprocessor SystemsMultiprocessor Systems
Multiprocessor SystemsHoang Nguyen
 
Introduction to AOS course
Introduction to AOS courseIntroduction to AOS course
Introduction to AOS courseHoang Nguyen
 
Background Knowledge
Background KnowledgeBackground Knowledge
Background KnowledgeHoang Nguyen
 
Introduction to Information Security Course
Introduction to Information Security CourseIntroduction to Information Security Course
Introduction to Information Security CourseHoang Nguyen
 
Introduction to CNS Course
Introduction to CNS CourseIntroduction to CNS Course
Introduction to CNS CourseHoang Nguyen
 

Mehr von Hoang Nguyen (20)

GANs and Applications
GANs and ApplicationsGANs and Applications
GANs and Applications
 
Scrum - An introduction
Scrum - An introductionScrum - An introduction
Scrum - An introduction
 
ORM in Django
ORM in DjangoORM in Django
ORM in Django
 
Introduction to Cross-platform App Development
Introduction to Cross-platform App DevelopmentIntroduction to Cross-platform App Development
Introduction to Cross-platform App Development
 
Conistency of random forests
Conistency of random forestsConistency of random forests
Conistency of random forests
 
Trust - Digital Signature
Trust - Digital SignatureTrust - Digital Signature
Trust - Digital Signature
 
Key Exchange
Key ExchangeKey Exchange
Key Exchange
 
SOME SECURITY CHALLENGES IN CLOUD COMPUTING
SOME SECURITY CHALLENGES  IN CLOUD COMPUTINGSOME SECURITY CHALLENGES  IN CLOUD COMPUTING
SOME SECURITY CHALLENGES IN CLOUD COMPUTING
 
Stream ciphers
Stream ciphersStream ciphers
Stream ciphers
 
Classical ciphers
Classical ciphersClassical ciphers
Classical ciphers
 
Confidentiality
ConfidentialityConfidentiality
Confidentiality
 
Information, Data and Decision Making
Information, Data and Decision MakingInformation, Data and Decision Making
Information, Data and Decision Making
 
Multiple processor systems
Multiple processor systemsMultiple processor systems
Multiple processor systems
 
Multiprocessor Systems
Multiprocessor SystemsMultiprocessor Systems
Multiprocessor Systems
 
Introduction to AOS course
Introduction to AOS courseIntroduction to AOS course
Introduction to AOS course
 
Background Knowledge
Background KnowledgeBackground Knowledge
Background Knowledge
 
Introduction to Information Security Course
Introduction to Information Security CourseIntroduction to Information Security Course
Introduction to Information Security Course
 
Introduction to CNS Course
Introduction to CNS CourseIntroduction to CNS Course
Introduction to CNS Course
 
Dynamic Testing
Dynamic TestingDynamic Testing
Dynamic Testing
 
Nosql intro
Nosql introNosql intro
Nosql intro
 

Modern asymmetric cipher

  • 1. Information Safe Confidentiality Asymmetric cipher Van Hoang Nguyen Mail: startnewday85@gmail.com Department of Computer Science Faculty of Information Technology – Hanoi University of Agriculture.
  • 2. Confidentiality • Steganography • Cryptography - Symmetric Ciphers - Asymmetric Ciphers
  • 3. 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 trong mã 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 – key distribution 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
  • 4. 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.
  • 5. 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.
  • 6. 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.
  • 7. 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ệm Thomas J.Watson của IBM, Diffie được biết Martin Hellman - Một người cũng quan tâm tới vấn đề phân phố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ìm kiế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ập nhóm.
  • 8. 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.
  • 9. 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óa cũ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ân phối khóa tại The National Computer Conference vào tháng 6 năm 1976, và đã gây phấn khích mạnh trong cộ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.
  • 10. 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.
  • 11. 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.
  • 12. Lược đồ mã hóa khóa công khai
  • 13. 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 Bell Telephone, ô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 được xuất bản nó.
  • 14. 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.
  • 15. 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 khai cũ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ào tí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óa khóa công khai thường phải thao tác trên các con số khá lớn để đảm bảo vấ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.
  • 16. Ứ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ục vụ cho các ứng dụng đặc biệt.
  • 18. RSA Public-key encrytion Shamir Rivest Adleman
  • 19. RSA Public-key encrytion • Được sáng tạo bởi Rivest, Shamir và Adleman ở MIT vào năm 1977. • Là mã công khai được biết đến nhiều nhất và sử dụng rộ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ên modulo 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.
  • 20. 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}
  • 21. 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.
  • 22. 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
  • 23. 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}.
  • 24. 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ư trung hoa để giải mã cho nhanh.
  • 25. Một số khía cạnh tính toán
  • 26. Mã hiệu quả Efficient Encryption C=Me mod n
  • 27. Mã hiệu quả Efficient Encryption Tính ac mod n?
  • 28. 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;
  • 29. Mã hiệu quả Efficient Encryption C=me mod n
  • 30. Mã hiệu quả Efficient Encryption Lựa chọn e như thế nào?
  • 31. Mã hiệu quả Efficient Encryption Lựa chọn e như thế nào? • Nếu chọn e nhỏ thì quá trình mã hóa nhanh hơ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 hay 65537(216+1).
  • 32. 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
  • 33. Giải mã hiệu quả Efficient Decryption m=c d mod n với e.d ≡ 1 mod Ø(n)
  • 34. Giải mã hiệu quả Efficient Decryption • Với d nhỏ thì quá trình giải mã rõ ràng rất tiện lợi. • Tuy nhiên cũng giống như e, d nhỏ thì RSA trở 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.
  • 35. 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ếu biế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.
  • 36. Tính an toàn của RSA Cá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.
  • 37. 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 đều tươ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.
  • 38. 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 gian má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 RSA mà 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ày sang số khác.
  • 39. 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ọn trước. • Kẻ tấn công chọn bản mã và đoán bản rõ được giải mã. • Chọn bản mã để khám phá RSA cung cấp thông tin để 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ản xứng(OASP).