Small power source for one century

Assuming somebody is there to see what's in the box when it opens, why not put in a hand crank? They can use it to open the box manually.

The curiosity of passers-by will make sure the crank is turned once in a while. You can use that energy to charge a capacitor to run the Arduino for a while until the next person turns it.

The principle is basically the same as those water pumps that are connected to a children's playground. The infinite energy of children makes sure that no adult ever has to pump water manually.