modern asymmetric cipher

Post on 12-May-2015

5.157 Views

Category:

Technology

4 Downloads

Preview:

Click to see full reader

DESCRIPTION

Modern bloc asymmetric ciphers

TRANSCRIPT

Information Safe

Confidentiality

Van Hoang Nguyen

Mail: startnewday85@gmail.com

Department of Computer Science

Faculty of Information Technology – Hanoi University of Agriculture.

Asymmetric cipher

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

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.

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.

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.

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

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.

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.

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

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

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.

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

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.

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

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

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

m=cd mod nvớ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 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.

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.

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.

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

top related