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 34.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 5B¶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 6H×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 8C¸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 9Lờ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ự Nhng 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 lu
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 nhng 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 10mua 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 11Chơ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 lu
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 12nà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 lu 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 13Tạ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 trng 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 14Vớ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 15cá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, nhng 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 161.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 174- 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 182 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, nhng 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 19Vớ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, nhng ở đâ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 21DES đã tồn tại trong nhiều năm và nhiều ngời muốn phá nó nhng đã
đều thất bại Hiện nay cha 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) nhng 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 22Triple-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 nhng 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 lu 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 lu vào trong các phơng tiện lu trữ và đợc giải mã khi đợc đọc ngợc lại
từ các phơng tiện lu 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 23trì và có thể đợc truy nhập trong suốt quá trình lu 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 24từ 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 26Mặ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, nhng 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 272 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 28Chơ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 29về 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
mã
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 30hà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 33aRnR = {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 inR13 ⇒ sR1,0 sR1,1 sR1,2 sR1,3 ⇒ outR1 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 34mả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, nhng 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 36a 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 37Biểu diễn dới dạng từ là [aR0R , a 1R R , aR2R , aR3R] Lu ý, 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 392.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 40trì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)])