<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	>
<channel>
	<title>Comments on: Instruction Set Extensions – Creating A Symmetric-Key Crypto-Processor</title>
	<atom:link href="http://cryptocrats.com/2008/06/29/instruction-set-extensions-%e2%80%93-creating-a-symmetric-key-crypto-processor/feed/" rel="self" type="application/rss+xml" />
	<link>http://cryptocrats.com/2008/06/29/instruction-set-extensions-%e2%80%93-creating-a-symmetric-key-crypto-processor/</link>
	<description>Administrator</description>
	<pubDate>Wed, 07 Jan 2009 02:13:41 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.6.2</generator>
		<item>
		<title>By: Kapali Viswanathan</title>
		<link>http://cryptocrats.com/2008/06/29/instruction-set-extensions-%e2%80%93-creating-a-symmetric-key-crypto-processor/#comment-77</link>
		<dc:creator>Kapali Viswanathan</dc:creator>
		<pubDate>Sun, 27 Jul 2008 13:06:21 +0000</pubDate>
		<guid isPermaLink="false">http://cryptocrats.com/?p=34#comment-77</guid>
		<description>".....advantage of IP processor cores targeting FPGAs and ASICs where the
processor is not optimized to perform particular functions such as core
cryptographic components.."

I have also tried to this same argument in the past. A prompt counter argument that I have received was: why not use a standard cryptography co-processor that is already available in the market? 
http://www-03.ibm.com/security/cryptocards/pcicc.shtml

Are FPGA/ASIC based initiatives re-inventing the wheel or actually trying to provide solutions to voids that cannot be (or are not being) addressed by existing implementation techniques?

I have been unable to provide generic and robust answers to such questions. The general question in the industry is "make or buy." Whenever a company can buy, it usually does not prefer to make. This has been a stone wall that has prevented many of my efforts to introduce high-speed, jitter-sensitive processors in the civilian domain. I know that there are advantages but I have been unable to provide a conclusive answer. I think that this forum could be a nice place for arriving at such an argument. Such argument can greatly improve the adoption of FPGA/ASIC based cryptography subsytems in commercial systems.

I feel that valuable arguments can come from the validity of the following assertions:
1) ASIC/FPGA implementations can be optimzied for power-constrained. environments such as embedded systems (if you do not activate a circuit, its power consumption will be minimal);
2) ASIC/FPGA implementations can provide improved resilience to side-channel cryptanalysis such as power analysis and so on.
3) ASIC/FPGA implementations inherently have superior jitter properties.

I think that conclusive findings to the above arguments could provide a better justification for why such implementations are not "reinventing the wheel" in any manner.

Hope that these feedbacks will be useful.</description>
		<content:encoded><![CDATA[<p>&#8220;&#8230;..advantage of IP processor cores targeting FPGAs and ASICs where the<br />
processor is not optimized to perform particular functions such as core<br />
cryptographic components..&#8221;</p>
<p>I have also tried to this same argument in the past. A prompt counter argument that I have received was: why not use a standard cryptography co-processor that is already available in the market?<br />
<a href="http://www-03.ibm.com/security/cryptocards/pcicc.shtml" rel="nofollow">http://www-03.ibm.com/security/cryptocards/pcicc.shtml</a></p>
<p>Are FPGA/ASIC based initiatives re-inventing the wheel or actually trying to provide solutions to voids that cannot be (or are not being) addressed by existing implementation techniques?</p>
<p>I have been unable to provide generic and robust answers to such questions. The general question in the industry is &#8220;make or buy.&#8221; Whenever a company can buy, it usually does not prefer to make. This has been a stone wall that has prevented many of my efforts to introduce high-speed, jitter-sensitive processors in the civilian domain. I know that there are advantages but I have been unable to provide a conclusive answer. I think that this forum could be a nice place for arriving at such an argument. Such argument can greatly improve the adoption of FPGA/ASIC based cryptography subsytems in commercial systems.</p>
<p>I feel that valuable arguments can come from the validity of the following assertions:<br />
1) ASIC/FPGA implementations can be optimzied for power-constrained. environments such as embedded systems (if you do not activate a circuit, its power consumption will be minimal);<br />
2) ASIC/FPGA implementations can provide improved resilience to side-channel cryptanalysis such as power analysis and so on.<br />
3) ASIC/FPGA implementations inherently have superior jitter properties.</p>
<p>I think that conclusive findings to the above arguments could provide a better justification for why such implementations are not &#8220;reinventing the wheel&#8221; in any manner.</p>
<p>Hope that these feedbacks will be useful.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Dr. Adam Elbirt</title>
		<link>http://cryptocrats.com/2008/06/29/instruction-set-extensions-%e2%80%93-creating-a-symmetric-key-crypto-processor/#comment-75</link>
		<dc:creator>Dr. Adam Elbirt</dc:creator>
		<pubDate>Fri, 25 Jul 2008 02:50:09 +0000</pubDate>
		<guid isPermaLink="false">http://cryptocrats.com/?p=34#comment-75</guid>
		<description>Instruction-set extensions were not proposed as a "silver bullet" solution
to cryptographic algorithm implementation and block ciphers were never
described as the only method of bulk data encryption.  The point of the
article is to offer a method of accelerating implementations that take
advantage of IP processor cores targeting FPGAs and ASICs where the
processor is not optimized to perform particular functions such as core
cryptographic components.  In such case, instruction-set extensions offer
an acceleration method that is easy to implement versus a full-custom
implementation of the particular algorithm, thus providing the flexibility
associated with software implementations in combination with the speed of
hardware implementations.</description>
		<content:encoded><![CDATA[<p>Instruction-set extensions were not proposed as a &#8220;silver bullet&#8221; solution<br />
to cryptographic algorithm implementation and block ciphers were never<br />
described as the only method of bulk data encryption.  The point of the<br />
article is to offer a method of accelerating implementations that take<br />
advantage of IP processor cores targeting FPGAs and ASICs where the<br />
processor is not optimized to perform particular functions such as core<br />
cryptographic components.  In such case, instruction-set extensions offer<br />
an acceleration method that is easy to implement versus a full-custom<br />
implementation of the particular algorithm, thus providing the flexibility<br />
associated with software implementations in combination with the speed of<br />
hardware implementations.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Kapali Viswanathan</title>
		<link>http://cryptocrats.com/2008/06/29/instruction-set-extensions-%e2%80%93-creating-a-symmetric-key-crypto-processor/#comment-74</link>
		<dc:creator>Kapali Viswanathan</dc:creator>
		<pubDate>Thu, 24 Jul 2008 17:34:42 +0000</pubDate>
		<guid isPermaLink="false">http://cryptocrats.com/?p=34#comment-74</guid>
		<description>I think that the article is making a case for implementing core cryptography algorithms in ASIC/FPGA. Therefore, it need not try to argue that ASIC/FPGA implementations are superior to software with respect to speed or vice versa. I agree with Matt that given a superior processor and an appropriate choice of cryptography algorithm, the mentioned speed can be achieved. 

The argument in this article should not be about raw speed. It should be that of cost ($) and jitter properties that are required when one goes down the communciation stack such as to the ATM layer, which is usually below the IP layer. 

For real-time communciations (such as those for space communications, control systems, and SCADA systems), jitter is a greater evil than delay. Jitter can be understood as unpredictable delay. Imagine that you have to secure all GPS (Global Positioning System)communications with strong cryptography algorithm and provide a low-cost solution. Firstly, we cannot mandate every application to use a laptop for such implementations -- the utility of embedded systems is proven and here to stay. Secondly, given the acute real-time requirements of GPS systems, what would be the best implementation you would opt for? I would bet on ASIC/FPGA implementations that are nicely dove-tailed with application-level software systems.

ASIC/FPGA implementations are inherently parallel in their operations -- they are electronic circuits! The jitter characteristics of ASIC/FPGA would be far superior to any microprocessor that is required to execute multiple jobs. If we were to design a special electronic board with Pentium 4 processor and design the software module such that its shall only execute one job (which is to compute a cryptographic algorithm), then this hardware-software combine might possess similar jitter properties such as a similar, low-end ASIC/FPGA product. But, the cost of making such a hardware would be so prohibitive that nobody would make or buy such products. This is where the ASIC/FPGA advantage would be useful over a pure software system.

Additionally, this article may not be a stream cipher or block cipher debate. To make blanket statements that stream ciphers are not used for bulk encryption is incorrect. Do mobile phone networks use block or stream ciphers for bulk encryption on the network? I have designed a network-level, point-to-point bulk-encryption system that can use block or stream ciphers in order to cater to differing end user needs. If you have two-party communications, stream or block ciphers can be used. If you have more than two communicating parties, stream ciphers cannot be used nor can certain configurations of block ciphers that are not self-synchronous like OFB and CFB modes. If we are designing a cryptosystem for point-to-point communication applications that do not allow any form of message buffering and send very short messages, we will have to use stream ciphers. Very short messages may be messages that are 8-bits in length. We cannot have a secure 8-bit block cipher!

I do not believe in silver bullet solutions. Customized (or optimized) designs appeal to my beliefs and experiences. I have seen people in the industry trying to use IPSec for safety-critical real-time applications, which I believe are dangerous and wasteful attempts.</description>
		<content:encoded><![CDATA[<p>I think that the article is making a case for implementing core cryptography algorithms in ASIC/FPGA. Therefore, it need not try to argue that ASIC/FPGA implementations are superior to software with respect to speed or vice versa. I agree with Matt that given a superior processor and an appropriate choice of cryptography algorithm, the mentioned speed can be achieved. </p>
<p>The argument in this article should not be about raw speed. It should be that of cost ($) and jitter properties that are required when one goes down the communciation stack such as to the ATM layer, which is usually below the IP layer. </p>
<p>For real-time communciations (such as those for space communications, control systems, and SCADA systems), jitter is a greater evil than delay. Jitter can be understood as unpredictable delay. Imagine that you have to secure all GPS (Global Positioning System)communications with strong cryptography algorithm and provide a low-cost solution. Firstly, we cannot mandate every application to use a laptop for such implementations &#8212; the utility of embedded systems is proven and here to stay. Secondly, given the acute real-time requirements of GPS systems, what would be the best implementation you would opt for? I would bet on ASIC/FPGA implementations that are nicely dove-tailed with application-level software systems.</p>
<p>ASIC/FPGA implementations are inherently parallel in their operations &#8212; they are electronic circuits! The jitter characteristics of ASIC/FPGA would be far superior to any microprocessor that is required to execute multiple jobs. If we were to design a special electronic board with Pentium 4 processor and design the software module such that its shall only execute one job (which is to compute a cryptographic algorithm), then this hardware-software combine might possess similar jitter properties such as a similar, low-end ASIC/FPGA product. But, the cost of making such a hardware would be so prohibitive that nobody would make or buy such products. This is where the ASIC/FPGA advantage would be useful over a pure software system.</p>
<p>Additionally, this article may not be a stream cipher or block cipher debate. To make blanket statements that stream ciphers are not used for bulk encryption is incorrect. Do mobile phone networks use block or stream ciphers for bulk encryption on the network? I have designed a network-level, point-to-point bulk-encryption system that can use block or stream ciphers in order to cater to differing end user needs. If you have two-party communications, stream or block ciphers can be used. If you have more than two communicating parties, stream ciphers cannot be used nor can certain configurations of block ciphers that are not self-synchronous like OFB and CFB modes. If we are designing a cryptosystem for point-to-point communication applications that do not allow any form of message buffering and send very short messages, we will have to use stream ciphers. Very short messages may be messages that are 8-bits in length. We cannot have a secure 8-bit block cipher!</p>
<p>I do not believe in silver bullet solutions. Customized (or optimized) designs appeal to my beliefs and experiences. I have seen people in the industry trying to use IPSec for safety-critical real-time applications, which I believe are dangerous and wasteful attempts.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Dr. Adam Elbirt</title>
		<link>http://cryptocrats.com/2008/06/29/instruction-set-extensions-%e2%80%93-creating-a-symmetric-key-crypto-processor/#comment-68</link>
		<dc:creator>Dr. Adam Elbirt</dc:creator>
		<pubDate>Mon, 30 Jun 2008 03:00:23 +0000</pubDate>
		<guid isPermaLink="false">http://cryptocrats.com/?p=34#comment-68</guid>
		<description>I must also disagree with your assertion.  While stream ciphers certainly
have been developed that are high performance, bulk data encryption in
fielded software is dominated by block ciphers not stream ciphers, as
evidenced by the AES standardization process and the prior use of block
ciphers such as DES, IDEA, and a host of others.  Regardless, the argument
is off-topic as ANY algorithm, cryptographic or otherwise, will have
software performance bottlenecks that are primarily caused by the need to
perform core operations that are poorly (or not at all) supported by the
target processor's datapath.  Instruction set extensions address this
bottleneck.</description>
		<content:encoded><![CDATA[<p>I must also disagree with your assertion.  While stream ciphers certainly<br />
have been developed that are high performance, bulk data encryption in<br />
fielded software is dominated by block ciphers not stream ciphers, as<br />
evidenced by the AES standardization process and the prior use of block<br />
ciphers such as DES, IDEA, and a host of others.  Regardless, the argument<br />
is off-topic as ANY algorithm, cryptographic or otherwise, will have<br />
software performance bottlenecks that are primarily caused by the need to<br />
perform core operations that are poorly (or not at all) supported by the<br />
target processor&#8217;s datapath.  Instruction set extensions address this<br />
bottleneck.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Dr Matt Henricksen</title>
		<link>http://cryptocrats.com/2008/06/29/instruction-set-extensions-%e2%80%93-creating-a-symmetric-key-crypto-processor/#comment-67</link>
		<dc:creator>Dr Matt Henricksen</dc:creator>
		<pubDate>Sun, 29 Jun 2008 22:39:01 +0000</pubDate>
		<guid isPermaLink="false">http://cryptocrats.com/?p=34#comment-67</guid>
		<description>I disagree with your assertion.

Bit-based stream ciphers are not used in software. There is whole bunch of stream ciphers that are word-oriented and use block-cipher like operations. They achieve better performance than block ciphers in software.

Have a look at the ECRYPT eSTREAM website where the world's stream cipher experts have been slaving away for the past few years.</description>
		<content:encoded><![CDATA[<p>I disagree with your assertion.</p>
<p>Bit-based stream ciphers are not used in software. There is whole bunch of stream ciphers that are word-oriented and use block-cipher like operations. They achieve better performance than block ciphers in software.</p>
<p>Have a look at the ECRYPT eSTREAM website where the world&#8217;s stream cipher experts have been slaving away for the past few years.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Dr. Adam Elbirt</title>
		<link>http://cryptocrats.com/2008/06/29/instruction-set-extensions-%e2%80%93-creating-a-symmetric-key-crypto-processor/#comment-66</link>
		<dc:creator>Dr. Adam Elbirt</dc:creator>
		<pubDate>Sun, 29 Jun 2008 16:12:04 +0000</pubDate>
		<guid isPermaLink="false">http://cryptocrats.com/?p=34#comment-66</guid>
		<description>This article focuses on block ciphers as stream ciphers are not typically
used for bulk data encryption in software due to the high overhead
associated with bit-level manipulations.  In regards to AES, a few
high-end implementations have been reported in the Gbps range but most
implementations require 100s of cycles when encrypting the minimum block
size of 128 bits.</description>
		<content:encoded><![CDATA[<p>This article focuses on block ciphers as stream ciphers are not typically<br />
used for bulk data encryption in software due to the high overhead<br />
associated with bit-level manipulations.  In regards to AES, a few<br />
high-end implementations have been reported in the Gbps range but most<br />
implementations require 100s of cycles when encrypting the minimum block<br />
size of 128 bits.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Dr Matt Henricksen</title>
		<link>http://cryptocrats.com/2008/06/29/instruction-set-extensions-%e2%80%93-creating-a-symmetric-key-crypto-processor/#comment-64</link>
		<dc:creator>Dr Matt Henricksen</dc:creator>
		<pubDate>Sun, 29 Jun 2008 14:06:58 +0000</pubDate>
		<guid isPermaLink="false">http://cryptocrats.com/?p=34#comment-64</guid>
		<description>"...even the fastest software implementations cannot satisfy the required bulk data encryption data rates for high-end applications such as ATM networks which require an encryption throughput of 622 Mbps"?

There's a whole bunch of stream ciphers that encrypt 8 bits every 3-5 cycles on Intel Pentium 4 and later. Even AES is capable of 8 bits every 15 cycles.</description>
		<content:encoded><![CDATA[<p>&#8220;&#8230;even the fastest software implementations cannot satisfy the required bulk data encryption data rates for high-end applications such as ATM networks which require an encryption throughput of 622 Mbps&#8221;?</p>
<p>There&#8217;s a whole bunch of stream ciphers that encrypt 8 bits every 3-5 cycles on Intel Pentium 4 and later. Even AES is capable of 8 bits every 15 cycles.</p>
]]></content:encoded>
	</item>
</channel>
</rss>
