Archive for the ‘Hacking’ Category

Name that Ware May 2019

Thursday, May 30th, 2019

The Ware for May 2019 is shown below.

It’s always tough to calibrate how much of a chip to show to make it identifiable, but not too easy to guess at the same time. Let’s see how this one goes…

Winner, Name that Ware April 2019

Thursday, May 30th, 2019

The Ware for April 2019 is a roto-molding machine. I’ve seen these machines in various sizes, but this is by far the biggest one I’ve seen to date. It’s used to mold furniture-sized objects. One thing that you don’t get from just watching an animated GIF is feeling the sheer amount of heat coming from the machine. The whole assembly is shoved into a gas furnace and heated so that the plastic is molten, and then taken out to cool over a period of 30-45 minutes, so it can get quite hot around the molds as they cool. Adi guessed this one right away, congrats and email me for your prize!

Name that Ware, April 2019

Wednesday, May 1st, 2019

The ware for April 2019 is shown below:

May came up on me quick this year! Happy labour day to most of the world.

Winner, Name that Ware March 2019

Wednesday, May 1st, 2019

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!

Avalanche Noise Generator Notes

Friday, April 19th, 2019

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).