MẬt mã khóA ĐỐi xứng lý thuyết cơ bản của Shannon



tải về 1.46 Mb.
trang2/5
Chuyển đổi dữ liệu30.08.2016
Kích1.46 Mb.
#28532
1   2   3   4   5

Độ an toàn khi dùng lệnh gamma. Claude Shannon đã chứng minh rằng mã bằng lệnh gamma là tuyệt đối an toàn.


Chứng minh của Shannon:

Giả sử X và Y là giá trị ngẫu nhiên rời rạc. X là giá trị ngẫu nhiên đối với bản rõ, Y là giá trị ngẫu nhiên đối với gamma, khi đó luật phân bố X sẽ là

X01p1-pLuật phвn bố Y lа

Y011/21/2

ở đвy lа xбc suất gặp X, hoặc Y. Ở đвy chъng thấy trong số gamma thм xбc suất gặp 0 vа 1 lа như nhau. Z lа giб trị ngẫu nhiкn rời rạc cho bản mг. Từ hмnh chъng ta thấy rằng Z=X+Y (mod 2). Chъng ta đi tнnh xбc suất gặp 0 vа 1 trong định luật phвn bố Z:

Chъng ta dщng:



  1. , nếu như A và B không giao nhau

  2. , nếu như A và B độc lập

Chъng ta cу:

P(Z=0) = P(X=0,Y=0)+P(X=1,Y=1) =

= P(X=0)*P(Y=0)+P(X=1)*P(Y=1) =p*1/2+(1-p)*1/2 = 1/2 .

Nên


P(Z=1) = 1-P(Z=0) = Ѕ.

Điều nаy chъng ta thấy luật phвn bố Z lа đối xứng, cу nghĩa lа chъng ta nhận được gamma hoặc lа nhiễu (tức lа Z khфng bao gồm một thфng tin nаo từ X) nкn mг tuyệt đối an toаn.



Cбch chn gamma:

  1. Đối với từng trường hợp dщng gamma khбc nhau;

  2. Để tạo ra gamma dщng phương phбp tạo số ngẫu nhiкn;

  3. Gamma phải dаi tương ứng với bản mг;

  4. Lựa chọn gamma một cбch thфng minh để thбm mг khу mт.

Mг dтng rất hữu нch đối với mг dтng dữ liệu liкn tục, vн dụ trong mạng truyền tải dữ liệu.

    1. Một số sơ đồ dùng để thiết kế hệ mật

      1. Mng Feistel và các kiểu biến dng ca nó

Một trong các phương pháp thông dụng tạo ra mã khối là dựa trên cấu trúc có tên là Feistel được Horst Feisel tạo ra. Cấu trúc một vòng của mạng Feistel biểu diễn hình 7.6.
Hình 7.6. Sơ đồ 1 vòng Feistel

Trong sơ đồ nаy thм hаm F lа hаm cơ bản để xвy nкn khối mạng Feistel, nу luфn được chọn lа hаm phi tuyến tнnh vа trong tất cả cбc trường hợp nу khфng cу hаm ngược. Hаm F cу hai thбm số, một lа nữa khối bкn phải vа tham số cтn lại lа khуa.

Giả sử X lа khối bản tin, biểu diễn dưới dạng hai khối con cу độ dаi như nhau . Lъc nаy một vтng của mạng cу thể biều diễn như sau, giả sử sau i vтng ta thu được , thм vтng thứ i+1 sẽ lа:

.

Mг khối xвy dựng trкn cơ sở mạng Feistel cу r vтng như thế, số vтng nаy xбc định độ an toаn của hệ mг, vа vтng cuối cщng khфng thực hiện hoбn đổi giữa khối con bкn phải vа khối con bкn trбi, tức lа



,

Việc lаm nаy khфng ảnh hưởng đến độ an toаn của thuật toбn mг, mа nу sẽ lаm cho quб trмnh mг hуa vа giải mг lа hai quб trмnh thuận nghịch nhau, tức lа sau khi mг chъng ta thu được , để giải mг, chъng ta dung đъng thuật toбn mг hуa, tham số của thuật toбn bвy giờ lа khối dữ liệu lа vа thực hiện r vтng với đảo thứ tự cбc khуa con ngược với quб trмnh mг hуa, chъng ta thu được bản tin ban đầu.



Ưu vа nhược điểm khi thực hiện mг khối trкn cơ sở mạng Feistel.

Ưu điểm.

  1. Quб trмnh mг hуa vа giải mг trщng nhau, chỉ khбc nhau ở thứ tự khуa con, điều nаy sẽ tiết kiệm được nữa tаi nguyкn khi thực hiện thuật toбn trкn phần cứng.

  2. Hаm F cу thể chọn với độ khу bất kỳ, vм khфng phải tмm hаm nghịch.

Nhược điểm.

  1. Vм mỗi vтng mг chỉ thực hiện biến đổi nữa khối dữ liệu, nкn cần số vong mг hуa lớn để đảm bảo độ an toаn của hệ mật, điều nаy lаm giảm đбng kể tốc độ mг.

  2. Ngoаi ra xвy dựng trкn cơ sở mạng Feistel tồn tại lớp khуa tương đương, nкn lаm khфng gian khуa giảm đi một nữa.

Ngoаi ra chъng ta thấy nếu xвy dựng một mг khối cу kнch cở lớn thм dщng mạng Feistel với hai nhбnh ở trкn khфng thuận lợi, lъc nаy chъng ta dщng mạng Feistel 4 nhбnh với cбc kiểu của nу biểu diễn ở hмnh 7.7, 7.8 vа 7.9.

Hмnh 7.7. Cấu trъc mở rộng mạng Feistel loại 2


Hình 7.8. Cấu trúc mở rộng mạng Feistel loại 3
Hình 7.9. Cấu trúc mở rộng mạng Feistel loại 2

      1. Sơ đồ cấu trúc cộng nhân

Cấu trúc cộng nhân có thể xem như là một trong các kiểu hạt nhân cấu tạo nên các hàm vòng, trong đó sử dụng các phép toán số học đơn giản và được nghiên cứu cẩn thận. Cấu trúc này được đề xuất bởi J.L.Massey và X.Lai. Cấu trúc được cho như hình vẻ 7.10.
Hình 7.10. Sơ đồ cấu trúc cộng nhân

ở đвy đвy ta dщng hai phйp toбn số học lа cộng vа nhвn theo modulo trong nhуm tương ứng vа lа cбc vйctơ đầu vаo, lа cбc khуa, lа vйc tơ đầu ra.



Ưu điểm ca cấu trъc. Khi thiết kế mг khối theo cấu trъc cộng nhвn, thм mг khối cу tнnh khuyếch tбn tốt.

    1. Các bước cơ bản để thiết kế một hệ mật

Khi thiết kế mật mã thì vấn đề đảm bảo độ vững chắc của thuật toán là một vấn đề quan trọng nhất.Và đây cũng là vấn đề phức tạp nhất. Đánh giá độ vững chắc của thuật toán là một trong các công đoạn lâu nhất và khó nhất. Vì chưa có một lý thuyết hoàn chỉnh để đánh giá độ an toàn của mã khối nên phương pháp sáng tạo là một cách quan trọng nhất để đánh giá. Thế nhưng có thể đưa ra một số yêu cầu chung để xây dựng nên một thuật toán mật mã. Nếu như mật mã thỏa mãn nhưng yêu cầu đó thì nói rằng thuật toán an toàn.

Cần chú ý rằng vấn đề đảm bảo độ an toàn cao chưa phải là một mục đích duy nhất, bởi khi xây dựng thuật toán mật mã đảm cần bảo được tốc độ mã hóa và việc thực hiện chúng trên phần cứng và phần mền có phức tạp hay không cũng là yêu cầu không kém quan trọng. Phụ thuộc vào yêu cầu của ứng dụng mà chọn sơ đồ mật mã và các bước đánh giá cho phù hợp tức là tầm quan trọng của ứng dụng quyết định cho chúng ta chọn thuật toán tương ứng với tham số mật mã (như công suất, độ phức tạp thực hiện,..vv). Quá trình xây dựng thuật toán mã khối được tiến hành theo các bước sau:



  1. Nghiên cứu lnh vực ứng dng. Ở bước này thực hiện chọn lựa kiểu hệ mật và hình thành các yêu cầu ứng với tham số cơ bản của hệ mật. Mã dòng cho phép nhận được tốc độ mã hóa cao nhất và đảm bảo khả năng độc lập biến đổi từng bit và byte, và cho phép giảm khả năng lỗi khi truyền bản mật mã qua kênh. Thế nhưng đối với mã dòng tỏ ra khó khoăn khi truy cập bất kỳ đến dữ liệu mã hóa. Khuyết điểm này có thể tránh nếu sử dụng phần tử khóa gamma phụ thuộc vào khóa mật và số thứ tự của phần tử đó. Trong các mật mã thế này có dấu hiệu của mật mã khối. Hiện nay các mật mã khối được sử dụng rộng rãi nhất. Mã khối đảm bảo được tính an toàn cao ở chế độ độc lập mã hóa từng khối, và cho phép truy cập bất kỳ đến dữ liệu mã hóa. Trong số các thiết bị bảo mật thông tin từ truy cập trai phép sử dụng các thuật toán mật mã file với tốc độ cao ở chế độ on-line với sự kết hợp các kiểu hệ mật, tức là mã dòng và mã khối. Ở mã dòng thực hiện biến đổi độc lập từng byte, nhưng nó thực hiện mã phụ thuộc vào thứ tự của byte trong từng file và vào các dấu hiệu đặc biệt của file. Căn cứ vào lĩnh vực ứng dụng mà xác định các giá trị của các phương án thực hiện (chương trình, máy), độ phức tạp khi thực hiện trên máy và tốc độ mã.

  2. Lựa chn chiều dài khóa mật. Cần chú rằng, bất kỳ một hệ mật với một chiều dài khóa hữu hạn luôn luôn tồn tại khả năng tìm kiếm khóa mật bằng phương pháp véc cạn khóa. Hiện nay đối với trường hợp tổng quát thì chiều dài khóa được cho là an toàn nếu không nhỏ hơn 128 bit, nhưng trong một số trường hợp riêng có thể dùng khóa với chiều dài 64 bit, có khi 56 bit, nếu như thông tin cần bảo vệ không quá quan trọng.

  3. Lựa chn cách miêu t khóa. Chúng ta có những cách miêu ta tả khóa khác nhau, phần này xem cụ thể ở phần các cách miêu tả khóa.

  4. Lựa chn các phần tử mật mã cơ sở và cách xử lý hệ mật. Để hoàn thành bước này cần am hiểu các phương pháp cơ bản để xây dựng mật mã, kiểu khối các hệ mật, hiểu được từng lệnh sử dụng trong hệ mật, và cũng cần đánh giá về chi phí khi thực hiện trên phần cứng cũng như thời gian trể của nó.

  5. Đánh giá tài nguyên cần thiết để thực hiện thuật toán mật mã. Xem các khả năng thực hiện trên phần cứng và phần mềm. Thực hiện các thí nghiệm cũng như mô hình hóa chương trình cho hệ mật.

  6. Đánh giá về cống suất ca mật mã. Xác định tốc độ mã đối với các phương án thực hiện khác nhau trên phần cứng và phần mềm. Nếu như trên bước 5 và 6 kết quả đánh giá nhận được không thỏa mãn giá trị mục đích của bước 1, thì quay lại bước 4.

  7. Xem độ an toàn ca hệ mật đối với các kiểu tấn công mật mã khác nhau. Xem xét các cách thám mã cơ bản, cũng như các khả năng tấn công khác với việc sử dụng các ứng dụng đặc biệt. Dựa trên các cách tấn công đó, xác định được độ khó tấn công và từ đó đánh giá được độ an toàn của hệ mật.

  8. Biến đổi thuật toán. Cân nhắc kết qủa nhận được trên bước 7, có thể biến đổi thuật toán, chọn lựa các phần tử tối ưu cho hệ mật nhằm nâng cao độ khó cho cách tấn công hệ mật hiệu quả nhất. Nếu cần có thể lặp lại một số lần ở bước này với các các thay đổi khác nhau nhằm đạt được mục đích.

  9. Thực hiện phân tích chi tiết biến đổi hệ mật. Nếu như phân tích chi tiết vạch ra sự tồn tại điểm yếu của hệ mật trong sơ đồ biến đổi thì lặp lại bước 8, nếu cần có thể lặp lại cả bước 4.

  10. Thực hiện kiểm tra thống kê và các thì nghiệm đặc biệt. Trên bước này thực hiện chương trình thuật toán của hệ mật hoặc thực hiện chúng trên phần cứng và tiến hành kiểm tra thống kê và các thí nghiệm đặc biệt, lập quy hoạch kết quả phân tích để kiểm tra toàn diện và tương ứng với lý thuyết. Ngoài ra việc kiểm tra hệ mật cũng chú ý đến các khả năng tấn công mới. Bước phân tích hệ mật được tiếp tục thực hiện trong quá trình sử dụng hệ mật.

Các cách miêu tả khóa

  1. Sử dng tính trước. Ở đây chúng ta sử dụng một quá trình hay thuật toán để biến đổi khóa mật thành khóa mở rộng. Việc sử dụng quá trình tính toán ban đầu để mở rộng khóa cho phép đảm bảo được sự phụ thuộc phức tạp của khóa vòng vào khóa mật. Cách làm này, nếu như có một thuật toán mở rộng tốt thì sẽ tránh tấn công của thám mã nhằm đạt được khóa mật. Thế nhưng phương pháp này có nhược điểm là sẽ làm giảm tốc độ mã trong ứng dụng ở chế độ khóa phiên. Ngoài ra khi thực hiện trên máy cần tốn thêm một lượng tài nguyên để thực hiện sơ đồ mở rộng khóa.

  2. Trực tiếp sử dng khóa mật. Ở đây sử dụng một phần khóa mật (kích cở là 32 hoặc 64 bit) cho mỗi vòng mã. Tiêu biểu cho cách sử dụng này là thuật toán chuẩn liên xô 28147-89, chúng ta sẽ xem chi tiết thuật toán này ở phần sau. Nhược điểm của phương pháp này là khóa vòng phụ thuộc rõ ràng vào khóa mật nên thám mã có thể lợi dụng ở đây mà tấn công. Ngoài ra thực hiện trực tiếp khóa mật tồn tại phần lớn lớp khóa yếu, tức là các khóa mà dùng cho quá trình mã hóa và quá trình giải mã trùng nhau. Mặc dầu khóa yếu rất hiếm xuất hiện và khi xử lý hệ mật thì tìm cách để tránh xuất hiện nó. Ưu điểm khi dùng trực tiếp khóa mật làm khóa vòng là đảm bảo được tốc độ mã ở chế độ khóa phiên và cũng không cần thêm tài nguyên cho quá trình mở rộng khóa khi thực hiện trên máy.

  3. Hình thành khóa vòng trong quá trình mã khối dữ liệu. Ở phương pháp này thì vòng đầu tiên của quá trình mã sử dụng một phần khóa mật, nhưng khi hoàn thành mã vòng đầu tiên thì hình thành khóa con cho vòng thứ hai. Và khi mã vòng hai xong rồi thì tính toán khóa con cho vòng thứ ba và cứ tiếp tục như thế. Quá trình giải mã cũng có qúa trình hình thành tương tự. Và rõ ràng chúng ta thấy quan hệ khóa con giữa hai qúa trình mã và giải mã là vòng mã thứ i và giải mã thứ R-i+1 có khóa con như nhau, ở đây R là số vòng mã hay giải mã. Phương pháp này thì cũng cần thêm một lượng tài nguyên khi thực hiện trên phần cứng nhưng nó đảm bảo được tốc độ mã ở chế độ khóa phiên.

  4. Biến đổi khóa con ph thuộc vào biến đổi dữ liệu. Ở phương pháp này thì một phần khóa mật được sử dụng trực tiếp, nhưng trước khi nó tham gia biến đổi trên khối dữ liệu con thì nó bị biến đổi bằng lệnh, lệnh này phụ thuộc giá trị hiện tại của một trong các khối con. Lệnh này có thể thực hiện đồng thời với biến đổi của khối dữ liệu con khác, cho nên nó không làm giảm tốc độ mã hóa. Phương pháp này cũng tồn tại xuất hiện khóa yếu, nhưng vấn đề này có thể khắc phục bằng cách xây dựng hệ mật có một vòng mã không là thuận nghịch (involution). Phương pháp này còn dễ thực hiện trên phần cứng và đảm bảo được tốc độ cao ở chế độ khóa phiên.

    1. Chuẩn mã khối DES và các biến dạng của nó

      1. Tổng quan về DES.

DES (viết tắt của Data Encryption Standard, hay Tiêu chuẩn Mã hóa Dữ liệu) là một phương pháp mật mã hóa được FIPS (Tiêu chuẩn Xử lý Thông tin Liên bang Hoa Kỳ) chọn làm chuẩn chính thức vào năm 1976. Sau đó chuẩn này được sử dụng rộng rãi trên phạm vi thế giới. DES mã hóa một xâu bit x dài 64 bằng một khóa có độ dài 56 bit. Và tất nhiên bản mã cũng có độ dài 64 bit. Vì lý do DES có khóa mật quá ngắn, nên với kỹ thuật hiện nay thì DES hoàn toàn bị phá. Nhưng để hiểu sâu về mã khối chúng ta không thể không biết về DES.

Miêu t thuật toán DES. Sơ đồ miêu tả DES được cho ở hình 7.11.
Hмnh 7.11 Sơ đồ thuật toбn DES

Ta giải thнch sơ đồ thuật toбn, cу thể xem thuật thuật toбn cу 3 giai đoạn sau:



  1. Khối bản rх x cу độ dаi 64. Nу sẽ bị biến đổi bằng lệnh hoбn vị IP:

,

Với hoбn vị IP được cho bảng dưới.

58504234261810260524436282012462544638302214664564840322416857494133251791595143352719113615345372921135635547393123157

Ở đвy ta hiểu lа, bit thứ 58 sẽ đổi về vị trн 1, bit thứ 50 về vị trн 2, tương tự như thế cho cбc bit cтn lại. Khối chia thаnh hai khối con cу độ dаi bằng nhau .



  1. Khối sẽ bị biến đổi qua 16 vтng, mỗi vтng sẽ biến đổi đъng trong miểu tả mạng Feistel, tức lа , chъ э lа mỗi vтng sẽ cу một khуa ,khуa nаy được tạo ra bởi hаm tнnh toбn khуa con, chъng ta sẽ nуi ở phần sau. Hаm F được miкu tả bằng sơ đồ trкn hмnh 7.12:

Hình 7.12 Sơ đồ miêu tả hàm F của DES

Diễn giải sơ đồ như sau: Hàm F có hai tham số đầu vào, là khối dữ liệu 32 bit và khóa con 48 bit, khối dữ liệu 32 bit sẽ mở rộng bằng hаm mỡ rộng E, để thаnh 48 bit, hаm E biểu diễn bằng bảng chọn bнt sau:

3212345456789891011121312131415161716171819202120212223242524252627282928293031321

Sau đу nу cộng loại trừ với khуa con 48 bit, như hмnh vẽ, ta sẽ thu được 48 bit, 48 bнt nаy sẽ đi qua 8 bảng hoбn đổi , mỗi bảng S cу 64 phần tử,xếp thаnh 4 hаng, mỗi hаng 16 phần tử, mỗi phần tử lа 4 bнt. Giả sử đầu vаo mỗi bảng hoбn đổi lа 6 bнt , thм đầu ra sẽ lа 4 bнt, cбch xбc định 4 bit đу như sau: 2 bit xбc định thứ tự hаng của bảng S, 4 bнt xбc định cột của bảng S, vа phần tử cần xбc định tương ứng cу hаng thứ vа cột thứ . Kết quả của quб trмnh hoбn đổi chъng ta thu được lа 32 bнt. 32 bнt nаy sẽ thực hiện tiếp một hoбn vị P vа 32 bнt nhận được lа đầu ra của hаm F, với P được cho ở bảng sau:

1672021291228171152326518311028241432273919133062211425

6 bảng S được cho như sau:

S1012345678910111213141501441312151183106125907101574142131106121195382411481362111512973105031512824917511314100613

S2012345678910111213141501518146113497213120510131347152814120110691152014711104131581269321531381013154211671205149

S3012345678910111213141501009146315511312711428113709346102851412111512136498153011121251014731101306987415143115212

S4012345678910111213141507131430691012851112415113811561503472121101492106901211713151314528433150610113894511127214

S5012345678910111213141502124171011685315130149114112124713150151039862421111013781591256301431181271142136150910453

S6012345678910111213141501211015926801334147511110154271295611314011382914155281237041011311634321295151011141760813

S7012345678910111213141504112141508133129751061113011749110143512215862141113123714101568059236111381410795015142312

S8012345678910111213141501328461511110931450127111513810374125611014922711419121420610131535832114741081315129035611

Chъ э. Quб trмnh mг hуa thм thứ tự khуa con tham gia lần lượt cho 16 vтng lа , quб trмnh giải mг thм thực hiện theo thứ tự ngược lại.



  1. Qua 16 vтng, ta thu được 64 bit, vа 64 bнt nаy lại tiếp tục thực hiện hoбn vị ngược của hoбn vị ta thu được 64 bнt mг. tнnh ra như sau:

40848165624643239747155523633138646145422623037545135321612936444125220602835343115119592734242105018582633141949175725


Quб trмnh sinh khуa con được miкu t bằng sơ đồ hмnh 7.13.







<<<

<<<

PC2


<<<

<<<

<<<

<<<

PC2


PC1

Khуa 64 bнt



<<<

<<<

PC2


PC2

Hình 7.13 Sơ đồ sinh khóa DES


Gii thнch sơ đồ. Quб trмnh sinh khуa cу thể chia ra hai giai đoạn sau:

  1. Với 64 bit khуa ban đầu, ta loại cбc bit kiểm tra tнnh chẳn lẻ, cтn lại 56 bit ta thực hiện hoбn vị cố định PC1, với PC1 được cho ở bảng dưới:

57494133251791585042342648102595143352719113605244366355473931231576254463830221466153453729211352820124

Với 56 bнt nhận được phвn chia ra hai khối con, mỗi khối 28 bнt .



  1. Với i chạy từ 1 đến 16 thực hiện cбc bước sau:

Hai khối con bнt thực hiện dịch vтng trбi bнt, với mảng , thu được 2 khối 28 bнt tương ứng. Trong 56 bнt thu được, ta thực hiện hoбn vị cố định PC2 cу 48 phần tử để thu được khуa con chiều dаi lа 48 bнt, PC2 được cho ở bảng sau:

1417112415328156211023191242681672720132415231374755304051453348444939563453464250362932

Chъng ta thấy PC2 vừa lа hoбn vị vừa lа bảng chọn 48 bнt từ 56 bнt.

Biến dng ca DES.

Như nуi ở phần trước, vм hạn chế của DES trước cбc phương phбp tấn cфng, nкn họ tмm cбch lаm tăng khả năng an toаn cho thuật toбn. Chъng ta sẽ tмm hiểu hai cбch biện dạng hiệu quả trong số cбc biến dạng của DES.



3DES.

Sở dĩ nу cу tкn lа 3DES bởi vм người ta dщng 3 lần liкn tiếp DES với 3 khуa khбc nhau để mг hуa/giải mг. Chъng ta xem sơ đồ mг hуa 3DES trкn hмnh 7.14, với E lа quб trмnh mг hуa của DES, tương ứng với quб trмnh giải mг lа D.


Hình 7.14. Sơ đồ 3DES

Viết gn như sau:

Tức là bản tin ban đầu M sẽ được mã hóa bởi khóa được , tiếp tục giải mг bởi được ,tiếp tục mг hуa bởi được bản mг lа C. Quб trмnh giải mг thм ngược lại, tức lа bản mг C sẽ giải mг bởi khуa thu được , mг hуa bởi thu được,giải mг bởita thu được bản tin ban đầu M. Lъc nаy chiều dаi khуa sẽ lа 56.3=168 bнt. Chъng ta dễ dаng nhận thấy nếu thм 3DES trở thаnh DES.

Nhưng tốt về hướng an toаn thuật toбn thм cу vấn đề về tốc độ thм 3DES khб chậm so với bản thвn DES, chнnh xбc lа chậm đi 3 lần so với DES. Ngoаi ra khi thực hiện trкn phần cứng cũng tốn khб nhiều tаi nguyкn.

DESX.

Năm 1984 Ron revert giới thiệu một DES mới cу tкn lа DESX, khắc phục được nhược điểm của DES. DESX được xác định như sau:



Khуa của DESX cу chiều dаi lа 54+64+64=184 bнt. Để mг khối dữ liệu M, đầu tiкn khối dữ liệu M sẽ cộng theo modulo 2 với khуa theo từng bнt, kết quả thu được được mг hуa bỡi DES với khуa vа cuối cщng lại cộng từng bнt theo modulo 2 với khуa .

DESX lаm tăng khả năng bảo vệ DES chống tấn cфng vйc cạn khуa vа đảm bảo được độ an toаn chống lại cбc khả năng tấn cфng khбc. Ngoаi ra thuật toбn nаy thực hiện đơn giản vа khi thực hiện trкn phần cứng cũng đạt hiểu quả cao.


    1. Thuật toбn chuẩn mг khối Liкn Xф GOST 28147-89

Đây là thuật toán có cấu trúc khá giống DES nhưng dễ thực hiện hơn, tốc độ mã lớn hơn DES, hiện đang được sử dụng rộng rãi ở Nga. Nó mã hóa khối dữ liệu 64 bít, với khóa là 256 bít. Đặc biệt thuật toán này dùng khóa mật trực tiếp tham gia vào quá trình mã hóa, mà không sử dụng quá trình mở rộng khóa. Sơ đồ thuật toбn được miêu tả ở hình 7.15.
Hình 7.15 Sơ đồ thuật toán chuẩn Liên Xô GOST 28147-89

Thuật toán thực hiện 32 vòng biến đổi. S ở đây hàm thay thế 32 bít này thành 32 bít khác, nó bao gồm 8 bảng , mỗi bảng cу 16 phần tử, mỗi phần tử 4 bнt, 8 bảng nаy được giữ bн mật để tạo thкm tham số mật cho hệ vа nу được thay đổi theo chu kỳ thời gian.

Cбc khуa con cу chiều dаi lа 32 bнt, nу được hмnh thаnh từ khуa mật. Khуa mật 256 bнt chia ra 8 khуa con. Vа cбch sử dụng cбc khуa con tương ứng với qъa trмnh mг hуa vа giải mг được miкu ta trong bảng sau.

Vтng thứ i1234567891011Mг hуa QiK1K2K3K4K5K6K7K8K1K2K3Giải mг QiK1K2K3K4K5K6K7K8K8K7K6

Vтng thứ i1213141516171819202122Mг hуa QiK4K5K6K7K8K1K2K3K4K5K6Giải mг QiK5K4K3K2K1K8K7K6K5K4K3

Vтng thứ i23242526272829303132Mг hуa QiK7K8K1K2K3K4K5K6K7K8Giải mг QiK2K1K8K7K6K5K4K3K2K1

Cу thể miкu ta thuật toбn theo cбc bước sau:

Khối dữ liệu ban đầu chia ra thаnh hai khối con (L,R) cу chiều dаi lа 32 bнt. Vа 1 vтng của thuật toбn thực hiện biến đổi theo cбc bước sau:



  1. Khối L cộng với khóa con theo modulo .

  2. 32 bít thu được ở bước 1, chia ra 8 phần mỗi phần 4 bít, 4 bít này qua phép hoán đổi ta thu được 32 bít mới.

  3. 32 bít ở bước 2 tiếp tục bị biến đổi với phép dịch vòng trái 11 bít.

  4. Kết quả nhận được ở bước 3 tiếp tục cộng từng bít theo modulo 2 với nhánh R và thực hiến hoán đổi theo mạng Feistel và thực hiện vòng biến đổi mới.

    1. Thuật toбn mã khối Blowfish

Thuật toán này tuy không thông dụng như DES nhưng đây là thuật toán có độ an toàn cao và dễ thực hiện hơn DES, do Bruce Schneier đề xuất năm 1993. Thuật toán này cũng có 16 vòng, và xây dựng trên cơ sỡ sơ đồ Feistel. Blowfish mã hóa khối dữ liệu 64 bít, và dùng khóa có chiều dài từ 32 đến 448 bít, tùy ứng dụng mà chúng ta chọn chiều dài khóa thích hợp. Chúng ta xem sơ đồ thuật toán Blowfish ở hình 7.16.
Hình 7.16 Sơ đồ thuật toán Blowfish
Miêu tả thuật toán: Từ khóa mật hình thành nên 18 khóa con chiều dài 32 bít và 4 ma trận kích thước 256, mỗi phần tử có độ lớn là 32 bít:

Q0(1), Q1(1), …, Q255(1);

Q0(2), Q1(2), …, Q255(2);

Q0(3), Q1(3), …, Q255(3);

Q0(4), Q1(4), …, Q255(4).

ở đвy Q(i) được dщng đối với hаm F(X), với X cу độ lớn 32 bнt. Hаm F được miкu tả như sau. X - 32 bнt biểu diễn dưới dạng sau: X= x3 | x2 | x1 | x0. Sau đу diễn ra quб trмnh tнnh F(X) như sau

F(X) = {[(Qx3(1) + Qx2(2)) mod 232]  Qx1(3)} + Qx0(4) ( mod 232).

Hàm F miêu tả ở hình 7.17.


Hình 7.17. Sơ đồ miêu tả hàm F của Blowfish
Thuật toán Blowfish có thể trình bày dưới dạng sau:

Thuật toán mã hóa:

Đầu vào: 64 bít khối dữ liệu rõ T=L|R, tức là biểu diễn dưới dạng 2 khối con có chiều dài 32 bít.


  1. Thiết lập i = 1.

  2. Biến đổi gнa trị khối con L vа tнnh giб trị V hiện tại:

L := L  Ki;

V := F(L).



  1. Biến đổi khối con R:

R := R  V.

  1. Nếu như i = 16, thì chuyển sang bước 7.

  2. Tính i := i+1 và thực hiện hoán đổi giữa R và L:

W := R; R := L; L := W.

  1. Chuyển về bước 2.

  2. Biến đỗi khối con R:

R := R  K17.

  1. Biến đổi khối con L:

L := L  K18.

Đầu ra: 64-bít khối bản mã L | R.


Thuật toán giải mã:

Đầu vào: 64-bít khối bản mã C = L | R.



  1. Biến đổi khối con R:

R := R  K17.

  1. Biến đổi khối con L:

L := L  K18.

  1. Thiết lập i = 16.

  2. Tнnh giб trị hiện tại của V vа biến đổi khối con R:

V := F(L);

R := R  V.



  1. Biến đổi khối con L:

L := L  K17-i.

  1. Nếu i=1, thì chuyển sang bước 9.

  2. Hoán đổi giữa R và L:

W := R; R := L; L := W.

  1. i := i-1 và chuyển về bước 4.

Đầu ra là khối bản rõ: L | R.

    1. Hệ mật mã khối RC2

Tác giả của nó là Ron Rivest – một trong 3 tác giả của hệ mật nổi tiếng RSA. RC2 sử dụng khối có độ dài 64 bits, khóa có độ dài từ 8 đến 1024 bits. Thuật toán trong RC2 được thiết kế để có thể dễ dàng (và hiệu quả) triển khai trong hệ thống với bộ vi xử lý 16 bits (độ dài thanh ghi bằng 16 bits). Tốc độ mã của RC2 lớn hơn rất nhiều so với DES, còn về độ an toàn thì có thể lớn hơn hoặc nhỏ hơn phụ thuộc vào chiều dài khóa mật được chọn. Thực toán này thuộc sở hữu của công ty RSA Security Inc, nên muốn sử dụng nó phải được đồng ý của công ty này. Chúng ta xem các thủ tục của thuật toán RC2.
1   2   3   4   5




Cơ sở dữ liệu được bảo vệ bởi bản quyền ©hocday.com 2024
được sử dụng cho việc quản lý

    Quê hương