39
Information Safe Confidentiality Van Hoang Nguyen Mail: [email protected] Department of Computer Science Faculty of Information Technology Hanoi University of Agriculture. Asymmetric cipher

Modern asymmetric cipher

Embed Size (px)

DESCRIPTION

Modern bloc asymmetric ciphers

Citation preview

Page 1: Modern asymmetric cipher

Information Safe

Confidentiality

Van Hoang Nguyen

Mail: [email protected]

Department of Computer Science

Faculty of Information Technology – Hanoi University of Agriculture.

Asymmetric cipher

Page 2: Modern asymmetric cipher

Confidentiality

• Steganography

• Cryptography

- Symmetric Ciphers

- Asymmetric Ciphers

Page 3: Modern asymmetric cipher

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ữngngười, những tổ chức mong muốn được trao đổi thông tin vớinhau 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

Page 4: Modern asymmetric cipher

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ợ chodự án ARPA.

• Năm 1969, ARPANET đã được ra đời.

• Năm 1982, thì Internet ra đời.

Page 5: Modern asymmetric cipher

Whitfield Diffie• Whitfield Diffie sinh năm 1944 tạiQueens – NewYork.

• Sau đó ông đã làm nhiều việc liên quantới an ninh máy tính.

• Ông đặc biệt quan tâm tới vấn đề phânphối khóa. Và sớm nhận ra tầm quantrọng của vấn đề phân phối khóa, đặcbiệt khi mạng máy tính ra đời.

• Lấy bằng cử nhân toán học năm 1965tại MIT.

• Đến năm 1970, ông trở thànhcyberpunk đầu tiên.

Page 6: Modern asymmetric cipher

Martin Hellman• Martin Hellman sinh năm 1945 tạiBronx – NewYork.

• Lấy bằng thạc sĩ và tiến sĩ ở StanfordUniversity.

• Ông cũng đặc biệt quan tâm tới vấn đề phân phối khóa.

• Lấy bằng cử nhân khoa học ở NewYorkUniversity.

• Làm việc ở IBM’s Watson ResearchCenter những năm 1968-69 và làmAssistant Professor of ElectricalEngineering ở MIT những năm 1969-71.

• Hiện tại làm giảng viên ở StanfordUniversity.

Page 7: Modern asymmetric cipher

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.

Page 8: Modern asymmetric cipher

Ralph C.Merkle

• Ralph C.Merkle nhận bằng tiến sĩ năm1979 tại Stanford University.

• Hiện tại là Giáo sư danh dự về tínhtoán ở Georgia Tech College ofComputing và là giám đốc của GeorgiaTech Information Security Center.

• Năm 1988, ra nhập Xerox PaloResearch Center(PARC) và theo đuổicông nghệ tính toán nano.

• Hiện tại ông rành nhiều sự quan tâmtới công nghệ nano và đã dành đượcnhiều giải thưởng trong lĩnh vực này.

Page 9: Modern asymmetric cipher

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épthiết lập một kênh trao đổi khóa bí mật trên hệ thống côngcộ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.

Page 10: Modern asymmetric cipher

Lược đồ trao đổi khóaDiffie – 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.

Page 11: Modern asymmetric cipher

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.

Page 12: Modern asymmetric cipher

Lược đồ mã hóa khóa công khai

Page 13: Modern asymmetric cipher

Alice và Bob ra công khai• James Ellis(1924/25-1997)

- Lớn lên ở phía đông thành London nhữngnăm 1920.

- 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.

- Ra nhập Post Office Research Station ở

Dollis Hill - Nơi Tommy Flowers đã xâydựng Colossus.

- Nghiên cứu vật lý ở Imperial CollegeLondon.

- Mọi thứ ở GCHQ là top secret, do đó ông không đượcxuất bản nó.

Page 14: Modern asymmetric cipher

Alice và Bob ra công khai• Clifford Cocks và Malcolm Williamson.

- Những nhà toán học ở GCHQ đã tiếp nốinhững công việc của Ellis.

- Năm 1973, Cocks đã đưa ra ý tưởngtương tự RSA.

- Năm 1974, Williamson phát hiện thuậttoán tương tự như của Diffie và Hellman.

- Mãi đến năm 1997, chính phủ Anh mớixuất bản thông tin về các công việc ở

GCHQ.

Clifford Cocks

Williamson

Page 15: Modern asymmetric cipher

Tính an toàn của mã hóaKhó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.

Page 16: Modern asymmetric cipher

Ứng dụng của mã hóaKhó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.

Page 17: Modern asymmetric cipher

RSAPublic-key encryption

Page 18: Modern asymmetric cipher

RSA Public-key encrytion

Shamir Rivest Adleman

Page 19: Modern asymmetric cipher

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.

Page 20: Modern asymmetric cipher

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}

Page 21: Modern asymmetric cipher

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.

Page 22: Modern asymmetric cipher

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

Page 23: Modern asymmetric cipher

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.

• 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}.

• Chọn e: gcd(e,160)=1; lấy e=7.

Page 24: Modern asymmetric cipher

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.

Page 25: Modern asymmetric cipher

Một số khía cạnh tính toán

Page 26: Modern asymmetric cipher

Mã hiệu quảEfficient Encryption

C=Me mod n

Page 27: Modern asymmetric cipher

Mã hiệu quảEfficient Encryption

Tính ac mod n?

Page 28: Modern asymmetric cipher

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;

Page 29: Modern asymmetric cipher

Mã hiệu quảEfficient Encryption

C=me mod n

Page 30: Modern asymmetric cipher

Mã hiệu quảEfficient Encryption

Lựa chọn e như thế nào?

Page 31: Modern asymmetric cipher

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 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).

Page 32: Modern asymmetric cipher

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ácnhau 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

Page 33: Modern asymmetric cipher

Giải mã hiệu quảEfficient Decryption

m=cd mod nvới e.d ≡ 1 mod Ø(n)

Page 34: Modern asymmetric cipher

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.

Page 35: Modern asymmetric cipher

Sinh khóa RSARSA Key generation

• Người sử dụng RSA cần phải:

• Các số nguyên tố p,q không dễ suy ra nếubiết tích n=p.q.

-Xác định ngẫu nhiên 2 số nguyên tố lớn.

- Chọn e để tính d.

- 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ắcxác suất.

- Các số e và d là nghịch đảo của nhau, có thể dùngthuật toán nghịch đảo để tính số này khi biết số kia.

Page 36: Modern asymmetric cipher

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étcạ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 rathừ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.

Page 37: Modern asymmetric cipher

Factoring Problem• Tấn công toán học có 3 dạng:

• 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ố.

- 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.

- 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.

Page 38: Modern asymmetric cipher

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.

Page 39: Modern asymmetric cipher

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).