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

Thiết Kế Vi Mạh Thự Hiện Thuật Toán Aes Dựa Trên Ông Nghệ Fpga.pdf

108 1 0

Đ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

Tiêu đề Thiết Kế Vi Mạch Thực Hiện Thuật Toán AES Dựa Trên Công Nghệ FPGA
Tác giả Đinh Kim Chi
Trường học Trường Đại Học Bách Khoa Hà Nội
Chuyên ngành Điện Tử Viễn Thông
Thể loại Luận Văn Thạc Sĩ Khoa Học
Năm xuất bản 2006
Thành phố Hà Nội
Định dạng
Số trang 108
Dung lượng 2,67 MB

Nội dung

MÉu b×a luËn v¨n cã in ch÷ nhò Khæ 210 x 297 mm § in h k im c h i § iÖn tö v iÔn th « n g 2 0 0 4 2 0 0 6 Bé gi¸o dôc vµ ®µo t¹o Trêng ®¹i häc b¸ch khoa hµ néi 0BLuËn v¨n th¹c sÜ khoa häc ThiÕt kÕ vi[.]

Trang 3

4.2.5 KÕt qu¶ thùc hiÖn trªn chip FPGA cña toµn bé module AES vµ mét

sè module giao tiÕp kh¸c cho m¹ch thö nghiÖm15T 72

Trang 5

B¶ng 4.4 KÕt qu¶ biªn dÞch module AES vµ module giao tiÕp kh¸c trªn cïng

mét chip FPGA EP1C6Q240-C8.U 72

Trang 6

H×nh 2.10 AddRoundKey() thùc hiÖn phÐp XOR tõng cét cña m¶ng Tr¹ng

th¸i víi mét tõ trong chuçi khãa.U 45

Trang 8

C¸c tõ viÕt t¾t

A

AES Advanced Encryption Standard Tiªu chuÈn m· hãa tiªn tiÕn

AHDL Analog Hardware Description

Language

Ng«n ng÷ lËp tr×nh m« t¶ phÇn cøng t¬ng tù

KDC Key Distribution Center Trung t©m ph©n phèi khãa

KTC Key Translation Center Trung t©m biªn dÞch khãa

Trang 9

Lời nói đầu

Bảo mật là các phơng pháp, kỹ thuật và công nghệ nhằm bảo vệ những thông tin bí mật nh thông tin giao dịch, thông tin cá nhân nhằm ngăn cản việc đánh cắp hay truy cập bất hợp pháp vào các nguồn tài nguyên không đợc phép Bảo mật thông tin đã ra đời từ rất lâu, lúc đầu nó chỉ đợc sử dụng trong quân sự Nhng cho đến nay, bảo mật đã đợc áp dụng rộng rãi hơn trong dân

sự, đặc biệt trong các ngành kinh tế, tài chính, ngân hàng và cả trong nghiên cứu khoa học

Cuộc cách mạng công nghệ thông tin đã tạo một bớc ngoặt lớn cho nhân loại Cơ hội phát triển cho mỗi quốc gia là vô cùng thuận lợi Sự giao lu

và hội nhập toàn cầu đã mở rộng trớc mắt tất cả các quốc gia kể cả những quốc gia đang phát triển Thông tin và tri thức chính là năng lực cạnh tranh mạnh mẽ nhất trong kỷ nguyên mới, kỷ nguyên Internet và thông tin số Tuy nhiên, nếu ta lạm dụng môi trờng thông tin quá mức mà không có những biện pháp kiểm soát hay bảo vệ thì không thể lờng hết đợc những tác động xấu mà nó đem lại Vì thế, vấn đề cần giải quyết tiếp theo chính là vấn đề an toàn, bảo mật và tin cậy cho các thông tin dới cả góc độ kỹ thuật và pháp lý

Tại Việt Nam, các chính sách mới đã tạo điều kiện cho các doanh nghiệp phát triển mạng thông tin về cơ sở hạ tầng Trong thời gian sắp tới, khi công nghệ WAN đáp ứng tốt các yêu cầu về băng thông, chất lợng dịch vụ,

đồng thời nạn tấn công trên mạng với mục đích chính trị và kinh tế gia tăng nhanh chóng thì việc bảo mật thông tin ngày càng đợc chú trọng hơn Không chỉ các nhà cung cấp dịch vụ mà các cơ quan chính phủ, quân đội, khối ngân hàng và các doanh nghiệp cũng bắt đầu có ý thức về an toàn thông tin

Tuy nhiên, các sản phẩm bảo mật hiện nay đều đợc sản xuất ở nớc ngoài thờng có giá thành rất đắt, do đó chỉ dành cho các doanh nghiệp lớn nh ngân hàng, tài chính Với những doanh nghiệp vừa và nhỏ, mặc dù họ có nhu cầu về bảo mật thông tin nhng họ không có đủ khả năng để mua những sản phẩm đó Bên cạnh đó, các ngành an ninh quốc phòng lại không muốn

Trang 10

mua các sản phẩm bảo mật của nớc ngoài lại xuất phát từ chính vấn đề bảo mật thông tin

Trên cơ sở đó, tác giả đã nghiên cứu và phát triển thành một đề tài

“Thiết kế vi mạch thực hiện thuật toán AES dựa trên công nghệ FPGA“

đợc sử dụng cho nhiều mục đích khác nhau AES là một trong những tiêu chuẩn bảo mật đang đợc ứng dụng rộng rãi nhất hiện nay, do một nhóm hai

kỹ s ngời Bỉ là Joan Daemen, Vincent Rijmen nghiên cứu và đề xuất vào tháng 6 năm 1998 và đợc Viện tiêu chuẩn công nghệ quốc gia Hoa Kỳ NIST thông qua tháng 11 năm 2001 nh là một tiêu chuẩn chính thức áp dụng cho bảo mật số liệu Bên cạnh đó, tác giả đã sử dụng một phơng pháp thiết kế phần cứng tiên tiến nhất hiện nay là dựa trên công nghệ FPGA Với công nghệ này nhiều chức năng điều khiển, logic đều có thể thiết kế trên một con chip duy nhất

Bố cục của luận văn nh sau: Chơng 1 trình bày tổng quan về vấn đề nghiên cứu và đề xuất giải pháp, Chơng 2 giới thiệu về tiêu chuẩn bảo mật AES, Chơng 3 trình bày các vấn đề về thiết kế phần cứng và phần mềm vi mạch AES, Chơng 4 đa ra các kết quả thu đợc cả về lý thuyết và thực tế cũng nh những đề xuất về hớng phát triển tiếp theo của đề tài

Trong thời gian qua, để hoàn thiện luận văn, em đã nhận đợc sự tận tình hớng dẫn của T.S Nguyễn Hữu Trung Tuy nhiên, do thời gian có hạn, luận văn khó tránh khỏi những thiếu sót, vì vậy em rất mong nhận đợc sự

đóng góp ý kiến của các thày cô giáo để hoàn thiện hơn nữa

Xin chân thành cảm ơn

Trang 11

Chơng 1 Tổng quan về vấn đề nghiên cứu

1.1 giới thiệu về bảo mật thông tin

Bảo mật là khoa học về truyền đạt, mã hóa và giải mã các bản tin bí mật Julius Caesar đã sử dụng một trong những hệ thống bảo mật đợc ghi nhận sớm nhất trong trận chiến Rome tại Gaul năm 58 trớc công nguyên Nhờ khả năng chuyển giao an toàn mệnh lệnh tới những ngời chỉ huy, các chiến dịch của Caesar đã rất thành công

Cuộc cách mạng công nghệ thông tin đã tạo một bớc ngoặt lớn cho nhân loại Cơ hội phát triển cho mỗi quốc gia là vô cùng thuận lợi Sự giao lu

và hội nhập toàn cầu đã mở rộng trớc mắt tất cả các quốc gia kể cả những quốc gia đang phát triển Thông tin và tri thức chính là năng lực cạnh tranh mạnh mẽ nhất trong kỷ nguyên mới, kỷ nguyên Internet và thông tin số Tuy nhiên, nếu ta lạm dụng môi trờng thông tin quá mức mà không có những biện pháp kiểm soát hay bảo vệ thì không thể lờng hết đợc những tác động xấu mà nó đem lại Môi trờng thông tin mở toàn cầu chứa đựng trong bản thân nó nhiều hiểm họa, rủi ro Các thông tin dữ liệu trao đổi có thể bị đánh cắp, sửa đổi Vì thế, vấn đề cần giải quyết tiếp theo chính là vấn đề an toàn, bảo mật và tin cậy cho các thông tin dới cả góc độ kỹ thuật và pháp lý

Bảo mật là các phơng pháp, kỹ thuật và công nghệ nhằm bảo vệ những thông tin bí mật nh thông tin giao dịch, thông tin cá nhân nhằm ngăn cản việc đánh cắp hay truy cập bất hợp pháp vào các nguồn tài nguyên không đợc phép Tuy vậy, khi sử dụng bảo mật cũng không thể tránh khỏi những sai sót, việc này sẽ dẫn đến sơ hở cho những xâm nhập trái phép nên hiệu quả việc mã hóa sẽ không cao, trong khi đó chi phí để duy trì hệ thống bảo mật cũng hết sức tốn kém Chính vì vậy, việc sử dụng bảo mật nh thế nào và đến mức độ

Trang 12

nào là câu hỏi cần giải quyết, đồng thời chi phí cho hệ thống bảo mật đó cũng không quá lớn để giữ đợc tính phổ biến và đem lại lợi ích cho ngời sử dụng

Trớc tình hình công nghệ thông tin đóng một vai trò ngày càng quan trọng trong nền kinh tế xã hội, giá trị của thông tin ngày càng đợc nâng cao, tại nhiều nớc phát triển, việc nghiên cứu ứng dụng bảo mật thông tin đã đợc tiến hành từ rất lâu

Việc mã hóa không chỉ bảo đảm bí mật thông tin lu trữ mà còn giữ bí mật đợc cả thông tin truyền đi giữa ngời gửi và ngời nhận Việc đảm bảo này bao gồm cả việc nhận biết thông tin bị sai lệch do lỗi đờng truyền hay sự truy cập trái phép

1.2 Lĩnh vực bảo mật

Trớc đây bảo mật thông tin thờng đợc áp dụng trong an ninh, quốc phòng, đặc biệt trong các cuộc chiến tranh gồm các thông tin về thời điểm mở màn cho một trận đánh, địa điểm đánh Các thông tin này cần phải đợc chuyển từ bộ chỉ huy ra các mặt trận một cách an toàn Nếu chúng bị rò rỉ cho

đối phơng thì tổn thất có thể sẽ không thể lờng trớc đợc

Ngày nay, bảo mật không những đợc sử dụng trong quân sự mà còn

đợc áp dụng rộng rãi hơn trong dân sự, đặc biệt trong các ngành kinh tế, tài chính, ngân hàng và cả trong nghiên cứu khoa học

Một ví dụ cho thấy vai trò quan trọng của việc áp dụng bảo mật là hãng Intel có nhiều phân xởng độc lập, lúc đầu họ không ý thức đến việc bảo vệ thông tin và đã có chuyện thông tin bị rò rỉ và một thời gian sau đó tại Nhật Bản đã sản xuất một chip giống hệt Từ đó họ đã ý thức đợc việc bảo mật thông tin là cực kỳ quan trọng

Tại Mỹ bảo mật thông tin đợc áp dụng vào rất nhiều lĩnh vực Tuy nhiên Mỹ lại không thích các nớc khác bảo vệ thông tin của nớc mình vì họ muốn quản lý hay tìm cách đánh cắp thông tin nớc khác, do đó họ đã hạn chế việc xuất khẩu các phần mềm, các sản phẩm liên quan đến lĩnh vực bảo mật, nếu không giá thành để mua một sản phẩm sẽ rất đắt

Trang 13

Tại Việt Nam, các chính sách mới đã tạo điều kiện cho các doanh nghiệp phát triển mạng thông tin về cơ sở hạ tầng Trong thời gian sắp tới, khi công nghệ WAN đáp ứng tốt các yêu cầu về băng thông, chất lợng dịch vụ,

đồng thời nạn tấn công trên mạng với mục đích chính trị và kinh tế gia tăng nhanh chóng thì việc bảo mật thông tin ngày càng đợc chú trọng hơn Không chỉ các nhà cung cấp dịch vụ mà các cơ quan chính phủ, quân đội, khối ngân hàng và các doanh nghiệp cũng bắt đầu có ý thức về an toàn thông tin Các giải pháp Firewall đã đợc áp dụng trong hầu hết các mạng WAN tại Việt Nam hiện nay cũng chỉ giúp ngăn chặn nguy cơ tấn công từ bên ngoài vào trong mạng nội bộ Trong khi đó, vấn đề bảo mật thông tin trên đờng truyền giữa các mạng WAN sử dụng leased-line, X25, Frame Relay hay VPN IP thì hầu nh đang bị bỏ ngỏ Thậm chí việc bỏ qua đảm bảo an toàn thông tin trên

đờng truyền còn xuất hiện ở cả các khối mạng đặc thù nh ngân hàng, tài chính, an ninh quốc phòng An toàn thông tin trên đờng truyền không chỉ là

sự rò rỉ, thất thoát thông tin mà cũng bao hàm cả sự toàn vẹn của thông tin (nguy cơ thay đổi nội dung thông tin) và sự khai thác mạo danh (kết nối trái phép) Chẳng hạn các nhà tài chính nghĩ gì khi chuyển 1 triệu đồng qua mạng thì ngời nhận lại có đợc 10 triệu đồng hay có kẻ mạo danh ngời nhận chiếm đoạt khoản tiền đó Bởi vậy, khi xây mạng Intranet, WAN cho mình, các doanh nghiệp phải coi an toàn thông tin là một phần không thể thiếu trong tổng thể toàn bộ hệ thống thông tin

1.3 Các thuật toán bảo mật đợc áp dụng

Bảo mật gồm hai quá trình mã hóa và giải mã Tuy nhiên chỉ cần một quá trình mã hóa đã cho thấy đặc trng của một thuật toán bảo mật Do đó từ nay về sau ta chỉ cần nhắc đến thuật ngữ “mã hóa” thay cho “bảo mật”

Hệ thống mã hóa hiện nay có thể phân thành hai loại chủ yếu: Loại thứ nhất, ít thông dụng hơn là mã hóa theo kiểu bí mật thuật toán Loại thứ hai là công khai thuật toán Loại mã hóa này có thể sử dụng khóa công khai hay khóa bí mật tuỳ theo từng ứng dụng cụ thể

Trang 14

Với phơng pháp mã hóa bí mật thuật toán, khả năng bảo mật trên phơng diện kỹ thuật là hoàn toàn tối u Với phơng pháp bí mật thuật toán thì công việc quản lý khóa sẽ đơn giản hơn rất nhiều Tuy nhiên, các hệ thống mã hóa tự động lại chủ yếu hoạt động dựa trên một thuật toán cố định, việc thay đổi thuật toán sẽ hết sức khó khăn và tốn kém Một điểm yếu của hệ thống này là rất khó giữ đợc bí mật nếu đem sử dụng rộng rãi Chính vì thế, phơng pháp mã hóa thuật toán bí mật chủ yếu sử dụng trong các ứng dụng chuyên biệt Để khắc phục khó khăn khi giải mã và mã hóa với các thuật toán khác nhau, ngời ta đã áp dụng phơng pháp kết hợp, tức là trong thuật toán

sẽ có một phần cố định của nhà sản xuất và một phần thay đổi do ngời sử dụng quy định Tuy nhiên, do giá thành cũng nh độ phức tạp khi vận hành sử dụng nên phơng pháp mã hóa bí mật thuật toán không thể áp dụng trong các ứng dụng dân sự rộng rãi

Phơng pháp thứ hai, đợc sử dụng rộng rãi nhất hiện nay là mã hóa công khai thuật toán và bí mật khóa Đặc điểm của phơng pháp này là tối u

đợc hoạt động của thiết bị mã hóa và giải mã Trong các thuật toán công khai

đợc chia làm hai loại, thuật toán đối xứng và thuật toán không đối xứng Thuật toán đối xứng, tức là việc mã hóa và giải mã cùng dựa trên một thuật toán Hầu hết các ứng dụng bảo mật hiện nay đều đợc mã hóa dựa trên các thuật toán đối xứng Do thuật toán công khai nên việc bảo mật chủ yếu dựa trên yếu tố khóa Việc quản lý khóa lại đợc chia làm hai dạng: khóa công khai và khóa bí mật Ngoài ra còn một phơng pháp mới kết hợp cả hai dạng trên còn gọi là khóa lai

Với thuật toán khóa bí mật, cả ngời gửi và ngời nhận tin cùng chung nhau sử dụng một khóa bí mật bên gửi sử dụng khóa bí mật để mã hóa bản ở tin, bên nhận sử dụng khóa bí mật để giải mã bản tin Điều quan trọng nhất là cả ngời gửi và ngời nhận cùng phải giữ bí mật khóa mà không để cho ai khác biết đợc Nếu họ ở cách xa nhau thì họ cần phải nhờ vào một công cụ

đa tin nào đó, hoặc một hệ thống điện thoại, hoặc một phơng tiện truyền khác mà đảm bảo an toàn cho khóa Bất kể ai mà biết đợc khóa trong quá trình truyền đi sau đó có thể đọc, thay đổi, thậm chí có thể phá hỏng bản tin

Hệ thống bảo mật khóa bí mật đợc dùng phổ biến ngày nay dựa trên cơ sở

Trang 15

các thuật toán DES, Triple-DES và AES Bởi vì tất cả các khóa trong hệ thống bảo mật khóa bí mật cần đợc giữ bí mật do đó gây nên khó khăn trong quá trình quản lý khóa, đặc biệt khi hệ thống thông tin là một hệ thống mở thì số ngời sử dụng sẽ tăng lên do đó lại càng khó khăn hơn

Để giải quyết vấn đề này Whitfield Difie và Martin Hellman đã đa ra khái niệm bảo mật khóa công khai vào năm 1976 Hệ thống bảo mật khóa công khai có hai yếu tố chính là mã hóa và chữ ký điện tử Trong hệ thống này, mỗi một ngời sẽ sử dụng một cặp khóa, một cái đợc gọi là khóa công khai, cái còn lại đợc gọi là khóa riêng Khóa công khai theo đúng nghĩa của

nó sẽ đợc công khai, còn khóa riêng phải đợc giữ bí mật Do đó việc chia sẻ các thông tin bí mật giữa ngời gửi và ngời nhận cần đợc hạn chế, mọi trao

đổi thông tin đều chỉ liên quan đến khóa công khai và không bao giờ khóa bí mật đợc truyền hay chia sẻ Trong hệ thống này không còn quan tâm đến các

hệ thống truyền tin bí mật Yêu cầu duy nhất là khóa công khai phải đợc kết hợp với ngời dùng một cách tin cậy Bất cứ ai có thể gửi đi một bản tin bí mật bằng cách sử dụng những thông tin đã đợc công khai, nhng bản tin đó chỉ có thể đợc giải mã bằng khóa riêng mà đợc sở hữu duy nhất bởi một ngời sẽ nhận bản tin đó Thêm vào đó, bảo mật khóa công khai có thể đợc

sử dụng không chỉ cho mục đích cá nhân mà còn đợc sử dụng trong kỹ thuật xác nhận và một số kỹ thuật khác

Trong một hệ thống bảo mật khóa công khai, khóa riêng có ràng buộc

về mặt toán học với khóa công khai Vì vậy, luôn luôn có thể tấn công vào hệ thống khóa công khai bằng việc tìm khóa bí mật từ khóa công khai Để đối phó với vấn đề này cần phải làm cho bài toán chuyển từ khóa công khai sang khóa bí mật càng khó càng tốt Ví dụ, một số hệ thống bảo mật khóa công khai đợc thiết kế sao cho muốn tìm đợc khóa riêng từ khóa công khai đòi hỏi những kẻ tấn công mất quá nhiều thời gian và không thể tính toán đợc

Đây là ý tởng có trong hệ thống bảo mật khóa công khai RSA

Trang 16

1.4 Vấn đề quản lý khóa

Trong thực tế, việc quản lý khóa là một khâu khó khăn nhất trong công tác bảo mật Việc thiết kế các thuật toán bảo mật cũng nh các giao thức của

nó không phải là việc dễ dàng, chúng ta có thể dựa vào các tài liệu về bảo mật

đã đợc công khai Tuy nhiên việc giữ bí mật cho khóa thì khó hơn nhiều

Các chuyên gia bảo mật thờng tấn công các hệ thống bảo mật với khóa công khai và khóa bí mật thông qua việc quản lý khóa của chúng Trên thực tế

đã cho thấy một hệ thống bảo mật bị tấn công chủ yếu là do bị đánh mất khóa,

do đó cả ngời gửi và ngời nhận tin đều phải quản lý khóa cho tốt

Mức độ an toàn của một thuật toán mã hóa chủ yếu dựa vào khóa Nếu chúng ta sử dụng một thuật toán bảo mật yếu để tạo khóa thì toàn bộ hệ thống trở nên yếu Do đó các chuyên gia bẻ khóa không cần quan tâm đến thuật toán mã hóa, họ chỉ cần quan tâm đến thuật toán tạo khóa

Độ dài khóa đóng vai trò quan trọng trong vấn đề tạo khóa, nó quyết

định tính an toàn, thời gian xử lý cho một thuật toán

AES đơn giản sử dụng khóa 128 bit Nếu thực hiện đúng cách thì một chuỗi 128 bit bất kỳ có thể đợc dùng làm khóa, do vậy có tới 2P

128 P khóa khác nhau

Bảng 1.1 chỉ ra số khóa có thể với những điều kiện khác nhau cho chuỗi đầu vào Bảng 1.2 chỉ ra thời gian tối đa để có thể tìm đợc một khóa

đúng từ các khóa trên, giả sử rằng thực hiện một triệu phép thử một giây

4- Byte 5- Byte 6- Byte 7- Byte 8- Byte Các chữ thờng (26): 460,000 12TP

Trang 17

4- Byte 5- Byte 6- Byte 7- Byte 8- Byte Các chữ thờng (26): 0.5 giây 12 giây 5 phút 2.2 giờ 2.4 ngày Các chữ thờng và con số (36): 1.7 giây 1 phút 36 phút 22 giờ 33 ngày Các ký tự thuộc bảng chữ cái (62): 15 giây 12 phút 16 giờ 41 ngày 6.9 năm Các ký tự có thể in đợc (95): 1.2 phút 2.1 giờ 8.2 ngày 2.2 năm 210 năm Các ký tự trong bảng mã ASCII (128): 4.5 phút 9.5 giờ 51 ngày 18 năm 2300 năm Các ký tự ASCII mở rộng (256): 1.2 giờ 13 ngày 8.9 năm 2300 năm 580,000 năm

Bảng 1.2 Thời gian tìm kiếm nhiều nhất với các trờng hợp khóa có độ dài khác nhau (giả sử rằng thực hiện một triệu phép thử trong một giây)

Khi ngời ta chọn khóa riêng cho mình, nhìn chung họ đã chọn các khóa “nghèo” Ví dụ, họ sẽ thích chọn “Hello” hơn là chọn “*9(hH/A” Vì

“Hello” dễ nhớ hơn “*9(hH/A.” Trong thực tế thuật toán mã hóa an toàn nhất không có tác dụng nếu nh ngời dùng có thói quen chọn cho mình những các tên đơn giản dễ nhớ Những kẻ bẻ khóa không dại gì mà đi thử tất cả các trờng hợp khóa có thể mà sẽ chọn những khóa rõ ràng, đơn giản trớc

Phơng pháp này đợc gọi là tấn công theo kiểu từ điển, bởi vì những

kẻ tấn công sẽ sử dụng một từ điển bao gồm các khóa phổ biến Sau đó họ sẽ thực hiện các phép thử dựa trên các cơ sở sau:

1 Tên ngời dùng, tên viết tắt, tên tài khoản và các thông tin cá nhân liên quan đều có thể là mật khẩu

(2) Nếu gọi số ký tự tạo khóa là C, độ dài khóa là l, thì số khóa khóa có thể K =C l

Trang 18

2 Các từ trong các cơ sở dữ liệu khác nhau Nó bao gồm danh sách tên ngời, địa điểm, tên ngời nổi tiếng, các bộ phim hoạt hình, tên nhân vật

3 Có thể thay đổi các từ trong bớc 2 bằng cách thay đổi ký tự đầu tiên từ chữ thờng thành chữ viết hoa, thay đổi các ký tự điều khiển, hoặc là cả

từ viết hoa, thay đổi các ký tự thành con số ví dụ chữ “o” thành số “0” chữ “l” thành số “1”

4 Có thể viết hoa ở các vị trí khác nhau

5 Với ngời dùng là những ngời nớc ngoài thì có thể họ sẽ sử dụng tiếng nớc ngoài

6 Sử dụng cặp từ là sự kết hợp của hai hay nhiều từ khác nhau để tạo mật khẩu, khi đó số lợng sẽ tăng lên tới hàng chục triệu từ

Phơng pháp tấn công bằng từ điển trở nên hiệu quả khi đợc sử dụng cho một tập các khóa mà không phải là một khóa đơn Một ngời sử dụng đơn

lẻ sẽ tự tìm cho mình một khóa an toàn, nhng khi có một nghìn ngời sử dụng mà mỗi một ngời lại chọn riêng cho mình một khóa riêng, khi đó rất có thể sẽ có một ngời chọn một khóa có trong từ điển của kẻ tấn công

1.4.2 Các khóa ngẫu nhiên

Các khóa mạnh là các chuỗi bit ngẫu nhiên đợc tạo ra thông qua một vài phép xử lý tự động Khi đó các khóa đợc tạo ra từ chuỗi bit ngẫu nhiên này sẽ phải tơng đơng nhau Việc tạo các bit khóa này phải từ một nguồn ngẫu nhiên đáng tin cậy hoặc từ một bộ phát giả ngẫu nhiên có tính bảo mật

Trang 19

Với một mạng 6 ngời, đòi hỏi có 15 sự trao đổi khóa Với một mạng

1000 ngời, đòi hỏi có 500.000 sự trao đổi khóa Trong những trờng hợp này cần phải thiết lập máy chủ quản lý khóa, khi đó hoạt động sẽ tỏ ra hiệu quả hơn nhiều

Với bất kỳ một thuật toán bảo mật khóa bí mật (thuật toán đối xứng), hay thuật toán bảo mật khóa công khai đều đòi hỏi việc phân phối khóa đợc thực hiện một cách an toàn

(a) Phân phối khóa điểm - điểm

(b) Trung tâm phân phối khóa

(c) Trung tâm biên dịch khóa

• Mô hình điểm điểm chỉ liên quan trực tiếp tới hai bên trao đổi thông -

tin với nhau

Trang 20

• Các trung tâm phân phối khóa (KDCs): KDCs đợc sử dụng để phân

phối các khóa giữa ngời dùng Tại đó ngời dùng sẽ chia sẻ các khóa riêng với KDC, mà không phải giữa họ với nhau

Cơ sở của giao thức KDC đợc thực hiện nh sau:

Dựa trên cở sở A muốn chia sẻ một khóa với B, trung tâm phân phối khóa T tạo một khóa K sau đó gửi nó dới dạng đã đợc mã hóa KR AT R cho A cùng với một bản copy của K (cho B) dới dạng đã đợc mã hóa cho KPP BT R Nói một cách khác, T có thể thông tin với B một cách trực tiếp

• Trung tâm biên dịch khóa (KTCs): Về tính chất và các đối tợng của

KTCs giống với KDCs ở trên, nhng ở đây giữa các bên trao đổi thông tin cung cấp khóa phiên mà không phụ thuộc vào trung tâm biên dịch khóa

Cơ sở giao thức KTCs thực hiện nh sau:

A gửi khóa K tới trung tâm biên dịch T dới dạng đã đợc mã hóa KR AT R Trung tâm biên dịch sẽ thực hiện việc giải mã và mã hóa lại dới dạng KR BT Rsau đó chuyển lại cho A (chuyển tiếp tới B), hoặc có thể gửi trực tiếp tới B

1.5 các tiêu chuẩn bảo mật số liệu thông dụng hiện nay

1.5.1 Tiêu chuẩn DES

Tiêu chuẩn DES (The Data Encrytion Standard) đợc phát triển bởi một nhóm kỹ s của IBM vào khoảng năm 1974 và đợc ứng dụng nh là một tiêu chuẩn quốc gia (Mỹ) vào năm 1977 DES là một phơng pháp mã hóa theo kiểu khóa bí mật, sử dụng cùng một khóa bí mật để mã hóa và giải mã một bản tin - nó còn đợc xem nh là một kỹ thuật bảo mật đối xứng Khóa bí mật

đợc chọn một cách ngẫu nhiên từ hơn 70 nghìn triệu triệu khóa có thể Chiều dài khóa là 64 bit, tuy nhiên 8 bit trong đó là các bit chẵn lẻ, chỉ có ý nghĩa trong việc kiểm tra lỗi, không có tác dụng trong việc bảo mật, do đó chiều dài thực tế chỉ là 56 bit

Trang 21

DES đã tồn tại trong nhiều năm và nhiều ngời muốn phá nó nhng đã

đều thất bại Hiện nay cha có một phơng pháp nào phá DES theo những con

đờng tắt, DES chỉ có thể bị phá bằng cách thử tất cả các trờng hợp có thể của khóa Không có một bằng chứng nào cho thấy nó là thuật toán tốt nhất Tuy nhiên hầu hết các thuật toán khác không đợc kiểm tra một cách kỹ lỡng, do đó chúng ít tin cậy hơn

Một phiên bản cao cấp của DES là Triple-DES hay 3 DES, đây là tiêu chuẩn sử dụng đồng thời ba khóa theo kiểu DES Triple-DES là một biến thể chính của tiêu chuẩn DES Nó chậm hơn tiêu chuẩn DES thông thờng 3 lần (do số phép toán cần phải thực hiện nhiều gấp 3 lần) nhng tính bảo mật sẽ tăng lên hàng tỷ lần nếu nó đợc sử dụng đúng cách Triple DES đợc sử dụng -rộng rãi hơn nhiều so với DES bởi vì DES có thể bị phá dễ dàng với sự phát triển nhanh chóng của công nghệ ngày nay

-Triple-DES thực hiện ba lần liên tiếp thuật toán DES với ba khóa khác nhau Triple DES không phải là thuật toán mạnh gấp 3 lần DES nh ngời ta -nghĩ lúc đầu Thực ra nó mạnh hơn 2P

56 P lần hoặc 2P

112 P lần tơng ứng với DES sử dụng các cấu hình có hai hay ba khóa giống nhau Nói cách khác, Triple-DES

sử dụng 192 bit khóa và có chiều dài thật 112 bit hoặc 168 bit

Vào năm 1998 một tổ chức thuộc lĩnh vực điện tử (Mỹ), sử dụng một máy tính đợc phát triển theo cách đặc biệt gọi là “DES cracker”, cố gắng phá DES trong vòng ba ngày Thiết bị này có giá thành khoảng dới 250.000 đô

la Chip mã hóa đợc sử dụng trong DES cracker có khả thực hiện 88 tỷ phép thử khóa trong một giây Từ đó cho thấy với một khoản tiền khoảng 1 triệu đô

la có thể xây dựng một phần cứng dành riêng có thể tìm tất cả các trờng hợp

có thể của khóa DES chỉ trong khoảng 3,5 giờ Điều đó chỉ ra rằng, trong thời

đại ngày nay bất cứ một tổ chức với một nguồn lực trung bình (theo cách gọi của ngời Mỹ) cũng có thể xâm nhập đợc vào hệ thống DES mà không cần mất quá nhiều công sức Do đó các chuyên gia bảo mật không sử dụng DES

để bảo mật dữ liệu

Trang 22

Triple-DES là câu trả lời đối với rất nhiều những thiếu sót của DES Vì

nó dựa trên cơ sở của thuật toán DES nên rất dễ cải tiến trên phần mềm hiện

có để có thể sử dụng Triple DES Một điều kiện thuận lợi nữa là sự an toàn của nó đã đợc chứng minh cũng nh với chiều dài khóa dài hơn sẽ hạn chế

-đợc những cách tấn công DES bằng con đờng tắt với mục đích giảm thời gian phá DES Tuy nhiên, cho dù đây là phiên bản mạnh hơn DES nhng có thể nó không đủ mạnh để bảo vệ dữ liệu trong tơng lai

1.5.3 Tiêu chuẩn AES

Viện quốc gia về tiêu chuẩn và công nghệ Mỹ (NIST) đã tổ chức một cuộc chạy đua nhằm phát triển tiêu chuẩn mã hóa tiên tiến (AES) để thay thế cho DES, Triple-DES AES đợc nghiên cứu và đề xuất do hai nhà khoa học ngời Bỉ Joan Daemen, Vincent Rijmen nghiên cứu và đề xuất năm 1998 và

đợc NIST thông qua năm 2001 Tiêu chuẩn AES đang đợc phát triển để thay thế DES Tiêu chuẩn AES ít nhất sẽ mạnh nh Triple DES và có thể nhanh -hơn rất nhiều lần Rất nhiều hệ thống có thể sẽ sử dụng cả Triple-DES và AES trong nhiều năm tới Sau đó AES có thể sẽ thay thế Triple DES nh là một -thuật toán mặc định trong hầu hết các hệ thống Tại thời điểm hiện nay AES

đợc sử dụng rất rộng rãi và là một lựa chọn tin cậy, hoàn hảo cho các nhu cầu

về sự an toàn cho các thông tin có tính nhạy cảm cao

Bảo mật dữ liệu (cryptography) đợc sử dụng trong nhiều lĩnh vực, nhiều môi trờng khác nhau Việc ứng dụng cụ thể của bảo mật số liệu và việc thực hiện các thuật toán bảo mật AES, DES hay Triple DES dựa trên cơ sở rất nhiều các thành phần cụ thể đối với hệ thống máy tính và các thành phần đi kèm Nhìn chung, bảo mật số liệu đợc sử dụng để bảo vệ số liệu khi nó đợc truyền từ điểm tới điểm hoặc khi nó đợc lu giữ trong các phơng tiện mà có thể rất dễ bị tấn công bằng phơng pháp vật lý thông thờng Bảo mật trong truyền tin thực hiện bảo vệ dữ liệu bằng cách mã hóa nó tại phía phát và giải mã tại phía thu Bảo mật file sẽ bảo vệ dữ liệu bằng cách mã hóa khi nó đợc lu vào trong các phơng tiện lu trữ và đợc giải mã khi đợc đọc ngợc lại

từ các phơng tiện lu trữ Trong trờng hợp đầu tiên, khóa phải sẵn có đồng thời cả ở phía phát và phía thu Trong trờng hợp thứ hai, khóa phải đợc duy

Trang 23

trì và có thể đợc truy nhập trong suốt quá trình lu trữ do đó cần phải có một phơng pháp quản lý khóa thích hợp cho hai trờng hợp trên

1.6 So sánh giữa bảo mật cứng và bảo mật mềm

Các sản phẩm bảo mật có thể đợc chia làm hai loại: bảo mật cứng và bảo mật mềm

Bảo mật cứng có thể là các con chip đợc nạp sẵn các phần mềm bảo mật, hoặc là các module đợc cắm vào máy tính, hoặc là các thiết bị độc lập

đặt trên đờng truyền thực hiện mã hóa toàn bộ dữ liệu qua nó

Bảo mật mềm đợc hiểu là các phần mềm chạy trên máy tính thực hiện các chức năng mã hóa, giải mã số liệu

Trong hai loại trên, bảo mật cứng vẫn đợc a chuộng hơn vì một số lý

do sau đây:

Thứ nhất là về tốc độ: Hầu hết các thuật toán bảo mật bao gồm rất nhiều các tính toán phức tạp đối với các bit bản tin đầu vào Nó không phải là loại phép toán xây dựng cho các bộ vi xử lý thông thờng, do vậy khi chạy trên các bộ vi xử lý này nó sẽ không đạt đợc tốc độ tối u

Thứ hai là về bảo mật: Một thuật toán mã hóa chạy trên máy tính thông thờng sẽ không có bảo vệ ở mức vật lý Những kẻ phá hoại sẽ dễ dàng xem

và sửa thuật toán mà không hề bị phát hiện Trong khi đó, thiết bị bảo mật cứng có thể đợc thiết kế một cách an toàn hơn Chip bảo mật đợc thiết kế một cách đặc biệt bằng cách phủ lên bề mặt một chất đặc biệt, khi những kẻ tấn công muốn đọc lấy khóa thì phải đụng chạm vào phần cứng, sẽ dẫn đến phần logic của chip bảo mật tự động bị phá huỷ

Lý do cuối cùng là các thiết bị bảo mật cứng đều dễ dàng cài đặt, vận hành Ví dụ khi muốn bảo vệ các cuộc đàm thoại, việc truyền fax, hoặc các

đờng truyền dữ liệu có hai cách: cách thứ nhất cài đặt một thiết bị phần cứng bảo mật vào các đờng dây điện thoại, các máy fax, các modem truyền số liệu; cách thứ hai sử dụng một máy tính và cài đặt một phần mềm bảo mật Rõ ràng cách thứ nhất đơn giản hơn rất nhiều Khi cần mã hóa các dữ liệu đa ra

Trang 24

từ một máy tính thì việc cài đặt một thiết bị bảo mật cứng dành riêng sẽ dễ dàng hơn là việc thay đổi phần hệ thống của máy tính Việc bảo mật cần phải

đợc ẩn đi và không gây cản trở đối với ngời dùng Cách duy nhất để làm

đợc điều này là viết các thuật toán bảo mật thật sâu trong hệ điều hành Điều này không dễ chút nào

Đối với bảo mật mềm, bất kỳ một thuật toán bảo mật nào cũng có thể

đợc thực hiện bằng phần mềm Điểm yếu của nó là tốc độ, chi phí và sự đơn giản khi muốn thay đổi (hoặc trong các thao tác) Điểm mạnh là ở chỗ linh hoạt, có thể mang đi mang lại đợc, dễ sử dụng và dễ nâng cấp Các chơng trình phần mềm bảo mật rất phổ biến và sẵn có cho hầu hết các hệ điều hành Chúng là các phơng tiện bảo vệ file Nhìn chung ngời dùng phải thực hiện các thao tác mã hóa, giải mã các file bằng tay Điều quan trọng là việc quản lý khóa cần đợc an toàn và bảo mật

1.7 Các yêu cầu đối với thiết bị bảo mật cứng

Nh trên đã nói bảo mật cứng có một số u điểm, nó đồng thời cũng là những đòi hỏi phải có đối với thiết bị bảo mật cứng:

- Thứ nhất là tốc độ cao

- Thứ hai là độ an toàn

- Thứ ba là dễ dàng trong cài đặt

- Thứ t là giá thành phải thấp

1.8 Các hệ thống bảo mật cứng đợc ứng dụng hiện nay

Các hệ thống bảo mật cứng có thể đợc phân làm mấy loại chính sau:

• Chip bảo mật, phần mềm bảo mật đã đợc nạp sẵn trong IC, khách hàng

chính là các công ty sản xuất phần cứng bảo mật

Trang 25

• Các module bảo mật đợc thiết kế dới dạng các board, cắm vào máy

tính Cần phải có phần mềm đi kèm và chạy trên máy tính

• Là thiết bị chạy độc lập thực hiện chức năng bảo mật trên các đờng

truyền hoặc cho một mạng số liệu ATM, SONET, Frame Relay

Qua tìm hiểu, tôi thấy hiện nay có một số hãng cung cấp các thiết bị bảo mật nh sau:

Hãng SafeNet-Inc giới thiệu một loạt các sản phẩm của mình gồm có:

• Chip bảo mật SafeXcel Series: SafeXcel 1141, SafeXcel- -1741,

SafeXcel-1840

• Card bảo mật cắm vào máy tính để bảo mật số liệu cho các mạng VPN:

SafeXcel 141-PCI Card, SafeXcel 171 PCI Card, SafeXcel 180- -PCI Card

• Các thiết bị bảo mật cho doanh nghiệp: SafeEnterprise ATM Encryptor,

SafeEnterprise FrameEncryptor, SafeEnterprise Link Encryptor, SafeEnterprise SONET Encryptor

Hãng Cylink Corporation đa ra các sản phẩm về bảo mật:

• Cylink ATM Encryptor: Bảo mật cho mạng ATM

• Cylink Frame Encryptor: Dùng cho mạng Frame Relay

Hãng ATMmedia đa ra sản phẩm của mình là: ATM SDH Encryptor

sử dụng trong mạng truyền dẫn quang SONET/SDH

Các sản phẩm này đều sử dụng một trong các thuật toán DES, DES và AES - quản lý khóa theo thuật toán khóa công khai

Triple-1.9 Đề xuất giải pháp chế tạo vi mạch thực hiện thuật toán bảo mật AES

Nh trên đã phân tích có rất nhiều phơng thức bảo mật cũng nh nhiều thuật toán bảo mật khác nhau, mỗi loại có những u, nhợc điểm riêng Trên thực tế bảo mật cứng vẫn đợc a chuộng hơn

Trang 26

Mặt khác, các thiết bị bảo mật cứng hiện nay đều đợc sản xuất ở nớc ngoài thờng có giá thành rất đắt, do đó chỉ dành cho các doanh nghiệp lớn nh ngân hàng, tài chính Với những doanh nghiệp vừa và nhỏ mặc dù họ có nhu cầu về bảo mật thông tin, nhng họ không có đủ khả năng để mua những thiết bị đó

Các ngành an ninh quốc phòng, họ lại không muốn mua các thiết bị bảo mật của nớc ngoài lại xuất phát từ chính vấn đề bảo mật thông tin

Với trình độ công nghệ hiện nay ngời Việt Nam chúng ta hoàn toàn có thể chế tạo đợc cho riêng mình các thiết bị bảo mật tơng đơng Việc này sẽ

đem lại cho chúng ta lợi ích to lớn về kinh tế, mặt khác giúp ta làm chủ đợc công nghệ

Với công nghệ vi điện tử phát triển nh vũ bão trên thế giới hiện nay chúng ta có thể mua một IC trắng có thể lập trình đợc dễ dàng và không tốn kém

Dựa trên những cơ sở đó, tác giả đề xuất giải pháp “Thiết kế vi mạch thực hiện thuật toán AES dựa trên công nghệ FPGA”, vì hai lý do chính sau:

1 Thuật toán bảo mật dữ liệu AES đang đợc sử dụng rộng rãi, trong tơng lai sẽ đợc dùng để thay thế cho các tiêu chuẩn DES và Triple-DES

2 Công nghệ FPGA là một công nghệ thiết kế vi mạch đang đợc sử dụng phổ biến nhất hiện nay: vì nó có những u điểm về tốc độ, giá thành và

sự tiện dụng

Các tiêu chí cần đạt đợc khi thực hiện giải pháp trên:

1 Thực hiện vi mạch thực hiện thuật toán AES (mã hóa và giải mã) dùng cho nhiều mục đích khác nhau, sử dụng ngôn ngữ mô tả phần cứng Verilog HDL hoặc VHDL, sau đó chạy mô phỏng giản đồ thời gian,

đảm bảo kết quả thu đợc theo đúng tiêu chuẩn AES

Trang 27

2 Nạp chơng trình ở trên vào một IC trắng trên một bo mạch thử nghiệm, thực hiện truyền số liệu giữa hai máy tính, hoạt động theo đúng tiêu chuẩn AES

Trong khuôn khổ của luận văn này, tác giả thực hiện thuật toán

AES-128 (tức là AES-128 bit khóa và AES-128 bit dữ liệu) Trên cơ sở của AES-AES-128 các thuật toán AES-192 và AES 256 hoàn toàn có thể thực hiện đợc.-

Trang 28

Chơng 2 Tiêu chuẩn bảo mật số liệu AES

2.1 Các định nghĩa

2.1.1 Bảng chú giải thuật ngữ

Dới đây là các định nghĩa sử dụng trong tiêu chuẩn này:

Biến đổi Phép biến đổi thực hiện nhân một ma trận với một

vector thêm vào

Mảng Một tập hợp liệt kê các phần tử giống nhau (ví dụ, một

mảng byte)

Khối Chuỗi các bit nhị phân bao gồm dữ liệu đầu vào, đầu

ra, Trạng thái và Khóa con Độ dài của một chuỗi chính là số lợng bit trong chuỗi Khối cũng đợc hiểu nh mảng byte

Byte Một nhóm 8 bit đợc xử lý nh một phần tử đơn lẻ

hoặc nh một mảng gồm 8 bit riêng biệt

Mã hóa Một loạt các phép biến đổi chuyển từ bản tin gốc sang

bản tin mã hóa sử dụng Khóa mã

Khóa mã Khóa mã bí mật mà hàm tạo khóa dùng để tạo ra một

tập hợp các Khóa con; có thể đợc biểu diễn là một

Trang 29

về bản tin gốc sử dụng Khóa mã

Tạo khóa Hàm dùng để tạo một tập hợp các Khóa con từ Khóa

Bản tin gốc Đầu vào dữ liệu của khối mã hóa hoặc đầu ra của khối

giải mã

Rijndael Thuật toán mã hóa sử dụng trong tiêu chuẩn mã hóa

tiên tiến (AES)

n Khóa co Khóa con là các giá trị xuất phát từ Khóa mã nhờ sử

dụng hàm tạo khóa; đợc cộng với mảng Trạng thái trong khối mã hóa và khối giải mã

Trạng thái Kết quả mã hóa tức thì, có thể đợc biểu diễn là một

mảng byte 2 chiều có 4 hàng và Nb cột

S-box Bảng thay thế phi tuyến tính sử dụng trong một số phép

biến đổi thay thế byte và trong hàm tạo khóa để thực hiện thay thế 1 - 1 giá trị byte

Từ Một nhóm 32 bit đợc xử lý nh một phần tử đơn lẻ

hoặc nh một mảng 4 byte

2.1.2 Các tham số, ký hiệu và hàm của thuật toán

Dới đây là các tham số, ký hiệu và hàm của thuật toán đợc sử dụng trong tiêu chuẩn này:

AddRoundKey() Phép biến đổi trong khối mã hóa và giải mã, trong

đó một Khóa con đợc cộng với mảng Trạng thái sử dụng hàm XOR Độ dài của Khóa con bằng kích

thớc của mảng Trạng thái (ví dụ, với Nb = 4 thì độ

dài của Khóa con bằng 128 bit/ 16 byte)

InvMixColumns()Phép biến đổi trong khối giải mã, là hàm ngợc của

hàm MixColumns()

InvShiftRows() Phép biến đổi trong khối giải mã, là hàm ngợc của

Trang 30

hàm ShiftRows()

hàm SubBytes()

của mảng Trạng thái cộng với phần dữ liệu để tạo ra các cột mới

Nb Số cột (các từ 32 bit) của mảng Trạng thái Trong

tiêu chuẩn này, Nb = 4

= 4, 6 hoặc 8

Nr Số chu trình, là hàm của Nk và Nb (là giá trị cố

định) Trong tiêu chuẩn này, Nr = 10, 12 hoặc 14

và thực hiện phép hoán vị quay vòng

Trạng thái bằng cách dịch quay vòng 3 hàng cuối cùng của Trạng thái với những độ dịch khác nhau

Trạng thái nhờ sử dụng một bảng thay thế byte phi tuyến (S box) thực hiện trên từng byte của mảng -Trạng thái một cách độc lập

vào 4 byte và sử dụng bảng S box cho từng 4 byte

-đó để tạo ra một từ đầu ra

Trang 31

• Tích của 2 đa thức (bậc nhỏ hơn 4) mod với xP

4

P+ 1

2.2 Các quy ớc

2.2.1 Dữ liệu đầu vào và đầu ra

Mỗi đầu vào và đầu ra của thuật toán AES là một chuỗi 128 bit (giá trị

0 hoặc 1) Đôi khi những chuỗi này đợc gọi là khối (block) và số lợng bit trong chuỗi tạo nên độ dài của chuỗi Khóa mã trong thuật toán AES là một chuỗi 128, 192 hoặc 256 bit Tiêu chuẩn này không xét đến những chuỗi đầu vào, đầu ra và khóa mã có độ dài khác

Các bit trong chuỗi sẽ đợc đánh số bắt đầu từ 0 đến một con số nhỏ hơn 1 đơn vị so với độ dài chuỗi (độ dài khối hay độ dài khóa) Số i gắn với mỗi bit đợc gọi là chỉ số của bit đó và thỏa mãn 0 ≤ i < 128, 0 ≤ i < 192 hoặc 0 i < 256 tùy thuộc vào độ dài khối và độ dài khóa.≤

2.2.2 Byte

Đơn vị cơ bản để xử lý trong thuật toán AES là byte, là một chuỗi 8 bit

đợc xử lý nh một phần tử đơn lẻ Các chuỗi bit đầu vào, đầu ra và khóa mã

đợc xử lý nh các mảng byte đợc tạo nên bằng cách chia các chuỗi này thành các nhóm 8 bit liền nhau Nếu đầu vào, đầu ra hoặc khóa mã biểu diễn

là a, các byte trong mảng kết quả sẽ đợc biểu thị ở một trong hai dạng aRnR

hoặc a n[ ], trong đó nằm ở một trong các dải sau: n

Độ dài khóa = 128 bit, 0 ≤ n < 16; Độ dài khối = 128 bit, 0 ≤ n < 16;

Độ dài khóa = 192 bit, 0 ≤ n < 24;

Độ dài khóa = 256 bit, 0 ≤ n < 32

Tất cả các giá trị byte trong thuật toán AES sẽ đợc biểu diễn thành một chuỗi các giá trị bit (0 hoặc 1) đặt giữa hai dấu ngoặc theo thứ tự {bR7R, b 6R R, bR5R,

bR4R, bR3R, bR2R, bR1R, b 0R R} Các byte này đợc chuyển thành các phần tử trờng hữu hạn dới dạng đa thức:

Trang 32

=

= + + + + + +

0 0 1

2 2

3 3

4 4

5 5

6 6

x b x b x b x b x b x b x

Ví dụ, {01100011} xác định phần từ trờng hữu hạn x 6 + x 5 + x + 1

Để thuận tiện, có thể biểu diễn các giá trị byte theo hệ hex, trong đó cứ mỗi nhóm 4 bit đợc biểu diễn bởi một ký tự nh trên Hình 2.1

Mẫu bit Ký tự Mẫu bit Ký tự Mẫu bit Ký tự Mẫu bit Ký tự

2.2.3 Mảng byte

Mảng byte đợc biểu diễn dới dạng sau:

aR0R aR1R aR2R aR15

Các byte và các bit trong byte có nguồn gốc từ chuỗi đầu vào 128 bit

inputR0R input R1R inputR2R… inputR126R inputR127

nh sau:

aR 0 R = {inputR0R, inputR1R, …, inputR7R};

aR 1 R = {inputR8R, inputR9R, …, inputR15R};

aR15R = {inputR120R, inputR121R, …, inputR127R}

Tổng quát với các chuỗi có độ dài lớn hơn (đối với khóa 192 và 256 bit):

Trang 33

aRnR = {inputR8nR, inputR8n+1R, …, inputR8n+7R} (2.2)Hình 2.2 thể hiện việc đánh số các bit trong từng byte

Chuỗi bit đầu vào 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 …

Số bit trong byte 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 …

Hình 2.2 Các chỉ số của Byte và Bit

2.2.4 Trạng thái

Thuật toán AES đợc thực hiện trên một mảng byte 2 chiều đợc gọi là

bằng độ dài khối chia cho 32 Trong mảng Trạng thái (đợc biểu diễn bằng ký hiệu s ), mỗi byte có 2 chỉ số là số hàng (0 ≤ r < 4) và số cột c (0 ≤ c < Nb) r

Do đó byte của Trạng thái đợc biểu thị dới dạng sRr,cR hoặc [ , ] Trong tiêu s r c

chuẩn này, Nb=4, tức là, 0 ≤ c < 4

ở đầu vào của khối mã hóa và giải mã, dữ liệu đầu vào mảng byte - inR0R,

inR1R, inR15 R- đợc copy sang mảng Trạng thái (Hình 2.3.) Các phép toán thực hiện mã hóa và giải mã sau đó đợc thực hiện trên mảng Trạng thái này, sau

đó giá trị cuối cùng lại đợc copy sang mảng dữ liệu đầu ra mảng byte - outR0R, outR1R, outR15R

inR0 inR4 inR8 inR12 sR0,0 sR0,1 sR0,2 sR0,3 outR0 outR4 outR8 outR12

inR1 inR5 inR9 inR13sR1,0 sR1,1 sR1,2 sR1,3outR1 outR5 outR9 outR13

inR2 inR6 inR10 inR14 sR2,0 sR2,1 sR2,2 s 2,3 R outR2 outR6 outR10 outR14

inR3 inR7 inR11 inR15 sR3,0 sR3,1 sR3,2 sR3,3 outR3 outR7 outR11 outR15

Hình 2.3 Mảng Trạng thái, đầu vào và đầu ra

Do vậy, ở đầu vào của khối mã hóa và giải mã, mảng dữ liệu đầu vào

inđợc copy sang mảng Trạng thái theo công thức:

và ở đầu ra của khối mã hóa và giải mã, mảng Trạng thái lại đợc copy sang

Trang 34

mảng dữ liệu đầu ra outnh sau:

out [r + 4 ] = [ , ] c s r c với 0 ≤ r < 4 và 0 ≤ c < Nb (2.4)

2.2.5 Trạng thái đợc xem nh một mảng cột

Bốn byte trong mỗi cột của mảng Trạng thái tạo thành một từ 32 bit, trong đó số hàng chính là chỉ số của 4 byte trong mỗi từ Do đó Trạng thái có r

thể đợc chuyển thành mảng 1 chiều gồm các từ 32 bit (chính là các cột),

wR0R wR3R, trong đó số cột chính là chỉ số của mảng Nh vậy, ví dụ trong Hình c

2.3., Trạng thái đợc xem nh một mảng gồm 4 từ nh sau:

wR0R = s 0,0R R s R1,0R s R2,0R s R3,0R w2 R R = sR0,2R s1,2R R s R2,2R s R3,2

wR1R = s 0,1R R s R1,1R s R2,1R s R3,1R w 3R R = s 0,3R R s R1,3R s R2,3R s R3,3 (2.5)

2.3 Cơ sở toán học

Tất cả các byte trong thuật toán AES đợc chuyển sang dạng các phần

tử trờng hữu hạn Các phần tử này có thể cộng và nhân, nhng các phép toán này không giống với các phép toán đối với con số Các tiểu mục dới đây giới thiệu các phép toán cơ bản

2.3.1 Phép cộng

Phép cộng hai phần tử trờng hữu hạn là “cộng” các hệ số của các lũy thừa tơng ứng trong hai đa thức Phép cộng đợc thực hiện bằng phép toán XOR (ký hiệu ⊕) - modulo 2 - tức là ⊕1 1 = 0 1 0 = , ⊕ 1 và 0 ⊕ 0 = 0 Nh vậy, phép trừ đa thức cũng giống nh phép cộng đa thức

Trang 35

đợc gọi là tối giản nếu nó chỉ chia hết cho 1 và chính nó Trong thuật toán AES, đa thức tối giản này là:

x7 5 3 2

1

2 4

6 + x + x + x + x

= x 13 + x 11 + x 9 + x 8 + x 6 + x 5 + x 4 + x 3 + 1

và x 13 + x 11 + x 9 + x 8 + x 6 + x 5 + x 4 + x 3 + 1 modulo (x 8 + x 4 + x 3 + x + 1)

= x 7 + x 6 + 1

Phép modulo với ( ) để đảm bảo kết quả sẽ là một đa thức nhị phân m x

bậc nhỏ hơn 8, do đó có thể biểu diễn thành 1 byte

Phép nhân có tính chất kết hợp Đối với một đa thức nhị phân (b x) bất

kỳ có bậc nhỏ hơn 8, hàm ngợc của ( ), ký hiệu là b x bP

-1

P( ) đợc xác định nh x

sau: sử dụng thuật toán Euclidean mở rộng [7] để tính toán các đa thức (a x)

Trang 36

a x( ) • ( ( ) + ( )) = ( ) • ( ) + ( ) • ( ) b x c x a x b x a x c x

Nh vậy, một bộ 256 giá trị byte sử dụng các phép toán và phép cộng nh định nghĩa trên đây có cấu trúc của trờng hữu hạn GF(2P

8 P)

Phép nhân với x:

Phép nhân đa thức nhị phân định nghĩa trong công thức (2.1) với đa thức

x cho kết quả

x b x b x b x b x b x b x b x

1

3 2

4 3

5 4

6 5

7 6

8

Kết quả phép nhân x • b x( ) chính là kết quả của phép toán đa thức (2.9)

modulo m x ( ) Nếu bR7R = 0, kết quả đã ở dạng đa thức nhị phân bậc nhỏ hơn 8

Nếu bR7R = 1, ta giảm bậc bằng cách thực hiện phép trừ (XOR) với đa thức m x( ) Nh vậy phép nhân với (chính là {00000010} hoặc {02}) đợc thựx c hiện ở dạng byte bằng cách dịch sang trái 1 bit, sau đó thực hiện phép XOR với {1b} Phép toán ở dạng byte này ký hiệu là xtime() Phép nhân với đa thức bậc cao hơn đợc thực hiện bằng cách lặp lại hàm xtime()

Ví dụ, {57} • {13} = {fe} bởi vì

Trang 37

Biểu diễn dới dạng từ là [aR0R , a 1R R , aR2R , aR3R] Lu ý, các đa thức trong mục này đợc xử lý khác so với các đa thức sử dụng trong định nghĩa phần tử

trờng hữu hạn mặc dù cả hai loại đa thức này sử dụng cùng ẩn số là x Các hệ

số trong mục này bản thân chính là các phần tử trờng hữu hạn, tức là byte thay vì là bit; cũng vậy, phép nhân các đa thức bốn số hạng lại sử dụng một đa thức làm giảm bậc khác sẽ định nghĩa dới đây

Để minh họa cho phép cộng và phép nhân, cho

là đa thức bốn số hạng thứ hai Phép cộng đợc thực hiện bằng cách cộng các

hệ số trờng hữu hạn có lũy thừa giống nhau Phép cộng này tơng đơng x

với phép toán XOR giữa các byte tơng ứng trong mỗi từ

c x( ) = ( ) • ( ) đợc mở rộng về mặt đại số và các lũy thừa của giống nhau a x b x x

đợc tập hợp lại cho ta

2

3 3

4 4

5 5

6

c x

giảm thành một đa thức bậc nhỏ hơn 4 Trong thuật toán AES, bớc này đợc

thực hiện với đa thức x 4+ 1 để

Trang 38

( 4 1) mod 4

x + = (2.15) Kết quả của phép nhân này giữa (a x ) và b x( ), ký hiệu là (a x ) ⊗ b x( ) cho

ta một đa thức bốn số hạng ( ) đợc định nghĩa nh sau:d x

Khi a x( ) là một đa thức cố định, phép toán đợc định nghĩa trong (2.16)

có thể viết dới dạng ma trận nh sau:

0 1 2 3

3 0 1 2

2 3 0 1

1 2 3 0

3 2 1 0

b b b b

a a a a

a a a a

a a a a

a a a a

d d d

Một đa thức khác sử dụng trong thuật toán AES (xem hàm RotWord()

trong mục 2.4.2) có aR0R= a 1R R = aR2R= {00} và aR3R= {01}, chính là đa thức xP

3

P Nghiên cứu phơng trình (2.18) cho thấy đa thức này chính là để tạo từ đầu ra

bằng cách quay vòng các byte trong từ đầu vào, nghĩa là [bR0R, bR1R, b 2R R, bR3R] đợc

chuyển thành [bR1R, bR2R, bR3R, bR0R]

Trang 39

2.4 thuật toán AES

Trong thuật toán AES, độ dài của khối đầu vào, khối đầu ra và Trạng

thái là 128 bit, đợc thể hiện bằng Nb = 4, chính là số lợng từ 32 bit (số

lợng cột) trong mảng Trạng thái

Trong thuật toán AES, độ dài của khóa mã là 128, 192, hoặc 256 bit K

Độ dài khóa này đợc thể hiện bằng Nk = 4, 6, hoặc 8, chính là số lợng từ 32

bit (số lợng cột) trong mảng khóa mã

Trong thuật toán AES, số chu trình đợc thực hiện trong quá trình thực hiện thuật toán phụ thuộc vào kích cỡ khóa Số chu trình đợc thể hiện bằng

Nr, trong đó Nr = 10 khi Nk = 4, Nr = 12 khi Nk = 6 và Nr = 14 khi Nk = 8

Mối quan hệ duy nhất giữa Khóa Khối Chu trình trong tiêu chuẩn - - này đợc thể hiện trên Hình 2.4

Trong cả hai khối mã hóa và giải mã, thuật toán AES trải qua các chu trình biến đổi, trong đó mỗi chu trình gồm bốn phép biến đổi theo byte:

1) Thay thế byte nhờ sử dụng bảng thay thế (S-box)

2) Dịch các hàng của mảng Trạng thái theo những độ dịch khác nhau.3) Trộn dữ liệu trong từng cột của mảng Trạng thái

4) Cộng khóa con với mảng Trạng thái

2.4.1 Mã hóa

ở đầu vào của khối mã hóa, dữ liệu đầu vào đợc copy sang mảng Trạng thái theo các quy định mô tả trong mục 2.2.4 Sau khi cộng với một khóa con ban đầu, mảng Trạng thái đợc biến đổi qua 10, 12, hoặc 14 chu

Trang 40

trình (phụ thuộc vào độ dài khóa), trong đó chu trình cuối cùng hơi khác so

liệu đầu ra nh đã mô tả ở mục 2.2.4

Chu trình biến đổi đợc tham số hóa nhờ sử dụng một chuỗi khóa là một mảng một chiều gồm các từ 4 byte xuất phát từ hàm tạo khóa

Quá trình mã hóa đuợc mô tả dới dạng thuật toán nh trên Hình 2.5

Các phép biến đổi độc lập - SubBytes(), ShiftRows() MixColumns() , và

AddRoundKey() - xử lý mảng Trạng thái và đợc mô tả trong các tiểu mục

dới đây Hình 2.5., mảng ở w[] chứa chuỗi khóa

Nh thể hiện trên Hình 2.5., tất cả Nr chu trình là giống nhau ngoại trừ chu trình cuối cùng không có phép biến đổi MixColumns()

Phụ lục 1 là một ví dụ về mã hóa, thể hiện các giá trị của mảng Trạng thái từ khi bắt đầu mỗi chu trình và sau đó áp dụng bốn phép biến đổi đuợc mô tả trong các mục dới đây

2.4.1.1 SubBytes()

SubBytes() là sự thay thế byte phi tuyến thực hiện độc lập trên từng byte

của mảng Trạng thái nhờ sử dụng bảng thay thế (S-box) Bảng S box (Hình 2.7.)

-Cipher(byte in[4*Nb], byte out[4*Nb], word w[Nb*(Nr+1)])

Ngày đăng: 26/01/2024, 15:55

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

TÀI LIỆU LIÊN QUAN

w