Hi Alex,
Thank you very much for the information!
Best regards,
Tom
Hi Alex,
Thank you very much for the information!
Best regards,
Tom
Hi Tom,
I’ve just added a section to the DPA attack tutorial about eliminating the ghost peaks. Let me know if it allows you to complete the tutorial.
Alex
Hi Alex,
Thanks! Will do.
Best regards,
Tom
Hi Alex,
I just tried it and it fails in the same way - it misses a couple of bytes. I know previously the code updated automatically for us. How can I make sure I am running the latest? The modified date says 5 hours.
Thanks and regards,
Tom
Hi Tom,
The latest version of the tutorial has a section entitled " The Ghost Peak Problem". As for getting the latest version, it usually involves running a git pull
inside of chipwhisperer/
.
If you have this section and are still unable to break the last few bytes, do you think you can recapture inside of a ChipWhisperer project (similar to something like CPA_1
) and send it over to me?
Thanks,
Alex
Thanks Alex. There is no “The Ghost Peak Problem” section. I tried using git in CW, but I don’t know how to do that. Do you have any instructions on how to do this?
Thanks and regards,
Tom
Hi Tom,
What method did you use to install ChipWisperer and what OS are you using?
Alex
Hi Alex,
Could you send a link to git commit?
Thx
Hi Alex,
I used VirtualBox on Windows.
Thanks and regards,
Tom
Tom,
I found “the ghost peak problem” on github, here:
Hi Tom,
To update ChipWhisperer on VirutalBox, you’ll need to first login to the virtual machine (should be vagrant
for both username and password). Once you’re logged in, input the following commands:
cd work/projects/chipwhisperer
git pull
If the git pull doesn’t work, you may need to run:
cd jupyter
git stash
cd ..
git pull
which will stash any changes you made to the notebook (including running through them).
Alex
Thanks 31415 and Alex. I successfully executed the git commands. I also ran the second set of commands and it said that it was up to date. However, now when I try to open any script, I get the following error, “Unreadable Notebook: /home/vagrant/work/projects/chipwhisperer/jupyter/PA_DPA_3-AES_DPA_Attack.ipynb NotJSONError(“Notebook does not appear to be JSON: ‘’…”,)”.
I would try and use the file 31415 linked to, but it seems that something is wrong with my setup now.
I don’t know how to resolve this. Any help is appreciated.
Thanks,
Tom
Hello,
Could we please get some help with this? We have a deadline where we need the DPA attack working on our part soon
Thanks and regards,
Tom
Hi Tom,
It’s a mystery to me why you can’t run the notebook, it works for me. My best guess is that you somehow have got an HTML-ized version of the notebook, as here: https://github.com/jupyter/help/issues/67
Can you try simply saving this file from your browser:
https://raw.githubusercontent.com/newaetech/chipwhisperer-jupyter/master/PA_DPA_3-AES_DPA_Attack.ipynb
Then move it into your VM.
Jean-Pierre
Hi Jean-Pierre,
Thanks for the reply. I was able to execute the script by using the method you described above. However, it still does not get the correct key, only 7 bytes are correct. This seems to not work as well as the previous script.
Are there any modifications we can make?
And, I do see ‘The Ghost Peak Problem’ section.
Thanks and regards,
Tom
I don’t have time to play with the attack now, but it looks like it requires you to adjust some parameters based on your results, i.e.:
If subkey 4 broke for you here, replace it with one that didn’t.
Have you done this?
Hi Tom,
Sorry about the delay in between replies. Just to confirm, are you running the code blocks in the ghost peak section? The script outside of that section is the same, but the additional blocks should eliminate the ghost peaks. If the script still isn’t working in this section, what do you get when you use a non-breaking subkey for the following plot in the notebook (should be the second code block):
%matplotlib notebook
import matplotlib.pylab as plt
subkey = 8
plt.plot(correct_guess_plots[subkey], 'r')
plt.plot(best_guess_plots[subkey], 'g')
In addition, did you make sure to change the offset in the final block to correspond to offset from the previous code block in that section? I can follow up with screenshots if what I said isn’t clear.
Alex
Thanks guys. Yes, I ran the ghost peak section, and it failed too.
Alex, sorry, but I’m not sure what you mean about using a non-breaking subkey. And, I did not change any offset, I wasn’t aware that I was supposed to. The only thing I changed was the platform.
Thanks again,
Tom
Hi Guys,
I set an offset based on the graph generated and it still did not work. The offset is 250, not one byte was correct and it stopped in the middle with an error.
Also, the graph generated did not have all of the peaks with the same difference. The first three did, so that’s what I used.
I will try and attach the screenshot of the graph.
Any help is appreciated.
Thanks,
Tom
Hi Tom,
The offset should be consistent throughout, but you might be seeing the ghost peaks here. Judging by how long the offset is, I’m guessing you’re using TINYAES128C. All the ghost peak stuff was written for the AVRCRYPTOLIB AES implementation, so I’d recommend starting with that rather. In the meantime, I’ll work on seeing how the attack changes with the TINYAES128C library.
Alex