The ability to create true random numbers is an essential requirement for modern cryptographic algorithms. One of the many applications of cryptography is Operating System (OS) security, which naturally creates a need for random numbers within the OS software. Linux has implemented its random number generation by using pseudorandom number generators, which need to be regularly seeded with entropy (randomness) to work properly and securely. Especially in embedded systems, the task of collecting sufficient amounts of entropy can be complicated. This is why Linux developers have created a mechanism for hardware random number generators to fill the kernel’s entropy pool. Xiphera’s Linux driver has been designed for this purpose.
Having a working Linux driver for the TRNG was considered to be of high importance ever since Xiphera started testing the product in the company’s own embedded systems. Especially for commercial purposes, the presence of a driver makes the TRNG much more appealing to customers, as it makes the integration and testing of the IP core easier. After the driver was programmed for internal purposes, it was time to start pushing the driver into the official source tree for the Linux kernel and making Xiphera one of the hundreds of Linux contributors. Having the driver in the source code makes it more accessible and easier to maintain while ensuring customers of the product’s high quality.
The process for introducing a new driver to the Linux kernel can be quite daunting, as the kernel development process is a meticulous one, with strict standards on what the code should look like, and what to include with it. This means that code that has been submitted, reviewed, and accepted into the kernel can be considered of high quality. Part of the operation included getting Xiphera into the kernel documentation’s vendor list, and becoming one of the approximately 400 organisations who contribute to the kernel each year.
With the new positive experience of a succesful Linux kernel submission, Xiphera has the tools and know-how to continue making developments to the Linux kernel in the future. The driver development capabilities that Xiphera has acquired can also be put to use in specific customer projects.
The project on behalf of Xiphera started in the beginning of this year. “The whole process of programming a Linux driver and getting it approved was an exciting new endavour for me”, describes Atte Tommiska, Xiphera’s developer assigned for the process. “Submitting your own work and code for the whole world to see did certainly make me quite nervous, but thankfully there weren’t really any major obstacles or problems after all. I’m pleased to have learned a lot during the process and having my name and code in the Linux kernel source tree is a nice accomplishment.”