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

BÀI TẬP LỚN MẬT MÃ VÀ AN TOÀN DỮ LIỆU Mã hóa dòng

23 1,2K 12

Đ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 23
Dung lượng 453,89 KB

Nội dung

BÀI TẬP LỚN MẬT MÃ VÀ AN TOÀN DỮ LIỆU Mã hóa dòng I. Khái niệm II. Các loại mã dòng và độ phức tạp tương ứng 1. Mã dòng đồng bộ cộng 2. Mã dòng tự đồng bộ cộng 3. Mã dòng đồng bộ không cộng 4. Phương pháp mã dòng sử dụng mã khối 5. Mã phân phối hợp tác III. Các loại phương pháp sinh 1. Máy trạng thái hữu hạn và phần tử sinh dòng khoá 2. Phần tử sinh dựa trên bộ đếm 3. Phần tử sinh số học IV. Ứng dụng của mã hoá dòng V. Chương trình mã hoá dòng

ĐẠI HỌC QUỐC GIA HÀ NỘI TRƯỜNG ĐẠI HỌC CÔNG NGHỆ &&& BÀI TẬP LỚN MẬT MÃ VÀ AN TOÀN DỮ LIỆU Đề tài: “Mã hóa dòng” Giảng viên: PGS.TS Trịnh Nhật Tiến Học viên thực hiện: Đỗ Quang Dương, K20 Lớp MH: INT6010 2 Mã HV: 13025198 Hà Nội, 05/2014 1 1 Mục lục I. Khái niệm II. Các loại mã dòng và độ phức tạp tương ứng 1. Mã dòng đồng bộ cộng 2. Mã dòng tự đồng bộ cộng 3. Mã dòng đồng bộ không cộng 4. Phương pháp mã dòng sử dụng mã khối 5. Mã phân phối hợp tác III. Các loại phương pháp sinh 1. Máy trạng thái hữu hạn và phần tử sinh dòng khoá 2. Phần tử sinh dựa trên bộ đếm 3. Phần tử sinh số học IV. Ứng dụng của mã hoá dòng V. Chương trình mã hoá dòng 2 2 I. Khái niệm 1. Khái niệm: Cho K là một không gian khóa của một hệ mã và cho Kkk ∈⋅⋅⋅ 21 là một dòng khóa. Hệ mã này được gọi là một mã dòng nếu việc mã hóa trên chuỗi bản rõ ⋅⋅⋅ 21 mm thu được bằng cách áp dụng lặp đi lặp lại của phép mã hóa trên những đơn vị thông điệp bản rõ, jjk cmE j =)( , và nếu d j là nghịch đảo của k j , việc giải mã xảy ra như jjd mcD j =)( với 1≥j . Nếu tồn tại một giá trị Nl ∈ sao cho jlj kk = + với mọi Nj ∈ , ta gọi mã dòng tuần hoàn với chu kỳ l. II. Các loại mã dòng và độ phức tạp tương ứng Về căn bản một thuật toán mã dòng thuộc về một trong hai loại, đó là: mã dòng đồng bộ (synchronous cipher), và mã dòng tự đồng bộ (self-synchronous cipher) hay còn có tên gọi khác là bất đồng bộ (asynchronous). Tuy nhiên, những người từ dự án eSTREAM đã cho một định nghĩa tổng quát hơn về mã dòng, họ xem một mã dòng như một thực thể có một trạng thái nội tại biến thiên theo thời gian (time-varying internal state), và xem mã dòng đồng bộ và mã dòng tự đồng bộ là hai trường hợp đặc biệt . Trong mã dòng đồng bộ, trạng thái tiếp theo (next state) của hệ thống mã hóa được mô tả độc lập với bản rõ và bản mã. Trạng thái là giá trị của một tập hợp các biến mang lại duy nhất một sự mô tả cho trạng thái của thiết bị. Ta hiểu trạng thái như là giá trị của một mảng nhiều phần tử. Thiết bị ở đây được hiểu như là một thành phần trong cấu tạo của phần tử sinh dòng khóa (generator). Nó có thể là một tập hợp bao gồm nhiều thanh ghi (register). 3 3 Hình 1. Mã dòng đồng bộ cộng. Hình trên diễn đạt quy tắc mã hóa và giải mã của mô hình mã dòng đồng bộ cộng. Khi mã hóa, lần lượt các ký tự bản rõ được “+” (cộng) với keyword z i để sinh ra ký tự bản mã tương ứng. Khi giải mã thì làm ngược lại bằng cách “-” (trừ). “+” và “-” ở đây chỉ mang nghĩa đặc trưng cho quá trình mã hóa và giải mã. Chúng có thể chỉ đơn giản là phép XOR chẵng hạn. Từ hình rõ ràng ta thấy quá trình sinh keystream hoàn toàn độc lập với bản rõ và bản mã. Ngược lại, đối với mã dòng tự đồng bộ, mỗi ký tự của keystream được suy ra từ một số n cố định của những ký tự bản mã trước đó. Vì vậy, nếu một ký tự bản mã bị mất hoặc bị hư (thay đổi) trong quá trình truyền dữ liệu, lỗi sẽ bị lan truyền cho n ký tự trong quá trình giải mã. Nhưng nó sẽ tự đồng bộ lại sau n ký tự bản mã nhận được. Chẳng hạn ta khảo sát trong trường hợp n bằng 1: Giả sử ta có chuỗi các ký tự bản mã C bị thay đổi tại 1 − j c . - Khi dùng mã dòng tự đồng bộ theo công thức mã hóa: ),();( 1− == jjjzj ckfzmEc j . Suy ra công thức giải mã: ),();( 1− == jjjzj ckfzcDm j . Do 1−j c bị thay đổi làm cho j z bị sai, nên kết quả giải mã j m bị lỗi (không đúng như ban đầu trước khi mã hóa). Trong khi đó, việc giải mã 1+j m lại phụ thuộc vào j c ( j c không bị thay đổi) nên kết quả giải 4 4 mã 1+j m không bị lỗi. Như vậy chỉ cần sau một ký tự bản mã, quá trình giải mã đã tự đồng bộ. Điều này cũng đúng cho trường hợp 1 − j c bị mất. - Còn khi dùng mã dòng đồng bộ theo công thức mã hóa: jjj mzc ⊕= . Suy ra công thức giải mã jjj czm ⊕= . Trong trường hợp 1−j c bị thay đổi thì dễ dàng nhìn thấy quá trình giải mã chỉ bị lan truyền lỗi như đối với mã dòng tự đồng bộ. Tuy nhiên, khi 1 − j c bị mất, lúc đó chuỗi các ký tự bản mã bị thụt lùi lại một ký tự. Nghĩa là j c đóng vai trò của 1−j c , 1+j c đóng vai trò của j c ,…. Nói cách khác, kể từ 1 − j c tất cả các ký tự bản mã đều bị lỗi. Dẫn đến quá trình giải mã tất cả các ký tự sau đó đều bị lỗi. Như trên ta đã giải thích về một sự khác nhau thú vị giữa hai loại mã dòng. Ngoài ra, mã dòng tự đồng bộ không có tính tuần hoàn bởi vì mỗi ký tự khóa z j phụ thuộc vào toàn bộ các ký tự bản rõ trước đó. Điều này thì ngược lại đối với mã dòng đồng bộ vì thông thường nó có tính tuần hoàn. Có nhiều phương pháp mã dòng khác nhau, thuộc vào những loại dưới. Đặc biệt với một số phương pháp, ta thấy được bóng dáng của mã khối trong việc ứng dụng vào mã dòng. 1. Mã dòng đồng bộ cộng Như đã đề cập ở trên, mã dòng đồng bộ cộng (additive synchronous stream ciphers) sinh dòng khóa độc lập với dữ liệu bản rõ. Thuật toán sinh dòng khóa phải được thực hiện sao cho dòng khóa có thể được tái lập cho quá trình giải mã. Mã dòng đồng bộ cộng như theo Hình 3 là một loại mã dòng đồng bộ quan trọng. Nhận xét: 5 5 Vấn đề chính trong loại mã dòng này là thiết kế phần tử sinh dòng khóa. Bởi vì việc kết hợp những ký tự bản rõ và bản mã là rất đơn giản, đòi hỏi phần tử sinh dòng khóa cho mã dòng đồng bộ cộng phải được đủ mạnh [4]. 2. Mã dòng tự đồng bộ cộng Hình 2. Mã dòng tự đồng bộ cộng. Trong mã dòng đồng bộ, mỗi ký tự dòng khóa nhận được từ một số n cố định của những ký tự bản mã trước đó. Những mã như mã khóa tự động (autokey ciphers) và hệ thống mã hồi quy (cipher feedback systems) là những ví dụ của mã dòng tự đồng bộ cộng (additive self-synchronous stream ciphers). Một mã khóa tự động có khóa nhận được từ dữ liệu bản rõ mà nó mã hóa. Một lớp quan trọng các mã dòng tự đồng bộ cộng khác, trong đó quá trình mã phản hồi tới phần tử sinh dòng khóa như trong Hình 4. Nhận xét: Những vấn đề chính liên quan đến loại mã dòng này là việc thiết kế phần tử sinh dòng khóa và cách mà ký tự bản mã phản hồi được dùng trong phần tử sinh dòng khóa. Loại mã dòng dòng này thì khó hơn để thiết kế và phân tích do liên quan đến sự phản hồi. 3. Mã dòng đồng bộ không cộng Cả hai loại mã khối và mã dòng cộng đều có những điểm thuận lợi và bất lợi. Mã dòng đồng bộ cộng có điểm bất lợi ở chỗ, với một cặp ký tự bản mã-bản rõ sẽ tiết lộ ngay ký tự khóa dòng tương ứng khi ký tự bản rõ được mã hóa. Điều này có thể tạo điều kiện cho một số loại tấn công phục hồi khóa (key-recovering attacks) như tấn công tương 6 6 quan (correlation attacks) và tấn công đụng độ (collision attacks), tấn công đương lượng- máy (equivalent-machine attacks) như một tấn công dựa trên thuật toán Berlekamp- Massey, tấn công xấp xỉ-máy (approximate-machine attacks) dựa trên xấp xỉ tuyến tính. Một điểm thuận lợi của nó là khóa dòng biến thiên theo thời gian (time-varying), đảm bảo rằng cùng một ký tự bản rõ thường cho ra tương ứng những ký tự bản mã khác nhau ở các thời điểm khác nhau. Điều này thường che đậy một số thuộc tính xác suất của bản rõ. Mã khối có điểm bất lợi ở chỗ, các khóa của nó không thể được thay đổi thường xuyên do vấn đề quản lý khóa. Thêm vào đó, cùng một khối (block) bản rõ luôn luôn cho ra tương ứng các khối bản mã giống nhau nếu một khóa được chọn và cố định. Điều này có thể tạo điều kiện cho nhiều tấn công như tấn công sai phân (differential attacks) trên một số khối bản mã thích hợp. Một điểm thuận lợi của nó là có thể phát hiện sự thay đổi của bản rõ bởi vì bản rõ được mã hóa theo từng khối. Để giữ được các ưu điểm của cả hai loại mã dòng cộng và mã khối, nhưng cũng để triệt tiêu các khuyết điểm của cả hai phương pháp, một phương pháp mã khối động (dynamic block ciphering approach) được mô tả như dưới. Với phương pháp này một phần tử sinh dòng khóa và một thuật toán mã khối (dùng một khóa) quy định trước được kết hợp theo một cách mà một số ký tự dòng khóa sinh ra của phần tử sinh dòng khóa được dùng để đóng vai trò như khóa động của thuật toán mã khối cho mỗi khối bản rõ. Cho một thuật toán mã khối với chiều dài khối bản rõ là n, gọi E k (.) và D k (.) là các ký hiệu tương ứng với hàm mã hóa và giải mã, ở đây k là khóa. Để dùng thuật toán mã khối cho việc mã hóa và giải mã động, một khóa động k i cho thuật toán được sinh ra bởi một phần tử sinh dãy (sequence generator) SG là ( 11 , ,, −++ ttititi zzz ), ở đây t là một số nguyên dương, và ∞ z ký hiệu dãy được sinh ra bởi SG. Tham số t có thể là 1 hoặc một hằng số cố định khác. Vì vậy sự mã hóa và giải mã được thể hiện như: ),( ),( iki iki cDm mEc i i = = ở đây, m i là khối bản rõ, c i là khối bản mã ở lần thứ i. Từ khi khóa k i biến thiên theo thời gian, phương pháp mã này là mã khối động hay còn gọi là phương pháp mã dòng đồng bộ không cộng (nonadditive synchronous stream cipher). Khóa của hệ thống bao gồm cả phần tử sinh dòng khóa SG. 7 7 Nhận xét: Trong hệ thống mã này, không cần thiết yêu cầu một độ phức tạp tuyến tính (linear complexity) lớn đối với dãy sinh ra của SG nếu thuật toán mã khối được thiết kế đúng đắn. Nếu hệ thống được thiết kế tốt, dường như những tấn công được biết đối với mã dòng cộng và mã khối không áp dụng được cho hệ thống này. Để tấn công nó, cần đến những phương thức mới. Mục đích khác của hệ thống này là để có một thuật toán mã nhanh. Điều này có thể nhờ vào việc sử dụng những phần tử sinh dãy nhanh và những thuật toán mã khối nhanh trong hệ thống, để có được thuật toán tốc độ và có tính bảo mật [4]. 4. Phương pháp mã dòng sử dụng mã khối Có một vài loại kiểu hoạt động (mode of operation) của mã khối. Phổ biến là bốn loại: Electronic Codebook (ECB), Cipher Block Chaining (CBC), Cipher Feedback Chaining (CFB) và Output Feedback Chaining (OFB). Trong kiểu ECB, quá trình mã (mã hóa, giải mã) được áp dụng theo từng khối độc lập. Cho M = M 1 M 2 … M t là bản rõ, sau khi mã hóa thu được kết quả theo: )( iki MEC = với i = 1, 2, …, t Vì vậy bản mã tương ứng là C = C 1 C 2 … C t . Sự giải mã được mô tả bởi: )( iki CDM = với i = 1, 2, …, t, ở đây )(xD k là hàm ngược của )(xE k . Đây là cách hơi thẳng thắn cho việc dùng mã khối. Trong kiểu CBC các khối được kết lại nhau với một giá trị khởi tạo IV. Trong kiểu này ta giả sử rằng không gian bản rõ và bản mã là đồng nhất, và không gian khối (block space) này là một nhóm Aben (Abelian group) với toán tử +. Khối bản mã đầu tiên được định nghĩa như: ),( 11 IVMEC k += ở đây IV là một giá trị khởi tạo từ không gian khối. Các khối bản mã khác sau đó được tính như sau: 8 8 )( 1− += iiki CMEC với i = 2, 3, …, t Để giải mã, khối bản rõ đầu tiên thu được như: ,)( 11 IVCDM k −= ở đây “–“ là toán tử ngược của “+”. Những khối bản rõ khác sau đó được tính như: ,)( 1− −= iiki CCDM với i = 2, 3, …, t. Nếu ta so sánh các công thức mã của CBC trên với công thức mã của mã dòng tổng quát ở Hình 2, rõ ràng có thể xem kiểu CBC làm cho mã khối trở thành mã dòng với bộ nhớ nội tại (internal memory). Bộ nhớ nội tại trong CBC ở đây, có thể hiểu là để mã hóa C i phải cần đến C i-1 , vậy phải cần một sự nhớ lại khối bản mã đã mã hóa được trước đó, điều này cần đến một “bộ nhớ”. Đối với mã dòng đồng bộ cộng, bộ nhớ nội tại này nằm trong phần tử sinh dòng khóa của hệ thống, mà một ví dụ điển hình là LFSR (xem thêm ở các phần sau của luận văn). Nó chính là tập hợp những thanh ghi (register) nếu hiện thực bằng phần cứng, đóng vai trò quan trọng trong việc tạo ra dòng khóa. Kiểu CFB còn dùng một mã khối cho quá trình mã dòng. Giả sử rằng ta có một mã khối với không gian khối bản rõ và bản mã là A n , ở đây bộ (A, +) là một nhóm Aben. Cho E k (x) là hàm mã hóa, rchop u là ký hiệu hàm có chức năng xóa bỏ u ký tự phải nhất của tham số của nó, và lchop u là ký hiệu hàm có chức năng xóa bỏ u ký tự trái nhất của tham số của nó. Một biến thể của kiểu CFB được mô tả như sau. Chọn m là số nguyên nằm giữa 1 và n. Mã dòng dựa trên mã khối có bộ (A m , +), ở đây toán tử “+” của A m là một mở rộng tự nhiên của toán tử này từ A. Ví dụ: ),, ,(), ,(), ,( 1111 mmmm yxyxyyxx ++=+ ở đây m m Axx ∈ ), ,( 1 và m m Ayy ∈ ), ,( 1 . Chọn một giá trị khởi tạo X 1 , việc mã hóa ký tự bản rõ thứ i ( m i AM ∈ ) là: )),(( ikmnii XErchopMC − += ,||)( 1 iimi CXlchopX = + ở đây || là ký hiệu phép ghép (hai chuỗi dữ liệu). Còn giải mã như sau: 9 9 )),(( ikmnii XErchopCM − −= .||)( 1 iimi CXlchopX = + Một thanh ghi nội tại (internal register) được cần để cập nhật X i . Kiểu OFB cũng dùng một mã khối cho quá trình mã dòng. Như trong kiểu CFB, ta có ban đầu một mã khối với không gian cả bản rõ và bản mã là A n , ở đây bộ (A, +) là một nhóm Aben. Mã dòng dựa trên mã khối được mô tả như sau. Không gian bản rõ và bản mã của mã dòng là A m , ở đây m có thể được chọn tùy ý giữa 1 và n. Mã dòng có một thanh ghi nội tại để cập nhật giá trị n i AX ∈ . Cho X 1 là giá trị khởi tạo của thanh ghi. Việc mã hóa ký tự bản rõ thứ i ( m i AM ∈ ) như: )),(( ikmnii XErchopMC − += ),( 1 iki XEX = + Giải mã được định nghĩa bởi: )),(( ikmnii XErchopCM − −= ).( 1 iki XEX = + Dễ thấy sự khác nhau duy nhất giữa CFB và OFB là sự cập nhật của thanh ghi nội tại. Trong bốn kiểu hoạt động của mã khối như ở trên, đã có ba kiểu được dùng trong mã dòng. Một cách tự nhiên, có rất nhiều cách sử dụng mã khối cho mã dòng. Ngay cả mã dòng đồng bộ không cộng như đã được đề cập ở phần trước cũng dựa trên mã khối. 5. Mã phân phối hợp tác Cũng với mục đích để giữ được các ưu điểm của cả hai loại mã dòng cộng và mã khối, nhưng cũng để triệt tiêu các khuyết điểm của cả hai phương pháp, hệ thống mã phân phối hợp tác (cooperatively distributed (CD) cipher) được thiết kế để đáp ứng mục đích này. Hệ thống mã phân phối hợp tác gồm có s thành phần: s mã khối định trước, với kích thước khối của tất cả là như nhau; thiết bị điều khiển là một phần tử sinh dãy với bộ nhớ nội tại, ký hiệu là SG. SG sinh ra dãy các phần tử trên tập }.1, ,1,0{ −= sZ s 10 10 [...]... phỏn v voi - Kiu cõu ph nh phn bỏc ý kin ngi khỏc, khng nh mỡnh ỳng -> Thỏi ch quan Kiu cõu ph nh giỳp em bit c iu gỡ v thỏi ca cỏc thy? Tit 38 Vn bn : THY BểI XEM VOI ( Truyn ng ngụn) 3 Hu qu: -Xụ xỏt ỏnh nhau toỏc u chy mỏu -Khụng ai hỡnh dung ỳng v con voi - Gõy mt on kt T nhn thc sai lm -> Phờ phỏn, ch giu s ch quan, phin dn n hu qu gỡ? din trong nhn thc v s vic, s vt 4 Bi hc - Mun hiu bit s vt... con ngi rỳt ra bi hc cho con ngi V Hng dn v nh 1 K li cõu chuyn Thy búi xem vúi bng li vn ca em 2 Hc thuc bi v chun b Vit bi TLV s 2 Tiết học kết thúc Xin cảm ơn các thầy cô giáo và các em học sinh lớp 6A Trường THCS Phan Chu Trinh ... xem xột mt cỏch ton din sgk 3 Ghi nh : IV.Luyn tp Bi 1: Xem tỡnh hung no ng vi cõu thnh ng thy búi xem voi ? A Cụ y cú mỏi túc p, bn kt lun cụ y p A B Mt ln em khụng võng li m, m trỏch em v bun C C Bn An ch vi phm 1 ln khụng son bi, lp trng cho rng bn y hc yu D Bn em hỏt khụng hay, cụ giỏo núi rng bn y khụng cú nng khiu v ca hỏt Bi 2: Tho lun.3 So sỏnh truyn ch ngi y ging v Thy búi xem voicú im gỡ . &&& BÀI TẬP LỚN MẬT MÃ VÀ AN TOÀN DỮ LIỆU Đề tài: Mã hóa dòng Giảng viên: PGS.TS Trịnh Nhật Tiến Học viên thực hiện: Đỗ Quang Dương, K20 Lớp MH: INT6010 2 Mã HV: 13025198 Hà. bảo mật bằng cách dùng mã dòng trong GSM có những mục đích như: mã hóa đảm bảo bí mật dữ liệu, chứng thực, đảm bảo tính toàn vẹn. Có hai loại mã đối xứng đó là: mã khối (block cipher) và mã dòng. tử sinh dòng khóa và cách mà ký tự bản mã phản hồi được dùng trong phần tử sinh dòng khóa. Loại mã dòng dòng này thì khó hơn để thiết kế và phân tích do liên quan đến sự phản hồi. 3. Mã dòng đồng

Ngày đăng: 19/10/2014, 16:14

TỪ KHÓA LIÊN QUAN

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

TÀI LIỆU LIÊN QUAN

w