<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Light Blue Touchpaper &#187; Programmable logic</title>
	<atom:link href="http://www.lightbluetouchpaper.org/category/programmable-logic/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.lightbluetouchpaper.org</link>
	<description>Security Research, Computer Laboratory, University of Cambridge</description>
	<lastBuildDate>Mon, 30 Jan 2012 10:06:12 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Notes on FPGA DRM (part 1)</title>
		<link>http://www.lightbluetouchpaper.org/2007/09/24/notes-on-fpga-drm-part-1/</link>
		<comments>http://www.lightbluetouchpaper.org/2007/09/24/notes-on-fpga-drm-part-1/#comments</comments>
		<pubDate>Mon, 24 Sep 2007 21:47:46 +0000</pubDate>
		<dc:creator>Saar Drimer</dc:creator>
				<category><![CDATA[Programmable logic]]></category>

		<guid isPermaLink="false">http://www.lightbluetouchpaper.org/2007/09/24/notes-on-fpga-drm-part-1/</guid>
		<description><![CDATA[	
	<span class="Z3988" title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Adc&amp;rfr_id=info%3Asid%2Focoins.info%3Agenerator&amp;rft.title=Notes+on+FPGA+DRM+%28part+1%29&amp;rft.aulast=Drimer&amp;rft.aufirst=Saar&amp;rft.subject=Programmable+logic&amp;rft.source=Light+Blue+Touchpaper&amp;rft.date=2007-09-24&amp;rft.type=blogPost&amp;rft.format=text&amp;rft.identifier=http://www.lightbluetouchpaper.org/2007/09/24/notes-on-fpga-drm-part-1/&amp;rft.language=English"></span>
For a while I have been looking very closely at how FPGA cores are distributed (the common term is &#8220;IP cores&#8221;, or just &#8220;IP&#8221;, but I try to minimize the use of this over-used catch-all catch phrase). In what I hope to be a series of posts, I will mostly discuss The problem (rather than [...]]]></description>
			<content:encoded><![CDATA[	
	<span class="Z3988" title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Adc&amp;rfr_id=info%3Asid%2Focoins.info%3Agenerator&amp;rft.title=Notes+on+FPGA+DRM+%28part+1%29&amp;rft.aulast=Drimer&amp;rft.aufirst=Saar&amp;rft.subject=Programmable+logic&amp;rft.source=Light+Blue+Touchpaper&amp;rft.date=2007-09-24&amp;rft.type=blogPost&amp;rft.format=text&amp;rft.identifier=http://www.lightbluetouchpaper.org/2007/09/24/notes-on-fpga-drm-part-1/&amp;rft.language=English"></span>
<p>For a while I have been looking very closely at how FPGA cores are distributed (the common term is &#8220;IP cores&#8221;, or just &#8220;IP&#8221;, but I try to minimize the use of this over-used catch-all catch phrase). In what I hope to be a series of posts, I will mostly discuss The problem (rather than solutions), as I think that that needs to be addressed and adequately defined first. I&#8217;ll start with my attempt at a concise definitions of the following:</p>
<p><a href="http://en.wikipedia.org/wiki/Field-programmable_gate_array">FPGA</a>: Field Programmable Gate Arrays are generic semiconductor devices comprising of interconnected functional blocks that can be programmed, and reprogrammed, to perform user-described logic functions.</p>
<p><a href="http://en.wikipedia.org/wiki/Semiconductor_intellectual_property_core">Cores</a>: ready-made functional descriptions that allow system developers to save on design cost and time by purchasing them from third parties and integrating them into their own design.</p>
<p>The &#8220;cores distribution problem&#8221; is easy to define, but challenging to solve: how can a digital design be distributed by its designer such that he can a) enable his customer to evaluate, simulate, and integrate it into its own, b) limit the amount of instances that can be made of it, and c) make it run only on specific devices. If this sounds like &#8220;Digital Rights Management&#8221; to you, that&#8217;s exactly what it is: <em>DRM for FPGAs</em>. Despite the abuse of some industries that made a bad name for DRM, in our application there may be benefits for both the design owner and the end user. We also know that enabling the three conditions above for a whole industry is challenging, and we are not even close to a solution.</p>
<p><span id="more-267"></span>The problem isn&#8217;t new, ASIC cores designers have been having trouble with this issue for years: run-on-fraud, copying, etc. The solution they arrived at is mostly based on trust and good reputation&#8212;valuable assets that are slowly gained yet easily lost&#8212;rather than cryptography. Big companies shaking hands with other big &#8220;trusted&#8221; companies relying on the potential reputation loss as an acceptable guarantee for honesty (plus a legal document). Apparently, this still works well for big companies, and while cryptographic solutions would be nice in order to alleviate the need for trust and provide for smaller companies world-wide, there is no real rush. &#8220;<a href="http://www.edn.com/index.asp?layout=article&#038;articleid=CA6412249">Panel unscrambles intellectual property encryption issues</a>&#8221; has a very revealing discussion from the industry&#8217;s perspective and is well worth the read.</p>
<p>Back to FPGAs, with their unique use model, the trust-based system holds here as well; established companies can afford to purchase a blanket license for cores, are trusted, and that lets them use those as they like. You might have a problem, though, if you are a small and obscure company. As a poor start-up designer, you want to save time and money by taking advantage of &#8220;design-reuse&#8221;, but you can&#8217;t afford blanket licensing, and you may not be big enough, or in the right country, to be trusted even if you sign the NDA/licensing agreement. So, you either spend the time developing the design in-house, perhaps missing that three month opportunity window, or you give up. FPGA DRM could help you here because it will enable a pay-per-use model. You will be able to pay only for the instances of the core you use regardless of your company&#8217;s &#8220;trust status&#8221;, starting with small quantities until you hit it big. In turn, pay-per-use also benefits cores designers by giving them business that they wouldn&#8217;t have gotten otherwise. Both sides win. Sort of. More in Part 2.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.lightbluetouchpaper.org/2007/09/24/notes-on-fpga-drm-part-1/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>The dinosaurs of five years ago</title>
		<link>http://www.lightbluetouchpaper.org/2007/09/02/the-dinosaurs-of-five-years-ago/</link>
		<comments>http://www.lightbluetouchpaper.org/2007/09/02/the-dinosaurs-of-five-years-ago/#comments</comments>
		<pubDate>Sun, 02 Sep 2007 14:10:20 +0000</pubDate>
		<dc:creator>Saar Drimer</dc:creator>
				<category><![CDATA[Hardware & signals]]></category>
		<category><![CDATA[Programmable logic]]></category>
		<category><![CDATA[Security engineering]]></category>

		<guid isPermaLink="false">http://www.lightbluetouchpaper.org/2007/09/02/the-dinosaurs-of-five-years-ago/</guid>
		<description><![CDATA[	
	<span class="Z3988" title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Adc&amp;rfr_id=info%3Asid%2Focoins.info%3Agenerator&amp;rft.title=The+dinosaurs+of+five+years+ago&amp;rft.aulast=Drimer&amp;rft.aufirst=Saar&amp;rft.subject=Hardware+%26%23038%3B+signals&amp;rft.subject=Programmable+logic&amp;rft.subject=Security+engineering&amp;rft.source=Light+Blue+Touchpaper&amp;rft.date=2007-09-02&amp;rft.type=blogPost&amp;rft.format=text&amp;rft.identifier=http://www.lightbluetouchpaper.org/2007/09/02/the-dinosaurs-of-five-years-ago/&amp;rft.language=English"></span>
A project called NSA@home has been making the rounds. It&#8217;s a gem. Stanislaw Skowronek got some old HDTV hardware off of eBay, and managed to create himself a pre-image brute force attack machine against SHA-1. The claim is that it can find a pre-image for an 8 character password hash from a 64 character set [...]]]></description>
			<content:encoded><![CDATA[	
	<span class="Z3988" title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Adc&amp;rfr_id=info%3Asid%2Focoins.info%3Agenerator&amp;rft.title=The+dinosaurs+of+five+years+ago&amp;rft.aulast=Drimer&amp;rft.aufirst=Saar&amp;rft.subject=Hardware+%26%23038%3B+signals&amp;rft.subject=Programmable+logic&amp;rft.subject=Security+engineering&amp;rft.source=Light+Blue+Touchpaper&amp;rft.date=2007-09-02&amp;rft.type=blogPost&amp;rft.format=text&amp;rft.identifier=http://www.lightbluetouchpaper.org/2007/09/02/the-dinosaurs-of-five-years-ago/&amp;rft.language=English"></span>
<p>A project called <a href="http://nsa.unaligned.org">NSA@home</a> has been <a href="http://www.hackaday.com/2007/08/31/nsa-home-diy-shared-fpga-cracker">making</a> the <a href="http://hardware.slashdot.org/hardware/07/09/01/0616212.shtml">rounds</a>. It&#8217;s a gem. Stanislaw Skowronek got some old HDTV hardware off of eBay, and managed to create himself a pre-image brute force attack machine against SHA-1. The claim is that it can find a pre-image for an 8 character password hash from a 64 character set in about 24 hours.</p>
<p>The key here is that this hardware board uses 15 <em>field programmable gate arrays</em> (FPGAs), which are generic integrated circuits that can perform any logic function within their size limit. So, Stanislaw reverse engineered the connections between the FPGAs, wrote his own designs and now has a very powerful processing unit. FPGAs are better at specific tasks compared to general purpose CPUs, especially for functions that can be divided into many independently-running smaller chunks operating in parallel. Some cryptographic functions are a perfect match; our own <a href="http://www.cl.cam.ac.uk/~rnc1/">Richard Clayton</a> and <a href="http://www.cl.cam.ac.uk/~mkb23/">Mike Bond</a> <a href="http://www.cl.cam.ac.uk/~rnc1/descrack/DEScracker.pdf"> attacked the DES implementation</a> in  the IBM 4758 hardware security module using an FPGA prototyping board; DES was attacked on the FPGA-based custom hardware platform, the <a href="http://www.springerlink.com/content/bqllltjjm24h671a/fulltext.pdf">Transmogrifier 2a</a>; more recently, the purpose-built <a href="http://www.copacobana.org/">COPACOBANA</a> machine which uses 120 low-end FPGAs operating in parallel to break DES in about 7 days; a proprietary stream cipher on RFID tokens <a href="http://www.usenix.org/events/sec05/tech/bono/bono.pdf">was attacked</a> using 16 commercial FPGA boards operating in parallel; and finally, people are now in the midst of <a href="http://wiki.thc.org/cracking_a5">cracking the A5 stream cipher in real time</a> using commercial FPGA modules. The unique development we see with NSA@home is that it uses a defunct piece of hardware.</p>
<p><span id="more-252"></span>Let me explain why this is important. The Virtex-II PRO FPGA&#8212;the one used by NSA@home&#8212;was introduced in 2002, only about five years ago. It is spec&#8217;d at about 400 MHz while today&#8217;s latest FPGAs, two generations later, are spec&#8217;d at around 550 MHz. So we have not gained that much in speed, but rather in size, specialization, and integration of embedded interface functions such as fast serial transceivers, Ethernet MACs, more embedded memory, etc. But if you want only plain logic and memory for parallelism, the old dinosaurs of a few years ago are still very much relevant, especially if you can get them for next to nothing and someone already took the effort to design the PCB for you. Hobbyists are (extremely) displeased that the dense <a href="http://en.wikipedia.org/wiki/BGA">ball grid packages</a> put them out of business, so to speak (and that the FPGA vendors do not care so much about it, which is another discussion). So, with FPGAs being used in ever more applications, I see this type of recycling becoming more popular. When will we see an enterprising student create a Logic-101 lab from recycled consumer electronics?</p>
<p>The other interesting aspect of NSA@home is the trade-offs. Much like Clayton and Bond, Stanislaw is checking subsets of the hash, places them within ranges, and leaves the final checking for the host PC; he could barely fit an unrolled, pipe-lined SHA-1 into each FPGA, so that trade-off was necessary. Another important aspect is the realization that FPGA resources are still there even if you do not use them. Usually, you would try to minimize the resources you use in order to make room for other functions; or, try to fit your design into a smaller FPGA and save money. But when you have a single application, and a given device size, you should try to use all at your disposal. This designer decided to use the embedded block RAMs, which would otherwise be unused, <a href="http://nsa.unaligned.org/hash.php">as look-up tables</a>. Good job.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.lightbluetouchpaper.org/2007/09/02/the-dinosaurs-of-five-years-ago/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

