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

Đồ án thiết kế hệ thống số: Xây dựng bộ mã hóa và giải mã dữ liệu dựa trên thuật toán Aes trên nền tảng công nghệ Fpga

31 286 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

Định dạng
Số trang 31
Dung lượng 816,6 KB

Nội dung

Để nghiên cứu thuật toán AES, ta sẽ nghiên cứu tới những khái niệm có liên quan là nền tảng để xây dựng nên bộ cấu trúc và giải mã trước. Sau khi có được những khái niệm cơ bản đó, chúng ta sẽ tìm hiểu về cách xây dựng bộ mã hóa và giải mã dựa trên thuật toán AES trên nền tảng FPGA. Sau đó chúng ta sẽ tìm hiểu cách thiết kế phần cứng, và việc truyền và nhận qua cổng UART.

Trang 1

Tr n Qu c Tuânầ ố B13DCDT082

Đ  Th  Th oỗ ị ả B13DCDT122

Đ  Thanh Huyỗ B13DCDT063

Cù Quang Anh B13DCDT046

Trang 2

M C L CỤ Ụ

L I NÓI Đ UỜ Ầ   2

PH N I : LÝ THUY T C  SẦ Ế Ơ Ở 3

I. T ng quan v  PLD và FPGAổ ề 3

 1.  Gi i thi u v  c u ki n logic kh  trình (PLD)ớ ệ ề ấ ệ ả 3

 2.  FPGA 4

 3.  Các bước thi t k  cho FPGAế ế 5

 4.  Gi i thi u chung v  FPGA c a Xilinxớ ệ ề ủ 7

 5.  Tìm hi u v  ph n m m ISE c a Xilinxể ề ầ ề ủ 8

II. UART 9

 1.  UART nh nậ 9

 2.  UART truy nề 10

III. Thu t toán AES 11

 1.  Gi i thi u v  chu n mã hóa tiên ti n AESớ ệ ề ẩ ế 11

 2.  Quy trình mã hóa  11

 3.  Quy trình gi i mãả 17

PH N II: XÂY D NG B  MàHÓA VÀ GI I MàD  LI U D A TRÊNẦ Ự Ộ Ả Ữ Ệ Ự   THU T   TOÁN   AES   TRÊN   N N   T NG   CÔNG   NGH   FPGAẬ Ề Ả Ệ

18 I. Đ t v n đặ ấ ề 18

Trang 3

 2.  UART Transmitter 25

 3.  AES encoder/decoder 29

III. Ki m tra k t quể ế ả 35

L I NÓI Đ UỜ Ầ

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 

kh iố  đượ  chính phủ Mỹ áp d ng làm tiêu chu n mã hóa. AES đc ụ ẩ ược k  v ng áp ỳ ọ

d ng trên ph m vi th  gi i ,đã đụ ạ ế ớ ược nghiên c u r t k  lứ ấ ỹ ưỡng và được ch p thu n ấ ậ làm tiêu chu n liên bang b iẩ ở  Vi n tiêu chu n và công ngh  qu c gia Hoa kệ ẩ ệ ố ỳ (NIST)  sau m t quá trình tiêu chu n hóa kéo dài 5 nămộ ẩ  . V y nên thu t toán AES là m t ậ ậ ộ thu t toán có th  áp d ng cho nhi u m c đích . ậ ể ụ ề ụ

Đ  nghiên c u thu t toán AES, ta s  nghiên c u t i nh ng khái ni m có liên quan ể ứ ậ ẽ ứ ớ ữ ệ

là n n t ng đ  xây d ng nên b  c u trúc và gi i mã trề ả ể ự ộ ấ ả ước.  Sau khi có được nh ng ữ khái ni m c  b n đó, chúng ta s  tìm hi u v  cách xây d ng b  mã hóa và gi i mã ệ ơ ả ẽ ể ề ự ộ ả

d a trên thu t toán AES trên n n t ng FPGA. Sau đó chúng ta s  tìm hi u cách thi tự ậ ề ả ẽ ể ế  

k  ph n c ng, và vi c truy n và nh n qua c ng UART.ế ầ ứ ệ ề ậ ổ

Cu i cùng là chố ương trình mô ph ng vi c mã hóa và gi i mã d a trên thu t toán ỏ ệ ả ự ậ AES d a trên n n t ng FPGA, thông qua ví d  c  th , qua đó chúng ta s  th y ự ề ả ụ ụ ể ẽ ấ

được kh  năng  ng d ng c a công ngh  này trong th c t ả ứ ụ ủ ệ ự ế

Trang 4

P H N I: LÝ THUY T C  S Ầ Ế Ơ Ở

I. T ng quan v  PLD và FPGA.ổ ề

1. Gi i thi u v  c u ki n logic kh  trình (PLD).ớ ệ ề ấ ệ ả

Vào cu i th p k  70 th  k  XX, các thi t b  logic chu n xu t hi n    t, đi kèmố ậ ỷ ế ỷ ế ị ẩ ấ ệ ồ ạ  

v i đó là s  xu t hi n m ch in. Ngớ ự ấ ệ ạ ười ta đ t ra câu h i: “Chuy n gì x y ra n uặ ỏ ệ ả ế  

người thi t k  có th  th c hi n các k t n i khác nhau trong m t thi t b  l n h n?”.ế ế ể ự ệ ế ố ộ ế ị ớ ơ  

Đi u này cho phép ngề ười thi t k  tích h p nhi u thi t b  logic chu n trong m t linhế ế ợ ề ế ị ẩ ộ  

ki n. Đ  có thi t k  linh ho t nh t, nhà s n xu t Ron Cline t  Signetics đ a ta ýệ ể ế ế ạ ấ ả ấ ừ ư  

tường dùng hai ma tr n k t n i kh  trình. Hai ma tr n k t n i kh  trình này có thậ ế ố ả ậ ế ố ả ể 

t  h p tùy ý gi a các c ng AND và c ng OR, đ ng th i cho phép nhi u c ng ORổ ợ ữ ổ ổ ồ ờ ề ổ  cùng s  d ng chung m t c ng AND. Ki n trúc này r t linh ho t, nh ng t i th iử ụ ộ ổ ế ấ ạ ư ạ ờ  

đi m đó, tr  lan truy n t  đ u vào t i đ u ra khá cao nên thi t b  ho t đ ng tể ễ ề ừ ầ ớ ầ ế ị ạ ộ ươ  ng

đ i ch m và d ng công ngh  logic kh  trình đ u tiên xu t hi n đó chính là SPLD.ố ậ ạ ệ ả ầ ấ ệ  Sau này công ngh  CPLD và FPGA ra đ i có m t đ  tích h p cao h n, c u trúc linhệ ờ ậ ọ ợ ơ ấ  

ho t h n cho phép t o ra nhi u m ch logic ph c t p h n.ạ ơ ạ ề ạ ứ ạ ơ

C u ki n logic kh  trình, vi t t t là PLD là lo i c u ki n đi n t  có nhi u  uấ ệ ả ế ắ ạ ấ ệ ệ ử ề ư  

đi m và hi n nay đang để ệ ược phát tri n r t m nh. V  nguyên lý, chúng có c u t oể ấ ạ ề ấ ạ  

r t gi ng v i PROM. Vi c l p trình cho PLD có th  đấ ố ớ ệ ậ ể ược th c hi n b ng các côngự ệ ằ  

Trang 5

PLD l i r t khác v i PROM. M t PLD, đạ ấ ớ ộ ượ ạc t o thành b ng m t s  c ng AND,ằ ộ ố ổ  

OR, XOR ho c c  các Flip­Flop, có th  th c hi n nhi u hàm Boole khác nhau.ặ ả ể ự ệ ề

2. FPGA

Năm   1985, công ty Xilinx đ a ra ý tư ưởng hoàn toàn m i, đó là k t h p th  gian hoàn thành s nớ ế ợ ờ ả  

ph m và kh  năng đi u khi n đẩ ả ề ể ược c a PLD v i m t đ  và  u th  v  chi phí c aủ ớ ậ ọ ư ế ề ủ  GateArray. T  đó, FPGA ra đ i.ừ ờ

C u trúc FPGA đ n gi n g m các t  bào logic, các kh i cách đ u nhau, liên k tấ ơ ả ồ ế ố ề ế  

nh  các đờ ường k t n i có th  thay đ i đế ố ể ổ ược theo yêu c u c a ngầ ủ ười thi t k ế ế  Nghĩa là người thi t k  có quy n thi t k , l p trình và thay đ i m ch đi n. Hi nế ế ề ế ế ậ ổ ạ ệ ệ  

Trang 6

nay FPGA có m t đ  khá cao, lên t i hàn trăm t  c ng và c u trúc cũng đa d ngậ ộ ờ ỷ ổ ấ ạ  

ph c t p h n. Nhi u ch c năng ph c t p đã đứ ạ ơ ề ứ ứ ạ ượ tích h p s n đ  t n hi u qu  sợ ẵ ể ằ ệ ả ử 

d ng FPGA.ụ

Có hai lo i FPGA c  b n: Lo i l p trình l i đạ ơ ả ạ ậ ạ ược, d a trên công ngh  SRAM vàự ệ  

lo i l p trình m t l n.ạ ậ ộ ầ  

3. Các bước thi t k  cho FPGA.ế ế

B ướ c 1: Nh p thi t k  (Design Entry)ậ ế ế

Các công c  thi t k  cho phép nh p thi t k  theo các cách:ụ ế ế ậ ế ế

­ Nh p thi t k  theo s  đ  nguyên lý Schematic:  ậ ế ế ơ ồ Người thi t k  s  d ng cácế ế ử ụ  mô­đun s n có trong th  vi n Schematic đ  ghép n i chúng v i nhau t oẵ ư ệ ể ố ớ ạ  thành b n thi t k  theo yêu c u. T  s  đ  nguyên lý đã thi t k  đả ế ế ầ ừ ơ ồ ế ế ược công 

c  ph n m m s  chuy n đ i sang file ngôn ng  mô t  ph n c ng HDL, màụ ầ ề ẽ ể ổ ữ ả ầ ứ  

ph  bi n là VHDL ho c Verilog.ổ ế ặ

­ Nh p thi t k  s  d ng ngôn ng  mô t  ph n c ng HDL (VHDL): ậ ế ế ử ụ ữ ả ầ ứ   Ngườ  ithi t k  s  d ng chế ế ử ụ ương trình so n th o đ  th c hi n vi c mô t  toàn bạ ả ể ự ệ ệ ả ộ 

b n thi t k  c a mình dả ế ế ủ ướ ại d ng ngôn ng  HDL.ữ

­ Nh p thi t k  d ậ ế ế ướ ạ i d ng s  đ : ơ ồ  Công c  thi t k  còn cho phép nh p thi tụ ế ế ậ ế  

k  vào dế ưới d ng s  đ  mà đi n hình là đ  hình tr ng thái FSM, sau đóạ ơ ồ ể ồ ạ  chúng cũng được chuy n đ i sang HDL.ể ổ

B ươ c 2: Ki m tra thi t k  (Design Verification)ể ế ế

Th c hi n ki m tra, mô ph ng ch c năng ho t đ ng c a thi t k  HDL đã t o raự ệ ể ỏ ứ ạ ộ ủ ế ế ạ   trên. B c này có th  không c n ph i th c hi n trong khi thi t k

Trang 7

Sau khi hoàn thành mô ph ng thi t k , bỏ ế ế ướ ổc t ng h p ti p theo có nhi m vợ ế ệ ụ chuy n thi t k  dể ế ế ướ ại d ng file văn b n HDL thành d ng file Netlist, th c hi n môả ạ ự ệ  

t  m ch th c   m c th p dả ạ ự ở ứ ấ ướ ại d ng c ng logic và k t n i chúng v i nhau.ổ ế ố ớ

B ướ c 4: Th c hi n thi t k  (Design Implementation)ự ệ ế ế

Bước này s  d ng file Netlist và file ràng bu c “constrains file” (mô t  cácử ụ ộ ả  nguyên t c thi t k , các ràng bu c v  v t lý nh  gán v  trí cho các đ u vào/ra trênắ ế ế ộ ề ậ ư ị ầ  chip, các ràng bu c v  t c đ , th i gian, t n s …) đ  t o thi t k  s  d ng tàiộ ề ố ộ ờ ầ ố ể ạ ế ế ử ụ  nguyên có s n c a FPGA. Bẵ ủ ước này bào g m các bồ ướ Translate, Map, Place and c: 

Routing.

­ Translate:  Bước này nh m th c hi n ki m tra thi t k  và đ m b o fileằ ự ệ ể ế ế ả ả  Netlist   phù   h p   v i   ki n   trúc   FPGA   đã   ch n,   ki m   tra   file   ràng   bu cợ ớ ế ọ ể ộ  

“constraints file” c a ngủ ườ ử ụi s  d ng đ  phát hi n các l i mâu thu n v i thamể ệ ỗ ẫ ớ  

s  c a FPGA đã ch n. ố ủ ọ Translate thường bao g m các quá trình: T i  u hóa,ồ ố ư  biên d ch thành các thành ph n v t lý c a c u ki n; ki m tra ràng bu c thi tị ầ ậ ủ ấ ệ ể ộ ế  

k  Khi k t thúc ế ế Translate , s  có m t b n báo cáo v  các chẽ ộ ả ề ương trình đượ  c

s  d ng, danh sách các c ng I/O và các c u ki n đử ụ ổ ấ ệ ược s  d ng trong thi tử ụ ế  

k ế

­ Map: T o b n phân b  thi t k  t i các tài nguyên c  th  trong FPGA. N uạ ả ố ế ế ớ ụ ể ế  thi t k  quá l n so v i thi t b  đế ế ớ ớ ế ị ược ch n, quy trình này không th  hoànọ ể  thành nhi m v  c a mình. Quá tình ệ ụ ủ Map có các tham s  r ng bu c c a thi tố ạ ộ ủ ế  

k , ví d  nh  tham s  t c đ , th i gian c a thi t k  và đôi khi quy t đ nhế ụ ư ố ố ộ ờ ủ ế ế ế ị  

g n thêm các thành ph n logic đ  đáp  ng các yêu c u v  th i gian. Bắ ầ ể ứ ầ ề ờ ướ  cnày nh m đ a m ch thi t k  vào m t thi t b  c  th  Bằ ư ạ ế ế ộ ế ị ụ ể ước này cũng t o raạ  báo cáo xác nh n các tài nguyên s  d ng trong chip, mô t  chính xác cácậ ử ụ ả  thành ph n trong thi t k  đầ ế ế ược đ t   v  trí nào trong chip th c t ặ ở ị ự ế

­ Place and Routing: Place là quá trình l a ch n v  trí phù h p c a m i kh iự ọ ị ợ ủ ỗ ố  

ch c năng trong thi t k  và đ a các c ng logic c a ph n đó vào các kh iứ ế ế ư ổ ủ ầ ố  logic hay các mô­đun c  th  trong FPGA trên c  s  t i  u vi c k t n i vàụ ể ở ở ố ư ệ ế ố  

Trang 8

đ m b o v  các ràng bu c v  thòi gian. ả ả ề ộ ề Route là quá trình t o liên k t v t lýạ ế ậ  

gi a các kh i logic. Sau bữ ố ước này t o ra đạ ược file mô t  c u hình d ng *.jed.ả ấ ạ

B ướ c 5: Mô ph ng đ nh th i (Timing Simulation)ỏ ị ờ

Sau bướ Place and Routing ngc  ười thi t k  có th  th c hi n mô ph ng thi t kế ế ể ự ệ ỏ ế ế 

 m c c ng logic đã đ c đ nh v  trí và đ nh tuy n trên FPGA, ph n m m s  d ng

file c u hình đã đấ ượ ạc t o ra và k t h p v i th  vi n v  mô hình th i gian c a cácế ợ ớ ư ệ ề ờ ủ  

h  FPGA (ví d  ISE c a xilinx dùng th  vi n VITAL), đ  th c hi n mô ph ng ho tọ ụ ủ ư ệ ể ự ệ ỏ ạ  

đ ng c a thi t k  mà có tính đ n các tham s  th i gian tr , th i gian thi t l p…ộ ủ ế ế ế ố ờ ễ ờ ế ậ  

c a các c ng logic trong FPGA. Bủ ổ ước này r t quan trong v i nh ng thi t k  ph cấ ớ ữ ế ế ứ  

t p, t c đ  l n.ạ ố ộ ớ

B ướ c 6: C u hình (Configuration)ấ

G i chọ ương trình đi u khi n vi c n p c u hình, th c hi n k t n i thi t b  n pề ể ệ ạ ấ ự ệ ế ố ế ị ạ  

đ n FPGA và n p file c u hình cho FPGA. Khác v i CPLD, FPGA có thêm bế ạ ấ ớ ướ  c

“Creat Bit file” đ  t o ra file “lu ng bit” đ  n p vào b  nh  c u hình trong FPGAể ạ ồ ể ạ ộ ớ ấ  

thường là b  nh  t m nh  SRAM.ộ ớ ạ ư

4. Gi i thi u chung v  FPGA c a xilinx.ờ ệ ề ủ

Công ngh  FPGA đang đệ ược phát tri n r t m nh trên th  gi i. Hi n nay Xilinxể ấ ạ ế ớ ệ  

là hãng đi đ u trong công ngh  FPGA, s n ph m c a Xilinx bao g m: các vi m chầ ệ ả ẩ ủ ồ ạ  CPLD và FPGA, ph n m m thi t k , các d nh v  h  tr  thi t k  và các chầ ề ế ế ị ụ ỗ ợ ế ế ươ  ngtrình ngu n.ồ

Xilinx cung c p 2 dòng FPGA là Spartan và Virtex.ấ

FPGA Spartan s  d ng trong nh ng  ng d ng v i s  lử ụ ữ ứ ụ ớ ố ượng l n giá thành th p,ớ ấ  

thương s  d ng đ  thay th  cho m ng c ng logic c  đ nh và cho các s n ph mử ụ ể ế ả ổ ố ị ả ẩ  dùng cho t ng  ng d ng c  th ừ ứ ụ ụ ể

a) Spartan­3

Trang 9

Dòng FPGA Spartan­3 được thi t k  cho các  ng d ng ti t ki m chi phí. So v iế ế ứ ụ ế ệ ớ  các dòng FPGA trước đó, dòng Spartan­3 được tăng thêm v  tài nguyên logic, dungề  

lương RAM, s  I/O và kh  năng qu n lý tín hi u clock.ố ả ả ệ

Các tính năng chính:

­ Giá thành th p.ấ

­ M t đ  logic cao, có th  lên t i 74.880 cells.ậ ộ ể ớ

­ S  lố ương I/O l n, t i đa 784 chân.ớ ố

­ T c đ  truy n d  li u I/O l n.ố ộ ề ữ ệ ớ

­ H  tr  nhi u chu n giao ti p.ỗ ợ ề ẩ ế

­ K t cu i b ng DCI (tr  kháng đi u khi n s ).ế ố ằ ở ề ể ố

C u t o c a Spartan­3 có các thành ph n tấ ạ ủ ầ ương t  nh  các FPGA khác:ự ư

­ Các kh i logic có th  c u hình đố ể ấ ược là các kh i LUT dang RAM. Ch c năngố ứ  

c a các kh i này là đ  thi t l p các logic và các kh i l u tr  có th  là Flip­ủ ố ể ế ậ ố ư ữ ểFlop ho c Latch.ặ

­ Các kh i I/O (IOB) có ch c năng đi u khi n d  li u gi a các chân I/O và cácố ắ ề ể ữ ệ ữ  

kh i logic bên trong c u ki n. M i kh i IOB có th  h  tr  d  li u 2 chi uố ấ ệ ỗ ố ể ỗ ợ ữ ệ ề  

ho c ho t đ ng   3­tr ng thái.ặ ạ ộ ở ạ

­ Các kh i RAM   d ng 18kbit.ố ở ạ

Ngoài ra Spartan­3 có thêm các thành ph nầ

Trang 10

­ Các kh i nhân nhúng c ng 18X18bit.ố ứ

­ Các kh i qu n ls tín hi u clock s  DCM cung câp các kh  năng phân ph i,ố ả ệ ố ả ố  

tr , nhân, chia và đi u khi n pha c a tín hi u clock.ễ ề ể ủ ệ

5. Tìm hi u v  ph n m m ISE c a xilinx.ể ề ầ ề ủ

Không ch  là nhà cung c p các chip logic kh  trình CPLD/FPGA, Xilinx còn cungỉ ấ ả  

c p các công c  thi t k  đi n t  hoàn ch nh, cho phép th c hi n thi t k  trên cácấ ụ ế ế ệ ử ỉ ự ệ ế ế  thi t b  logic kh  trình c a hãng. Các công c  này k t h p công ngh  CAD tiên ti nế ị ả ủ ụ ế ợ ệ ế  

v i giao di n đ  h a linh ho t, d  s  d ng đ  ngớ ệ ồ ọ ạ ễ ử ụ ể ười thi t k  có đế ế ược thi t k  t iế ế ố  

u. B  công c  ph n m m hi n đang đ c s  d ng r ng rãi là ISE

II. UART

Trang 11

UART là m t m ch đi n th c hi n g i d  li u song song thông qua m t kênhộ ạ ệ ự ệ ử ữ ệ ộ  

n i ti p. UART bao g m b  truy n và b  nh n. B  truy n v  c  b n là m t thanhố ế ồ ộ ề ộ ậ ộ ề ề ơ ả ộ  ghi d ch đ c bi t, l y d  li u song song sau đó d ch t ng bít ra ngoài v i t c đ  đ nhị ặ ệ ấ ữ ệ ị ừ ớ ố ộ ị  

trước. Ngượ ạc l i, b  nh n d ch t ng bít d  li u nh n độ ậ ị ừ ữ ệ ậ ược và sau đó ph c h i l iụ ồ ạ  

d  li u.ữ ệ

Khi   tr ng thái ngh , kênh n i ti p   m c ‘1’. Quá trình truy n b t đ u v i m tở ạ ỉ ố ế ở ứ ề ắ ầ ớ ộ  bít start khi kênh xu ng m c ‘0’, theo sau là các bit data, prity và bít stop, lúc nàyố ứ  kênh   m c ‘1’ và tr  v  tr ng thái ngh  sau bít stop. S  lở ứ ở ề ạ ỉ ố ượng bit d  li u có th  làữ ệ ể  

6, 7, ho c 8 bít. Bít parity đặ ược dùng đ  g  l i.ể ỡ ỗ

Đ i v i UART tín hi u clock đ ng b  không đố ớ ệ ồ ộ ược g i kèm các khung d  li u.ử ữ ệ  

Do đó, trước khi quá trình truy n b t đ u, b  truy n và nh n ph i th a thu n trề ắ ầ ộ ề ậ ả ỏ ậ ướ  c

v i nhau m t t p các tham s  bao g m t c đ  baud (s  bít trên giây), s  bít data vàớ ộ ậ ố ồ ố ộ ố ố  stop, có s  d ng bít parity hay không…ử ụ

1. UART nh n

Do không có xung clock đ ng b , b  nh n s  d ng các tham s  xác đ nh trồ ộ ộ ậ ử ụ ố ị ướ  c

đ  truy n d  li u. B  nh n s  d ng m t m ch l y m u đ  ể ề ữ ệ ộ ậ ử ụ ộ ạ ấ ẫ ể ướ ược l ng đi m gi aể ữ  

c a bit và sau đó khôi ph c l i bít.ủ ụ ạ

Trang 12

T c đ  l y m u ph  bi n nh t là 16 l n t c đ  baud, nghĩa là m i bít n i ti pố ộ ấ ẫ ổ ế ấ ầ ố ộ ỗ ố ế  

đượ ấc l y m u 16 l n. M ch l y m u s  làm vi c nh  sau:ẫ ầ ạ ấ ẫ ẽ ệ ư

Ban đ u kênh   tr ng thái ngh  và   m c ‘1’, m ch l y m uầ ở ạ ỉ ở ứ ạ ấ ẫ  

s  đ i cho đ n khi kênh đẽ ợ ế ược kéo xu ng m c ‘0’, b t đ u bít start. B  đ mố ứ ắ ầ ộ ế  bên trong m ch l y m u s  đ m s  m u đã l y.ạ ấ ẫ ẽ ế ố ẫ ấ

Khi b  đ m tăng đ n 7, tín hi u đ n đ t t i đi m gi a c a bitộ ế ế ệ ế ạ ớ ể ữ ủ  start (do 1 bit start tương đương 16 m u). B  đ m đẫ ộ ế ược kh i đ ng l i.ở ộ ạ

Ti p theo b   đ m ti p t c đ m s  m u đã l y, khi đ m t iế ộ ế ế ụ ế ố ẫ ấ ế ớ  

15, tín hi u đ n đ t t i đi m gi a c a bít data đ u tiên. Giá tr  c a bít nàyệ ế ạ ớ ể ữ ủ ầ ị ủ  

s  đẽ ượ ấ ạc l y t i đi m l y m u này. D ch bít này vào thanh ghi và kh i đ ngể ấ ẫ ị ở ộ  

L p l i bặ ạ ước 3 M (M là s  bít stop) l n đ  thu đố ầ ể ược bit stop

M ch l y m u v  c  b n th c hi n ch c năng c a tín hi u clock. Thay vì sạ ấ ẫ ề ơ ả ự ệ ứ ủ ệ ử 

d ng sụ ườn dương c a tín hi u clock đ  ch  th  khi nào thì tín hi u đ u vào là h pủ ệ ể ỉ ị ệ ầ ợ  

l  Nó t n d ng m ch l y m u đ  ệ ậ ụ ạ ấ ẫ ể ướ ược l ng đi m gi a c a m i bít. Trong khi bể ữ ủ ỗ ộ 

nh n không có thông tin chính xác v  th i gian c a bít start, đi m gi a ậ ề ờ ủ ể ữ ướ ượ  c l ng

c a m i bít sai l ch nhi u nh t là 1/16. V i quá trình l y m u, do t c đ  baud cóủ ỗ ệ ề ấ ớ ấ ẫ ố ộ  

th  để ược chia nh  t  t c đ  clock h  th ng, nên m ch này không đỏ ừ ố ộ ệ ố ạ ượ ức  ng d ngụ  

v i t c đ  d  li u cao.ớ ố ộ ữ ệ

2. UART truy n.

Trang 13

UART truy n v  c  b n là m t thanh ghi d ch, d ch ra ngoài t ng bít d  li u t iề ề ơ ả ộ ị ị ừ ữ ệ ạ  

m t t c đ  ch  đ nh trộ ố ộ ỉ ị ước. T c đ  đố ộ ược đi u khi n b ng m ch l y m u. Do tínề ể ằ ạ ấ ẫ  

hi u g i không đi kèm v i clock đ ng b  nên t c đ  l y m u b ng 16 l n t c đệ ử ớ ồ ộ ố ộ ấ ẫ ằ ầ ố ộ baud nh ng quá trình l y m u g i ch m h n so v i UART nh n. B  UART truy nư ấ ẫ ử ậ ơ ớ ậ ộ ề  

s  d ng m t b  đ m đ  theo dõi s  m u, m i bít đử ụ ộ ộ ế ể ố ẫ ỗ ược d ch ra ngoài sau 16 l n l yị ầ ấ  

m u.ẫ

Sau khi xác nh n tín hi u tx_signal là tín hi u yêu c u b  truy n th c hi nậ ệ ệ ầ ộ ề ự ệ  truy n, Máy tr ng thái h u h n s  l y t  d  li u (7 bits) và sau đó th c hi n d nề ạ ữ ạ ẽ ấ ừ ữ ệ ự ệ ầ  

d n thông qua các tr ng thái start, data, stop đ  d ch ra ngoài các bít tầ ạ ể ị ương  ng. Tínứ  

hi u báo hoàn thành b ng cách thi t l p tín hi u tx_done_tick cho 1 chu k  truy n.ệ ằ ế ậ ệ ỳ ề  

M t bít đ m, tx_reg, độ ệ ượ ử ục s  d ng đ  truy n.ể ề

III. Thu t toán AES.

1. Gi i thi u v  chu n mã hóa tiên ti n AES.ớ ệ ề ẩ ế

Chu n mã hóa d  li u tiên ti n AES (Advanced ẩ ữ ệ ế Encryption Standard) là m t hộ ệ 

mã khóa bí m t có tên là ậ Rijdael (do hai nhà m t mã h c ngậ ọ ười B  là ỉ Joan Daemen 

và Vincent Rijmen đ a ra và tr  thành chu n t  năm 2002) cho phép x  lý các kh iư ở ẩ ừ ử ố  

d  li u ữ ệ input có kích thước 128 bit s  d ng các khóa có đ  dài 128, 192 ho c 256ử ụ ộ ặ  bit  Trong AES các phép toán c ng và nhân độ ược th c hi n trên các  ự ệ byte  trong 

trường h u h n GF(ữ ạ

2 Quy trình mã hóa

Quy trình mã hóa s  d ng b n phép bi n đ i chính: ử ụ ố ế ổ

AddRoundKey: c ng  mã khóa c a chu k  vào tr ng thái hi n hành. Đ  dàiộ ủ ỳ ạ ệ ộ  

c a mã khóa c a chu k  b ng v i kích thủ ủ ỳ ằ ớ ướ ủc c a tr ng thái.ạ

SubBytes: thay th  phi tuy n m i byte trong tr ng thái hi n hành thông quaế ế ỗ ạ ệ  

b ng thay th  (S­box).ả ế

Trang 14

MixColumns: tr n thông tin c a t ng c t trong tr ng thái hi n hành. M i c tộ ủ ừ ộ ạ ệ ỗ ộ  

được x  lý đ c l p.ử ộ ậ

ShiftRows : d ch chuy n xoay vòng t ng dòng c a tr ng thái hi n hành v iị ể ừ ủ ạ ệ ớ  

di s  khác nhau.ố

Quy trình mã hóa đ ượ c tóm t t l i nh  sau: ắ ạ ư

Th c hi n thao tác AddRoundKey đ u tiên trự ệ ầ ước khi th c hi n các chu kự ệ ỳ 

Các byte được th  thông qua b ng traế ả  S­box. Đây chính là quá trình phi tuy nế  

c a thu t toán. H p S­box này đủ ậ ộ ượ ạc t o ra t  m từ ộ  phép bi n đ i kh  ngh chế ổ ả ị  trong 

trườ  h u h n ng ữ ạ GF (28) có tính ch t phi tuy n. Đ  ch ng l i các t n công d a trênấ ế ể ố ạ ấ ự  các đ c tính đ i s , h p S­box này đặ ạ ố ộ ượ ạc t o nên b ng cách k t h p phép ngh chằ ế ợ ị  

đ o v i m t phép bi n đ i ả ớ ộ ế ổ affine kh  ngh ch. H p S­box này cũng đả ị ộ ược ch n đọ ể tránh các đi m b t đ ng (fixed point). ể ấ ộ

Trang 15

Bước này bi n đ i m i byte trong ma tr n thành byte   v  trí hàng là 4 bít trế ổ ỗ ậ ở ị ước 

c a byte và c t là 4 bít sau c a byte trong s­box.ủ ộ ủ

Ngày đăng: 15/01/2020, 03:57

TỪ KHÓA LIÊN QUAN

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

TÀI LIỆU LIÊN QUAN

w