<?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>Kryptoblog &#187; Python</title>
	<atom:link href="http://www.strombergson.com/kryptoblog/category/python/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.strombergson.com/kryptoblog</link>
	<description>Kryptografi och IT-säkerhet på svenska</description>
	<lastBuildDate>Thu, 20 Jan 2011 21:25:55 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.4</generator>
<atom:link rel="hub" href="http://pubsubhubbub.appspot.com"/><atom:link rel="hub" href="http://superfeedr.com/hubbub"/>		<item>
		<title>Generera streckkoder</title>
		<link>http://www.strombergson.com/kryptoblog/2009/09/19/generera-streckkoder/</link>
		<comments>http://www.strombergson.com/kryptoblog/2009/09/19/generera-streckkoder/#comments</comments>
		<pubDate>Sat, 19 Sep 2009 09:19:20 +0000</pubDate>
		<dc:creator>Joachim Strömbergson</dc:creator>
				<category><![CDATA[Python]]></category>
		<category><![CDATA[Verktyg]]></category>

		<guid isPermaLink="false">http://strombergson.com/kryptoblog/?p=660</guid>
		<description><![CDATA[	<p>Sprang p&#229; <a href="https://cybernetics.hudora.biz/projects/wiki/huBarcode">ett fr&#228;ckt Pythonlib f&#246;r att generera streckkoder</a>. hyBarcode st&#246;djer alla fyra vanliga typer av streckkoder inklusive datamatrix och qrcode:<br />
<img src="http://static.23.nu/md/Pictures/ZZ36151692.png" alt="qrcode." /><br />
<em>qrcode genererad med huBarcode.</em></p>

 <div class="shr-publisher-660"></div>

<p>No related posts.</p>
<p>Related posts brought to you by <a href='http://mitcho.com/code/yarpp/'>Yet Another Related Posts Plugin</a>.</p>


No related posts.

Related posts brought to you by <a href='http://mitcho.com/code/yarpp/'>Yet Another Related Posts Plugin</a>.]]></description>
			<content:encoded><![CDATA[	<p>Sprang p&#229; <a href="https://cybernetics.hudora.biz/projects/wiki/huBarcode">ett fr&#228;ckt Pythonlib f&#246;r att generera streckkoder</a>. hyBarcode st&#246;djer alla fyra vanliga typer av streckkoder inklusive datamatrix och qrcode:<br />
<img src="http://static.23.nu/md/Pictures/ZZ36151692.png" alt="qrcode." /><br />
<em>qrcode genererad med huBarcode.</em></p>

 <div class="shr-publisher-660"></div>

<p>No related posts.</p>
<p>Related posts brought to you by <a href='http://mitcho.com/code/yarpp/'>Yet Another Related Posts Plugin</a>.</p>]]></content:encoded>
			<wfw:commentRss>http://www.strombergson.com/kryptoblog/2009/09/19/generera-streckkoder/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Några länkar om säkerheten i Snow Leopard</title>
		<link>http://www.strombergson.com/kryptoblog/2009/09/08/nagra-lankar-om-sakerheten-i-snow-leopard/</link>
		<comments>http://www.strombergson.com/kryptoblog/2009/09/08/nagra-lankar-om-sakerheten-i-snow-leopard/#comments</comments>
		<pubDate>Tue, 08 Sep 2009 19:31:50 +0000</pubDate>
		<dc:creator>Joachim Strömbergson</dc:creator>
				<category><![CDATA[Mac]]></category>
		<category><![CDATA[Python]]></category>

		<guid isPermaLink="false">http://www.strombergson.com/kryptoblog/?p=752</guid>
		<description><![CDATA[<p>Om du &#228;r nyfiken p&#229; vad Apple lagt till och f&#246;r&#228;ndrat s&#228;kerhetsm&#228;ssigt i Snow Leopard (SL) kommer h&#228;r tv&#229; l&#228;nkar. <em><a href="http://db.tidbits.com/article/10509">Peering Inside Snow Leopard Security</a></em> ger en bra &#246;versikt om stackskydd, f&#246;r&#228;ndringar av standardinst&#228;llningar i brandv&#228;ggen, sandl&#229;deimplementation etc.</p>

	<p><em><a href="http://www.macworld.com/article/142457/2009/08/snowleopard_malware.html">Inside</a></em>&#8230;</p>


No related posts.

Related posts brought to you by <a href='http://mitcho.com/code/yarpp/'>Yet Another Related Posts Plugin</a>.]]></description>
			<content:encoded><![CDATA[	<p>Om du &#228;r nyfiken p&#229; vad Apple lagt till och f&#246;r&#228;ndrat s&#228;kerhetsm&#228;ssigt i Snow Leopard (SL) kommer h&#228;r tv&#229; l&#228;nkar. <em><a href="http://db.tidbits.com/article/10509">Peering Inside Snow Leopard Security</a></em> ger en bra &#246;versikt om stackskydd, f&#246;r&#228;ndringar av standardinst&#228;llningar i brandv&#228;ggen, sandl&#229;deimplementation etc.</p>

	<p><em><a href="http://www.macworld.com/article/142457/2009/08/snowleopard_malware.html">Inside Snow Leopard&#8217;s hidden malware protection</a></em> ger en mer detaljerad beskrivning av det nya skydd mot elak kod som Apple byggt in i Snow Leopard. Enligt artikeln lagrar SL en lista med signaturer &#246;ver k&#228;nda elakingar i filen:<br />
<code>/System/Library/CoreServices/CoreTypes.bundle/Contents/Resources/XProtect.plist</code></p>

	<p>Just nu inneh&#229;ller den bara referenser till <em><a href="http://www.macworld.com/article/60823/2007/10/trojanhorse.html"><span class="caps">OSX</span>.RSPlug.A Trojan Horse</a></em> och <em><a href="http://www.macworld.com/article/138380/2009/01/iworktrojan.html"><span class="caps">OSX</span>.iService</a></em> men gissningsvis kommer Apple att trycka ut uppdateringar med fler definitioner via Software Update.</p>

	<p>F&#246;r &#246;vrigt finns det om jag r&#228;knar r&#228;tt inte mindre &#228;n <strong>fem</strong> olika python-wrappers f&#246;r <em>libpcap</em>, alla med usel dokumentation. Just nu f&#229;r jag inte en enda av dom att bygga eller installera i SL. Wrappern <em>py-pylibpcap</em> finns exempelvis i Macports, men den tokbombar p&#229; ncurses&#8230; samt <strong>Perl och Ruby</strong>?! Beroende-h-lvetet n&#228;r det &#228;r som v&#228;rst&#8230;</p>
 <div class="shr-publisher-752"></div>

<p>No related posts.</p>
<p>Related posts brought to you by <a href='http://mitcho.com/code/yarpp/'>Yet Another Related Posts Plugin</a>.</p>]]></content:encoded>
			<wfw:commentRss>http://www.strombergson.com/kryptoblog/2009/09/08/nagra-lankar-om-sakerheten-i-snow-leopard/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Artikel om att scripta SSH med Paramiko</title>
		<link>http://www.strombergson.com/kryptoblog/2009/03/01/artikel-om-att-skripta-ssh-med-paramiko/</link>
		<comments>http://www.strombergson.com/kryptoblog/2009/03/01/artikel-om-att-skripta-ssh-med-paramiko/#comments</comments>
		<pubDate>Sun, 01 Mar 2009 20:03:15 +0000</pubDate>
		<dc:creator>Joachim Strömbergson</dc:creator>
				<category><![CDATA[Läsvärt]]></category>
		<category><![CDATA[Python]]></category>
		<category><![CDATA[Verktyg]]></category>

		<guid isPermaLink="false">http://strombergson.com/kryptoblog/?p=633</guid>
		<description><![CDATA[<p>Jesse Noller har publicerat en artikel om hur man kan anv&#228;nda Pythonmodulen Paramiko f&#246;r att <a href="http://jessenoller.com/2009/02/05/ssh-programming-with-paramiko-completely-different/">scripta k&#246;rningar med <span class="caps">SSH</span></a>. Artikeln har tidigare publicerats in <a href="http://www.pythonmagazine.com/">Python Magazine</a>. Artikelns sammanfattning f&#246;rklarar n&#228;rmare vad den handlar om:</p>

	<p><blockquote><br />
OpenSSH</blockquote>&#8230;</p>


No related posts.

Related posts brought to you by <a href='http://mitcho.com/code/yarpp/'>Yet Another Related Posts Plugin</a>.]]></description>
			<content:encoded><![CDATA[	<p>Jesse Noller har publicerat en artikel om hur man kan anv&#228;nda Pythonmodulen Paramiko f&#246;r att <a href="http://jessenoller.com/2009/02/05/ssh-programming-with-paramiko-completely-different/">scripta k&#246;rningar med <span class="caps">SSH</span></a>. Artikeln har tidigare publicerats in <a href="http://www.pythonmagazine.com/">Python Magazine</a>. Artikelns sammanfattning f&#246;rklarar n&#228;rmare vad den handlar om:</p>

	<p><blockquote><br />
OpenSSH is the ubiquitous method of remote access for secure remote-machine login and file transfers. Many people &#8212; systems administrators, test automation engineers, web developers and others have to use and interact with it daily. Scripting <span class="caps">SSH</span> access and file transfers with Python can be frustrating &#8212; but the Paramiko module solves that in a powerful way.<br />
</blockquote></p>

	<p><a href="http://www.lag.net/paramiko/">Paramiko</a> &#228;r en modul med en ren Pythonimplementation (dvs inget anrop till C-bibliotek, exempelvis libssl) av <span class="caps">SSH2</span>. Modulen &#228;r <span class="caps">LPGL</span>-licensierad.</p>
 <div class="shr-publisher-633"></div>

<p>No related posts.</p>
<p>Related posts brought to you by <a href='http://mitcho.com/code/yarpp/'>Yet Another Related Posts Plugin</a>.</p>]]></content:encoded>
			<wfw:commentRss>http://www.strombergson.com/kryptoblog/2009/03/01/artikel-om-att-skripta-ssh-med-paramiko/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Strömkryptot Snow i Python</title>
		<link>http://www.strombergson.com/kryptoblog/2008/10/30/stromkryptot-snow-i-python/</link>
		<comments>http://www.strombergson.com/kryptoblog/2008/10/30/stromkryptot-snow-i-python/#comments</comments>
		<pubDate>Thu, 30 Oct 2008 13:58:36 +0000</pubDate>
		<dc:creator>Joachim Strömbergson</dc:creator>
				<category><![CDATA[Krypto]]></category>
		<category><![CDATA[Om Kryptoblog]]></category>
		<category><![CDATA[Python]]></category>

		<guid isPermaLink="false">http://strombergson.com/kryptoblog/?p=582</guid>
		<description><![CDATA[<p>Min nya hobby att implementera krypton i programspr&#229;ket Python har den senaste veckan gjort att jag pillat med kryptot <a href="http://en.wikipedia.org/wiki/SNOW">Snow</a>.</p>

	<p>Snow &#228;r ett <a href="http://en.wikipedia.org/wiki/Stream_cipher">str&#246;mkrypto</a> av <a href="http://www.it.lth.se/thomas/">Thomas Johansson</a> och Patrik Ekdahl vid <span class="caps">LTH</span>. Den version av&#8230;</p>


No related posts.

Related posts brought to you by <a href='http://mitcho.com/code/yarpp/'>Yet Another Related Posts Plugin</a>.]]></description>
			<content:encoded><![CDATA[	<p>Min nya hobby att implementera krypton i programspr&#229;ket Python har den senaste veckan gjort att jag pillat med kryptot <a href="http://en.wikipedia.org/wiki/SNOW">Snow</a>.</p>

	<p>Snow &#228;r ett <a href="http://en.wikipedia.org/wiki/Stream_cipher">str&#246;mkrypto</a> av <a href="http://www.it.lth.se/thomas/">Thomas Johansson</a> och Patrik Ekdahl vid <span class="caps">LTH</span>. Den version av Snow jag implementerat &#228;r Snow 2.0 som kom 2002. Snow 2.0 var en av kandidaterna till <a href="http://en.wikipedia.org/wiki/NESSIE"><span class="caps">NESSIE</span></a>-projektet och har &#228;ven anv&#228;nts som j&#228;mf&#246;relse med kandidater i <a href="http://www.ecrypt.eu.org/stream/">eSTREAM</a>.</p>

	<p>Det finns en nyare version av Snow kallad Snow 3G. Snow 3G &#228;r det krypto som anv&#228;nds som bas i algoritmerna <a href="http://cryptome.org/uea2-uia2/uea2-uia2.htm"><span class="caps">EUA2</span> och <span class="caps">EIA2</span></a> f&#246;r att s&#228;kra kommunikationen i 3G. Jag har &#228;nnu inte lagt in st&#246;d f&#246;r Snow 3G. En s&#229;dan f&#246;r&#228;ndring skulle dock vara relativt enkel &#8211; det som kr&#228;vs &#228;r v&#228;sentligen att l&#228;gga till ett extra register i <span class="caps">FSM</span>:en.</p>

	<p>Snow arbetar p&#229; 32-bitars ord och kryptot best&#229;r i grunden av ett skiftregister (en <a href="http://en.wikipedia.org/wiki/LFSR"><span class="caps">LFSR</span></a>-kedja) med 16 steg samt en tillst&#229;ndsmaskin (<a href="http://en.wikipedia.org/wiki/Finite_State_Machine"><span class="caps">FSM</span></a>) med tv&#229; 32 tillst&#229;ndsregister &#8211; R1 och R2.</p>

	<p>Uppdateringen av <span class="caps">LFSR</span>-kedjan sker genom &#229;termatning av tidigare v&#228;rden som mixas samman genom tv&#229; multiplikationer, vilka &#228;r implementerade med tabeller. Uppdateringen av R2-registret i <span class="caps">FSM</span>:en sker genom en <a href="http://en.wikipedia.org/wiki/S-box">S-box</a> (baserad p&#229; S-boxen i <a href="http://en.wikipedia.org/wiki/Advanced_Encryption_Standard"><span class="caps">AES</span></a>) d&#228;r indata &#228;r v&#228;rdet i R1. Totalt sett finns det sex stycken tabeller i den h&#228;r implementationen av Snow.</p>

	<p>Min implementation av Python &#228;r en frist&#229;ende klass med metod <em>load_key()</em> f&#246;r att ladda nyckel och IV, samt en metod <em>gen_keyword()</em> f&#246;r att generera n&#228;sta nyckelstr&#246;msord. Klassen st&#246;djer b&#229;de 128- och 256-bitars nyckel.</p>

	<p><span class="caps">LFSR</span>-kedjan och <span class="caps">FSM</span>:en &#228;r sammankopplade p&#229; ett relativt intrikat s&#228;tt och att f&#229; ordning p&#229; ordningen i uppdateringen i ett sekventiellt program visade sig vara lite klurigt. Men genom att dumpa alla interna tillst&#229;nd gick det att f&#229; ordning p&#229; sekvenserna. Min implementation av Snow inkluderar d&#228;rf&#246;r en metod f&#246;r att dumpa interntillst&#229;ndet. N&#228;r ett objekt av Snow skapas g&#229;r det &#228;ven att ange hur pratig (verbose) den skall vara n&#228;r den utf&#246;r en metod.</p>

	<p>Ett litet exempel (h&#228;mtat fr&#229;n exempelkoden):<br />
<blockquote></p>
    my_snow = Snow(False)
    my_key = [0&#215;00000000, 0&#215;00000000, 0&#215;00000000, 0&#215;80000000]
    my_iv  = [0&#215;00000000, 0&#215;00000000, 0&#215;00000000, 0&#215;00000000]

    my_snow.load_key(my_key, my_iv)
    my_snow.gen_keyword()<br />
</blockquote>

	<p>Detta ger (med lite  utskrifter och en loop):<br />
<blockquote><br />
key:<br />
[0, 0, 0, 2147483648L]<br />
iv:<br />
[0, 0, 0, 0]<br />
running key 0: 8d590ae9<br />
running key 1: a74a7d05<br />
running key 2: 6dc9ca74<br />
running key 3: b72d1a45<br />
running key 4: 99b0a083<br />
running key 5: fb45d13f<br />
running key 6: cf9411bd<br />
running key 7: 9a503783<br />
running key 8: a98265ae<br />
running key 9: bf2dc77f<br />
running key 10: f2eb41e4<br />
running key 11: aa896508<br />
running key 12: 19d8ab8f<br />
running key 13: 2eb8077f<br />
running key 14: 78f8c1f1<br />
running key 15: 9d4c5ce2<br />
</blockquote></p>

	<p>Rent och snyggt gr&#228;nssnitt om jag f&#229;r s&#228;ga det sj&#228;lv, HW-nisse som jag &#228;r (s&#229; vad vet jag?).</p>

	<p>Jag har testk&#246;rt p&#229; min laptop med 2GHz Core 2 Duo-processor. Generering av 10.000.000 v&#228;rden tar 135 sekunder, vilket ger ungef&#228;r 295 kByte/s. Inte kanonsnabbt, men vill man ha en ren Pythonimplementation av en applikation d&#228;r det finns ett behov av att skydda data med hj&#228;lp av ett bra krypto kanske den h&#228;r implementationen kan vara anv&#228;ndbar.</p>

	<p>Min implementation av Snow finns p&#229; <a href="http://strombergson.com/kryptoblog/filer-for-nedladdning/">sidan f&#246;r nedladdning</a>. Det finns ett par korta exempel i <em>main()</em><del>funktionen med testvektorer f&#246;r 128</del> och 256-bit nycklar h&#228;mtade fr&#229;n <a href="http://www.it.lth.se/cryptology/snow/snow20.pdf">specifikationen f&#246;r Snow 2.0</a>.</p>

	<p>Koden &#228;r <span class="caps">BSD</span>-licensierad och jag hoppas att den kommer till nytta. Mycket n&#246;je!</p>
 <div class="shr-publisher-582"></div>

<p>No related posts.</p>
<p>Related posts brought to you by <a href='http://mitcho.com/code/yarpp/'>Yet Another Related Posts Plugin</a>.</p>]]></content:encoded>
			<wfw:commentRss>http://www.strombergson.com/kryptoblog/2008/10/30/stromkryptot-snow-i-python/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>rule30.py nu på nedladdningssidan</title>
		<link>http://www.strombergson.com/kryptoblog/2008/10/14/rule30py-nu-pa-nedladdningssidan/</link>
		<comments>http://www.strombergson.com/kryptoblog/2008/10/14/rule30py-nu-pa-nedladdningssidan/#comments</comments>
		<pubDate>Tue, 14 Oct 2008 19:47:37 +0000</pubDate>
		<dc:creator>Joachim Strömbergson</dc:creator>
				<category><![CDATA[Om Kryptoblog]]></category>
		<category><![CDATA[Python]]></category>

		<guid isPermaLink="false">http://strombergson.com/kryptoblog/?p=572</guid>
		<description><![CDATA[<p>Jag fick en fr&#229;ga om jag kunde t&#228;nka mig att skicka &#246;ver <a href="http://strombergson.com/kryptoblog/2008/10/13/dagens-hw-hack-wolframs-30e-regel/">den Pythonkod f&#246;r Stephen Wolframs cellautomat med uppdatering enligt regel 30 jag skrev om f&#246;r n&#229;gon dag sedan</a>.</p>

	<p>Detta fick mig att kasta ett get&#246;ga till&#8230;</p>


No related posts.

Related posts brought to you by <a href='http://mitcho.com/code/yarpp/'>Yet Another Related Posts Plugin</a>.]]></description>
			<content:encoded><![CDATA[	<p>Jag fick en fr&#229;ga om jag kunde t&#228;nka mig att skicka &#246;ver <a href="http://strombergson.com/kryptoblog/2008/10/13/dagens-hw-hack-wolframs-30e-regel/">den Pythonkod f&#246;r Stephen Wolframs cellautomat med uppdatering enligt regel 30 jag skrev om f&#246;r n&#229;gon dag sedan</a>.</p>

	<p>Detta fick mig att kasta ett get&#246;ga till p&#229; min fulkod. Jag ins&#229;g snabbt att koden beh&#246;vde st&#228;das upp, och i samband med det byggde jag om den till att bli objektorienterad.</p>

	<p>Koden inneh&#229;ller en klass CellularAutomata() som tar en godtyckligt l&#229;ng array med ettor och nollor som representerar initialtillst&#229;ndet i cellerna i den endimensionella cellautomat arrayen skapar. Klassen tar &#228;ven array med &#229;tta ettor eller nollor som representerar uppdateringsreglerna f&#246;r cellerna. I mainfunktionen skapas som ett exempel en liten automat f&#246;r regel 30 genom instansiering av klassen.</p>

	<p>F&#246;r den som vill testa finns koden nu p&#229; <a href="http://strombergson.com/kryptoblog/filer-for-nedladdning/">nedladdningssidan h&#228;r p&#229; Kryptoblog</a>.</p>

	<p>Kommentarer, tips och r&#229;d &#228;r h&#246;gst v&#228;lkomna.</p>
 <div class="shr-publisher-572"></div>

<p>No related posts.</p>
<p>Related posts brought to you by <a href='http://mitcho.com/code/yarpp/'>Yet Another Related Posts Plugin</a>.</p>]]></content:encoded>
			<wfw:commentRss>http://www.strombergson.com/kryptoblog/2008/10/14/rule30py-nu-pa-nedladdningssidan/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Dagens HW-hack: Wolframs 30:e regel</title>
		<link>http://www.strombergson.com/kryptoblog/2008/10/13/dagens-hw-hack-wolframs-30e-regel/</link>
		<comments>http://www.strombergson.com/kryptoblog/2008/10/13/dagens-hw-hack-wolframs-30e-regel/#comments</comments>
		<pubDate>Mon, 13 Oct 2008 19:05:02 +0000</pubDate>
		<dc:creator>Joachim Strömbergson</dc:creator>
				<category><![CDATA[ECRYPT eSTREAM]]></category>
		<category><![CDATA[Forskning]]></category>
		<category><![CDATA[Hårdvara]]></category>
		<category><![CDATA[Krypto]]></category>
		<category><![CDATA[Python]]></category>

		<guid isPermaLink="false">http://strombergson.com/kryptoblog/?p=569</guid>
		<description><![CDATA[<p>Jag fick en fr&#229;ga om kryptorelaterade algoritmer som skulle kunna vara l&#228;mpliga att k&#246;ra som exempel i en kurs om system-modellering. Tanken som jag f&#246;rstod det var att p&#229; <a href="http://en.wikipedia.org/wiki/Transaction-level_modeling"><span class="caps">TLM</span>-niv&#229;</a> simulera SW-funktioner som sedan flyttas till HW.</p>

	<p>Intressanta&#8230;</p>


No related posts.

Related posts brought to you by <a href='http://mitcho.com/code/yarpp/'>Yet Another Related Posts Plugin</a>.]]></description>
			<content:encoded><![CDATA[	<p>Jag fick en fr&#229;ga om kryptorelaterade algoritmer som skulle kunna vara l&#228;mpliga att k&#246;ra som exempel i en kurs om system-modellering. Tanken som jag f&#246;rstod det var att p&#229; <a href="http://en.wikipedia.org/wiki/Transaction-level_modeling"><span class="caps">TLM</span>-niv&#229;</a> simulera SW-funktioner som sedan flyttas till HW.</p>

	<p>Intressanta algoritmer beh&#246;ver b&#229;de vara enkla att begripa och kunna ge stor skillnad i prestanda, genomstr&#246;mning etc n&#228;r funktionen flyttas fr&#229;n SW till HW. Utifr&#229;n detta var mitt f&#246;rslag <a href="http://en.wikipedia.org/wiki/RC4"><span class="caps">RC4</span></a> (som &#228;r enkel, men inte skalar speciellt bra i HW), <a href="http://en.wikipedia.org/wiki/XTEA"><span class="caps">XTEA</span></a>, <a href="http://en.wikipedia.org/wiki/SHA-1"><span class="caps">SHA</span>-1 och <span class="caps">SHA</span>-2 (256)</a>.</p>

	<p>N&#229;gra andra algoritmer man borde kunna s&#228;tta i h&#228;nderna p&#229; studenter &#228;r eSTREAM-kryptona <a href="http://www.ecrypt.eu.org/stream/grainp3.html">Grain</a> och <a href="http://www.ecrypt.eu.org/stream/triviump3.html">Trivium</a>. B&#229;da dessa krypton &#228;r relativt enkla att f&#246;rst&#229;, har intressanta explicita skalbarhetsegenskaper och &#228;r v&#228;lspecificerade med testvektorer, referensmodeller etc.</p>

	<p>Sedan slog det mig att en annan, n&#229;got annorlunda algoritm som skulle kunna anv&#228;ndas &#228;r <a href="http://en.wikipedia.org/wiki/Rule_30">Stephen Wolframs cellautomat Rule 30</a>.</p>

	<p>Rule 30 &#228;r en endimensionell cellautomat som ger upphov till ett slumpm&#228;ssigt (PRNG) m&#246;nster. Rule 30 anv&#228;nds  som slumptalsgenerator i <a href="http://www.wolfram.com/">Wolfram Research Mathematica</a>. En f&#246;rdel med att anv&#228;nda en endimensionell cellautomat &#228;r att den enkelt g&#229;r att rita upp och grafiskt <em>verifiera</em>.</p>

	<p><img src="http://upload.wikimedia.org/wikipedia/en/thumb/9/97/Rule_30.svg/526px-Rule_30.svg.png" alt="Rule 30" /><br />
<em>De f&#246;rsta iterationerna av regel 30 samt de styrande tillst&#229;ndskombinationerna.</em></p>

	<p>En annan kul egenskap &#228;r att algoritmen &#228;r trivialt parallelliserbar, detta d&#229; alla celler kan uppdateras samtidigt. Antagligen g&#229;r det att g&#246;ra bra SW-implementationer, inte minst om man tar till <span class="caps">SSE</span>-instruktioner alt <span class="caps">GPU</span>-acceleration, men en ren HW-implementation blir v&#228;ldigt enkel.</p>

	<p>Jag blev s&#229; inspirerad av Rule 30 att jag satte mig ned och hackade ihop ett par implementationer. F&#246;rst en version i Python (naturligtvis) f&#246;r att f&#229; koll p&#229; att jag t&#228;nkte r&#228;tt. Det blev inte speciellt m&#229;nga rader kod, ca 20 inkl kommentarer. Och jag &#228;r s&#228;ker p&#229; att om man &#228;r en riktig <em>Pythonista</em> g&#229;r algoritmen att stampa ner till ett f&#229;tal rader kod, ex med lite <a href="http://en.wikipedia.org/wiki/List_comprehension">list comprehensions</a>.</p>

	<p>Sedan hackade jag ihop en <span class="caps">RTL</span>-generator (i Python) som kan generera Verilogkod f&#246;r en Rule30-automat med godtyckligt antal bitar. Den genererade konstruktionen best&#229;r v&#228;sentligen av ett tillst&#229;ndsregister med en bit f&#246;r varje cell. F&#246;r varje cell finns det sedan en enbitars 8-till-1-MUX som implemeterar uppdateringsregeln.</p>

	<p>En sak man beh&#246;ver fundera p&#229; &#228;r vad som h&#228;nder f&#246;r f&#246;rsta resp sista biten i arrayen. Jag har valt att g&#246;ra en ring av arrayen. Detta inneb&#228;r att vid uppdatering av den h&#246;gsta biten tittar vi p&#229; bit 0 och tv&#228;rs om. Implementationsm&#228;ssigt inneb&#228;r detta tv&#229; separata ledningar som g&#229;r fr&#229;n kant till kant, inte bara lokalt mellan ett cellregisters n&#228;rmaste grannar.</p>

	<p>Jag genererade n&#229;gra stycken versioner av min Rule 30-konstruktion och anv&#228;nde sedan Alteras verktyg Quartus II f&#246;r att implementera konstruktionen i en Cyclone II-FPGA. Lite resultat:</p>

	<p><code><br />
256 bitar: 687 LEs, 263 MHz<br />
128 bitar: 344 LEs, 358 MHz<br />
64 bitar:  128 LEs, 420 MHz<br />
32 bitar:  64 LEs, 420 MHz<br />
16 bitar:  32 LEs, 420 MHz<br />
8 bitar:   16 LEs, 420 MHz<br />
</code></p>

	<p>(Notera att implementationen kr&#228;ver lika m&#229;nga register som bitar, jag redovisar dock inte det h&#228;r.)</p>

	<p>En snabb analys ger att varje <span class="caps">MUX </span>(samt logik f&#246;r att ladda in ett anv&#228;ndarstyrt initialv&#228;rde) implementeras med tv&#229; logikelement (LE). Mellan 64 och 128 bitar ser det ut som att n&#229;gon form av replikering beh&#246;ver inf&#246;ras.</p>

	<p>Vad g&#228;ller klockfrekvensen &#228;r 420 MHz max som Cyclone <span class="caps">II </span>&#228;r specad f&#246;r. I en annan <span class="caps">FPGA</span>, ex Stratix <span class="caps">III</span> g&#229;r det antagligen att f&#229; upp klockfrekvensen ytterliggare en bit. Eftersom uppdateringsfunktionen f&#246;r resp bit best&#229;r av en 8-1-MUX med ett grinddjup motsvarande ungef&#228;r tre <span class="caps">NAND2</span>-grindar eller en LE, blir det transportf&#246;rdr&#246;jningen genom <span class="caps">FPGA</span>:ns switchn&#228;t som s&#228;tter gr&#228;nsen f&#246;r klockfrekvensen.</p>

	<p>Nu &#228;r Rule 30 inte en kryptografiskt s&#228;ker <span class="caps">PRNG</span>, men f&#246;r att vara en <span class="caps">PRNG</span> som ger s&#229; bra slumpserier s&#229; att den duger f&#246;r Mathematica f&#246;rbrukar den v&#228;ldigt lite resurser. Och med 256 <span class="caps">PRNG</span>-bitar varje cykel i 263 MHz f&#229;r vi 67 Gbit/s! (Vilket skulle vara hoppl&#246;st att f&#229; ut p&#229; ett kort och anv&#228;nda utanf&#246;r <span class="caps">FPGA</span>:n.)</p>

	<p>Jag t&#228;nker sl&#228;nga upp en version av Verilogkoden, antigen h&#228;r eller hos InformAsic. &#197;terkommer med det. N&#228;sta steg &#228;r att att bygga ut generatorn med st&#246;d f&#246;r resursdelning, men det g&#246;r jag inte i kv&#228;ll i alla fall.</p>

	<p>Att cellautomater har f&#246;rs&#246;kt anv&#228;ndas i kryptosammanhang finns det flera artiklar som vittnar om. Jag hittade en f&#228;rsk s&#229;dan med titeln <em><a href="http://ijns.femto.com.tw/contents/ijns-v8-n2/ijns-2009-v8-n2-p243-252.pdf"><span class="caps">LCASE</span>: Lightweight Cellular Automata-based<br />
Symmetric-key Encryption</a></em> som just tar upp Rule 30. V&#228;rd att l&#228;sa om du vill veta mer.</p>
 <div class="shr-publisher-569"></div>

<p>No related posts.</p>
<p>Related posts brought to you by <a href='http://mitcho.com/code/yarpp/'>Yet Another Related Posts Plugin</a>.</p>]]></content:encoded>
			<wfw:commentRss>http://www.strombergson.com/kryptoblog/2008/10/13/dagens-hw-hack-wolframs-30e-regel/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>gen_randfiles &#8211; ett nytt litet verktyg</title>
		<link>http://www.strombergson.com/kryptoblog/2008/09/29/gen_randfiles-ett-nytt-litet-verktyg/</link>
		<comments>http://www.strombergson.com/kryptoblog/2008/09/29/gen_randfiles-ett-nytt-litet-verktyg/#comments</comments>
		<pubDate>Mon, 29 Sep 2008 20:51:28 +0000</pubDate>
		<dc:creator>Joachim Strömbergson</dc:creator>
				<category><![CDATA[Python]]></category>
		<category><![CDATA[Verktyg]]></category>

		<guid isPermaLink="false">http://strombergson.com/kryptoblog/?p=567</guid>
		<description><![CDATA[<p>Jag har precis lagt upp ett litet verktyg p&#229; Kryptoblog. I helgen hade jag inf&#246;r en svensexa ett behov av att kunna generera ett stort antal filer av en given l&#228;ngd d&#228;r inneh&#229;llet bestod av slumptal. (<em>Jo faktiskt, till</em>&#8230;</p>


No related posts.

Related posts brought to you by <a href='http://mitcho.com/code/yarpp/'>Yet Another Related Posts Plugin</a>.]]></description>
			<content:encoded><![CDATA[	<p>Jag har precis lagt upp ett litet verktyg p&#229; Kryptoblog. I helgen hade jag inf&#246;r en svensexa ett behov av att kunna generera ett stort antal filer av en given l&#228;ngd d&#228;r inneh&#229;llet bestod av slumptal. (<em>Jo faktiskt, till en svensexa &#8211; snacka om seger i n&#246;rd-VM</em>).</p>

	<p>gen_randfiles.py g&#246;r precis detta. Mata in filnamn, antal filer och l&#228;ngd i Bytes och du f&#229;r det givna antalet filer fyllda med slumpm&#228;ssigt valda Bytes. Uppenbarligen skrivet i Python och anv&#228;nder <a href="http://docs.python.org/lib/module-random.html">Pythons random-funktion</a> vilken bygger p&#229; <a href="http://en.wikipedia.org/wiki/Mersenne_Twister">Mersenne Twister</a>.</p>

	<p>Filen ligger p&#229; <a href="http://strombergson.com/kryptoblog/filer-for-nedladdning/">sidan med filer f&#246;r nedladdning</a>. Hoppas att det kommer till nytta f&#246;r n&#229;gon. Kanske till en m&#246;hippa eller n&#229;t, vad vet jag?</p>

 <div class="shr-publisher-567"></div>

<p>No related posts.</p>
<p>Related posts brought to you by <a href='http://mitcho.com/code/yarpp/'>Yet Another Related Posts Plugin</a>.</p>]]></content:encoded>
			<wfw:commentRss>http://www.strombergson.com/kryptoblog/2008/09/29/gen_randfiles-ett-nytt-litet-verktyg/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Säkerhetsnyheter i senaste Python 2.6-betan</title>
		<link>http://www.strombergson.com/kryptoblog/2008/09/03/sakerhetsnyheter-i-senaste-python-26-betan/</link>
		<comments>http://www.strombergson.com/kryptoblog/2008/09/03/sakerhetsnyheter-i-senaste-python-26-betan/#comments</comments>
		<pubDate>Wed, 03 Sep 2008 20:00:56 +0000</pubDate>
		<dc:creator>Joachim Strömbergson</dc:creator>
				<category><![CDATA[Krypto]]></category>
		<category><![CDATA[Python]]></category>
		<category><![CDATA[Verktyg]]></category>

		<guid isPermaLink="false">http://strombergson.com/kryptoblog/?p=554</guid>
		<description><![CDATA[<p>I slutet av augusti sl&#228;pptes <a href="http://www.python.org/download/releases/2.6/">den tredje och sista betaversionen av Python 2.6</a>. I samband med detta publicerades <a href="http://docs.python.org/dev/whatsnew/2.6.html">ett dokument som beskriver nyheterna i Python 2.6</a>.</p>

	<p><a href="http://python.org/"><img src="http://python.org/images/python-logo.gif" alt="Python" /></a></p>

	<p>Bland alla f&#246;r&#228;ndringar avsedda att bereda v&#228;gen f&#246;r <a href="http://docs.python.org/dev/whatsnew/2.6.html#python-3-0">Python</a>&#8230;</p>


No related posts.

Related posts brought to you by <a href='http://mitcho.com/code/yarpp/'>Yet Another Related Posts Plugin</a>.]]></description>
			<content:encoded><![CDATA[	<p>I slutet av augusti sl&#228;pptes <a href="http://www.python.org/download/releases/2.6/">den tredje och sista betaversionen av Python 2.6</a>. I samband med detta publicerades <a href="http://docs.python.org/dev/whatsnew/2.6.html">ett dokument som beskriver nyheterna i Python 2.6</a>.</p>

	<p><a href="http://python.org/"><img src="http://python.org/images/python-logo.gif" alt="Python" /></a></p>

	<p>Bland alla f&#246;r&#228;ndringar avsedda att bereda v&#228;gen f&#246;r <a href="http://docs.python.org/dev/whatsnew/2.6.html#python-3-0">Python 3.0</a>, <a href="http://docs.python.org/dev/whatsnew/2.6.html#pep-343-the-with-statement">with-satsen</a>, <a href="http://docs.python.org/dev/whatsnew/2.6.html#pep-3116-new-i-o-library">ett nytt I/O-bibliotek</a> och en massa andra sp&#228;nnande saker hittade jag ett par s&#228;kerhetsrelaterade saker v&#228;rda att uppm&#228;rksamma.</p>

	<p>En f&#246;r&#228;ndring jag ser fram emot &#228;r den nya modulen <em>ssl</em>. Tidigare versioner av Python har haft ett ganska rudiment&#228;rt st&#246;d f&#246;r <span class="caps">SSL </span>(vilket finns i <em>socket</em>-modulen). Men Python 2.6 inkluderar en helt ny modul som bygger p&#229; OpenSSL. Den nya modulen exponerar v&#228;sentligen hela OpenSSLs funktionalitet f&#246;r Pythonutvecklare.</p>

	<p>Jag har tidigare f&#246;rs&#246;kt bygga applikationer som processar och analyserar certifikat, men gett upp p&#229; grund av bristande st&#246;d. Nu &#228;r det snart dags att g&#246;ra ett nytt f&#246;rs&#246;k. <a href="http://docs.python.org/dev/library/ssl.html">Titta i dokumentationen till ssl-modulen f&#246;r mer information</a>.</p>

	<p>Den andra nyheten var mer av en &#246;verraskning. Beta tre av Python 2.6 introducerar ett nytt s&#228;tt att hantera regul&#228;ra uttryck d&#228;r <em>re</em><del>modulen (som hanterar regul&#228;ra uttryck) nu &#228;r en separat, specialanpassad virtuell maskin. Po&#228;ngen med detta &#228;r att regul&#228;ra uttryck som leder till patologiska beteenden inte riskerar att skada Pythons egen VM. Den nya re</del>implementationen inkluderar &#228;ven en ny regex-verifierare.</p>

	<p>Den nya implementationen har utvecklats av Google f&#246;r <a href="http://code.google.com/appengine/">Google App Engine</a> och ges nu tillbaka till Python som Apache-licensierad kod. <a href="http://bugs.python.org/issue3487" class="broken_link">H&#228;r finns mer information</a> om detta.</p>

	<p>Enligt den officiella tidplanen (<a href="http://www.python.org/dev/peps/pep-0361/"><span class="caps">PEP 361</span></a>) sl&#228;pps den officiella versionen av Python 2.den f&#246;rsta oktober.</p>
 <div class="shr-publisher-554"></div>

<p>No related posts.</p>
<p>Related posts brought to you by <a href='http://mitcho.com/code/yarpp/'>Yet Another Related Posts Plugin</a>.</p>]]></content:encoded>
			<wfw:commentRss>http://www.strombergson.com/kryptoblog/2008/09/03/sakerhetsnyheter-i-senaste-python-26-betan/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>MOS6502 &#8211; En Pythonbaserad emulator</title>
		<link>http://www.strombergson.com/kryptoblog/2008/08/29/mos6502-en-pythonbaserad-emulator/</link>
		<comments>http://www.strombergson.com/kryptoblog/2008/08/29/mos6502-en-pythonbaserad-emulator/#comments</comments>
		<pubDate>Fri, 29 Aug 2008 09:51:19 +0000</pubDate>
		<dc:creator>Joachim Strömbergson</dc:creator>
				<category><![CDATA[Krypto]]></category>
		<category><![CDATA[Om Kryptoblog]]></category>
		<category><![CDATA[Python]]></category>
		<category><![CDATA[Verktyg]]></category>
		<category><![CDATA[MOS6502]]></category>

		<guid isPermaLink="false">http://strombergson.com/kryptoblog/?p=548</guid>
		<description><![CDATA[<p>Jag har precis lagt upp en sida med mitt sommarhack <a href="http://strombergson.com/kryptoblog/mos6502-emulator/" class="broken_link"><span class="caps">MOS6502</span></a>. <span class="caps">MOS6502 </span>&#228;r en enkel, objektorienterad emulator av den gamla processorn <a href="http://en.wikipedia.org/wiki/6502"><span class="caps">MOS 6502</span></a> skriven i Python.</p>

	<p><img src="http://upload.wikimedia.org/wikipedia/commons/thumb/4/49/MOS_6502AD_4585_top.jpg/300px-MOS_6502AD_4585_top.jpg" alt="MOS 6502" /></p>

	<p>Processormodelln inkluderar i dag alla <span class="caps">API</span>-synliga register,&#8230;</p>


No related posts.

Related posts brought to you by <a href='http://mitcho.com/code/yarpp/'>Yet Another Related Posts Plugin</a>.]]></description>
			<content:encoded><![CDATA[	<p>Jag har precis lagt upp en sida med mitt sommarhack <a href="http://strombergson.com/kryptoblog/mos6502-emulator/" class="broken_link"><span class="caps">MOS6502</span></a>. <span class="caps">MOS6502 </span>&#228;r en enkel, objektorienterad emulator av den gamla processorn <a href="http://en.wikipedia.org/wiki/6502"><span class="caps">MOS 6502</span></a> skriven i Python.</p>

	<p><img src="http://upload.wikimedia.org/wikipedia/commons/thumb/4/49/MOS_6502AD_4585_top.jpg/300px-MOS_6502AD_4585_top.jpg" alt="MOS 6502" /></p>

	<p>Processormodelln inkluderar i dag alla <span class="caps">API</span>-synliga register, flaggor och pekare. Dock finns det ingen egentlig funktionalitet f&#246;r stack och interrupt. Vidare &#228;r inte de mer ortodoxa instruktionspekar, och adressber&#228;kningarna i <span class="caps">MOS 6502</span> med.</p>

	<p>D&#228;remot finns det st&#246;d f&#246;r att r&#228;kna cykler och instruktioner samt stega processorn en instruktion i taget. Vidare kan processorn dumpa valfri del av sitt minne. Tanken &#228;r att detta skall underl&#228;tta profilering och debuggning av assemblerprogram.</p>

	<p><span class="caps">MOS6502</span> klarar i dagsl&#228;get av att exekvera en delm&#228;ngd av alla instruktioner, och av dessa inte alla adesseringsmoder. Dock klarar den i alla fall av att k&#246;ra en implementation av <a href="http://en.wikipedia.org/wiki/RC4"><span class="caps">PRNG</span>-delen av str&#246;mkryptot <span class="caps">RC4</span></a>:</p>

	<p><code>js@sotis:&gt;time ./rc4_MOS6502.py<br />
Key byte 0: 2<br />
Key byte 100000: 34<br />
Key byte 200000: 27<br />
Key byte 300000: ba<br />
Key byte 400000: 56<br />
Key byte 500000: ac<br />
Key byte 600000: b<br />
Key byte 700000: 9c<br />
Key byte 800000: 6b<br />
Key byte 900000: 20<br />
Cycles executed: 80000000<br />
i_ptr =   40<br />
j_ptr =   81<br />
acc_reg = 8a<br />
x_reg =   8a<br />
y_reg =   8e<br />
carry =   0<br />
95.658u 0.103s 1:35.97 99.7%0+0k 0+16io 0pf+0w<br />
</code></p>

	<p>K&#246;rningen ovan &#228;r fr&#229;n ett exempelprogram som k&#246;r <span class="caps">PRNG</span>-delen av <span class="caps">RC4</span> en miljon g&#229;nger. Assemblerkoden (som <span class="caps">INTE </span>&#228;r optimerad) tar 80 cykler per varv. Som synes tar k&#246;rningen n&#228;stan 100 sekunder p&#229; min MacBook. Dvs jag f&#229;r n&#228;stan 1 MHz(!) i klockfrekvens och drygt 10 kByte/s i kryptoprestanda. Inte snabbt, men samtidigt inte illa av en emulerad processor som k&#246;rs i en emulerad milj&#246; (Python VM).</p>

	<p><span class="caps">RC4</span>-exemplet finns med i den release som finns att tanka ner p&#229; emulatorns sida. Jag tar v&#228;ldigt g&#228;rna emot kommentarer, buggrapporter, patchar och tips f&#246;r att utveckla emulatorn vidare.</p>
 <div class="shr-publisher-548"></div>

<p>No related posts.</p>
<p>Related posts brought to you by <a href='http://mitcho.com/code/yarpp/'>Yet Another Related Posts Plugin</a>.</p>]]></content:encoded>
			<wfw:commentRss>http://www.strombergson.com/kryptoblog/2008/08/29/mos6502-en-pythonbaserad-emulator/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Hantera nycklar med Googles KeyCzar</title>
		<link>http://www.strombergson.com/kryptoblog/2008/08/19/hantera-nycklar-med-googles-keyczar/</link>
		<comments>http://www.strombergson.com/kryptoblog/2008/08/19/hantera-nycklar-med-googles-keyczar/#comments</comments>
		<pubDate>Tue, 19 Aug 2008 04:21:05 +0000</pubDate>
		<dc:creator>Joachim Strömbergson</dc:creator>
				<category><![CDATA[Krypto]]></category>
		<category><![CDATA[Python]]></category>
		<category><![CDATA[Verktyg]]></category>

		<guid isPermaLink="false">http://strombergson.com/kryptoblog/?p=541</guid>
		<description><![CDATA[<p><a href="http://www.google.se">Google</a> har sl&#228;ppt ett verktyg f&#246;r att hantera nycklar kallat <a href="http://www.keyczar.org/">KeyCzar</a>.</p>

	<p><a href="http://www.keyczar.org/"><img src="http://www.keyczar.org/logo-trans.png" alt="KeyCzar" /></a></p>

	<p>Nyckelhantering &#228;r en av de riktigt sv&#229;ra momenten n&#228;r det kommer till kommunikationss&#228;kerhet (b&#229;de design och implementation). Tanken med KeyCzar &#228;r att underl&#228;tta f&#246;r applikationsutvecklare genom&#8230;</p>


No related posts.

Related posts brought to you by <a href='http://mitcho.com/code/yarpp/'>Yet Another Related Posts Plugin</a>.]]></description>
			<content:encoded><![CDATA[	<p><a href="http://www.google.se">Google</a> har sl&#228;ppt ett verktyg f&#246;r att hantera nycklar kallat <a href="http://www.keyczar.org/">KeyCzar</a>.</p>

	<p><a href="http://www.keyczar.org/"><img src="http://www.keyczar.org/logo-trans.png" alt="KeyCzar" /></a></p>

	<p>Nyckelhantering &#228;r en av de riktigt sv&#229;ra momenten n&#228;r det kommer till kommunikationss&#228;kerhet (b&#229;de design och implementation). Tanken med KeyCzar &#228;r att underl&#228;tta f&#246;r applikationsutvecklare genom att tillhandah&#229;lla ett bibliotek som sk&#246;ter nyckelhanteringen p&#229; ett bra s&#228;tt. N&#229;gra av funktionerna som KeyCzar erbjuder &#228;r:<br />
<ul></p>
	<p><li>Nyckelrotation och versionshantering av nycklar inkl att &#229;terkalla (d&#246;da) nycklar.</li><br />
<li>Implementation av <em>bra</em> algoritmer och <em>vettiga</em> nyckell&#228;ngder.</li><br />
<li>Generering av initialvektorer (IV) och signaturer.</li><br />
<li>St&#246;d f&#246;r att kryptera/dekryptera och verifiera.</li><br />
<li>St&#246;d f&#246;r applikationer skrivna i Java eller Python.</li><br />
</ul></p>

	<p>Bra algoritmer och vettiga l&#228;ngder &#228;r vad Google sj&#228;lva skriver, och det l&#229;ter fluffigt. Men tittar man i <a href="http://keyczar.googlecode.com/files/keyczar05b.pdf">den utm&#228;rkta designdokumentationen f&#246;r KeyCzar</a> ser man att de anv&#228;nder 1024-bit <span class="caps">DSA</span> med <span class="caps">SHA</span>-1 f&#246;r signering. KeyCzar st&#246;djer &#228;ven <span class="caps">RSA OAEP</span> med 512-2048 bitar f&#246;r publik kryptering och <span class="caps">RSA SHA</span>-1 med 512-2048 bitar f&#246;r publik signering. Vidare anv&#228;nds <span class="caps">AES 128</span>, 192 och 256 med <span class="caps">CBC</span>-mod f&#246;r symmetrisk kryptering och <span class="caps">HMAC</span> med <span class="caps">SHA</span>-1 och 256 bit nyckel f&#246;r symmetrisk signering.</p>

	<p>KeyCzar genererar <a href="http://en.wikipedia.org/wiki/X.509">X.509-f&#228;lt</a> och allt annat pill som brukar st&#228;lla till det vid implementationer. Allt du beh&#246;ver g&#246;ra &#228;r att skapa ett KeyCzar-objekt och sedan lita p&#229; att KeyCzar g&#246;r r&#228;tt.</p>

	<p>Enligt Google har KeyCzar ett enkelt <span class="caps">API</span>. Om det &#228;r enkelt eller ej &#228;r en bed&#246;mningsfr&#229;ga, men jag hade iaf inga problem att p&#229; n&#229;gra f&#229; minuter ladda ner, installera och sparka ig&#229;ng KeyCzar i en testapplikation. Google p&#229;pekar &#228;ven att:</p>

	<p><blockquote><br />
Keyczar sacrifices some flexibility in favor of safety and ease of use. Protecting developers from mistakes and handling details for them may also hide useful underlying features. Please see the <a href="http://code.google.com/p/keyczar/wiki/NonGoals">NonGoals</a> wiki page for a description of things that Keyczar is not.<br />
</blockquote></p>

	<p>Av de saker KeyCzar inte &#228;r listar Google bla att det inte &#228;r en ers&#228;ttning f&#246;r OpenSSL eller vara en komplett <span class="caps">PKI</span>-l&#246;sning.</p>

	<p>KeyCzar b&#246;rjade som Ben Lauris startprojekt n&#228;r han b&#246;rjade p&#229; Google. Projektet togs sedan &#246;ver av Googles s&#228;kerhetsteam som nu ansvarar f&#246;r utvecklingen.</p>

	<p>KeyCzar &#228;r <a href="http://www.apache.org/licenses/LICENSE-2.0.html">Apache 2.0-licensierad</a> och finns att ladda ner (<a href="http://keyczar.googlecode.com/files/keyczar05b.jar">Java</a>, <a href="http://keyczar.googlecode.com/files/keyczar05b-python.zip">Python</a>). H&#228;r finns <a href="http://www.keyczar.org/javadocs/index.html">Java-dokumentationen</a> och h&#228;r finns <a href="http://www.keyczar.org/pydocs/index.html">Python-dokumentationen</a>. Slutligen finns det &#228;ven ett <a href="http://groups.google.com/group/keyczar-discuss">diskussionforum (en grupp) f&#246;r KeyCzar</a>. &#196;n s&#229; l&#228;nge &#228;r det dock med KeyCzar-skaparna som postat i gruppen.</p>

	<p>Jag tycker att KeyCzar &#228;r ett bra initiativ av Google och om det fungerer som det st&#229;r i dokumentationen och det inte finns en massa fel i KeyCzar &#228;r det ett bra tillskott i verktygsl&#229;dan f&#246;r att bygga IT-s&#228;kerhet.</p>

	<p>En fundering: <span class="caps">I USA </span>&#228;r det popul&#228;rt att utn&#228;mna Tsarer f&#246;r olika saker. Ex finns det en <a href="http://www.washingtonpost.com/wp-dyn/content/article/2008/03/19/AR2008031903125.html">cybers&#228;kerhets-tsar</a>. Med tanke p&#229; alla <em>starka signaler</em> och liknande begrepp och koncept som verkar l&#229;nas in friskt, n&#228;r f&#229;r Sverige sin f&#246;rsta tsar-n&#229;gonting? Eller blir den svenska varianten <em>hertig</em> eller <em>baron</em>?)</p>

 <div class="shr-publisher-541"></div>

<p>No related posts.</p>
<p>Related posts brought to you by <a href='http://mitcho.com/code/yarpp/'>Yet Another Related Posts Plugin</a>.</p>]]></content:encoded>
			<wfw:commentRss>http://www.strombergson.com/kryptoblog/2008/08/19/hantera-nycklar-med-googles-keyczar/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>

