Đầu tiên, hai bên trao đổi khóa cơng khai của nhau nếu trước đó chưa có việc trao đổi khóa này. Tiếp theo:
- Công việc của A:
Khởi tạo một khóa phiên là khóa đối xứng để mã hóa bản tin m của mình được bản tin mã hóa Cm.
Mã hóa khóa phiên bằng khóa cơng khai của B được Ck.
Băm bản tin m thành HMDC, rồi mã hóa mã băm này bằng khóa bí mật (khóa riêng) của mình được DSA. DSA xem như là chữ ký số (Digital Signature) của A vì chỉ duy nhất A mới có khóa riêng này.
Đóng gói Cm, Ck, DSA và gửi cho B. - Công việc của B:
Mở gói để có được Cm, Ck, DSA
Giải mã Ck bằng khóa bí mật của mình để có được khóa phiên. D ng khóa phiên để giải mã Cm để có được bản tin m’.
Đến đây, B chưa chắc chắn được rằng m’ chính là bản tin m của A hay có bị sửa đổi
hay khơng. Vì rằng, một kẻ tấn cơng ở giữa có thể thay thế Cm và Ck bằng cách: tạo ra một khóa phiên bất kỳ để mã hóa bản tin m” nào đó thành C’m và mã hóa khóa phiên đó bằng khóa cơng khai của B được C’k rồi gửi C’m, C’k cho B. B có thể nhận C’m, C’k thay vì nhận
Cm, Ck của A gửi mà khơng thể phân biệt được. vì vậy, B tiến hành các bước tiếp theo:
Giải mã DSA bằng khóa cơng khai của A để có được HMDC. Việc B giải mã được DSA bằng khóa cơng khai của A có thể khẳng định được là HMDC là do A gửi.
25 So sánh HMDC và H’MDC. Nếu hai giá trị này bằng nhau thì khẳng định bản tin m’
nhận được chính là bản tin m của A và m đảm bảo tính tồn vẹn trên đường truyền. Nếu khác nhau thì từ chối bản tin m’, gửi lại yêu cầu cho A hoặc kết thúc phiên
giao dịch.
Đến đây phiên giao dịch kết thúc, hai bên hủy bỏ khóa phiên. Để bắt đầu các phiên giao dịch khác, hai bên tiến hành lại các bước như trên.
1.2. FPGA 1.2.1. Giới thiệu 1.2.1. Giới thiệu
FPGA là thiết bị bán dẫn được sản xuất trước (pre-fabricated) có thể được lập trình bên ngồi nhà máy để tạo ra gần như bất kỳ loại mạch hay hệ thống kỹ thuật số nào. Với số lượng sản xuất ít hoặc vừa thì FPGA là giải pháp rẻ và nhanh hơn để đưa sản phẩm ra thị trường so với mạch tích hợp ứng dụng cụ thể ASICs. Một phần của FPGA có thể được cấu hình lại trong khi phần còn lại vẫn đang hoạt động. Trong quá trình sử dụng, sản phẩm cuối cùng có thể dễ dàng nâng cấp bằng cách tải một bitstream ứng dụng mới. Với cơng nghệ tái lập trình được, các thiết bị dựa trên FPGA trở nên rất linh hoạt, người dùng có thể tạo ra và thay đổi một mạch phần cứng tùy ý tại nơi sử dụng bên ngoài nhà máy sản xuất mà không phụ thuộc vào dây chuyền phức tạp tại các nhà máy sản xuất bán dẫn.
Tuy nhiên, lợi thế về tính linh hoạt của FPGA cũng là nguyên nhân phát sinh những lỗ hổng bảo mật. Tính linh hoạt của FPGA cũng làm cho kích thước của nó lớn hơn, tốc độ chậm hơn, và tiêu thụ điện năng nhiều hơn so với ASIC. Những nhược điểm phát sinh chủ yếu là do các kết nối lập trình của FPGA trong đó bao gồm gần 90% tổng diện tích của FPGA.
Bất chấp những nhược điểm trên, FPGA vẫn là một lựa chọn thay thế hấp dẫn cho việc thực hiện các hệ thống kỹ thuật số địi hỏi số lượng ít và cần nhanh chóng đưa thị trường. Đặc biệt, hầu hết các thế hệ mới của FPGA được sản xuất bằng cách sử dụng các công nghệ mới nhất, ví dụ các FPGA sử dụng kiến trúc UltraScale của Xilinx được sản xuất với công nghệ từ 20nm đến 16nm [3], [4]. Từ đó cho thấy FPGA đã có thể cạnh tranh với
ASICs về hiệu suất và điện năng tiêu thụ.
Thiết kế hay lập trình cho FPGA được thực hiện chủ yếu bằng các ngôn ngữ mô tả phần cứng HDL như VHDL [68]–[70], Verilog [71]. Các hãng sản xuất FPGA lớn như
Xilinx, Altera thường cung cấp các gói phần mềm và thiết bị phụ trợ cho quá trình thiết kế. Cũng có một số các hãng thứ ba cung cấp các gói phần mềm kiểu này như Synopsys, Synplify. vv. Các gói phần mềm này có khả năng thực hiện tất cả các bước của tồn bộ quy trình thiết kế IC chuẩn với đầu vào là mã thiết kế trên HDL (còn gọi là mã RTL).
26
1.2.2. Các lĩnh vực ứng dụng của FPGA
Do tính chất có thể lập trình và lập trình lại được từng phần nên FPGA là rất lý tưởng cho việc phát triển nhiều thị trường ứng dụng khác nhau, có thể kể ra đây một số ngành nghề, lĩnh vực như sau:
Quốc phịng và hàng khơng vũ trụ; Tiền thiết kế mẫu ASICs; Điện tử ô tô; Phát thanh; Điện tử tiêu dùng; Trung tâm dữ liệu; Tính tốn hiệu năng cao và lưu trữ dữ liệu; Công nghiệp; Bảo mật; Xử lý hình ảnh và video; Truyền thơng khơng dây.
1.2.3. Cơng nghệ lập trình FPGA
Mỗi một FPGA dựa trên một cơng nghệ lập trình cơ bản để điều khiển các chuyển mạch đại diện cho khả năng lập trình của chúng. Có một số cơng nghệ lập trình và sự khác biệt của chúng ảnh hưởng đáng kể đến kiến trúc logic của FPGA. Các cơng nghệ đó bao gồm EPROM, EEPROM, flash, SRAM và antifuse, xem [72][73]. Trong đó, chỉ có các
cơng nghệ dựa trên flash, SRAM và antifuse được sử dụng rộng rãi trong các FPGA hiện đại. Dưới đây, chúng ta xem xét qua các cơng nghệ lập trình này. Trong đó đặc biệt chi tiết hơn về những ưu nhược điểm của công nghệ SRAM-based.
1.2.3.1. Cơng nghệ lập trình dựa trên SRAM
Các tế bào bộ nhớ tĩnh (SRAM cells) là cơ sở cho cơng nghệ lập trình SRAM, chúng được sử dụng rộng rãi trong các thiết bị của Xilinx, Lattice, và Altera. Trong các thiết bị này, các tế bào SRAM, như thể hiện trong Hình 1.10, được phân phối trên tồn FPGA để cung cấp tính năng có thể cấu hình được. Có hai cấp sử dụng cho các tế bào SRAM. Thứ nhất, hầu hết được sử dụng để thiết lập các đường dẫn đến các bộ ghép kênh. Thứ hai, phần tế bào SRAM còn lại được sử dụng để lưu trữ dữ liệu trong các bảng tra cứu (LUTs), thường được sử dụng trong SRAM-based FPGA, để thực hiện các chức năng logic.
Một SRAM-based FPGA được lập trình bằng cách nạp các tế bào bộ nhớ cấu hình (configuration memory cells) từ một nguồn lưu trữ bên ngoài. Các tế bào bộ nhớ cấu hình điều khiển các logic và liên kết để thực hiện các chức năng ứng dụng của FPGA. Khơng có vùng RAM riêng biệt trên chip, các tế bào bộ nhớ được phân bố trong các logic mà chúng kiểm sốt.
Bộ nhớ cấu hình được ghi một lần duy nhất cho mỗi ứng dụng. Như vậy, không giống như các chip bộ nhớ thương mại, tốc độ đọc/ghi cao đối với bộ nhớ cấu hình là khơng quan trọng lắm. Tính ổn định và mật độ của nó mới chính là mối quan tâm hàng đầu. Hình 1.10(a) cho thấy tế bào bộ nhớ năm transistor CMOS được sử dụng trong các FPGA của Xilinx. Các pass transistor đọc/ghi được sử dụng để nạp các tế bào bộ nhớ cấu hình và đọc lại lập trình. Trong hoạt động bình thường nó tắt, và các tế bào giữ ngun lập trình của nó.
27 Các tế bào bộ nhớ sáu transistor được sử dụng trong các bộ nhớ CMOS sử dụng các bit dữ liệu trong cả hai dạng sự thật và bổ sung (Hình 1.10(b)), hỗ trợ tốc độ đọc/ghi nhanh với chi phí thêm vào chỉ là một transistor. Các tế bào bộ nhớ bốn transistor (Hình 1.10(c)) thường được sử dụng trong SRAM-based FPGA mật độ cao có điện trở polysilicon thay vì các transistor đẩy kéo kênh P.
Hình 1.10 Các dạng tế bào bộ nhớ SRAM [72].
Cơng nghệ lập trình SRAM-based đã trở thành phương pháp tiếp cận chủ đạo cho FPGA thương mại hiện nay vì hai lợi thế chính của nó:
- Khả năng tái lập trình và sử dụng các cơng nghệ xử lý CMOS tiêu chuẩn: Thực tế,
một tế bào SRAM có thể được lập trình với số lần không giới hạn. Mạch chuyên dụng trên FPGA khởi tạo tất cả các bit SRAM khi mở nguồn và cấu hình các bit với cấu hình người dùng cung cấp. Không giống như các cơng nghệ lập trình khác, việc sử dụng các tế bào SRAM khơng u cầu các bước xử lý mạch tích hợp đặc biệt vượt qua CMOS tiêu chuẩn. Kết quả là, SRAM-based FPGA có thể sử dụng cơng nghệ CMOS mới nhất có sẵn và do đó, lợi ích là tích hợp tăng lên, tốc độ cao hơn và tiêu thụ điện năng thấp hơn.
- Chất lượng: Một cách gián tiếp, khả năng tái lập trình được dẫn đến các thành phần có
chất lượng rất cao vì mỗi phần có thể được kiểm tra đầy đủ mà khơng phải phá hủy nó. Tất cả các điểm lập trình và đường dẫn đều được kiểm tra. Việc kiểm tra SRAM-based FPGA bao gồm tất cả những lỗi điển hình cũng như nhiều mẫu lỗi khác mà các bộ kiểm tra ASIC có thể bị bỏ qua. Hiệu suất lập trình cho SRAM-based FPGA ln ln
28 là 100%. Khơng có bước lập trình riêng biệt, và khơng có việc tháo bỏ hoặc chèn lại đối với lập trình.
Tuy nhiên đối với cơng nghệ lập trình SRAM-based, FPGA có một số nhược điểm sau: - Kích thước lớn: Các tế bào SRAM cần phải có 5 hoặc 6 transistor và các phần tử có
thể lập trình được sử dụng để kết nối tín hiệu địi hỏi ít nhất một pass transistor.
- Sự bay hơi: Sự bay hơi của các tế bào SRAM mỗi khi tắt nguồn của thiết bị nên địi
hỏi phải có các thiết bị bên ngồi để lưu trữ dữ liệu cấu hình. Việc sử dụng Flash hoặc EEPROM bên ngồi sẽ làm tăng thêm chi phí của một SRAM-based FPGA.
- Vấn đề bảo mật: Thơng tin cấu hình phải được nạp vào thiết bị mỗi khi bật nguồn, dẫn
đến có khả năng rằng các thơng tin cấu hình này có thể bị chặn và bị đánh cắp. Một số họ FPGA hiện đại cung cấp các kỹ thuật mã hóa thơng tin cấu hình có hiệu quả để loại bỏ nguy cơ này [74], [75].
1.2.3.2. Công nghệ lập trình dựa trên flash
Cơng nghệ lập trình dựa trên flash cung cấp một số lợi thế, trong đó quan trọng nhất là sự khơng bay hơi. Tính năng này giúp loại bỏ sự cần thiết đối với các thiết bị hỗ trợ bên ngoài để lưu trữ và tải lại dữ liệu cấu hình như cơng nghệ lập trình dựa trên SRAM. Ngồi ra, một thiết bị dựa trên flash có thể hoạt động ngay khi mở nguồn thay vì phải chờ nạp dữ liệu cấu hình. Cách tiếp cận flash cũng hiệu quả hơn về tài nguyên so với cơng nghệ dựa trên SRAM địi hỏi đến sáu transistor để thực hiện lưu trữ lập trình được. So với cơng nghệ cầu chì nghịch, một cơng nghệ lập trình khơng dễ bay hơi khác, flash-based FPGA có thể cấu hình lại và có thể được lập trình lại mà không cần phải gỡ bỏ khỏi bảng mạch in.
Một nhược điểm của các flash-based FPGA là chúng khơng thể lập trình lại được vơ số lần. Các thiết bị hiện tại như Actel ProASIC3 chỉ có khả năng cho khoảng 500 lần lập trình lại [76]. Đối với hầu hết công dụng của FPGA, số lần lập trình này là hồn tồn chấp nhận được. Trong nhiều trường hợp, FPGA được lập trình chỉ có một lần cho việc sử dụng lâu dài. Một nhược điểm đáng kể nữa của các thiết bị dựa trên flash là cần một quy trình CMOS khơng chuẩn.
1.2.3.3. Cơng nghệ lập trình dựa trên antifuse
Ưu điểm chính của cơng nghệ lập trình dựa trên cầu chì nghịch (antifuse) là sự tiêu tốn tài nguyên của nó nhỏ. Với liên kết kim loại-kim loại, khơng có v ng silicon để thực hiện các kết nối nên giảm được chi phí tài ngun lập trình. Một lợi thế nữa của cơng nghệ lập trình antifuse là chúng có điện trở và điện dung ký sinh thấp hơn các công nghệ lập trình khác. Sự khơng bay hơi cũng làm cho các thiết bị dựa trên công nghệ lập trình cầu chì nghịch hoạt động ngay lập tức mỗi khi mở nguồn. Điều này làm giảm chi phí hệ thống từ việc không cần bộ nhớ bổ sung để lưu trữ các dữ liệu lập trình và cũng cho phép các FPGA
29 được sử dụng trong các tình huống địi hỏi thiết bị phải hoạt động ngay khi được cung cấp nguồn. Cuối cùng, việc nạp dữ liệu cấu hình cho FPGA chỉ được thực hiện một lần, điều này có thể được thực hiện trong một mơi trường an tồn giúp cải thiện sự bảo mật của các thiết kế trên FPGA. Để duy trì tính bảo mật này, các thiết bị hiện nay cung cấp chế độ bảo mật bằng cách vơ hiệu hóa giao diện lập trình khi thiết bị đã được lập trình [77].
Cũng có những nhược điểm đáng kể cho cơng nghệ lập trình cầu chì nghịch. Đặc biệt, khi các antifuse-based FPGA địi hỏi một quy trình CMOS khơng chuẩn. Hơn nữa, cơ chế cơ bản của lập trình cầu chì, trong đó bao gồm việc thay đổi đáng kể các tính chất của vật liệu trong các cầu chì, dẫn đến mở rộng quy mơ quy trình chế tạo vi mạch là một thách thức cần được xem xét. Thực tế cho thấy cơng nghệ lập trình cầu chì nghịch khơng cịn nhiều trong các thiết bị tiên tiến nhất sử dụng công nghệ 0.15μm [77], là các thế hệ công nghệ sử dụng với thiết bị CMOS tiêu chuẩn mới.
Antifuse-based FPGA khơng có khả năng tái lập trình cũng làm cho chúng khơng thích hợp cho các ứng dụng địi hỏi thường xun cập nhật cấu hình. Việc lập trình một lần làm cho nó khơng thể thử nghiệm để phát hiện tất cả các lỗi có thể. Một số lỗi sẽ chỉ được phát hiện sau khi lập trình sẽ khơng thể khắc phục được. Lập trình thành cơng của một số thiết bị FPGA dựa trên cầu chì nghịch hiện nay được dự báo là đạt khoảng 90% [77].
Tóm lại: Ba cơng nghệ lập trình được xem xét trong phần này đều được sử dụng trong
các FPGA hiện đại. Tuy nhiên, cơng nghệ lập trình dựa trên SRAM được sử dụng rộng rãi nhất. Bảng 1.6 tóm tắt sự khác biệt giữa các cơng nghệ lập trình khác nhau. Một công nghệ
lý tưởng sẽ là công nghệ khơng bay hơi và lập trình lại được sử dụng một quy trình CMOS chuẩn và yêu cầu điện trở và điện dung ký sinh thấp. Rõ ràng, khơng có cơng nghệ nào
trong số các công nghệ hiện nay đáp ứng được tất cả các yêu cầu này. Một trong những lý do mà công nghệ SRAM đã thống trị là việc sử dụng các quy trình sản xuất CMOS chuẩn. Sự thống trị này của cơng nghệ lập trình dựa trên SRAM dự kiến sẽ tiếp tục trong tương lai gần với cơng nghệ CMOS chuẩn mới.
Bảng 1.6 Tóm tắt các đặc tính của các cơng nghệ lập trình [78]
Các đặc tính SRAM Flash Antifuse
Tính bay hơi Có Khơng Khơng
Có thể lập trình lại Có Có Khơng
Tài ngun (kích thước phần tử lưu trữ)
Cao Vừa Thấp
Quy trình sản xuất CMOS chuẩn Flash antifuse
Có thể lập trình trong hệ thống Có Có Khơng
Điện trở chuyển mạch ~500-1000 ~500-1000 20-100
Điện dung chuyển mạch ~1-2 fF ~1-2 fF <1 fF
30
1.2.4. Thiết kế và bảo mật hệ thống dựa trên SRAM-based FPGA
1.2.4.1. Quy trình thiết kế
Quy trình thiết kế một hệ thống dựa trên SRAM-based FPGA được chỉ ra trong Hình 1.11 [79], trong đó:
- Thiết kế kiến trúc. Giai đoạn này liên quan đến việc phân tích các yêu cầu của dự án,
triển khai các vấn đề và mô phỏng các chức năng. Đầu ra của giai đoạn này là một tài liệu