The ware for April 2019 is shown below:
May came up on me quick this year! Happy labour day to most of the world.
The ware for April 2019 is shown below:
May came up on me quick this year! Happy labour day to most of the world.
The ware for March 2019 is the photoflash unit from a Canon IXY10S camera. I’ll go with Roger Gammans as the winner, for being the first to correctly note the manufacturer. Congrats, email me for your prize! I do find it interesting that different manufacturers can have recognizable styles; every designer leaves a thumbprint in the subtle choices that must be made to navigate a huge decision tree of trade-offs.
Also, I love that the IGBT in that device is rated for 150 amps. :) Of course, the rating is just for a very short pulse, but still, it’s in a TSSOP-8 package!
Good sources of entropy (noise) are an essential part of modern cryptographic systems. I designed a mobile-friendly avalanche noise generator as part of the background work I’ve been doing for the betrusted project (more on that project later). I had to do a new design because the existing open-source ones I could find were too large and power hungry to integrate into a mobile device. I also found it hard to find solid theory pieces on avalanche noise generators, so in the process of researching this I wrote up all my notes in case someone needs to do a ground-up redesign of the system again in the future.
Here’s an excerpt from the notes:
Avalanche breakdown is essentially a miniature particle accelerator, where electrons that enter a PN junction’s depletion region (through mechanisms that include thermal noise) are accelerated across an electrical field, to the point where new electron-hole pairs are generated when these high-energy electrons collide with atoms in the depletion region, creating an amplification cascade with low reproducibility.
An approximate analogy is an inflatable pool filled with water. The height of the pool is the potential barrier of the reverse-biased PN junction. A hose feeding water into the pool represents a constant current of electrons. The volume of the pool can be thought of as the depletion capacitance, that is, the capacitor created by the region of the junction that is void of carriers due to natural drift and diffusion effects. As water trickles into the pool, the water level rises and eventually forms a meniscus. Random disturbances, such as ripples on the surface due to wind, eventually cause the meniscus to crest over the edge of the pool. The water flowing over the edge pushes down on the inflatable pool’s side, causing more water to flow, until the level has reduced to a point where the inflatable pool’s side can snap back into its original shape, thus restarting the cycle of filling, cresting, and breakdown. The unpredictability of when and where the breakdown might happen, and how much water flows out during the event, is analogous to the entropy generated by the avalanche effect in a PN junction.
The electrical characteristic of avalanche noise biased by a constant current source is a “sawtooth” waveform: a linear ramp up in voltage as the capacitance of the depletion region charges to the point where the electric field becomes large enough to initiate the cascade, and then a sharp drop off in voltage as the cascade rapidly discharges the junction capacitance. The cascade then abruptly halts once the field is no longer strong enough to sustain the cascade effect, leading to a subsequent cycle of charging and breakdown.
The site also includes detailed schematics and measurement results, such as this one.
The final optimized design takes <1cm^2 area and draws 520uA at 3.3V when active and 12uA in standby (mostly 1.8V LDO leakage for the output stage, included in the measurement but normally provided by the system), and it passes preliminary functional tests from 2.8-4.4V and 0-80C. The output levels target a 0-1V swing, meant to be sampled using an on-chip ADC from a companion MCU, but one could add a comparator and turn it into a digital-compatible bitstream I suppose. I opted to use an actual diode instead of a NPN B-E junction, because the noise quality is empirically better and anecdotes on the Internet claim the NPN B-E junctions fail over time when operated as noise sources. I’ll probably go through another iteration of tweaking before final integration, but afaik this is the smallest, lowest power open-source avalanche noise generator to date (slightly smaller than this one).
The Ware for February 2019 is the old circuit breaker on my flat. It’s a classic, perhaps from the 70’s or earlier; the outer case is so weather-beaten, none of the markings are legible except for the rated capacity (40A). The breaker had been getting progressively more fussy, tripping at random times of the day, so it was time for it to go and get replaced with a new one. It’s definitely annoying to have your power go out at random intervals once every couple weeks. Since it was going into the bin, I figured I’d take it apart and see what I could learn from it. Gratz to phantom deadline for guessing it very quickly (again), email me if you’d like to collect another prize!