Git Product home page Git Product logo

archie-aes-example's Introduction

ARCHIE AES Example

[[TOC]]

This is an AES example for ARCHIE. The original binary of the paper currently can not be published. Therefore i developed this replica. Functionally it behaves the same as the original binary. However the compiled output differs in how the AES was compiled. But functionally they behave the same.

Binary

A already compiled binary can be found in the binary folder. You can also compile the binary for yourself using the CMake build system. If you do most certannly locations will change. Furthermore some parts could be assembled differently compared to this binary, therefore please analyse your lst file to find out the key locations.

ARCHIE

Archie can be found under https://github.com/Fraunhofer-AISEC/archie . The fault configuration can be found in fault.json The QEMU configuration used can be found in qemuconf.json. If you have archie in another folder, please change the paths inside the qemu configuration or move the fault configuration and the binary to archie.

Run Experiment

To run the archie simulation, you can use

python3 archie/controller.py --fault fault.json --qemu qemuconf.json -w ${nproc --all} aes-experiment.hdf5

archie-aes-example's People

Contributors

tibersam avatar

Watchers

 avatar

Forkers

ddddavidee

archie-aes-example's Issues

Issues to run the example code

I`m trying to get started with archie to create my own fault injections. I followed every step from archie repo and the aes-example.
When i try to run the example code my terminal freezes at the specific step, see below:

python3 archie/controller.py --fault fault.json --qemu qemuconf.json -w 8 aes-experiment.hdf5 Found JSON5 library
{'qemu': 'archie/qemu/build/debug/arm-softmmu/qemu-system-arm', 'kernel': 'binary/example-aes.bin', 'plugin': 'archie/faultplugin/libfaultplugin.so', 'machine': 'stm32f0discovery'}
2023-10-17 11:33:47,273 - __main__ - INFO : Controller start
2023-10-17 11:33:47,295 - goldenrun - INFO : pre_goldenrun started...

How can I fix this? Are there some steps i forgot to run before?

Hopefully someone can help me there :)

Example code - injecting fault into values loaded from sbox doesn't change output

I'm running your example code and specifically looking at the first fault model:

{	
		"comment1" : "Sbox data fault in register r1", 
		"fault_address"		: [1],
		"fault_type"		: "register",
		"fault_model"		: "set1",
		"fault_livespan"	: [0],
		"fault_mask"		: [1, 256, 1],
		"comment2" : "Fault injected after values loaded from sbox 0x8001024, rounds 8 - 10",
		"trigger_address"	: [134218018],
		"trigger_counter"	: [128, 160, 1]
}

Looking at the output file: aes-experiment-temp.hdf5 none of the memdumps at address 0x20000000 are different to the golden run.
If we're injecting a fault into the sbox how is this correct?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.