Binary Division When Your Processor Lacks Hardware Division

[Hamster] wanted to take a look at division operations when the chip you’re using doesn’t have a divide instruction. He makes the point that the divide instruction takes a lot of space on the die, and that’s why it’s sometimes excluded from a chip’s instruction set. For instance, he tells us the ARM processor used on the Raspberry Pi doesn’t have a divide instruction.

Without hardware division you’re left to implement a binary division algorithm. Eventually [Hamster] plans to do this in an FPGA, but started researching the project by comparing division algorithms in C on an AMD processor.

His test uses all 16-bit possibilities for dividend and divisor. He was shocked to find that binary division doesn’t take much longer than using the hardware instruction for the same tests. A bit of poking around in his code and he manages to beat the AMD hardware divide instruciton by 175%. When testing with an Intel chip the hardware beats his code by about 62%.

He’s got some theories on why he’s seeing these performance differences which we’ll let you check out on your own.

HDCP Falls To FPGA-based Man-in-the-middle Attack

fpga-hdcp-maninthemiddle-attack

It’s been a little while since we talked about HDCP around here, but recent developments in the area of digital content protection are proving very interesting.

You might remember that the Master Key for HDCP encryption was leaked last year, just a short while after Intel said that the protection had been cracked. While Intel admitted that HDCP had been broken, they shrugged off any suggestions that the information could be used to intercept HDCP data streams since they claimed a purpose-built processor would be required to do so. Citing that the process of creating such a component would be extremely cost-prohibitive, Intel hoped to quash interest in the subject, but things didn’t work out quite how they planned.

It seems that researchers in Germany have devised a way to build such a processor on an extremely reasonable budget. To achieve HDCP decryption on the fly, the researchers used a standard off the shelf Digilent Atlys Spartan-6 FPGA development board, which comes complete with HDMI input/output ports for easy access to the video stream in question. While not as cheap as this HDCP workaround we covered a few years ago, their solution should prove to be far more flexible than hard wiring an HDMI cable to your television’s mainboard.

The team claims that while their man-in-the-middle attack is effective and undetectable, it will be of little practical use to pirates. While we are aware that HDMI data streams generate a ton of data, this sort of talking in absolutes makes us laugh, as it often seems to backfire in the long run.

[via Tom’s Hardware]

Intel’s New Way Of Creating Randomness From Digital Orderliness

Random number generation is a frequent topic of discussion in projects that involve encryption and security. Intel has just announced a new feature coming to many of their processors that affect random number generation.

The random number generator, which they call Bull Mountain, marks a departure from Intel’s traditional method of generating random number seeds from analog hardware. Bull Mountain relies on all-digital hardware, pitting two inverters against each other and letting thermal noise tip the hand in one direction or the other. The system is monitored at several steps along the way, tuning the hardware to ensure that the random digits are not falling more frequently in one direction or the other. Pairs of 256-bit sequences are then run through a mathematical process to further offset the chance of predictability, before they are then used as a pseudorandom number seed. Why go though all of this? Transitioning to an all-digital process makes it easier and cheaper to reduce the size of microchips.

A new instruction has been added to access this hardware module: RdRand. If it works as promised, this should remove the need for elaborate external hardware as a random number source.

[via Reddit]

Intel: High-bandwidth Digital Content Protection Cracked

Intel says that HDCP has been cracked, but they also say that it’s unlikely this information will be used to unlock the copying of anything. Their reasoning for the second statement is that for someone to make this work they would need to produce a computer chip, not something that is worth the effort.

We question that logic. Not so much for Blu-Ray, which is the commonly associated media format that uses HDCP, but for HD digital cable programming. There are folks out there who would like to have the option of recording their HD television shows without renting a DVR from the cable company. CableCard tuners have been mostly absent from the market, making this type of recording difficult or impossible. Now that there’s a proven way to get the encryption key for HDCP how hard would it really be to create a man-in-the-middle device that uses that key to authenticate, decrypt, and funnel the audio and video to another encoder card? We know next-to-nothing about the protocol but why couldn’t any powerful processor, like an ARM, or even an FPGA (both rather inexpensive and readily available) be programmed for this task?

Leave a comment to let us know what you think about HDCP, and what the availability of the master-key really means.

[Thanks Dave]

Dexterous Hexapod Rocks An Atom Processor

[youtube=http://www.youtube.com/watch?v=O3ovrT8pWww]

[Matt Bunting’s] hexapod caught Intel’s eye (and their wallet). This coordinated little bot runs Ubuntu on an Atom Z530 processor, popular in netbooks like the Dell Mini 10, and uses a webcam to coordinate and monitor its motion. Intel picked up two of them from [Matt] to exhibit at trade shows. As you can see, the 18 servos provide some gorgeous motion to the beast. It’s no DJ Roomba but it approaches the zen-like perfection that is the A-Pod.

[Thanks Miked]

Intel 8008 Clock

Every year [Len Bales] designs and builds a new clock. His 2006 clock runs on the classic Intel 8008 microprocessor. The design is definitely not for the faint of heart, but he includes all code, diagrams and a good description on his site. The project is an interesting look into the not-so-distant past of computing. While the function of the project is a clock, it is actually a fully programmable 8008 computer running at 500khz with 16k of memory space and 4io ports. [Len] also links a lot of useful 8008 resources for anyone wanting to tackle a project of their own.

UHF Power Harvesting

hdpowerharvesting

[Alanson Sample] and [Joshua R. Smith] have been experimenting with wireless power transfer for their sensing platform. Their microcontroller of choice is the MSP430, which we used on our e-paper clock. They chose it specifically for its ability to work with low voltages and they discus its specific behavior at different voltages. The first portion of their paper uses a UHF RFID reader to transmit to the sensor’s four stage charge pump. They added a supercap to provide enough power for 24 hours of logging while the node isn’t near a reader. For the second half of the paper, they use a UHF antenna designed for digital TV with the same circuit and pointed it at a television tower ~4.1km away. It had an open circuit voltage of 5.0V and 0.7V across an 8KOhm load, which works out to be 60uW of power. They connected this to the AAA battery terminals of the thermometer/hygrometer pictured above. It worked without issue. The thermometer’s draw on a lab power supply was 25uA at 1.5V.

It’s an interesting approach to powering devices. Do you have an application that needs something like this? For more on wireless power, checkout this earlier post on scratch building RFID tags.

[via DVICE]