Tutzer, B. (2022). A practical design methodology for hardware security primitives [Diploma Thesis, Technische Universität Wien]. reposiTUm. https://doi.org/10.34726/hss.2022.80080
Rand number generator; TRNG; FPGA; Hardware Security Primitive
en
Abstract:
Computernetzwerke spielen seit den letzten Jahrzehnten eine große Rolle im sozialen Leben, in der Arbeit sowie bei Amtswegen. Unvorstellbare Mengen an privaten und vertraulichen Inhalten werden täglich von solchen Netzwerken übertragen. Diese Inhalte müssen vor unbefugten und vermeintlich böswilligen Zugriffen geschützt werden. Dafür sind Authentifizierung und Verschlüsselung notwendig. Diese werden üblicherweise in Software implementiert, Hardware kann jedoch verwendet werden, um die Funktionen zu beschleunigen und sicherer zu gestalten. Eine aufkommende Methode um Hardware-Security in Cloud-Umgebungen zu implementieren sind Field-Programmable-Gate-Array (FPGAs). Wir verwenden FPGAs zum Veranschaulichen unserer Arbeit. Bei digitalen Schaltungen sind Physical-Unclonabe-Functions für die Authentifizierung, und Zufallsgeneratoren zum Erzeugen von Schlüsseln für Verschlüsselungsalgorithmen, beliebte Technologien für hardwaregestützte Security-Systeme. Die meisten Implementierungen von Physical-Unclonable-Functions und von Zufallszahlengeneratoren reizen Phänomene aus, die von sehr kurzen zeitlichen Effekten stammen. Diese Effekte, wie z.B. Metastabilitäten, verhindern die Bestimmbarkeit des Verhaltens der Systeme. Die meisten Entwicklungswerkzeuge verhindern das Auftreten solcher Effekte deshalb systematisch. Sie müssen durch gezieltes manuelles Platzieren und Routen der Netze provoziert werden. Die Implementierung muss also von einem erfahrenen Entwickler in mühsamer manueller Arbeit durchgeführt werden. Diese Arbeit ist sehr zeitaufwendig und damit mit hohen Kosten verbunden. Iterativ müssen Lösungen ausprobiert und so lange verbessert werden, bis das Zeitverhalten zufriedenstellend ist. Dies verlangt viel Zeit und ein tiefes Verständnis der verwendeten Architektur. Wir präsentieren in dieser Arbeit eine Methode das Zeitverhalten auf eine Weise zubeschränken, die auf Security-Primitive zugeschnitten ist. Dazu entwickeln wir einen Algorithmus, der aktuelle Entwicklungswerkzeuge ansteuert und diesen Prozess somit automatisiert. Wir nennen die Zeitverhalten-Beschränkung DELAY_GROUP. Die Beschränkung notiert Verbindungsnetze welche die gleiche Zeitverzögerung beim Signaltransport aufweisen sollen. Sie kann sowohl direkt in der Hardware-Beschreibung oder während der Synthese in tool command language (TCL) angegeben werden. Unser Algorithmus interagiert dann mit aktuellen Synthese-Werkzeugen über TCL. In einem ersten Schritt werden Logikzellen, die mit Netzen in derselben DELAY_GROUP sind, äquidistant zueinander platziert. Dann werden die entsprechenden Netze so geleitet, dass sie dieselbe Zeitverzögerung aufweisen. Unser Algorithmus ersetzt den manuellen Aufwand der zum Implementieren von Security-Primitiven notwendig ist. Dadurch wird die Zeit, die ein erfahrener Entwickler in die Implementierung investieren muss um 98% reduziert, von zwei Monaten auf unter sechs Stunden. Wir führen Experimente auf einem Xilinx Virtex UltraScale+ VCU118 Entwicklungsboard durch. Unser Algorithmus interagiert hier mit dem vom Hersteller zur Verfügung gestellten Synthesewerkzeug Vivado. Das Entwicklungsboard ist über universal synchronous receiver/transmitter (UART) an einen Host-Computer und über eine differentielle Niederspannungsleitung mit einem Oszilloskop verbunden. Als Beispieldesign verwenden wir den self-timed-ring basierten Zufallszahlengenerator, ein hochperformanter Zufallszahlengenerator, der den AIS 20/31 Richtlinien entspricht. Um zu überprüfen, dass das Zeitverhalten unserer Beschränkung entspricht, analysieren wir das vorhergesagte Zeitverhalten mithilfe von statischer Analysen. In einem zweiten Schritt messen wir das tatsächliche Zeitverhalten mit dem Oszilloskop, um die Funktionalität zu bestätigen. Zuletzt analysieren wir die produzierten Zufallszahlen mit stochastischen Testbatterien. Wir zeigen anhand des Beispiels eines self-timed-ring Zufallszahlengenerators, dass unser Algorithmus die Implementierung eines erfahrenen Entwicklers in weniger Zeit und ohne menschliches Einschreiten erledigen kann. Unser Algo-rithmus hält die relative Zeitverzögerungsdifferenz zwischen allen Netzen unter einer definierten Schranke von 30%. Der so implementierte Zufallszahlengenerator produziert Zufallszahlen, die die FIPS 140-2 rngtest und die NIST 800-22 stochastischen Testbatterien bestehen. Der Algorithmus kann also verwendet werden, um Security-Primitive wie Authentifizierung und Verschlüsselung mit wenig Aufwand in Hardware zu implementieren. Das macht die Implementierung durch Verminderung der benötigten Arbeitszeit kostengünstiger, durch das Entfernen des Menschen in der Implementierungs-Kette zuverlässiger und durch die Automation leichter portierbar. Das erlaubt selbst Projekten mit kleinem Budget den Einsatz solcher Schutzfunktionen in deren Geräten. Wir erwarten, dass unser Algorithmus dazu beiträgt, die Einstiegsschwelle für Schutzfunktionen in digitalen Schaltkreisen zu verringern.
de
In the past decades computer networks started playing major roles in peoples social, professional, and official lives. Massive amounts of private and confidential data is sent through networks on a daily basis. We need to protect that data from unauthorized and potentially malicious access. This requires authentication and encryption. Authentication and encryption are usually implemented in software, but hardware can be used to improve speed and security. An upcoming technology in cloud-environments are field-programmable gate arrays (FPGAs) and we use that architecture to showcase our work. In the context of digital circuitry, physical unclonable functions and random number generators are a promising technology for authentication and key-generation for encryption algorithms respectively. Most implementations of physicalunclonable functions and random number generators leverage timing phenomena in the circuits. The effectiveness of the designs depends on the timing of the circuits. Often, the designs use timing phenomena that provoke metastabilities or that violate setup- and hold-time requirements. We find that common design tools try hard to avoid the phenomena that we want to leverage, as they lead to non-determinable states that are usually undesired. The implementation must therefore be done manually by a skilled engineer. Manual implementation, i.e., placement and routing, with strict timing requirements is a hard and time-consuming task. It requires trial and error and a deep understanding of the underlying architecture. We propose a novel timing constraint tailored to security primitives and a placement and routing algorithm that respects our novel timing constraint. We name the constraint DELAY_GROUP. It annotates nets that need to have equal delay. Our novel timing constraint can be defined directly in the design in hardware description languages or during synthesis in tool command language (TCL). Our algorithm interacts with state-of-the-art synthesis tools via TCL. First, the algorithm places the design in a fashion to keep cells that are connected by nets within the same DELAY_GROUP at equal distance on the FPGA. Second, the algorithm guides the synthesis tool to finding routes between these cells that have equal delay. The algorithm substitutes the manual effort needed during the implementation of security primitives. We thereby reduce the amount of time a skilled engineer needs to spend on the implementation by over 98%, from two months to under six hours. We conduct experiments on the Xilinx Virtex UltraScale+ VCU118 development board. Our algorithm guides the vendor-specific synthesis software Vivado to a suitable implementation using TCL. The development board connects to a hostcomputer using universal synchronous receiver/transmitter (UART) and outputs oscillating signals used in the random number generator design to a high speed oscilloscope using a low-voltage differential signaling link. As a use-case design we choose the self timed ring based true random number generator (TRNG), a high performance random numbergenerator (RNG) design that meets the AIS 20/31 criteria. We first analyze the predicted timing calculated by static timinganalysis. This confirms our algorithm generates implementations that meet our timing constraint. Then, we measure the real timing using the oscilloscope to attest the functionality of the true random number generator. Lastly, we check the final output, the generated random numbers, using stochastic test suites. The experiments show that our algorithm matches the implementation performance of a skilled engineer in less time without manual intervention of an engineer on the example of a self timed ring true random number generator. Our algorithm manages to keep the relative delay difference within all individual delay groups under 30%. The implemented true random number generators pass the FIPS 140-2 rngtest and the NIST 800-22 stochastic test suites. We conclude that our algorithm is suitable to implement security primitives with much less effort compared to the state-of-the-art synthesis flow. This makes the implementation cheaper by cutting down on design costs, more reliable by removing the human from the design loop, and more easily portable as our algorithm reduces the effort of moving to a different hardware target. This enables low-budget projects to deploy reliable security measures within their devices. We predict our work to make basic security primitives more accessible to engineers.
en
Additional information:
Abweichender Titel nach Übersetzung der Verfasserin/des Verfassers