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

đồ án tốt nghiệp hệ mật idea

43 271 2

Đ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 43
Dung lượng 256 KB

Nội dung

Hệ mật IDEA LỜI NÓI ĐẦU Vấn đề bảo mật thông tin trong các hệ thống thông tin , tin học hoá, đã trở nên hết sức quan trọng , nó quyết định đến sự thành công và tính hữu hiệu của các hệ thống thông tin. Để thực hiện vấn đề này người ta áp dụng rất nhiều các biện pháp khác nhau từ những phương pháp thủ công với các quy tắc , quy ước đến những phương pháp hiện đại có sự trợ giúp của các phương tiện tính toán tiên tiến nhất. Trong mấy năm gần đây, trước sự phát triển của khoa học kỹ thuật đã cho ra đời nhiều thiết bị lưu trữ, thiết bị truyền thông có chất lượng cao, đặc biệt là sự phát triển nhanh như vũ bão của mạng lưới tin học đã và đang mang tính toàn cầu hoá. Với lượng thông tin lớn, dữ liệu tập trung, tốc độ truyền tin cao vì vậy việc bảo mật thông tin đã trở nên khó khăn hơn nhiều. Trước tình hình đó nhiều tổ chức, cá nhân trong và ngoài nước nói chung và ngành cơ yếu Việt Nam nói riêng đã rất quan tâm tới vấn đề này. Nhiều các biện pháp kỹ thuật được áp dụng như chống tiếp cận, sao chép trái phép, bảo vệ thông tin trên đường truyền vv. Để góp phần vào việc bảo đảm an toàn thông tin. Mục tiêu nghiên cứu đề tài này của em là : “ Nghiên cứu, ứng dụng của hệ mật IEDA vào bảo mật thông tin”.Đây là thuật toán mới và đang được áp dụng phổ biến trên thế giới trong việc mã hoá dữ liệu, theo đánh giá của các nhà phân tích chuyên môn thì IDEA có khả năng sẽ là một nhân tố tốt trong tương lai về việc mã hoá dữ liệu. Do thời gian làm đồ án có hạn và trình độ chuyên môn chưa nhiều nên không thể tránh được một số thiếu sót. Vì vậy em rất mong nhận được sự góp ý của các thầy và các bạn để đề tài này có thể phát triển và được đưa vào ứng dụng trong thực tế. Cuối cùng em xin chân thành cảm ơn thầy giáo TS : Lều Đức Tân đã tận tình giúp đỡ em hoàn thành đề tài này. 1 Hệ mật IDEA Hà Nội ngày / /2000. 2 Hệ mật IDEA MỤC LỤC CHƯƠNG I. NÓI VỀ HỆ MẬT IDEA I. Thuật toán IDEA I.1. Những điểm chính I.1.2. Các phép toán sử dụng trong IDEA I.1.3. Mã hoá và giải mã trong IDEA a. Mã hoá b. Giải mã I.1.4 Quá trình làm việc của một modul CHƯƠNG II. MỘT SỐ ĐOẠN CHƯƠNG TRÌNH VÍ DỤ II.1. Nhân 2 số modulo(2 16 +1) II.2. Tính số nhân đảo của số x modulo 65537 II.3. Tạo 52 khối subkey từ khoá 128 bit II.4. Tính khoá cho quá trình giải mã II.5. Chương trình mã CHƯƠNG III. THIẾT KẾ CHƯƠNG TRÌNH MÃ DỊCH BẰNG HỆ MẬT IDEA III. Mục đích và thiết kế III.1. Mục đích III.2. Cách thực hiện mã hoá và giải mã theo IDEA III.3. Các chức năng của phần mềm III.4. Chương trình mô tả của thuật toán IDEA 3 Hệ mật IDEA CHƯƠNG I. NÓI VỀ HỆ MẬT IDEA I. Thuật toán IDEA Thuật toán IDEA ( International Encryption Algorihm) được mô tả như sau: I.1 . Những điểm chính: IDEA là phương pháp mã khối sử dụng 128 bit khoá để mã khối dữ liệu 64 bit. IDEA được xây dựng nhằm mục đích kết hợp với nhiều yếu tố khác để tăng độ an toàn và khả năng thực hiện. Từ khi mới được công bố thì thuật toàn này đều là đối tượng quan tâm của các nhà phân tích mật mã(mã thám), và không ai có thể đảm bảo được mức độ chắc chắn, sự an toàn của thuật toán này cung cấp và cũng không ai có thể bảo đảm rằng việc tấn công hay đột phá vào thuật toán này là không thể thành công. Một ngày nào đó, cho dù có đột phá được thì người ta cũng không hề công bố. Tuy nhiên, với điều kiện kỹ thuật như hiện nay thì điếu đó vẫn khó có thể xảy ra. Độ an toàn: -Độ an toàn của khối: khối phải có độ dài đủ để chống lại các phương pháp phân tích thống kê và ngăn việc một số khối nào đó xuất hiện nhiều hơn các khối khác. Mặt khác sự phức tạp của thuật toán tăng theo hàm mũ với độ dài khối. Với khối có độ dài 64 bit là đủ độ an toàn. -Độ dài khoá: Khoá phải có độ dài đủ để chống lại các phương pháp vét cạn khoá ( Chống khả năng thử các khoá được sinh ra từ (N)bit khoá cho trước ). - Độ phức tạp: Bản mã phải phụ thuộc một cách phức tạp vào bản rõ và khoá. Mục tiêu đặt ra ở đây là phải phức tạp hoá sự phụ thuộc của bộ mặt thống kê của bản mã vào bản rõ. IDEA đạt được diều này nhờ sử dụng 3 phép toán sẽ trình bày sau đây: 4 Hệ mật IDEA - Sự phân bố: IDEA đã đạt được việc mỗi bít của bản rõ phải có ảnh hưởng tới nhiều bit của bản mã và mỗi bit khoá cũng tác động đến nhiều bit của bản mã. Điều này làm cho cấu trúc của bản rõ sẽ bị phá vỡ trong bản mã. I.2. Các phép toán sử dụng trong IDEA Trong thuật toán IDEA gồm có 3 thuật toán sau: - Phép XOR theo bit. Kí hiệu là ⊕ - Phép cộng 2 số nguyên lấy modulo 2 16 (65536)với đầu vào và các đầu ra là các số nguyên không dấu 16 bit. Kí hiệu là  . - Phép nhân hai số nguyên lấy modulo 2 16 +1 với đầu vào và đầu ra là các số nguyên không dấu 16 bit. Quy ước là khối toàn số 0 biểu thị cho 2 16 . Kí hiệu ⊗. Cả ba phép toán này đều phải thoả mãn các tính chất sau: - Không có 2 phép toán nào thoả mãn luật phân phối : a  (b ⊗ c ) ≠ (a  b ) ⊗ ( a  c) - Không có 2 phép toán nào thoả mãn luật kết hợp : a  (b ⊗ c ) ≠ (a  b ) ⊗ c Việc sử dụng 3 phép toán này tạo ra một sự biến đổi phức tạp dữ liệu đầu vào làm cho việc mã thám trở nên khó khăn hơn so với việc chỉ sử dụng một phép toán đơn giản. Trong IDEA sự phân bố được tạo ra dựa trên khối thuật toán có cấu trúc như hình vẽ gọi là cấu trúc MA( Multiplication/Additio) trong hình sau: 5 Hệ mật IDEA F 1 F 2 Z 5 Z 6 G 1 G 2 Hình 1: Cấu trúc Multiplication/Additio (MA) Khối này nhận 16 bit từ bản rõ và 16 bit được lấy từ khoá ra theo một quy tắc nào đó ( 16 bit này được gọi là subkey và quy tắc lấy subkey từ khoá sẽ được trình bày ở sau)để tạo ra 16 bit đầu ra. Một chương trình kiểm tra trên máy tính bằng phương pháp vét cạn xác định rằng mỗi bit ở đầu ra phụ thuộc vào các bít rõ và bit subkey đầu vào. Cấu trúc này được sử dụng lặp lại 8 lần trong thuật toán và tạo nên một sự phân bố có hiệu qủa. IDEA được xây dựng sao cho việc thực hiện nó được dễ dàng cả trên phần cứng và phần mềm . Việc thực hiện trên phần cứng, điển hình là trên vi mạch VLSI (VLSI: mạch tích hợp cao) , được thiết kế để đạt được tốc độ cao. Việc xây dựng trên phần mềm thì thuận tiện và giá thành thấp. 6 ⊗ ⊗   Hệ mật IDEA Những điểm chủ yếu trong việc xây dựng phần mềm: + Sử dụng những khối nhỏ : những phép mã thực hiện trên những khối có độ dài 8,16,32 bit phù hợp với việc xử lý trên máy tính. + Sử dụng thuật toán giản đơn :Phép toán mã dễ dàng trong lập ttình như phép cộng , phép dịch chuyển (shift), , Cả 3 phép toán của IDEA đều thoả mãn những yêu cầu này. Điểm khó khăn nhất là phép toán nhân modulo(2 16 +1) cũng có thể dễ dàng xây dựng từ những phép toán sẵn có . - Những điểm chủ yếu trong việc thực hiện trên phần cứng: + Sự tương tự trong mã hoá và giải mã : Mã hoá và giải mã chỉ nên khác nhau trong việc sử dụng khoá và nhờ đó một phương tiện có thể dùng cho cả mã hoá và giải mã. + Cấu trúc lặp lại : Phương pháp mã nên có cấu trúc modul lặp lại để các mạch VLSI có thể thực hiện được dễ dàng. IDEA được xây dựng từ 2 khối modulo đơn giản và sử dụng lặp lại nhiều lần. I.1.3 Mã hoá và giải mã trong IDEA: a. Mã hoá: Giống như các sơ đồ mã hoá khác, hàm mã hoá có 2 tham số ở đầu vào là Bản rõ cần mã và khoá. Trong trường hợp này là 64 bit rõ là 128 bit khoá . Từ đầu vào đến đầu ra, các bit rõ lần lượt đi qua 8 modul và một hàm biến đổi cuối cùng. Tám modul này có cấu trúc giống nhau và thực hiện các thao tác như nhau với dữ liệu đầu vào. Mỗi modul nhận 4 khối 16 bit rõ ở đầu vào cùng với các subkey và đưa ra 4 khối 16 bit đã được mã hoá. Do đó 64 bit rõ sẽ được chia thành 4 khối nhỏ gọi là các subblock, mỗi subblock là 16 bit. Cùng với các subblock này là 6 khối subkey cũng sẽ được đưa vào từng modul. Như 7 Hệ mật IDEA vậy thêm 4 subkey cần thiết cho hàm biến đổi cuối cùng, ta cần tổng cộng 52 khối subkey cho một lần 64 bit rõ Hình 2: Cấu trúc IDEA Như đã nói ở trên, các modul có cấu trúc giống nhau và chỉ khác nhau ở dữ liệu đầu vào. Trừ modul đầu tiên nhận 64 bit rõ đưa từ ngoài vào, các modul đứng sau sẽ nhận 4 khối subblock 16 bit đầu ra của modul đứng trước nó làm các bit rõ đầu vào. Trong quá trình đầu tiên các modul kết hợp 4 subblock với 4 subkey bằng các phép toán  và ⊗. Bốn khối đầu ra của quá trình này XOR với nhau như trong sơ đồ để tạo ra 2 khối đầu vào cho cấu trúc MA sẽ kết hợp chúng với 2 subkey còn lại để tạo ra 2 khối 16 bit mới. 8 X1 X2 X3 X4 W11 W12 W13 W14 Modul 2 W21 W22 1 W23 W24 W71 W72 W73 W74 W81 W82 W83 W84 Modul 8 Hàm biến đổi Z1 Z52 Modul 1 Tạo Subkey từ khoá 128 bit khoá Z 16 16 64 bit mã Hệ mật IDEA Cuối cùng, 4 khối được tạo ra từ quá trình đầu tiên sẽ được XOR với 2 khối đầu ra của cấu trúc MA để tạo ra 4 khối đầu ra của modul. Ta cũng cần chú ý một điều là 2 khối đầu vào X 2 và X 3 được hoán đổi cho nhau để tạo ra 2 khối W 12 và W 13 được đưa ra ngoài. Điều này làm tăng sự hoà trộn của các bit được xử lý và tăng khả năng chống lại các phương pháp mã thám. X1 X2 X3 X4 Hàm biến ở cuối cùng ta cũng có thể coi như một modul thứ 9. Hàm này có cấu trúc giống như cấu trúc đã thực hiện trong quá trình đầu tiên của một modul chỉ khác một điều là khối thứ 2 và thứ 3 ở đầu vào được đổi chỗ cho nhau trước khi được đưa tới đơn vị phép toán. Thực ra đây chỉ là việc trả lại thứ tự đã bị đổi sau modul thứ 8. Lý do của việc này là sự giống nhau về cấu trúc của quá trình giải mã và quá trình mã hoá. 9 Hình 3: Cấu trúc một modul (Modul 1) ⊗ ⊗ ⊗  ⊗  ⊗ ⊕ ⊕ ⊕  ⊗   ⊕ W11 W12 W13 W14 Z6 Z5 Z3 Z4 Z1 Z2 Hệ mật IDEA Y1 Y2 Y3 Y4 Hình 4: Hàm biến đổi của IDEA * Quy tắc tạo ra subkey: Như trên đã trình bày, cần thiết phải có 52 khối subkey 16 bit được tạo ra từ 128 bit khoá. Quy tắc tạo subkey như sau: - 8 subkey đầu tiên , Z1 Z8, được lấy trực tiếp từ khoá với X1 là 16 bit đầu ( Bit có trọng số cao nhất ), Z2 là 16 bit tiếp theo và cứ tiếp tục như vậy - Sau đó khoá được quay trái 25 bit và 8 subkey tiếp theo được tạo ra theo quy tắc trên. Thao tác này được lặp lại cho đến khi có đủ 52 khối subkey. Quy tắc này là một phương pháp hiệu quả cho việc đa dạng hoá các bit khoá dùng cho các modul. Ta nhận thấy rằng những subkey đầu tiên dùng trong mỗi modul sử dụng những tập hợp bit khác nhau của khoá. Nếu như khoá 128 bit được ký hiệu là Z[ 1 128] thì subkey đầu tiên của modul sẽ là : Z 1 = Z[ 1 16] Z 25 = Z[76 91] Z 7 = Z[97 112] Z 31 = Z[44 59] Z 13 = Z[90 105] Z 37 = Z[37 52] Z 19 = Z[83 98] Z 43 = Z[30 45] Như vậy , 96 bit subkey sử dụng cho mỗi modul , trừ modul thứ nhất và modul thứ 8, là không liên tục. Do đó không có một mối liên hệ dịch chuyển 10   ⊗ ⊗ Z52 Z51 Z49 Z50 [...]... {b=6*i;a=48-b; IDEA_ khoa[b] =IDEA_ nghich_dao(k1[a]); IDEA_ khoa[b+3] =IDEA_ nghich_dao(k1[a+3]); if (i) { IDEA_ khoa[b+1]=0-k1[a+2]; IDEA_ khoa[b+2]=0-k1[a+1]; } else { IDEA_ khoa[b+1]=0-k1[a+1]; IDEA_ khoa[b+2]=0-k1[a+2]; } b+=4;a=50-b; 34 Hệ mật IDEA IDEA_khoa[b]=k1[a]; IDEA_ khoa[b+1]=k1[a+1]; } b=6*i;a=48-b; IDEA_ khoa[b] =IDEA_ nghich_dao(k1[a]); IDEA_ khoa[b+3] =IDEA_ nghich_dao(k1[a+3]); IDEA_ khoa[b+1]=0-k1[a+1]; IDEA_ khoa[b+2]=0-k1[a+2];... ma theo he IDEA mot BLOCK 4 word */ void idea( WORD r) {WORD x[4],y[4],a,b; memcpy(y,Buff+r,8); /* 8 vong dau */ for (int i=0;i0 va y>0 */ #define IDEA_ tich(x,y) ((x*y) %IDEA_ max) #define do_dai_buff 0x8000 BYTE Buff[do_dai_buff]; WORD Block_vao[4] ,IDEA_ khoa[52] ,IDEA_ mam[8]; Hệ mật IDEA /* Ham tinh tich x*y (modulo 65537) */ WORD IDEA_ nhan(WORD x,WORD y) {if ((x==0)&&(y==0)) return 1; else {if (x==0) return (WORD) (IDEA_ max-y); else if (y==0) return (WORD) (IDEA_ max-x); else { LONG u=x,v=y; return (WORD) IDEA_ tich(u,v); } }... j=0;j>db)^ (IDEA_ mam[(j+dw+1)&7]db)^ (IDEA_ mam[(j+dw+1)&7] . đề tài này. 1 Hệ mật IDEA Hà Nội ngày / /2000. 2 Hệ mật IDEA MỤC LỤC CHƯƠNG I. NÓI VỀ HỆ MẬT IDEA I. Thuật toán IDEA I.1. Những điểm chính I.1.2. Các phép toán sử dụng trong IDEA I.1.3. Mã. toán IDEA 3 Hệ mật IDEA CHƯƠNG I. NÓI VỀ HỆ MẬT IDEA I. Thuật toán IDEA Thuật toán IDEA ( International Encryption Algorihm) được mô tả như sau: I.1 . Những điểm chính: IDEA là phương. Hệ mật IDEA LỜI NÓI ĐẦU Vấn đề bảo mật thông tin trong các hệ thống thông tin , tin học hoá, đã trở nên hết sức quan trọng , nó quyết định đến sự thành công và tính hữu hiệu của các hệ thống

Ngày đăng: 23/08/2014, 13:32

TỪ KHÓA LIÊN QUAN

w