Smart cards, among other secure solutions, are widely used in financial, telecommunication, computer security, identification and many other businesses and industries. Can you imagine how important and difficult it is to assure that software running on a smart card is secure and won't let any of the data get corrupted or stolen? Thousands of hackers try to come up with new attacks, including side-channel attack and fault-injection attacks and techniques every day. In this project you have the opportunity to challenge them and create tamper resistant software, anticipate new security attacks before they become known in public and find appropriate countermeasures for them. In this project you are going to:
create software for various secure hardware solutions, including 16-bit and 32-bit processor architectures and dedicated secure crypto coprocessors
cooperate with experts in cryptography from all over Europe to create specification, design and implement state-of-the-are cryptographic algorithms and security measures, including side-channel attacks and fault-injection attacks countermeasures
work on fixing the issues raised by internal and external vulnerability assessment teams, including certified labs
create and test secure software optimizations of memory footprint and execution performance
invent new malicious attacks and figure out how to prevent them
drive innovation in the area of secure embedded systems development
If you are proficient with C, are familiar with ARM architectures, have knowledge of or are willing to learn cryptography and are not scared to delve deep into assembly language this is a perfect opportunity for you. Come and join us.
More detailed requirements to be found below.
Wymagania
If your strengths are:- Minimum 2 years of experience in programming of embedded systems
- Advanced programming skills in C
- Knowledge of ARM architectures
- Experience in designing low-level software (e.g. drivers, OS-less firmware)
- Experience with implementation of advanced cryptographic algorithms and secure software architecture design
- At least basic programming skills in assembly language
- Knowledge of software development tools (compiler, linker, simulator, version control, bug tracking systems)
- Good knowledge of English (spoken and written)
In additionbut not obligatory:
- FPGA know-how
- Software verification & validation know-how
- Knowledge of smart card technologies
- Hardware measurements, e.g. oscilloscopes, logic state analysers
- Understanding of security attacks (e.g. side channels, fault-injections)
- Knowledge about symmetric and asymmetric cryptography
- Understanding of the physical aspects of semiconductors
- Programming skills in scripting languages, e.g. Perl, Python
- Experience in secure embedded systems, e.g. banking systems, payment systems
- Knowledge of German language