2021-16587 – INTERNSHIP (M/F): Implementing a test vectors generator for a hardware cryptographic IP

  • CDI
  • N'importe où
  • Publié il y a 4 semaines

Regular/Temporary : Temporary
Position description :

At ST, we are 46,000 men and women designers and manufacturers of microelectronic technologies. We collaborate with 100,000 customers and thousands of partners. With them, we design and create products, solutions and ecosystems that address their challenges and opportunities and the need to contribute to a more sustainable world. Our advanced technologies enable smarter mobility, more efficient energy and power management, and large-scale deployment of the Internet of Things (IoT) and 5G.
ST is certified Top Employers France 2021. This certification recognizes our commitment to integration and professional insertion, equal opportunities, employability and quality of life at work.

Within an R&D team specializing in embedded systems security, the objective of this internship is to build a unified test vectors generator for a cryptographic hardware IP.
This IP is a smart DMA, which in addition to DMA capabilities is able to perform cryptographic operations (symmetric cryptography, hash computation, asymmetric cryptography…). These operations are executed through dedicated programs loaded in a system memory.
To verify the features of the smart DMA, test vectors are loaded in memory, and contain: specific instructions encoding the cryptographic operations, input data, and expected output data. The verification must ensure that the output data obtained in simulation are identical to the expected ones.
Generating these test vectors is made complex by the wide variety of features that are supported by the IP, so the objective is to automate the generation.
Using an interface to be defined, the generator should let the user (among other features):
Select a cryptographic algorithm
Select mode of operation (for example for AES) or specific instruction to test
Choose relevant sizes (key size, operand size, message length…)
Choose if test vectors should use random data of specific known data
Once the use case is defined, the tool should generate the memory content to be loaded. Expected output data would be generated based on input data provided and using existing libraries or scripts as reference.
The generator should be an abstraction layer between the user and this variety of reference scripts (written in C, Python, Sage…).

4th or 5th year of Master’s Degree in Computer Science
Software skills: high-level (Python, Ruby…) and low-level (C)
Basic knowledge in cryptography is a plus
Abstract thinking and objective outlook
Proactivity, autonomy and teamwork
Good level of written and spoken English (a part of the team is based in Italy)
Fluency in French is preferable

In Rousset, we are more than 2700 employees with 30 different nationalities. Our site offers a wide range of professions, thus offering many prospects for internal development. At the foot of the Sainte Victoire, 20kms from Aix-en-Provence and 40kms from Marseille, the Rousset site combines technological excellence, respect for the environment and quality of life.
Education level required : 5 – Master degree
Language / Level :
English : 3- Advanced
Language / Level :
French : 2- Business fluent


Détails Emploi Informatique & Web