1. Trang chủ
  2. » Luận Văn - Báo Cáo

Tiểu luận môn Mã hóa và an toàn dữ liệu Mã hóa và giải mã MHK Merkle–Hellman

11 1,2K 1

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 11
Dung lượng 144,41 KB

Nội dung

Trong thời đại công nghệ số phát triển nhanh chóng và ngày càng đa dạng, con người giảm bớt được rất nhiều công việc cần phải thực hiện thủ công như trước đây, nhưng bên cạnh đó, yêu cầu bảo mật khi tiến hành truyền thông tin đặc biệt là những thông tin quan trọng trên mạng càng vô cùng cần thiết, không thể thiếu.

Trang 1

MỤC LỤC

Mục lục 1

Lời nói đầu 2

1 Giới thiệu chung 3

1.1 Hệ mã khóa bất đối xứng ( khóa công khai) 3

1.2 Hệ mã hóa Merkle–Hellman 4

2 Mã hóa và giải mã MHK 4

2.1 Ý tưởng của hệ mã hóa 4

2.2 Tạo khóa 6

2.3 Mã hóa 7

2.4 Giải mã 8

3 Đánh giá hệ mã khóa MHK 9

Kết luận 10

Tài liệu tham khảo 11

Trang 2

LỜI NÓI ĐẦU

Trong thời đại công nghệ số phát triển nhanh chóng và ngày càng đa dạng, con người giảm bớt được rất nhiều công việc cần phải thực hiện thủ công như trước đây, nhưng bên cạnh đó, yêu cầu bảo mật khi tiến hành truyền thông tin đặc biệt là những thông tin quan trọng trên mạng càng vô cùng cần thiết, không thể thiếu

Ngày nay, vấn đề không dừng lại ở việc bảo vệ thông tin mà còn là những vấn đề cấp bách, mang tính sống còn trong thời đại mất thông tin là mất tất cả, thông tin càng cần phải bảo mật, do đó càng có nhiều hơn những phương pháp bảo mật, giúp con người cảm thấy an toàn trong các giao dịch truyền tin qua mạng, một mạng lưới rộng lớn nhưng không an toàn nếu không có những biện pháp bảo vệ thông tin hợp lý, đầy đủ

Một trong những biện pháp bảo mật thông tin của mình gửi đi, đảm bảo không lộ thông tin ra ngoài đó là mã hóa thông tin để chỉ có người có được khóa

để giải mã mới có thể xem được thông tin, cũng như các hệ mã hóa càng ngày càng phát triển để người ngoài không thể dễ dàng giải được mã có được chìa khóa giải mã được thông tin

Trang 3

1 Giới thiệu chung

1.1 Hệ mã khóa bất đối xứng ( khóa công khai)

Hệ mã hóa đối xứng và hệ mã hóa bất đối xứng là hai hệ mã hóa phổ biến trong hệ thống bảo mật an toàn thông tin

Hệ thống đối xứng( hệ mã hóa bí mật) do hai bên gửi và nhận có vai trò như nhau khi thực hiện sử dụng chung một khóa bí mật Tuy nhiên các hệ mã hóa đối xứng có những nhược điểm cơ bản như sau:

 Vấn đề quản lý khóa( tạo, lưu mật, trao quyền…) là rất phức tạp trong khi sử dụng trong môi trường trao đổi thông tin giữa rất nhiều người dùng Với số lượng người dùng là n thì số lượng khóa cần tạo lập là n(n-1)/2 Mối người dùng phải tạo và lưu n-1 khóa bí mật

để làm việc với n-1 người khác trên mạng Như vậy rất khó khăn và không an toàn khi n tăng lớn dần

 Thứ hai là, trên cơ sở mã đối xứng ta không thể thiết lập được chữ

kí điện tử ( được thực hiện thay thế cho chức năng của chữ kí tay trong thực tế) và cũng do đó không thể cung cấp dịch vụ không thể phủ nhận cho các giao dịch thương mai trên mạng

Ngoài ra trong hệ thống mã khóa đối xứng ( hệ mã hóa khóa bí mật), thông tin mật được chia sẽ chung của cả hai bên, do đó bên A cũng

có thể thực hiện được các giao dịch như bên B và ngược lại Do đó giải pháp cho vấn đề này là phải thêm thành phần thứ ba trong các giao dịch là người có thẩm quyền tin tưởng và làm trọng tài trong khi xảy ra tranh cãi giữa A và B

Do những vấn đề trên cần xây dựng một hệ mã khóa có tư tưởng mới , xây dựng xung quanh một người sử dụng, người chủ của hệ thống

mã hóa thay vì một cặp người sử dụng như trước đây Trong hệ thống này mỗi người có hai chìa khóa : một chìa là chìa khóa bí mật và chìa còn lại

là khóa công khai Khóa bí mật thì chỉ mình người sử dụng biết và giữ bí mât cho riêng mình, còn khóa thứ hai là khóa công khai, người sử dụng có thể tự do phổ biến công khai Khóa bí mật thường gắn liên với thuật toán giải mã, còn khóa công khai thường gắn liền với thuật toán sinh mã, tuy nhiên cũng có trường hợp ngược lại

Có 2 hình thức sử dụng của hệ mã khóa bất đối xứng ( hệ mã hóa công khai)

 Sử dụng trong trường hợp mã hóa : khóa công khai để mã hóa , khóa bí mật dùng để giải mã

Trang 4

 Sử dụng trong chữ kí điện tử : khóa công khai để giải mã, khóa bí mật

để mã hóa

1.2 Hệ mã hóa Merkle–Hellman

Hệ mã hóa Merkle–Hellman là một trong những hệ mã hóa khóa công khai đầu tiên được phát minh bởi Ralph Merkle và Martin Hellman trong năm 1978.Hệ mã hóa khóa công khai này được coi là đơn giản hơn

hệ mã hóa RSA Tuy nhiên hệ mã hóa này đã bị phá bỏ và hiện tại không còn được sử dụng

Hệ mã hóa Merkle–Hellman là hệ mã hóa bất đối xứng, trong đó có

2 khóa : khóa công khai và khóa bí mật Hơn nữa không giống như RSA,

nó là một chiều: khóa công khai dùng để mã hóa và khóa bí mật dùng để giải mã Do đó ta không thực hiện xác thực bằng hệ mã hóa này giống như hệ mã hóa RSA

2 Mã hóa và giải mã MHK

2.1 Ý tưởng của hệ mã hóa

Xuất phát từ việc giải bài toán : Làm thế nào đặt các đồ vật vào ba

lô sao cho tổng giá trị của nó là lớn nhất có thể và tổng khối lượng không được lớn hơn 15kg?

Trang 5

Việc giải bài toán sẽ được áp dụng với thuật toán giải mã trong hệ

mã hóa MHK Bài toán giải quyết vấn đề này là một vấn đề khó, chưa có cách nào tối ưu hơn thuật toán vét cạn, do đó Merkel đã áp dụng một mẹo nhỏ để có thể giải quyết bài toán một cách dễ dàng hơn, nhờ vào thuật toán tham ăn, vì việc tính ngược sẽ trở lên dễ dàng hơn

Vector siêu tăng

Vector siêu tăng là vector tuần tự a= (a1, a2,… aj,… an) sao cho

aj > ai với i từ 1 đến j-1 và j<=n

Để thấy được việc sử dụng vector siêu tăng giúp giải quyết vấn đề một cách nhanh chóng dễ dàng hơn, ta thực hiện nghiên cứu ví dụ đơn giản sau:

Cho T= 14, ta thấy việc thực hiện tìm x =(x1, x2, x3, x4) thật dễ dàng Đặt T = T0

x4 = 1 T1 = T0 - x4 = 6 => x =(x1, x2, x3, 1)

x3 = 1 T2 = T1 – x3 = 2 => x =(x1, x2, 1, 1)

x2 = 1 T3 = T2- x2 = 0 => x =(x1, 1, 1, 1)

x1 = 0 => x =(0, 1, 1, 1)

Ở bước thứ i, tổng đích là Ti (tức là phải tìm các aj sao cho tổng bằng Ti ta đem so sánh T với thành phần lớn nhất trong phần còn lại của vector, nếu lớn hơn thì thành phần này được chọn tức là x tương ứng được

Trang 6

chọn là 1, ngược lại thì x tương ứng là bằng 0 Sau đó tiếp tục chuyển sang các bước sau

Như vậy ta có thể dễ dàng tìm được số lượng vật xi để tìm được tổng khối lượng đúng bằng số cho trước bằng cách đơn giản như trên

2.2 Tạo khóa

Như ta đã biết, hệ mã khóa công khai( hệ mã hóa bất đối xứng ) gồm 2 khóa, khóa công khai để mã hóa, khóa bí mật để giải mã Do đó việc đầu tiên cần thực hiện là tạo được 2 khóa công khai và bí mật này Khóa công khai, người dùng công khai trên mạng để người cần chuyển tin dùng khóa công khai này cùng với thông điệp cần chuyển mã hóa thành bản mã để chuyển cho người dùng cần chuyển Người này nhận bản mã dùng khóa bí mật để giải mã, lấy được thông điệp đã được chuyển tới mình

Công việc tạo mã gồm 3 bước :

o Bước 1 : Chọn vector siêu tăng a= (a1, a2,… aj,… an) ( trong đó n là

số bit trong bản rõ cần mã hóa và giải mã là n bit)

o Bước 2 : Chọn một số nguyên dương q > ai và số nguyên dương r là số nguyên tố cùng nhau với q; r<q

o Bước 3 : tính khóa công khai là vector β (β1, β2…, βj,… βn)

Khóa công khai được tính bằng công thức như sau :

βi = (ai *r ) mod q

o Bước 4 : Khóa bí mật là bộ 3 (a,q,r)

1 Ví dụ :

o Chọn vector siêu tăng a =(3, 5, 15, 25, 54, 110, 225) ( với n=7)

o Ta có  ai = 3+5+15+25+54+110+225 = 437

Chọn q = 439 >437; r =10 là số nguyên tố cùng nhau với q

o Khóa công khai β =( 30, 50, 150, 250, 101, 222, 55) vì

 ( 3*10 ) mod 439 =30

 ( 5*10 ) mod 439 =50

 ( 15*10 ) mod 439 =150

 ( 25*10 ) mod 439 =250

 ( 54*10 ) mod 439 =101

 ( 110*10 ) mod 439 =222

Trang 7

 ( 225*10 ) mod 439 =55

o Khóa bí mật là :

 Vector a (3, 5, 15, 25, 54, 110, 225)

 q =439

 r = 10

2.3 Mã hóa

Khi B muốn gửi một thông điệp X đến cho bên A và đã biết được khóa công khai của A là β, B chỉ cần tạo bản mã bằng cách lấy khóa công khai nhân với bản mã( n bit tương ứng)

T =  βi * Xi

Việc mã hóa của thuật toán là tương đối dễ dàng, đầu tiên, ta chỉ cần biểu diễn thông điệp dưới dạng n bit dựa trên khóa công khai số bit được biểu diễn bằng số lượng trong khóa công khai được người đó công khai trên mạng Sau đó lấy từng bit tương ứng này nhân với khóa công khai ta có được bản mã sau khi mã hóa Bản mã này sau khi được mã hóa xong sẽ được gửi đến cho A để A dựa vào khóa bí mật của mình tiến hành giải mã

Ví dụ : Tạo mã hóa cho thông điệp hello với khóa công khai như trên ví dụ phần tạo mã

Ta biểu diễn từng chữ cái trong từ thành 7 bit :

 h = 1001000

 e = 1100101

 l = 1101100

 o = 1101111

Khóa công khai là β =( 30, 50, 150, 250, 101, 222, 55)

Ta tính được :

 Th =1*30 + 1* 250 =280

 Te =30 +50 +101 + 55 = 236

 Tl = 30+50+250 +101 = 431

 To =30+50+250+101 +222 + 55 = 708

Do đó ta có được bản mã là : (280,236,431,431,708)

Trang 8

2.4 Giải mã

Thuật toán giải mã là thuật toán dựa vào khóa bí mật chỉ có người tạo khóa mới biết được khóa của mình là như thế nào để có thể giải được thông điệp Trong khi có khóa thì ta có thể giải được khá dễ dàng thông điệp người gửi gửi đến cho mình

Thuật toán giải mã bao gồm 3 bước :

o Bước 1: Tìm số nghịch đảo của r theo modulo q

o Bước 2 : Tính T’ = T * r-1 (mod q)

o Bước 3 : Dùng vector siêu tăng a để giải bài toán

Giải mã bản mã (280,236,431,431,708) với khóa bí mật biết trước

là :

 Vector a = (3, 5, 15, 25, 54, 110, 225)

 q =439

 r = 10

Ta tính được nghịch đảo của r theo modulo q là 44 vì 10x44 = 1 mod(q)

o Với Th = 280

T’h = 280 * 44 mod (439) = 28 Với a = (3, 5, 15, 25, 54, 110, 225) x4< 28 -> x4 = 1 T = 3

x1 = 3 => x1 = 1 Vậy ta có biểu diễn dưới dạng 7 bit là 1001000 Tương tực với các số khác trong bản mã thì ta se giải mã được thông điệp

Trang 9

3 Đánh giá hệ mã khóa MHK

Ban đầu, với những người không biết khóa bí mật ( a, q,r) muốn giải

mã phải thực hiện thuật toán vét cạn qua 2n khả năng của X, vì vậy với n

đủ lớn thì việc tìm kiếm theo thuật toán vét cạn được gọi là bất khả thi do

đó nó được gọi là khá an toàn

Nhưng việc tìm kiếm giải mã theo kiểu vét cạn không phải là cách duy nhất Năm 1982, Shamir- Adleman đã chỉ ra chỗ yếu của giải pháp này bằng cách đi tìm một cặp (r, q) sao cho có thể biến đổi ngược β về a ( tính được khóa bí mật từ khóa công khai) Năm 1984, Brickell tuyên bố sự đổ

vỡ của hệ thống Knapsack với dung lượng tính toán khoảng một giời máy Cray-1 với 40 vòng lặp chính và cỡ 100 trọng số

KẾT LUẬN

Hệ mã hóa MHK mặc dù hiện tại không còn được sử dụng trong thực tế vì tính bảo mật kém cũng như dễ dàng có thể tìm được khóa của bài toán Nhưng

Trang 10

đây là hệ mã hóa tiền đề để phát triển những hệ mã hóa bất đối xứng tiếp theo phát triển thay thế cho hệ mã hóa đối xứng ( khóa bí mật) có nhiều nhược điểm

Hệ mã hóa MHK là bước đầu tiên cho việc phát triển việc sử dụng chữ ký

số, vì là hệ mã hóa bất đối xứng nên có thể dùng hai chiều : hoặc sử dụng để mã hóa, hoặc sử dụng chữ kí số, điển hình là hệ mã hóa RSA, chữ kí số RSA

Trang 11

TÀI LIỆU THAM KHẢO

1 Phan Đình Diệu Lý thuyết mật mã và An toàn thông tin, 2004

2 Khoa CNTT Đại học Hàng Hải, Giáo trình An toàn và bảo mật thông tin , 2008

3 Trịnh Nhật Tiến, Bài giảng An toàn dữ liệu, 2005

4 Kanmogne Pekam Linda, Basic Merkle-Hellman Knapsack cryptosystem

Ngày đăng: 19/10/2014, 20:08

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w