Power analysis on ATmega328P breadboard: works on Arduino UNO but not on standalone chip

Hi everyone,

As part of a school project, I am trying to reproduce a simple power analysis setup on an ATmega328P (following these labs: GitHub - lord-feistel/power_analysis · GitHub and GitHub - lord-feistel/hardware_hacking_lab · GitHub where they specify ISP

I was able to get working results when following the lab on an Arduino UNO with a simple blink circuit, but I’m struggling to reproduce the same behavior on a standalone ATmega328P. The hardware setup in the lab is not entirely clear, which makes it harder to debug.

My goal is to observe power consumption variations in order to later perform a simple side-channel attack on RSA (distinguishing square vs multiply operations). For now, I am only validating the measurement setup.

I first used a Joy-IT Arduino UNO R3 (ATmega328P) with:

-External 5 V power supply
-1 Ω shunt resistor in series with ground of arduino
-Oscilloscope: RIGOL DS1042C
-Measuring voltage across the shunt resistor

With this setup, even using a simple blink program, I can observe clear voltage variations across the shunt.

I then rebuilt a minimal setup with a standalone ATmega328P on a breadboard:

-ISP programming works
-External 16 MHz crystal
-Blink program runs correctly

However, when I insert the same 1 Ω shunt resistor on the 5 V line feeding the ATmega, I no longer observe clear variations on the oscilloscope. The signal appears mostly flat or much weaker compared to the Arduino UNO.

What confuses me is that:

-The measurements are clear with Arduino UNO
-My measurement method seems valid
-The same blink code runs correctly

But the power trace is very different on the standalone chip.

I am trying to understand what could explain this difference. Possible causes I am considering:

-Decoupling capacitors smoothing out current variations too much
-Measuring at the wrong point (VCC vs GND side)
-Differences in the power distribution network between the UNO and the bare chip
-The Arduino board introducing additional activity that makes variations easier to observe
-A 1 Ω shunt being too small in this configuration
-An amplifier might be necessary

Since I could already see variations on the Arduino UNO with just a blink program, I expected at least some comparable signal on the standalone ATmega328P. That’s why I suspect a hardware or measurement issue rather than a software issue.

Any advice on what to check or modify before moving on to RSA would be greatly appreciated. Check out the first link, it's very cool how they managed their power analysis.

Thanks a lot.

Very few will help you with trying to break security. Your post is mostly incoherent. Set up a simple circuit that demonstrates what you want, post all code in code tags, hand-draw the wiring, and post a photo of the drawing.

So why did you move the shunt resistor?

When you brought this up before, there was a lot of doubt whether you'd be able to get any meaningful results...

Is your set up like this (Fig-1)?


Figure-1: