Nhưng tại Việt Nam thì rất ít vàchưa thấy ứng dụng vào việc kinh doanh, vì đa số người dùng Việt dùng tablet và smartphone cho mục đích giải trí.Do đó nhómchọn đề tài phát triển hệ thống
Trang 1BÁO CÁO MÔN HỌC CÔNG NGHỆ
Trang 2MỞ ĐẦU
Ngày nay thương mại điện tử ngày càng phát triển mạnh, được ứng dụng trongmọi lĩnh Đăc biệt trong lĩnh vực marketing hiện nay đang có xu hướng ứngdụng “Qr code“ vào chiến lược kinh doanh của mình Ứng dụng Qr code đangđược phổ biến rộng trên thế giới ví dụ như: hệ thống bán vé tàu điện ngầm, vémáy bay, chiến lược quảng cáo, mua hàng Nhưng tại Việt Nam thì rất ít vàchưa thấy ứng dụng vào việc kinh doanh, vì đa số người dùng Việt dùng tablet
và smartphone cho mục đích giải trí.Do đó nhómchọn đề tài phát triển hệ thốngbán vé bằng Qr code, hy vọng sẽ phục vụ tốt cho người dùng Việt, làm phongphú thêm kho ứng dụng Việt và góp phần mang lại nhiều lợi ích cho nước nhà
Trang 4Hình 2.2 Bảng thống kê số vé mua và tiền
Hình 2.3 Bảng thống kê doanh thu bán vé
Hình 2.4 Giao diện kiểm tra vé của ticketool
Hình 3.6 Hoàn tất mã hóa QR code
Hình 3.7 Lưu đồ tổng quát quá tình giải mã QR
Hình 3.8 Ví dụ về thuật toán AES
Trang 5Hình 4.4 Mô hình các lớp của tầng Data Accsess
Hình 4.5 Dữ liệu lưu trữ thông tin vé
Hinh 4.6 Mô hình Android kết nối tới Php và Mysql
Hình 5.1 Giao diện chính của website
Hình 5.2 Quản lý sự kiện User
Hình 5.3 Thống kê doanh thu và số vé bán
Hình 5.4 Đặt vé
Hình 5.5 Bảng chi tiết giỏ hàng
Hình 5.6 Thông tin vé User đã mua
Hình 5.7 Giao diện bắt đầu Qrticket App
Hình 5.8 Giao diện đăng nhập User
Hình 5.9 Kiểm tra vé hợp lệ
Hình 5.10 Thử nghiệm website
Hình 5.11 Thử nghiệm website
Trang 6Bảng 3.2 Các chế độ phổ biến trong mã QR
Bảng 3.3 Số bit trong chỉ số đếm kí tự cho QR-code 2005
Bảng 3.4Bảng tra mã ASCII
Bảng 3.5 Các đa thức sinh ứng với số mũ của alpha
Bảng 3.6 Bảng biểu diễn các giá trị log và antilog dùng trong đa thức GF(256) Bảng 5.1 Thử nghiệm website
Bảng 5.2 Thử nghiệm website
Trang 7Chương 1 GIỚI THIỆU ĐỀ TÀI
1.1 Mục đích đề tài
QR (Quick Response ) là một ma trận mã vạch có thể được đọc bởi chức năng
“QR barcode reader” thông thường được cài đặt sẵn trên smart phone Các thông tin được mã hóa có thể bao gồm thông tin văn bản, URL… Việc ứng dụng QR Code vào marketing còn khá mới mẻ ở Việt Nam, tuy nhiên nó đang ngày càng trở nên thông dụng và là xu thế mới của marketing trên thế giới Các ví dụ độc đáo, thú vị về cách sử dụng Qr code như hệ thống mua sắm bằng
Qr code tại Hàn Quốc của công ty Tesco, chiêm ngưỡng tác phẩm nghệ thuật bằng Qr code, mua hàng và xem thông tin sản phẩm qua Qr code, hoặc làm vé tại tàu điện ngầm ở Anh.
Nắm bắt được lợi ích từ Qr code mang lại những tiềm năng phát triển của nótrong tương lai và những kết quả đạt được từ đồ án môn học chuyên ngành“encode và decode Quick Response“ tạo và đọc mã vạch trên smartphone Chúngtôi đưa ra ý tưởng phát triển hệ thống bán vé , trong đó vé được dùng là Qr code.Trong quá trình nghiên cứu và phát triển đề tài, những ý tưởng được đi xa hơn
và mong muốn ứng dụng có thể được áp dụng vào thực tế Chúng tôi xây dựngmột hệ thống cho phép người dùng (user) tự tổ chức sự kiện, tự bán vé, soát vé
và quản lý doanh thu của mình Hệ thống được đặt tên QR ticket
1.2 Nội dung thực hiện
Trang 8 Xây dựng website để tạo sự kiện, quảng bá sự kiện, quản lý số vé và thống kêdoanh thu.
Lập trình ứng dụng trên mobile (android application) hổ trợ khách hàng trongviệc kiểm tra vé
1.3 Phạm vi nghiên cứu
Ứng dụng hổ trợ cho tất cả tới mọi đối tượng người dùng muốn tự tổ chức sựkiện cho mình Thông qua ứng dụng khách hàng có thể quản lý sự kiện một cáchchặt chẽ hơn, đơn giản và tiết kiệm được chi phí tổ chức,in ấn Ứng dụng còn
hỗ trợ đa dạng về các loại sự kiện như: Phim rạp, chương trình ca nhạc, tuyến xebus, tàu điện ngầm, đặt vé máy bay
Đây một đề tài khóa luận nên phạm vi nghiên cứu cho phép chỉ hổ trợ cho ngườidùng miễn phí, do ứng dụng có liên quan đến việc thanh toán ngân hàng (cổngthanh toán trực tuyến) chưa có tích hợp mô hình thanh toán từ bên phía ngânhàng
Trang 9Nhìn chung thị trường tablet và smartphone trong nước mới phát triển rầm rộtrong thời gian gần đây và đa số là người mua thường dùng cho mục đích giải trí,chưa được sử dụng nhiều cho hình thức kinh doanh, công việc Nhưng các ứngdụng Qr code đã được phổ biến rộng rãi trên các nước trên thế giới.
Vé Qr code là đề tài nghiên cứu hoàn toàn mới và chưa thấy ứng dụng ở ViệtNam Vì thế nhóm cũng mong muốn phát triển một ứng dụng cho người việt,phục vụ việc bán vé với các tiêu chí: phù hợp hơn với văn hóa, công việc, đơngiản hơn khi sử dụng và góp phần làm phong phú thêm những sản phẩm mangbản chất người Việt Xin mô tả sơ lược những hệ thống đang được áp dụng hiệnnay Qua đó chúng ta có thể tham khảo thêm từ đó có so sánh các ưu nhược điểmvới ứng dụng của mình để đưa ra hướng phát triển tốt nhất
2.1 Tình hình nghiên cứu ở nước ngoài
Hệ thống ticket-tool [10]
Bước 1: đăng ký, cung cấp thông tin khách hàng cần thiết
Bước 2: user phải liên lạc đến quản lý website để yêu cầu tạo cho mình
mô hình ghế ngồi phù hợp với nơi mình tổ chức
Bước 3: tạo sự kiện
Bước 4: sự kiện sẽ hiển thị lên blog hay site của người tạo
Trang 10Hình 2.1 Trang đặt vé theo vị trí ghế ngồiCác khách hàng (customer) có thể nhấp ô trên để đặt ghế và đồng ý trả phí
cho vé đã mua thông qua một cổng thanh toán trực tuyến
Bước 5 : Khách hàng quản lý số vé đã mua
Hình 2.2 Bảng thống kê số vé mua và số tiền
Bước 6: User quản lý thống kê việc bán của từng sự kiện
Trang 11Hình 2.3 Bảng thống kê doanh thu bán vé
Bước 7: Dùng ứng dụng TicketTool.net Ticket Scanner để kiểm tra
vé.Có thể kiểm tra vé online hoặc offline
Hình 2.4 Giao diện kiểm tra vé của ticket-tool
2.2 Đánh giá hệ thống ticket-tool
Trang 12Theo đánh giá hệ thống này khá đầy đủ đáp ứng đủ yêu cầu của người dùng.Nhưng việc tạo sự kiện khá phức tạp, phải liên lạc với chủ website để tạo riêngcho sự kiện mô hình ghế ngồi phù hợp Đây là một khuyết điểm, đối với đề tàinhóm sẽ có thêm chức năng cho phép user tạo cho mình mô hình ghế ngồi.Ngoài ra chi phí để sử dụng hệ thống cũng là một điều cần tham khảo, phí này sẽđược tính khi khách hàng mua vé được tính theo công thức:
số tiền vé + 0.2$ + 2%.Ví dụ khách hàng mua vé 20$: 20/100 * 2 + 0.2 = 0.6 $
Vì đây là một ứng dụng cho công việc kinh doanh, tính phí nên việc tham khảo,thử nghiệm là điều khó khăn nên nhóm chỉ có thể tham khảo qua demo của ứngdụng này trên website Còn ứng dụng mobile để soát vé không cho phép dùngthử
Chức năng soát vé online và offline như thể nào?
Làm sao kiểm tra vé có giả hay không, và của sự kiện nào?
Cách nào để ngăn việc copy vé, một vé chỉ dùng một lần?
Trang 133.1 Qr Code
Cỡ hình QR
Có 40 cỡ mã hình QR được gọi là cỡ hình 1, cỡ hình 2 cỡ hình 40 Cỡ hình 1gồm 21 x 21 môđun, cỡ hình 2 gồm 25 x 25 môđun, và cứ như vậy mỗi cỡ hìnhsau tăng thêm 4 môđun mỗi cạnh cho đến cỡ hình thứ 40 là 177 x 177 môđun(Hình 3.1) [1]
Hình 3.1 – Mã hình cỡ 1 và 2
Mẫu tìm kiếm( Finder pattern ): Có 3 mẫu tìm kiếm giống nhau đặt tương
ứng ở góc trên bên trái, góc trên bên phải và góc dưới bên trái của mã hình Mỗi mẫu tìm kiếm có thể được xem như 3 hình vuông đồng tâm chồng lên nhau và được tạo bởi 7 x 7 môđun tối, 5 x 5 môđun sáng và 3 x 3 môđun tối Tỉ
lệ độ rộng của môđun trong mỗi mẫu tìm kiếm là 1 : 1 : 3 : 1 : 1 Dùng hỗ trợ phát hiện vị trí, chiều của QR code trong ảnh.
Mẫu căn chỉnh (Timing Pattern) : Mẫu căn chỉnh theo chiều ngang và chiều
dọc tương ứng bao gồm một dòng hoặc một cột rộng 1 môđun xen kẽ giữa môđun sáng và môđun tối, bắt đầu và kết thúc bởi một môđun tối
Vùng mã hoá( FormatInfo, VersionInfo) : Cung cấp thông tin giải mã.
Trang 14Mẫu căn chuẩn( Alignment Pattern ):Các mẫu căn chuẩn chỉ được thể hiện
trong mã hình QR code cỡ hình 2 hoặc lớn hơn Mỗi mẫu căn chuẩn có thể được xem như ba hình vuông đồng tâm chồng lên nhau và được tạo bởi 5 x 5 môđun tối,
3 x 3 môđun sáng và một môđun tối đơn lẻ ở trung tâm, hỗ trợ việc phục hồi QR code khi ảnh bị xiên, méo
Vùng trống ( Modules) : là các hình vuông trắng đen còn lại, lưu trữ thông tin
được mã hóa và thông tin hỗ trợ sửa lỗi
Đối với mã hình QR code, vùng trống phải có chiều rộng là 4X
Đối với mã hình Micro QR code, vùng trống phải có chiều rộng là 2X
Hình 3.2- Cấu trúc của mã hình Micro QR code cỡ hình M3
Khả năng lưu trữ :
Trang 15Bảng 3.1 Khá năng lưu trữ của mã QR
Khả năng chịu lỗi
Đây là ưu điểm nổi bật của QR code ngoài việc có dung lượng lưu trữ lớn Các loại mã kiểu này dễ bị bẩn Nhưng với QR code, kể cả khi 30% bị mất (bẩn, rách, …) thì vẫn còn khả năng khôi phục dữ liệu
Cấp L: 7% mã QR có thể phục hồi.
Cấp M: 15% mã QR có thể phục hồi.
Cấp Q: 25% mã QR có thể phục hồi.
Cấp H: 30% mã QR có thể phục hồi.
Đặc điểm này được tận dụng: cho phép tùy chỉnh QR code : thêm màu sắc,
chèn logo để tăng tính nghệ thuật, làm cho quảng cáo hấp dẫn hơn (Hình 3.3)
Hình 3.3- Hình QR nghệ thuật
Ứng dụng mã QR
Nhị phân (8 bits) Tối đa 2,953 bytes
Trang 16o Quảng cáo : QR code được in lên bao bì, bề mặt sản phẩm, các panel quảng cáo, cung cấp thông tin chi tiết hoặc URL tới trang chủ của sản phẩm.
o Danh thiếp cá nhân: cho phép nhanh chóng số hóa thông tin liên lạc
o Thanh toán điện tử
QUY TRÌNH MÃ HÓA QR CODE [1]
• Bước 1
o Tạo chuỗi nhị phân ( Bit stream )
Chuỗi nhị phân này bao gồm 3 phần chính : thông tin về chế độ mã hóa / độ dàichuỗi/ nội dung chuỗi
o Cần xác định chế độ mã hóa/ mức độ sửa lỗi/ version(kích thước) sẽ sử dụng
VD: sử dụng Version 1 / sửa lỗi level Q / chế độ mã hóa Alphanumeric để encode chuỗi “HELLO WORLD”
o Thêm n bit mã hóa độ dài chuỗi (characters count indicator )
Số n bits này phụ thuộc vào chế độ mã hóa và version ( kích thước) của QR
Code, được quy định trong tài liệu ISO 18004.(Bảng 3.3)
Trang 17VD: Encode chuỗi “HELLO WORLD” ở version 1, chế độ Alphanumeric : cần dùng
9 bits để mã hóa độ dài chuỗi.
Bảng 3.3 – Số bit trong chỉ số đếm kí tự cho QR-code 2005
Độ dài “HELLO WORLD” = 11 kí tự = 1011b >0 0000 1011
Tham khảo bảng 3.2
Sau 2 bước trên ta được chuỗi :
0010 00000 1011
• Bước 4 : Mã hóa dữ liệu
Các kí tự của chuỗi cần mã hóa được tách thành từng cụm, tùy theo chế độ mãhóa :
Chuỗi kí tự dạng numeric sẽ được tách ra thành các bộ 3 và mã hóa mỗi bộ bằng 10 bits, nếu dư ra 1 hoặc 2 kí tự sẽ mã hóa chúng bằng 4 hoặc 7 bits;
Ở chế độ Bytes : mỗi kí tự được mã hóa bằng 8 bits
Chuỗi dạng alphanumeric sẽ được tách ra thành các cặp 2 kí tự và mã hóa mỗi cặp bằng 11 bits
Lấy mã ASCII của kí tự đầu nhân 45 cộng với mã ASCII của kí tự thứ hai Chuyển kết quả thành chuỗi 11 bits (Bảng 3.4)
Tiếp tục với các cặp kí tự khác
Nếu còn dư lại 1 kí tự chuyển mã ASCII của nó thành 1 đoạn 6 bits
Trang 18Bảng 3.4 – Bảng tra mã ASCII
• Bước 5 :Kết thúc chuỗi ( Terminator )
Nếu độ dài chuỗi bit nhỏ hơn N bits so với khả năng lưu trữ của version cùng
với chế độ sửa lỗi được chọn
N >=4 : ta thêm vào chuỗi 4 bits : 0000
N < 4 : ta thêm vào chuỗi N bits 0
Nếu độ dài chuỗi đã đạt ngưỡng của version, ta k cần thực hiện bước này
Ví dụ vào thời điểm này ta đang có chuỗi :
• Bước 6: Tạo từ mã ( Data Codewords )
Chuỗi bits được tạo ở phần 1 sẽ được chia thành các codewords ( 8 bits ) Nếu chiều dài chuỗi bits % 8 = n ≠ 0 : ta thêm ( 8 – n ) bits 0 vào codeword cuối cho đủ 8 bits
0010 0000 0101 1011 0000 1011 0111 1000 1101 0001 0111 0010 1101 1100 0100
1101 0100 0011 0100 0000
Nếu số lượng codewords < số lượng quy định tại tiêu chuẩn ISO
lần lượt thêm vào các byte 1110 1100(0xEC)và 0001 0001(0x11)cho tới khi đủ số lượng quy định
Ví dụ: Version 1-Q cần 13 data codewords :
0010 0000 0101 1011 0000 1011 0111 1000 1101 0001 0111 0010 1101 1100 0100
1101 0100 0011 0100 0000 1110 1100 0001 0001 1110 1100
Trang 19• Bước 7: Tạo mã sửa lỗi ( Error Correction Codewords )
Đây là bước phức tạp nhất, mục tiêu là tạo ra các Error Codewords phục vụ cho việc phát hiện và sửa lỗi khi nhận dạng
Với các version lớn thì các Error codewords và Data codewords được chia thành nhiều blocks và xếp xen kẽ các codewords của blocks với nhau khi đặt dữ liệu mã hóalên ma trận ảnh
Cần xác định số lượng Error Blocks ( = số data blocks ), số Codewords/block tương ứng cho version + chế độ sửa lỗi
• Cột cuối cùng có 3 thông số
C = tổng số codewords của 1 cặp Data block và Error Block
K = Số data codewords trên 1 data block
R = Số lỗi khối này có khả năng sửa được
Ví dụ:
• Version 1-Q yêu cầu 1 error correction block gồm 13 error correction
codewords, 13 data codewords.
• Version 7-H có tổng cộng 130 error codewords, yêu cầu chia thành 5 error blocks ( tương ứng với nó là 5 data blocks, 4 blocks đầu có 13 data codewords/block, block thứ 5 có 14 datacodewords )
• Bước 8:Tạo Message Polynomial ( tạm gọi : đa thức M )
Đây là đa thức được xây dựng từ các data codewords ở trên
Theo Bước 1, ta cần 1 data block với 13 codewords Đa thức M cũng sẽ có 13 số
hạng
Mỗi codeword (chuyển sang hệ thập phân) sẽ là hệ số của số hạng tương ứng
Số mũ của các số hạng giảm dần từ N :
o N = (số data codewords + số error codewords ) – 1
o Trong trường hợp này, N = 13 + 13 – 1 = 25.
Ví dụ : từ bộ data codewords có được ở cuối phần 2 :
0010 0000 0101 1011 0000 1011 0111 1000 1101 0001 0111 0010 1101 1100 0100
1101 0100 0011 0100 0000 1110 1100 0001 0001 1110 1100
Chuyển sang hệ 10: 32, 91, 11, 120, 209, 114, 220, 77, 67, 64, 236, 17, 236
Ta có được đa thức M :
Trang 20Bước 8 : Tạo Generator Polynomial ( Đa thức sinh )
Đa thức này có nguồn gốc từ một Galois Field với 256 phần tử
Theo tài liệu ISO thì alpha là phần tử nguyên thủy = 2
Đa thức sinh có dạng : (x-a)(x-a2) (x-at)
t +1 = (degree) = số error codewords
Đa thức sinh (G) cần được khai triển thành tổng các số hạng (Bảng 3.5)
Bảng 3.5Các đa thức sinh ứng với số mũ của alphaTrong trường hợp này t = 12 và ta có đa thức sinh như sau :
(x-α1)(x- α2)….( x- α12)
+ + + + + + + + + + + + +
(Số số hạng N = số error codewords + 1, số mũ của x giảm từ N -> 0)
Trang 21Nhân đa thức sinh với x12 để thuận tiện cho việc tính toán ( làm xuất hiện x25 trùng với
đa thức M )
Để tạo ra các error correction codewords, cần chia đa thức M cho đa thức G
Quá trình chia đa thức này cần sử dụng một bảng tra ( log[]/ antilog []) để chuyển qua lại giữa 2 cách biểu diễn alpha và integer
Bảng 3.6- Bảng biểu diễn các giá trị log và antilog dùng trong đa thức GF(256)
• Bước 9: Lựa chọn maskPattern phù hợp.
o Sử dụng maskpattern nhằm mục đích đảm bảo sự cân bằng giữa các module trắng và đen trong một ˜ung, giúp việc nhận dạng ˜ung˜ đượcsai sót
Trang 22o Có 8 loại mask pattern, là các biểu thức có tham số là tọa độ I,J Những bit nào trên ma trận ( thuộc ˜ung data ) thỏa biểu thức tọa độ này sẽ được đảo giá trị
• Bước 10: Tạo versionInfo, formatInfo và mã sửa lỗi của chúng.
o formatInfo lưu trữ thông tin về chế độ mã hóa dữ liệu và loại
maskPattern được chọn sử dụng
o versionInfo và formatInfo không dùng mã sửa lỗi reedsolomon như datacodewords mà sử dụng BCH và Golay code
o Chi tiết phần mã hóa tham khảo tại ISO-18004, Annex C, Annex D
• Bước 11: Placement – vẽ QR code, đặt các vùng phần vào từng vị trí của
Trang 23Hình 3.5 Vẽ các Alignment
o Đặt các byte của finalMessage vào theo đúng quy tắc đề cập trong tiêu chuẩn
Trang 24Hình 3.6 Hoàn tất mã hóa QR code
Giải mã Qr code
Khái quát
Xác định và thu nhận hình ảnh của mã hình Nhận biết các môđun tối và môđun sáng như là một chuỗi các bit "0" và "1" Phân định chiều phân cực của hệ số phản
xạ từ việc tạo màu môđun của mẫu tìm kiếm
Đọc thông tin định dạng Gỡ mẫu áp mặt nạ và thực hiện sửa lỗi trên các môđun thông tin định dạng khi cần thiết; nếu đọc tốt, mã hình có sự định hướng bình thường còn nếu không hãy thử giải mã hình ảnh phản chiếu của thông tin định dạng Phân định mức sửa lỗi, hoặc là trực tiếp trong mã hình
QR code hoặc là từ số mã hình Micro QR code và tham chiếu mẫu mặt nạ dữ liệu
Đọc thông tin cỡ hình (nếu có), sau đó xác định cỡ hình của mã hình (từ số mãhình trong trường hợp của mã hình Micro QR code)
Gỡ mẫu áp mặt nạ dữ liệu bằng việc áp dụng phép toán XOR lên mẫu bit của vùng mã hoá bằng mẫu mặt nạ dữ liệu trong đó tham chiếu của nó được lấy ra
từ thông tin định dạng
Trang 25 Đọc các ký tự mã hình theo các quy tắc sắp xếp đối với mô hình này, phục hồi
dữ liệu và từ mã sửa lỗi của gói tin
Phát hiện lỗi sai bằng việc sử dụng từ mã sửa lỗi tương ứng với thông tin về cấp độ Nếu phát hiện ra các lỗi sai thì hãy sửa chúng
Phân đoạn từ mã dữ liệu theo chỉ báo mode và chỉ dấu đếm ký tự
Cuối cùng, giải mã các ký tự dữ liệu tuỳ theo (các) mode đang sử dụng và cho
ra kết quả
Sửa lỗi QR
Lấy mã hình cỡ 1-M làm ví dụ Với mã hình này, mã (26, 16, 4) RS dướiGF(28) được dùng để sửa lỗi Giả sử mã sau khi gỡ mặt nạ dữ liệu khỏi mãhình là:
Trang 26S0σ4 – S1σ3 + S2σ2 – S3σ1 + S4 = 0
S1σ4 – S2σ3 + S3σ2 – S4σ1 + S5 = 0
S2σ4 – S3σ3 + S4σ2 – S5σ1 + S6 = 0
S3σ4 – S4σ3 + S5σ2 – S6σ1 + S7 = 0
Sử dụng công thức trên để tìm biến σi (i=1-4) cho từng vị trí lỗi
Sau đó thay biến σi đối với đa thức dưới đây và thay lần lượt từng phần tửcủa GF(28)
σ(x) = σ4 + σ3x + σ2x2 + σ1x3 + x4
Đến đây, lỗi tìm thấy ở chữ số thứ j (đếm từ số thứ 0) cho phần tử αj làm
cho σ(α) = 0
(iii) Tìm kích thước lỗi
Giả sử bước (ii) tìm thấy lỗi ở chữ số j1, j2, j4, sau đây sẽ tìm kích thước
Giải phương trình trên để tìm ra kích thước từng lỗi Y i (i=1- 4).
(iv) Sửa lỗi
Sửa lỗi bằng cách cộng phần bù giá trị kích thước lỗi vào từng vị trí bị lỗi
Lưu đồ tổng quát quá trình giải mã
Trang 27Hình 3.7 Lưu đồ tổng quát quá tình giải mã QR
3.2 Thuật toán AES
1 Định nghĩa
Trong mật mã học, AES (viết tắt của từ tiếng Anh: Advanced Encryption
Standard, hay Tiêu chuẩn mã hóa tiên tiến) là một thuật toán mã hóa
Trang 28khối được chính phủ Mỹ áp dụng làm tiêu chuẩn mã hóa.Thuật toán được thiết kế bởi hai nhà mật mã người Bỉ: Joan Daemen và Vincent Rijmen.[2]
Hình 3.8 - ví dụ về thuật toán AES
2 Mô tả thuật toán:
Thuật toán AES làm việc với các khối dữ liệu (đầu vào và đầu ra) 128 bít
vàkhóacó độ dài 128, 192 hoặc 256 bít. Các khóa con sử dụng trong các chutrình được tạo ra bởiquá trình tạo khóa con Rijndael Mỗi khóa con cũng là một cộtgồm 4 byte Hầu hết các phép toán trong thuật toán AES đều thực hiện trong
thành 16 byte (mỗi byte 8 bit),có thể xếp thành 4 cột, mỗi cột 4 phần tử hay là
Quá trình mã hóabao gồm các bước:
AddRoundKey:Tại bước này, khóa con được kết hợp với các khối Khóa con trong mỗi chu trình được tạo ra từ khóa chính với quá trình tạo khóa con
Rijndael; mỗi khóa con có độ dài giống như các khối Quá trình kết hợp được thực hiện bằng cáchXORtừng bít của khóa con vớikhối dữliệu