Test suite for cryptographic primitives

Paris, France Internship (6 month)

This job posting is not available anymore

About Quarkslab

Quarkslab is a French company specializing in information security R&D, consulting and software development. Our expertise is in combining offensive and defensive security to help organizations adopt a new security posture: Force the attackers, not the defender, to adapt constantly. Through our consulting services as well as our software we provide tailored solutions to organizations, helping them to protect their assets, sensitive data, and users against increasingly sophisticated attacks.

Quarkslab is an avid and active user of, and contributor to, Open Source Software and develops and maintains state-of-the-art security tools such as LIEF , QBDITritonIrma, and several other projects.

We develop two commercial software products: QFlow, a platform to automate and orchestrate security analysis of files at scale, and QShield, advanced code and data protection software to disrupt code lifting, reverse engineering and tampering attacks.

Job description

Description
The aim is to implement a test suite for cryptographic primitives:

  • using "official" test vectors to ensure the correctness,
  • verifying the randomness,
  • performing some "fuzzing"-like resilience test.


This test suite would be very useful to automate some steps of our audits, in case of home-made cryptography for example, or to test some libraries. The first step would be to implement the tests for the most common primitives, then move on to post-quantum solutions, and "exotic" primitives.

On top of the test suite implementation, the candidate will write-up an internal guide on post-quantum standardization (and lightweight crypto, if there is time). In parallel, the candidate will work on an R&D project that is suited to their profile.

Assignment
Click here to download the assignment resources.
The assignment contains a C reference implementation of the AES with some mistakes. The goal is to perform a small review of the implementation and list different misbehaviour compared to the original design. The focus of the candidate should be on the report more than on the technical solutions, as we are more interested in reviewing the thought process than the current technical skills.

Relevant links

  1. Cryptographic Algorithm Validation Program - NIST
  2. Automated Testing of Crypto Software Using Differential Fuzzing - Aumasson, Romailler
  3. ANSSI views on the Post-Quantum Cryptography transition


Location
Paris

Duration
6 months

How to Apply?
To apply for an internship position, you must be a student, able to communicate effectively technical matters in written and spoken English, and willing to present the results of your internship to a large group of curious Quarkslab colleagues.

To apply prepare the following elements:

  • a resume;
  • a cover letter: avoid the generic letter saying that you are so motivated and that we are so interesting. We welcome a more personal letter which explains why the topic is of particular interest to you, why you, and why us;
  • your proposed solution to the assignment attached to the offer you are interested in;
  • your preference between pain au chocolat or chocolatine.


Package these elements and send them via email to internship-AT-quarkslab-DOT-com, with the subject field containing the internship name mentioned in the respective offer. Alternatively, you can apply here with all the above attached.
Do not forget that the key aspect of a good application is to show what you have already achieved, related to the topic or not. So do not be shy and apply! We know that you can do it.

Selection Process
Each internship offer comes with a little assignment that should not require too much time to be completed. The result will show us not only the type of skills and knowledge you already possess, but also how ingenious you are and how well you can present your reasoning. It will serve as the basis for the interview you will have in the selection process. The assignment works both ways and is also intended to make sure that you like the topic as well as the technical aspects of the internship. If unsure about a specific aspect of a challenge, do not hesitate to drop us an email. We want to discuss not frustrate you!

The first applications usually reach us by November, and we start reviewing them right away. Every year, the filling is alike: half of the internships are filled by Christmas, while the others remain open until March.

Being an Intern at Quarkslab
We consider internships as opportunities to spot profiles that match how we work. They are intended to guide students to enter the professional world as potential future colleagues if they feel like it. We love interns because they bring fresh air to the company and because we see them grow, not only during the internship but also after, when they are hired and can get to work on so many other topics. There are two goals in every internship we offer:

  1. Exploring a topic we don't necessarily know very well, hence training the new expert on the topic.
  2. Hiring you after the internship to keep and share your new expertise with colleagues.


Training and growing people in the security industry is part of the company's DNA. That is why we provide in-depth blogposts, tools, trainings, weekly internal conferences (called fridaycon, guess when they are), we teach in universities and schools, write articles in tech magazines and send our less experienced hires to a 6-month intensive training program (BADGE-RE or BADGE-SO). Sharing is caring, but sharing is also learning. We provide the environment for that the rest relies on you.

Intern package in France:

  • Salary: 1800€ gross per month (approximately 1550€ net).
  • "Tickets restaurant" (restaurant coupons).
  • In-depth and challenging topics.

Profile

Required Skills

  • knowledge of basic cryptography (e.g. asymmetric and symmetric crypto, and examples of such primitives)
  • somewhat proficient in at least one programming language (C, C++, Rust, Python...)
  • preferably capable of understanding academic articles and/or technical blogposts
  • good communication skills
Details about the job
Paris, France
Internship (6 month)
IT
Powered byTaleez