At Cadence, we hire and develop leaders and innovators who want to make an impact on the world of technology. Ce stage est centré sur le développement de logiciels cryptographiques embarqués, avec un fort accent sur la cryptographie post-quantique (Post-Quantum Cryptography – PQC). L’objectif du stage est d’évaluer et d’améliorer la qualité des algorithmes en analysant les indicateurs de Puissance, Performance et Surface (PPA), tels que l’empreinte mémoire et l’efficacité d’exécution. Le rôle contribue directement à la sélection et à l’optimisation de solutions cryptographiques adaptées à des environnements embarqués contraints.
Missions principales
Concevoir et mettre en œuvre un cadre de mesure permettant d’évaluer les algorithmes cryptographiques en termes d’utilisation de la mémoire Flash, de consommation RAM/stack et d’allocation mémoire statique. Mesurer et analyser les performances, notamment le nombre de cycles CPU, la latence et le débit, sur différentes configurations. Mener des campagnes de benchmark selon plusieurs niveaux d’optimisation du compilateur (O0, O2, Os), différentes versions de compilateurs et divers jeux de paramètres des algorithmes. Évaluer les implémentations en temps constant et les options de renforcement contre les attaques par canaux auxiliaires lorsque cela est pertinent. Produire des tableaux de bord PPA, des tableaux comparatifs et des recommandations techniques synthétiques (par exemple : « meilleure empreinte mémoire », « meilleures performances », « option équilibrée »). Améliorer la qualité logicielle par le développement de tests unitaires et la validation des implémentations à l’aide de vecteurs de test officiels. Réaliser des campagnes de fuzzing et de tests négatifs lorsque cela est possible afin d’évaluer la robustesse. Documenter les résultats via des notes développeur, des guides d’intégration et un rapport technique final comprenant des graphiques clairs et des conclusions structurées. Préparer et présenter une restitution finale synthétisant les résultats, les compromis techniques et les recommandations.
Profil recherché
Diplôme d’ingénieur en systèmes embarqués, génie logiciel ou domaine équivalent. Compétences en développement logiciel dans des environnements embarqués. Connaissances en architecture CPU et en optimisation bas niveau des performances. Expérience de travail sous environnement Linux. Maîtrise de Git et des outils de gestion de versions. Bonne compréhension des contraintes mémoire et de l’optimisation des performances dans les systèmes embarqués.
Cadence s’engage en faveur de l’égalité des chances et de l’équité en matière d’emploi à tous les niveaux de l’organisation. Nous nous efforçons d’attirer des candidats qualifiés et issus de la diversité, et encourageons la diversité et l’inclusion au sein du milieu de travail.
*** English version below
Job Overview This internship focuses on embedded cryptography software with a strong emphasis on Post-Quantum Cryptography (PQC). The internship aims to evaluate and improve algorithm quality by analyzing Power, Performance, and Area (PPA) metrics such as memory footprint and execution efficiency. The role contributes directly to selecting and optimizing cryptographic solutions suitable for constrained embedded environments. Job Responsibilities
Design and implement a measurement framework to evaluate cryptographic algorithms in terms of Flash usage, RAM/stack consumption, and static memory allocation. Measure and analyze performance metrics including CPU cycles, latency, and throughput across multiple configurations. Execute benchmark campaigns across various compiler optimization levels (O0, O2, Os), compiler versions, and algorithm parameter sets. Evaluate constant-time implementations and side-channel hardening options when applicable. Produce PPA dashboards, comparison tables, and concise technical recommendations (e.g., “best footprint,” “best performance,” “balanced option”). Improve software quality by developing unit tests and validating implementations against official test vectors. Perform fuzzing and negative testing when feasible to assess robustness. Document results through developer notes, integration guides, and a final technical report with clear graphs and conclusions. Prepare and deliver a final presentation summarizing findings, trade-offs, and recommendations.
Job Qualifications
Engineering degree in embedded systems, software engineering, computer science, or a related field Strong software development skills in embedded environments. Knowledge of CPU architecture and low-level performance considerations. Experience working in Linux environments. Proficiency with Git and version control workflows. Understanding of memory constraints and performance optimization in embedded systems.
Cadence is committed to equal employment opportunity and employment equity throughout all levels of the organization. We strive to attract a qualified and diverse candidate pool and encourage diversity and inclusion in the workplace. We’re doing work that matters. Help us solve what others can’t.