Tải bản đầy đủ (.pdf) (6 trang)

Thực hiện mạch tạo số giả ngẫu nhiên PRNG trên công nghệ Skywater 130nm

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (742.42 KB, 6 trang )

Hội nghị Quốc gia lần thứ 25 về Điện tử, Truyền thông và Công nghệ Thông tin (REV-ECIT2022)

Thực hiện mạch tạo số giả ngẫu nhiên PRNG
trên công nghệ Skywater 130nm
Nguyễn Thị Cẩm Nhung, Lê Đức Hùng(*)
Khoa Điện tử Viễn Thông,
Trường Đại học Khoa học Tự Nhiên TPHCM
(*)
Email:

Abstract— Trong bài báo này, mạch tạo số giả ngẫu
nhiên PRNG được thiết kế và thực hiện trên công nghệ
Google SkyWater 130nm. Mạch là sự kết hợp giữa ba
thành phần: mạch tạo số giả ngẫu nhiên (PRNG), khối
mã hóa (AES-128), và khối hàm băm (SHA-256). Đầu
vào mạch gồm một số 64-bit làm mẫu cho lần chạy đầu
tiên và một khóa (key) 128-bit. Đầu ra của mạch là số
ngẫu nhiên 128-bit. Vì mạch tạo số ngẫu nhiên kết hợp
với các khối mã hóa như AES-128 và SHA-256 nên độ tin
cậy của mạch tạo số ngẫu nhiên rất cao, và việc dự đoán
ngược số ngẫu nhiên sẽ mất nhiều thời gian hơn. Mạch
tạo số ngẫu nhiên PRNG đề xuất được mơ phỏng trên
Modelsim, sau đó áp dụng quy trình mã nguồn mở
OpenLane, và thư viện Skywater 130nm để tạo ASIC.

Kit) SkyWater130. Đây một bộ công cụ mơ tả quy
trình chế tạo 130nm (SKY130) được sử dụng trong nhà
máy chế tạo của hãng SkyWater.
PDK SKY130 sử dụng quy trình OpenLane. Đây là
một quy trình tự động từ RTL đến GDSII dựa trên một
số công cụ bao gồm OpenRoad, Yosys, Magic, NetGen


và các tập lệnh tùy chỉnh để khám phá và tối ưu hóa
thiết kế.
B. Quy trình thiết kế của OpenLane

Keywords-số giả ngẫu nhiên, PRNG, AES-128, SHA-256,
OpenLane, Skywater 130nm.

I. GIỚI THIỆU
Bộ tạo số giả ngẫu nhiên (Random Number
Generator - RNG) được sử dụng trong nhiều lĩnh vực
như khoa học, nghệ thuật, thống kê, mật mã, chơi
game, đánh bạc và các lĩnh vực khác. Đặc biệt trong
thời đại công nghệ phát triển như hiện nay, việc bảo
mật và an tồn thơng tin là điều vơ cùng quan trọng.
RNG là một thành phần quan trọng để tăng cường và
đảm bảo tính bảo mật của thơng tin liên lạc điện tử. Bài
báo cáo này muốn hướng đến xây dựng mạch tạo số
ngẫu nhiên trên công nghệ Google SkyWater 130nm
(SKY130). Đây là công cụ thiết kế vi mạch mã nguồn
mở và miễn phí. Q trình thực hiện mạch bao gồm
tồn bộ quy trình thiết kế vi mạch số, từ hình thành ý
tưởng và RTL đến khi xuất ra tập tin layout.

Hình 1. Quy trình thiết kế OpenLane [Nguồn: Github
OpenLane].

OpenLane là một bộ công cụ tự động để biến thiết
kế kỹ thuật số thành các tập tin cần thiết để tạo ASIC.
OpenLane được thực hiện một cách tự động hóa
nhưng nó cần được cấu hình chính xác khi sử dụng.

Theo mặc định, tất cả các bước trong quy trình phải
được chạy theo trình tự. Quy trình này được thể hiện
cụ thể qua Hình 1, gồm các bước như sau:
 Tổng hợp mạch (RTL Synthesis): dùng cơng cụ
Yosys
 Phân tích thời gian tĩnh (STA): dùng công cụ
OpenSTA
 Thiết kế cho kiểm tra (DFT): công cụ Fault
 Back-end: công cụ OpenROAD, gồm
Floorplanning,
Placement,
Xlock
Tree
Synthesis – CTS, Routing

Phần còn lại của bài báo được tổ chức như sau:
Phần II giới thiệu tổng quan công nghệ Google
SkyWater 130nm. Phần III trình bày kiến trúc và thiết
kế mạch tạo số ngẫu nhiên. Phần IV trình bày kết quả
thực hiện. Sau đó, bài báo được kết luận trong Phần V.
II. TỔNG QUAN VỀ CƠNG NGHỆ GOOGLE
SKYWATER 130NM
A. Giới thiệu cơng nghệ Google SkyWater 130nm
Vào tháng 6 năm 2020, Google hợp tác với
SkyWater Technology đã ra mắt PDK (Process Design

ISBN 978-604-80-7468-5

364



Hội nghị Quốc gia lần thứ 25 về Điện tử, Truyền thơng và Cơng nghệ Thơng tin (REV-ECIT2022)






Standard), AES thì tính bảo mật của PRNG cũng được
xác nhận. Sau khi tham khảo một vài so sánh thuật
toán AES (Advanced Encryption Standard) là sự lựa
cho thích hợp nhất cho mạch PRNG, cho nên PRNG
sẽ được kết hợp với AES để đạt được chất lượng tối
ưu.
Với mong muốn hướng tới một cấu trúc mạch tạo
số ngẫu nhiên bảo đảm chất lượng đầu ra khơng thể dự
đốn. Khơng chỉ áp dụng sử dụng gần mà cịn đảm bảo
tính bảo mật khi truyền số ngẫu nhiên đến nơi khác.
Cấu trúc đề xuất sẽ kết hợp mã hóa đầu ra của PRNG
bằng mạch mã hóa đối xứng AES và đầu ra ngẫu nhiên
này sẽ được tăng cường một lần nữa bằng hàm băm
(SHA) với mục đích bảo đảm thơng tin trong q trình
truyền đi khơng bị thay đổi.

Kiểm tra tương đương logic (LEC)
Trích xuất RC và thực hiện STA
Xuất file GDSII: công cụ Magic, Klayout
Các kiểm tra thiết kế được thực hiện bằng các
công cụ sau:
 Magic – Thực hiện kiểm tra DRC (Design

Rule Check) và kiểm tra Antenna.
 Klayout - Thực hiện kiểm tra DRC.
 Netgen - Thực hiện kiểm tra LVS (Layout
Versus Schematic ).
 CVC - Thực hiện kiểm tra tính hợp lệ của
mạch (Circuit Validity Checks).

III. KIẾN TRÚC VÀ THIẾT KẾ MẠCH TẠO SỐ
NGẪU NHIÊN

C. Sơ đồ khối

A.

Giới thiệu mạch tạo số ngẫu nhiên
Mạch tạo số ngẫu nhiên (Random Number
Generator - RNG) là quá trình tạo ra số ngẫu nhiên. Cụ
thể là một dãy số hoặc ký hiệu được tạo ra và nó
khơng thể dự đốn một cách chính xác. RNG là một
thành phần chính để tăng cường và đảm bảo tính bảo
mật của truyền thơng điện tử. Có nhiều loại RNG
nhưng ở báo cáo này chỉ tập trung vào mạch tạo số
ngẫu nhiên PRNG (Pseudo Random Number
Generator). PRNG sử dụng các thuật tốn tính tốn có
thể tạo ra các chuỗi dài các kết quả ngẫu nhiên, trên
thực tế được xác định hoàn toàn bởi giá trị ban đầu
ngắn hơn, được gọi là giá trị khởi đầu (seed) hoặc
khóa (key). Vì PRNG sử dụng những hàm số đã được
lập trình sẵn và việc cịn lại chỉ là thực hiện các phép
tính nên nó hiệu quả, ít tốn bộ nhớ, tiết kiệm thời gian

chạy. Tuy nhiên, PRNG có một nhược điểm là tạo ra
số khơng hồn tồn ngẫu nhiên, có thể đốn được nếu
biết được thuật toán và giá trị khởi đầu (seed).
Nhận thấy tính khả thi và ưu điểm của mạch PRNG
cho nên ở bài báo này sẽ hướng tới thực hiện mạch tạo
số giả ngẫu nhiên (PRNG) đồng thời sẽ đề xuất mơ
hình PRNG khắc phục nhược điểm của mạch. Đề xuất
đó là mạch PRNG sẽ được kết hợp với khối mạch mã
hóa AES-128 và hàm băm SHA-256 để làm giá trị giả
ngẫu nhiên ở ngõ ra khó bị truy ngược hơn. Các khối
mã hóa này được mơ tả trong Hình 2.
Ứng dụng mạch tạo số ngẫu nhiên này được sử
dụng vào trong các lĩnh vực như bảo mật, mật mã
nhằm bảo vệ các thông tin. dữ liệu cũng như các tài
nguyên quan trọng trong thời đại công nghệ đang ngày
càng phát triển như hiện nay.

Hình 2. Sơ đồ khối mạch tạo số ngẫu nhiên.

Chức năng các khối trong sơ đồ Hình 2 trên:
 Khối 1 (PRNG): Tạo ra số giả ngẫu nhiên. Ban
đầu người dùng cần đưa một giá trị khởi đầu
vào để PRNG vận hành lần đầu tiên sinh ra số
ngẫu nhiên và đầu ra ngẫu nhiên này sẽ được
biến đổi thông qua các cổng logic để quay trở
lại làm giá trị đầu vào cho PRNG tiếp tục hoạt
động.
 Khối 2 (AES): Mã hóa số giả ngẫu nhiên. Tiếp
nhận dữ liệu từ mạch PRNG (bản rõ) và khóa bí
mật được người dùng định nghĩa đưa vào khối

mã hóa AES cho ra một bản mã ngẫu nhiên.
 Khối 3 (SHA): Băm dữ liệu mã hóa từ đầu ra
của khối AES, đảm bảo dữ liệu truyền đi không
bị tấn công hay bị sửa đổi trong quá trình
truyền.
D. Khối 1 – PRNG

B. Kiến trúc mạch tạo số ngẫu nhiên
Mạch sẽ được xây dựng dựa trên LFSR (Linear
Feedback Shift Register) và CASR (Cellular Automata
Shift Register) để tạo ra số giả ngẫu nhiên. Sau đó ứng
dụng thêm một cách tiếp cận phổ biến để xây dựng
PRNG là sử dụng mật mã khối đối xứng làm trung tâm
của cơ chế PRNG. Nếu sử dụng đúng mật mã khối đã
được chứng thực như DES (Data Encryption

ISBN 978-604-80-7468-5

Hình 3. Sơ đồ mơ tả các thành phần trong PRNG.

Ở Hình 3, PRNG sẽ có 128-bit đầu ra được ghép từ
ngõ ra cùng ba thành phần bên trong:

365


Hội nghị Quốc gia lần thứ 25 về Điện tử, Truyền thông và Công nghệ Thông tin (REV-ECIT2022)

 Thanh ghi dịch chuyển tự động (CASR) với đầu ra
32-bit sẽ cung cấp 32-bit ngẫu nhiên đầu tiên cho

đầu ra PRNG.
 Thanh ghi phản hồi tuyến tính (LFSR) với đầu ra
32-bit sẽ cung cấp 32-bit ngẫu nhiên cuối cho đầu
ra PRNG.
 Còn 64-bit trung tâm của đầu ra PRNG sẽ thực
hiện logic XOR giữa mạch LFSR 64-bit và mạch
CASR 64-bit.
Các mạch LFSR và CASR đều cần có giá trị khởi
đầu (gọi là seed) có độ dài bit tương ứng để vận hành
mạch lần đầu. Để đơn giản thì tất cả các mạch LFSR
và CASR sẽ dùng chung một giá trị khởi đầu với độ
dài bit “giá trị khởi đầu” lớn nhất là 64-bit. Những
mạch chỉ cần 32-bit “giá trị khởi đầu” sẽ lấy một đoạn
bit từ 64-bit “giá trị khởi đầu” đó cấp cho mạch cần sử
dụng.
1) CASR 32-bit.
Mạch 32-bit CASR của PRNG có mơ hình như sau
(do mơ hình khá dài nên được cắt thành hai phần trong
Hình 4):

Hình 5. Mơ hình mạch LFSR 32-bit.

Mạch được thiết kế theo mơ hình Galois LFSR.
Giá trị khởi đầu của mạch này là 32-bit được lấy từ
64-bit seed đầu từ bit 16 đến 47. Mỗi thanh ghi sẽ
được gắn với một bộ mux dùng biến “loadseed_i” điều
khiển thực hiện tải “giá trị khởi đầu” sau đó sẽ tắt nó
đi, để mạch thực hiện theo thuật toán LFSR. Đa thức
đặc trưng của LFSR 32-bit được biểu diễn trong
phương trình (3):

(3)
P(x) = X32 + X29 + X16 + X + 1
Đầu ra của mạch sẽ là 32-bit cuối của mạch
PRNG.
3) CASR XOR LFSR
Tiếp theo, 64-bit giữa của đầu ra PRNG được tạo
ra từ kết quả XOR của 2 bộ CASR và LFSR theo sơ
đồ minh họa ở Hình 6.

Hình 4. Mơ hình mạch CASR 32-bit.

Giá trị khởi đầu của mạch này là 32-bit được lấy
từ 64-bit seed đầu từ bit 16 đến 47. Ở thanh ghi 19 sẽ
thực hiện theo quy tắc CA150 (Cellular Automaton CA) và ở tất cả thanh ghi còn lại sử dụng quy tắc
CA90. Quy tắc CA90 [6] được định nghĩa theo
phương trình (1) sau:
ai (t + 1) = ai−1(t) ⊕ ai+1(t)
(1)
Và quy tắc CA150 [6] được định nghĩa theo
phương trình (2) sau:
ai (t + 1) = ai−1(t) ⊕ ai(t) ⊕ ai+1(t) (2)
Mỗi thanh ghi sẽ được gắn với một bộ mux dùng
biến “loadseed_i” sẽ điều khiển thực hiện tải “giá trị
khởi đầu” sau đó sẽ tắt nó đi, để mạch thực hiện theo
thuật toán CASR. Đầu ra mạch sẽ là 32-bit đầu của
mạch PRNG.
2) LFSR 32-bit
Đối với mạch LFSR 32-bit trong PRNG có cấu
trúc như Hình 5 (do mơ hình khá dài nên được cắt
thành hai đoạn):


ISBN 978-604-80-7468-5

Hình 6. Mơ tả cấu trúc kết hợp hai mạch CASR, LFSR.

Mạch CASR 74-bit với sơ đồ cấu trúc như Hình 7
bên dưới.

Hình 7. Mơ hình mạch CASR 74-bit.

366


Hội nghị Quốc gia lần thứ 25 về Điện tử, Truyền thông và Công nghệ Thông tin (REV-ECIT2022)

Mạch sử dụng quy tắc CA150 ở thanh ghi 27 và
thanh ghi 64, các thanh ghi còn lại sẽ sử dụng quy tắc
CA90. Giá trị khởi đầu 74-bit sẽ được ghép từ 64-bit
và bổ sung bit 0 cho các bit còn lại. Mỗi thanh ghi sẽ
được gắn với một bộ mux dùng biến “loadseed” sẽ
điều khiển thực hiện tải “giá trị khởi đầu” sau đó sẽ tắt
nó đi, để mạch thực hiện theo thuật toán CASR.
Đối với mạch LFSR 86-bit cũng lấy giá trị khởi
đầu bằng cách ghép 64-bit seed và bit 0. Mỗi thanh ghi
sẽ được gắn với một bộ mux dùng biến “loadseed_i”
sẽ điều khiển thực hiện nạp “giá trị khởi đầu” sau đó
sẽ tắt nó đi, để mạch thực hiện theo thuật tốn LFSR.
Mơ hình mạch như Hình 8.

AES là một thuật tốn mã hóa khối đối xứng với

mỗi độ dài khóa khác nhau có tên gọi tương ứng AES128, AES-192, AES-256. Trong thiết kế này sẽ sử
dụng AES-128, một phần là do số bit đầu vào của
AES-128 tương thích với khối PRNG trước đó từ đó
có thể dễ dàng kết hợp chúng với nhau. Mã hóa AES
được thực hiện thơng qua 5 chức năng chính là
AddRoundKey, SubBytes, ShiftRows, MixColumns
và KeyExpansion.
Các thành phần trên sẽ được sắp xếp như Hình 9 và
thực hiện trong 3 bước chính:
1. Khởi tạo: plain_text [127:0] là dữ liệu cần được
mã hóa kết hợp với key [127:0] bằng chức năng
AddRoundKey.
2. Lặp mã hóa: sử dụng kết quả ở bước khởi tạo
thực hiện tuần tự các chức năng SubBytes, ShiftRows,
MixColumns và AddRoundKey. Do đang sử dụng
AES-128 có 10 vịng lặp bao gồm 9 lần lặp ở bước này
và 1 lần lặp ở bước sau.
3. Tạo ngõ ra: tiếp tục sử dụng kết quả ở bước 2
để thực hiện tuần tự các chức năng SubBytes,
ShiftRows và AddRoundKey để tạo ngõ ra cipher_text
[127:0].
Trong q trình mã hóa, ma trận dữ liệu gốc sẽ
được biến đổi bởi các hàm AddRoundKey, SubBytes,
ShiftRows hoặc MixColumns để tạo ra dữ liệu trung
gian được gọi là ma trận trạng thái. Ma trận khóa mã
sẽ được biến đổi bởi chức năng KeyExpansion để tạo
ra các khóa mật mã trung gian được gọi là khóa vịng.

Hình 8. Mơ hình mạch LFSR 86-bit.


Đa thức biểu diễn mạch LFSR 86-bit:
P(x) = X84 + X63 + X44 + X41 + X20 + X + 1
Cuối cùng sẽ thực hiện XOR 64-bit đầu của hai
mạch trên với nhau cho ra đầu ra 64-bit, đây cũng là
giá trị ngẫu nhiên 64-bit trung tâm của mạch PRNG.

F. Khối 3 – SHA-256
SHA-256 là một trong những hàm băm mạnh nhất
hiện tại. Ở thiết kế này sẽ thực hiện hàm băm SHA256 vì có mã băm cố định là 256-bit (32-byte) giúp dễ
dàng kết hợp với các thành phần khác. SHA có thể
được dùng để băm một thơng tin (M), có độ dài l-bit (0
< l < 264). Thuật toán sử dụng:
1. Một danh sách thông tin (message schedule) 64word mỗi word gồm 32-bit.
2. Mỗi 32-bit thao tác với 8 biến.
3. Một giá trị băm của 8-word, mỗi word 32-bit.
Kết quả cuối cùng của SHA-256 là chuỗi tóm lược
thơng tin (message digest) có độ dài 256-bit.

E. Khối 2 – AES
AES là một tiêu chuẩn mã hóa tiên tiến, đây là
thuật tốn tiêu chuẩn của chính phủ Hoa Kỳ.

IV. KẾT QUẢ THỰC HIỆN
A. Kết quả mơ phỏng trên ModelSim
Khối PRNG có chu kỳ ngắn hơn chu kỳ của khối
AES-128 nên trong quá trình khối AES-128 xử lý một
dữ liệu mà có một dữ liệu mới từ PRNG chen vào sẽ
dẫn đến kết quả sai lệch ở khối AES-128. Bởi vì sự
khơng đồng bộ này nên thiết kế cần sử dụng hai xung
đồng hồ có chu kỳ khác nhau. Cụ thể, đối với mạch

PRNG sẽ sử dụng xung đồng hồ gấp 68 lần xung còn
lại (chỉ số này được lấy theo số chu kỳ của mạch liền
kề với khối PRNG là khối AES-128). Còn hai mạch
AES-128 và SHA-256 sẽ sử dụng cùng một chu kỳ với

Hình 9. Quy trình mã hóa của mạch AES-128.

ISBN 978-604-80-7468-5

367


Hội nghị Quốc gia lần thứ 25 về Điện tử, Truyền thơng và Cơng nghệ Thơng tin (REV-ECIT2022)

nhau vì chu kỳ mạch AES-128 lớn hơn chu kỳ mạch
SHA-256 nên không xảy ra ảnh hưởng đến hoạt động
mạch SHA-256.
Tất cả các khối trong PRNG đều sử dụng thanh ghi
có tín hiệu reset khơng đồng bộ và tích cực mức thấp
nên khi biến reset xuống 0 thì bất cứ lúc nào khơng kể
tín hiệu xung đồng hồ mạch cũng sẽ được reset. Quá
trình reset sẽ đặt tất cả giá trị về 0. Các quá trình khi đi
qua các khối đã được trình bày trước đó nên sẽ khơng
nhắc lại. Chỉ thể hiện kết quả cuối cùng.
Mô tả hoạt động thiết kế tổng thể như sau:
1. Khi q trình PRNG có kết quả thì mới bắt đầu
ghi dữ liệu vào khối AES (Hình 10).
2. Khi AES-128 kết thúc một quy trình mã hóa
của mình thì cho phép ghi dữ lệu vào khối
SHA-256. (Hình 11).

3. Kết quả của SHA-256 và xuất ra giá trị đầu ra
của thiết kế (Hình 12).

 digest 256-bit:
daa400a3094e96d299c2085350402186129ff23
38682cbe5db36df44656492b0.

Hình 12. Dạng sóng mơ phỏng kết quả mạch tạo số giả ngẫu
nhiên.

B. Kết quả thực hiện trên công nghệ Skywater 130nm
1) Cấu hình thiết kế
Do mạch sử dụng hai xung đồng hồ nên thiết kế sẽ
được chạy CTS ở cả hai trường hợp. Trong thiết kế
này sẽ sử dụng các biến cấu hình chung cho hai trường
hợp ở Bảng 1 dưới đây.
Bảng 1. Các biến cấu hình chung cho thiết kế.
Tên biến
PDK
STD_CELL_LIBRARY
DESIGN_NAME
DESIGN_IS_CORE
FP_PIN_ORDER_CFG
FB_CORE_UTIL
PL_BASIC_PLACEMENT
PL_TARGET_DESITY
VDD_NETS
GND_NETS
DIODE_INSERTION_STRATEGY
RUN_CVC


Hình 10. Dạng sóng mơ phỏng q trình mã hóa.

Kết quả tính tốn và mơ phỏng của khối được thể
hiện ở Hình 12

Giá trị
sky130a
sky130_fd_sc_hd
top_prng
0
tập tin
pin_order.cfg
20
0
0.25
list{vcc1}
list {vssd1}
4
1

Tập tin pin_order.cfg cấu hình vị trí các chân trên
thiết kế theo các hướng sau đây:
 Hướng Đông (E): sẽ đặt các cổng digest và
digest_valid_sha.
 Hướng Tây (W): sẽ đặt các cổng load_seed, clk,
clk_2, reset, reset_2, next_aes, init_aes,
init_sha.
 Hướng Nam (S): sẽ đặt các cổng
result_valid_aes, ready_aes và ready_sha.

 Hướng Bắc (N): sẽ đặt các cổng key_aes, seed.
Cấu hình xung đồng hồ dành cho mạch AES-128
và SHA-256 (clk) được trình bày ở Bảng 2.
Bảng 2. Các biến cấu hình cho trường hợp clock 1.

Hình 11. Dạng sóng mơ phỏng q trình băm của tồn khối.

Tên biến
CLOCK_PORT
CLOCK_NET
CLOCK_PERIOD
PL_RESIZER_HOLD_SLACK_MARGIN
GLB_RESIZER_HOLD_SLACK_MARGIN

Cụ thể các giá trị random, message và digest có giá
trị như sau:
 random 128-bit:
b4d80cb77950258d2a9c5d4745bef090.
 message 128-bit:
3914f9cb102f30b540b8af197fe5b8ee.

ISBN 978-604-80-7468-5

368

Giá trị
Clk
Clk
40
0.35

0.35


Hội nghị Quốc gia lần thứ 25 về Điện tử, Truyền thông và Công nghệ Thông tin (REV-ECIT2022)

PL_RESIZER_SETUP_SLACK_MARGIN
GLB_RESIZER_SETUP_SLACK_MARGIN
PL_RESIZER_MAX_SLEW_MARGIN
PL_RESIZER_MAX_CAP_MARGIN

V. KẾT LUẬN

0.35
0.35
35
35

Mạch tạo số ngẫu nhiên đề xuất được thiết kế dựa
trên mạch tạo số giả ngẫu nhiên (PRNG) kết hợp với
mạch mã hóa (AES-128) và hàm băm (SHA-256).
Trong q trình thiết kế các chức năng đã được kiểm
tra mô phỏng trên ModelSim và được thiết kế vật lý
trên công nghệ Google SkyWater 130nm với kết quả
cho ra tập tin thiết kế (.gds). Mạch có kích thước layout
là 1103.79µm  1114.51µm và cơng suất tiêu thụ ước
tính khoảng 17.7mW ở tần số 25MHz. Với thiết kế
này, PRNG đề xuất có độ bảo mật khá cao góp phần
nâng cao độ tin cậy, bảo đảm số ngẫu nhiên được tạo ra
khơng thể dự đốn. Thiết kế này đã loại bỏ được nhược
điểm lớn nhất của các mạch PRNG hiện nay là dễ bị dự

đoán. Mạch tạo số giả ngẫu nhiên đề xuất có thể ứng
dụng vào bảo mật an tồn thơng tin, và q trình giao
dịch điện tử trên phần cứng như gửi mã OTP xác nhận
giao dịch.

Cấu hình xung đồng hồ dành cho mạch PRNG
(clk_2) được trình bày ở Bảng 3. Chu kỳ của clk_2 sẽ
lớn hơn gấp 68 lần so với clk: clk_2 = 68 x 40 = 2720.
Bảng 3. Các biến cấu hình cho trường hợp clock 2.
Tên biến
CLOCK_PORT
CLOCK_NET
CLOCK_PERIOD

Giá trị
Clk_2
Clk_2
2720

Kết quả về công suất của mạch PRNG trên công
nghệ Skywater 130nm xấp xỉ bằng 17.7mW (1.7710-2
W) được biểu diễn trong Hình 13 như dưới đây:

TÀI LIỆU THAM KHẢO
[1]

Hình 13. Kết quả báo cáo công suất trên Skywater 130nm.

[2]


2) Kết quả layout
Bảng 4 biểu diễn kết quả thực hiện của mạch tạo số
giả ngẫu nhiên PRNG được đề xuất sau khi thực hiện
PnR trên công nghệ SkyWater 130nm. Kết quả layout
của mạch tạo số giả ngẫu nhiên PRNG được trình bày
trong Hình 14.

[3]

[4]

Bảng 4. Kết quả layout của mạch PRNG
Thơng số
Cơng nghệ
Kích thước
Tần số chính (clock 1)
Tần số phụ (clock 2)
Số cell
Ước tính cơng suất

Giá trị
SKY130
1103.79µm  1114.51µm
25 MHz
0.37 MHz
25.652 cells
17.7 mW

[5]


[6]

Hình 14. Kết quả layout mạch PRNG trên công nghệ
Skywater 130nm.

ISBN 978-604-80-7468-5

369

Guillermo Cotrina, Alberto Peinado, Andrés Ortiz. “Gaussian
Pseudorandom
Number
Generator
Using
Linear,”
Mathematics, 2021.
Luca Baldanzi, Luca Crocetti, Francesco Falaschi , Matteo
Bertolucci, Jacopo Belli, Luca Fanucci and Sergio Saponara.
“Cryptographically Secure Pseudo-Random Number Generator
IP-Core Based on SHA2 Algorithm,” Department of
Information Engineering University, 27 March 2020.
N. Sklavos, P. Kitsos, K. Papadomanolakis, O. Koufopavlou.
“Random Number Generator,” Electrical and Computer
Engineering Department, January, 2002.
Shabbir Hassan, Prof. Mohammad Ubaidullah Bokhari.
“Design of Pseudo Random Number Generator using Linear
Feedback Shift Register,” International Journal of Engineering
and Advanced Technology (IJEAT), December, 2019.
Tkacik, T.E. “A Hardware Random Number Generator.”
CHES2002, Lecture Notes in Computer Science, vol 2523, 13, 2003.

Wolfram, Stephen. “Cellular Automata and Complexity,”
Westview Press, pp.513-591, 1994.



×