<?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/"
	xmlns:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>Nanoexplanations</title>
	<atom:link href="http://nanoexplanations.wordpress.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://nanoexplanations.wordpress.com</link>
	<description>the blog of Aaron Sterling</description>
	<lastBuildDate>Sun, 07 Apr 2013 15:21:36 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
<cloud domain='nanoexplanations.wordpress.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://s2.wp.com/i/buttonw-com.png</url>
		<title>Nanoexplanations</title>
		<link>http://nanoexplanations.wordpress.com</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="http://nanoexplanations.wordpress.com/osd.xml" title="Nanoexplanations" />
	<atom:link rel='hub' href='http://nanoexplanations.wordpress.com/?pushpress=hub'/>
		<item>
		<title>Wikileaks to release emails from Stratfor hack</title>
		<link>http://nanoexplanations.wordpress.com/2012/02/27/wikileaks-to-release-emails-from-stratfor-hack/</link>
		<comments>http://nanoexplanations.wordpress.com/2012/02/27/wikileaks-to-release-emails-from-stratfor-hack/#comments</comments>
		<pubDate>Mon, 27 Feb 2012 18:51:01 +0000</pubDate>
		<dc:creator>Aaron Sterling</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[security]]></category>
		<category><![CDATA[social history of computing]]></category>

		<guid isPermaLink="false">http://nanoexplanations.wordpress.com/?p=725</guid>
		<description><![CDATA[In December, members of the Antisec wing of the collective Anonymous claimed to have downloaded the email spools of the private intelligence firm Stratfor.  Today, Wikileaks held a press conference in which they announced that over 20 media organizations had &#8230; <a href="http://nanoexplanations.wordpress.com/2012/02/27/wikileaks-to-release-emails-from-stratfor-hack/">Continue reading <span class="meta-nav">&#8594;</span></a><img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=nanoexplanations.wordpress.com&#038;blog=20214953&#038;post=725&#038;subd=nanoexplanations&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p>In December, members of the Antisec wing of the collective Anonymous <a href="http://wp.me/p1mOPD-aA">claimed to have downloaded</a> the email spools of the private intelligence firm Stratfor.  Today, Wikileaks held a press conference in which <a href="http://wikileaks.org/the-gifiles.html">they announced </a>that over 20 media organizations had been secretly analyzing the 5 million+ emails, and they would now begin releasing the emails.  A few stories in mainstream western media have now appeared (e.g., <a href="http://www.forbes.com/sites/davidthier/2012/02/26/wikileaks-to-publish-5-million-stratfor-emails-anonymous-may-be-involved/">Forbes</a>, <a href="http://www.wired.com/threatlevel/2012/02/wikileaks-anonymous-partners/">Wired</a>).  I&#8217;ve followed this hack a bit, and I played <a href="https://www.youtube.com/watch?v=-BJSVHZY_Wk">the video</a> of the Wikileaks press conference in the background this morning.  Here are a few things that interested me about the press conference that I haven&#8217;t seen in media reports.</p>
<p>Most striking to me was how differently reporters assessed the accuracy of Stratfor&#8217;s intel, depending on geography.  Apparently, Stratfor investigated PETA on behalf of Coca-Cola, and <a href="http://youtu.be/P7N-WUWqXz0">investigated Bhopal activists</a> on behalf of Dow Chemical.  While some might find this concerning, I didn&#8217;t hear any indication that the information obtained by those efforts was false.  In contrast, two reporters from the <a href="http://english.al-akhbar.com/">Al Akhbar newspaper</a> in Lebanon stated that much of the information gathered about the situation in Beiruit was false.</p>
<p>The Al Akhbar reporters said this situation was a particular problem, because the CIA was recently <a href="http://articles.latimes.com/2011/nov/20/world/la-fg-cia-spy-20111121">forced to shut down</a> its intelligence operations in Lebanon.  This increased US reliance on a private firm like Stratfor.  Apparently, though, Stratfor, to maximize profits, provided a lot of intel on Lebanon by using Google Translate to read open source material written in Arabic, literally losing the meaning in translation, instead of hiring analysts fluent in the language.  Further, their evaluation of sources was, according to one reporter, &#8220;racist&#8221; in the sense that if an ideologically extreme Arab made a statement and an ideologically extreme Israeli made a different statement, Stratfor analysts would discount the Arab and take the Israeli seriously.</p>
<p>I&#8217;ve read only a few of the emails myself, and I can&#8217;t speak to the accuracy of any claim.  However, it does seem clear that the notion of Stratfor just being a service that reads and analyzes open-source material is incorrect.  Unless the released emails are heavily fabricated, Stratfor initiated intelligence gathering operations on the ground, bribed confidential informants around the world, and encouraged their employees to control sources by &#8220;psychological&#8221; or &#8220;sexual&#8221; means.</p>
<p>Finally, no matter your personal political persuasion, Stratfor&#8217;s <a href="http://wikileaks.org/IMG/pdf/The_Stratfor_Glossary_of_Useful_Baffling_and_Strange_Intelligence_Terms.pdf">internal glossary of intelligence terms</a> is <em>hilarious</em>.  I will close with some definitions from it.</p>
<blockquote><p><strong>Backgrounder</strong>: General analysis that gives the customer better situational awareness. The customer never actually reads the Backgrounder. Its primary use is as cover when the customer screws something up. Backgrounders are the basic intelligence tool for shifting blame to the customer.</p></blockquote>
<p>or</p>
<blockquote><p><strong>He Won the Cold War</strong>: Egomaniacal Bullshitter</p></blockquote>
<p>and</p>
<blockquote><p><strong>He Won the Vietnam War</strong>: Deranged Egomaniacal Bulshitter</p></blockquote>
<p>and, in conclusion, a definition made more intriguing by (and perhaps at odds with) the claims of the Al Akhbar reporters:</p>
<blockquote><p><strong>Duplicitous Little Bastards</strong>: Israeli intelligence</p></blockquote>
<br /> Tagged: <a href='http://nanoexplanations.wordpress.com/tag/security/'>security</a>, <a href='http://nanoexplanations.wordpress.com/tag/social-history-of-computing/'>social history of computing</a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/nanoexplanations.wordpress.com/725/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/nanoexplanations.wordpress.com/725/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=nanoexplanations.wordpress.com&#038;blog=20214953&#038;post=725&#038;subd=nanoexplanations&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://nanoexplanations.wordpress.com/2012/02/27/wikileaks-to-release-emails-from-stratfor-hack/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/fa537ee1a516975bb8ec4733c208b528?s=96&#38;d=identicon&#38;r=PG" medium="image">
			<media:title type="html">nanoexplanations</media:title>
		</media:content>
	</item>
		<item>
		<title>A few Tweets</title>
		<link>http://nanoexplanations.wordpress.com/2012/02/03/i-joined-twitter/</link>
		<comments>http://nanoexplanations.wordpress.com/2012/02/03/i-joined-twitter/#comments</comments>
		<pubDate>Fri, 03 Feb 2012 15:00:15 +0000</pubDate>
		<dc:creator>Aaron Sterling</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[cheminformatics]]></category>
		<category><![CDATA[chemoinformatics]]></category>
		<category><![CDATA[cryptography]]></category>
		<category><![CDATA[security]]></category>

		<guid isPermaLink="false">http://nanoexplanations.wordpress.com/?p=708</guid>
		<description><![CDATA[I joined Twitter at the end of December 2011 because I realized that I was using my computer less and less, and my smart phone more and more, relatively speaking &#8212; and I was using my phone to find and &#8230; <a href="http://nanoexplanations.wordpress.com/2012/02/03/i-joined-twitter/">Continue reading <span class="meta-nav">&#8594;</span></a><img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=nanoexplanations.wordpress.com&#038;blog=20214953&#038;post=708&#038;subd=nanoexplanations&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p>I joined Twitter at the end of December 2011 because I realized that I was using my computer less and less, and my smart phone more and more, relatively speaking &#8212; and I was using my phone to find and read content that intrigued me.  I plan to use my Twitter account almost as a note-taking service &#8212; I will tweet news articles, etc., that intrigue me and that I might want to come back to later.</p>
<p>My account is <a href="https://twitter.com/#!/aaron_sterling">@aaron_sterling</a>, and you can see it in the rightmost column of this blog.  Here are three items that are good examples of things I found interesting, but which, after today, I won&#8217;t be &#8220;elevating&#8221; to the status of a blog entry.</p>
<ol>
<li>The computer security company McAfee has produced a document titled <a href="https://www.mcafee.com/us/resources/reports/rp-threat-predictions-2012.pdf">2012 Threat Predictions</a> (pdf file).  I skipped over some of it, but the parts I read were fascinating.  For example, they see BitCoin as an extremely insecure currency, they believe illegal spam will diminish and be replaced by &#8220;legal spam&#8221; (equally annoying), and they think far more attackers will target hardware exploits instead of the traditional software exploits.  Worth a look.</li>
<li>Enrique Zabala has produced <a href="http://www.cs.bc.edu/~straubin/cs381-05/blockciphers/rijndael_ingles2004.swf">a Flash animation</a> that explains Rijndael/AES visually.  It is beautiful.</li>
<li>Rajarshi Guha and co-authors are designing <a href="http://blog.rguha.net/?p=993">a type-ahead chemical substructure search engine</a>.  This addresses a longstanding open problem in cheminformatics, which is: searching for chemicals in a database is slow (in worst case probably exponential because the Subgraph Isomorphism Problem is NP-complete), but can it be made faster?  At least for important special cases, this tool seems to be competitive in speed with Google&#8217;s type-ahead search engine for other content: it provides the chemist suggestions, given the prefix of the input available, before the chemist even hits the enter key.</li>
</ol>
<br /> Tagged: <a href='http://nanoexplanations.wordpress.com/tag/cheminformatics/'>cheminformatics</a>, <a href='http://nanoexplanations.wordpress.com/tag/chemoinformatics/'>chemoinformatics</a>, <a href='http://nanoexplanations.wordpress.com/tag/cryptography/'>cryptography</a>, <a href='http://nanoexplanations.wordpress.com/tag/security/'>security</a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/nanoexplanations.wordpress.com/708/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/nanoexplanations.wordpress.com/708/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=nanoexplanations.wordpress.com&#038;blog=20214953&#038;post=708&#038;subd=nanoexplanations&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://nanoexplanations.wordpress.com/2012/02/03/i-joined-twitter/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/fa537ee1a516975bb8ec4733c208b528?s=96&#38;d=identicon&#38;r=PG" medium="image">
			<media:title type="html">nanoexplanations</media:title>
		</media:content>
	</item>
		<item>
		<title>Watermarking molecules</title>
		<link>http://nanoexplanations.wordpress.com/2012/01/27/watermarking-molecules/</link>
		<comments>http://nanoexplanations.wordpress.com/2012/01/27/watermarking-molecules/#comments</comments>
		<pubDate>Fri, 27 Jan 2012 15:00:46 +0000</pubDate>
		<dc:creator>Aaron Sterling</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[cheminformatics]]></category>
		<category><![CDATA[chemoinformatics]]></category>
		<category><![CDATA[cryptography]]></category>

		<guid isPermaLink="false">http://nanoexplanations.wordpress.com/?p=687</guid>
		<description><![CDATA[I&#8217;ve posted twice about Anonymous hacking into Stratfor &#8212; and, more generally, their hacktivism has been making bigger and bigger waves.  CNN recently ran a fairly positive story on the support hacktivists are providing the Occupy movement.  Many of these &#8230; <a href="http://nanoexplanations.wordpress.com/2012/01/27/watermarking-molecules/">Continue reading <span class="meta-nav">&#8594;</span></a><img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=nanoexplanations.wordpress.com&#038;blog=20214953&#038;post=687&#038;subd=nanoexplanations&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p><span style="float:left;padding:5px;"><a href="http://researchblogging.org/news/?p=3210"><img alt="This post was chosen as an Editor's Selection for ResearchBlogging.org" src="http://www.researchblogging.org/public/citation_icons/rb_editors-selection.png" style="border:0;" /></a></span>I&#8217;ve posted twice about Anonymous hacking into Stratfor &#8212; and, more generally, their hacktivism has been making bigger and bigger waves.  CNN recently ran <a href="https://www.youtube.com/watch?v=NUZ81QiX76Q">a fairly positive story</a> on the support hacktivists are providing the Occupy movement.  Many of these hacktivists are quite active on Twitter and elsewhere.  However, from the perspective of both international and corporate espionage, the &#8220;quiet&#8221; hacks are the worst: someone makes off with information and the victim never knows.  As security expert Kevin Mandia <a href="https://www.nytimes.com/2011/12/30/technology/hacker-attacks-like-stratfors-require-fast-response.html?_r=1">told the New York Times</a>:</p>
<blockquote><p>The hacks that do the most damage don&#8217;t have Twitter feeds.</p></blockquote>
<p>Another security expert, Jeremy Falkenrath, in <a href="http://www.bloomberg.com/video/83389600/">an interview on Bloomberg News </a>(at about 7:00 into the video), discussed, quite matter-of-factly, the hacker-for-hire market that companies in the chemical industry deploy against one another to learn trade secrets.  With this as the backdrop, I&#8217;d like to discuss one of the main open questions of cheminformatics: <em>Is secure encryption of molecules possible?  </em>For example, it would be nice if a company could encrypt a molecule, but then allow some third party to run <em>in silico</em> tests with it, having access to the molecule&#8217;s properties but not the structure itself.<em><br />
</em></p>
<p><strong>Encryption of molecules</strong></p>
<p>Part of the reason for the traditional closed-data policies of pharmaceutical companies is the total absence of any way to encrypt chemical structural information.  This has been recognized as an open problem for many years, the American Chemical Society held a special meeting in 2005 about it, <a href="http://www.nature.com/nrd/journal/v4/n3/full/nrd1683.html">a summary of which</a> appeared in Nature.  While there were presenters at that meeting who felt molecular encryption was possible, and others who felt it was impossible, the practical reality as we enter 2012 is that, so far, the voices in favor of &#8220;impossible&#8221; have been correct.  Almost no new theoretical literature has been produced since 2005, and the industry appears no nearer a practical solution than it was in, say, 1975.</p>
<p>I recently had an idea to expand upon a proposal by Eggers et al. in 2001, to watermark <em>in silico</em> representations of molecules.  My idea, however, is going nowhere &#8212; just like all other attempts so far to implement chemical watermarking.  At least I can get a blog entry out of my failure though!  I hope readers of this page find my little attempt entertaining or informative.</p>
<p><strong>Acknowledgement</strong>: The material in this post is based on conversations I have had with cheminformaticians Rajarshi Guha and Jörg Kurt Wegner.</p>
<p><span id="more-687"></span></p>
<p><strong>Watermarking molecules</strong></p>
<p>A <a href="https://en.wikipedia.org/wiki/Digital_watermarking">digital watermark</a>, of course, is a special code embedded into a file so that its provenance can be determined.  The file has to be large enough so that perturbations to individual data points are not feasibly discoverable to a would-be forger, even though there are enough data points to produce a unique fingerprint for that file, at least with high probability.  In 2001, Eggers et al. published <a href="http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.62.9842">Digital Watermarking of Chemical Structure Sets</a>, which proposed the use of <a href="http://www.stanford.edu/~bgirod/pdfs/EggersTrans_SP2003.pdf">SCS watermarking</a> on databases of molecules, so that the company that had created or owned the molecules would be able to prove that another company&#8217;s claim to independent discovery was, in fact, infringement.</p>
<p>A single molecule is not large enough to embed an indiscernible watermark, which is why Eggers et al. considered &#8220;structure sets&#8221; &#8212; a large list of molecules that are somehow related.  Technically, each molecule is considered as a graph embedded into three-dimensional space.  (In fact, this graph may be the &#8220;reduced graph,&#8221; or a graph of the molecule with all hydrogen atoms removed, because reduced graphs performed better on one empirical test in their study.)  I will ignore a lot of technical details here, but the core idea behind their watermarking process is to perturb the 3D coordinate of specially-chosen atoms by a small, &#8220;random-appearing&#8221; amount.  If enough locations of atoms in the structure set are modified this way, it produces a digital watermark.</p>
<p>More interesting to me than the watermarking method was the list of potential attacks Eggers et al. considered.  If the attacker can do <em>anything</em>, it is famously difficult to encrypt data while still providing functionality.  However, we are working in the chemistry domain.  On the one hand, this adds technical obstacles (due to &#8220;real-world messiness&#8221;), but, on the other hand, it may limit the attacks that can be performed on the system, since the attackers need to obtain a structure that is chemically useful, not just some fragment of plaintext.  Eggers et al. tried to provide a watermarking method resilient to the following attacks.</p>
<ul>
<li>Removal of data from the original dataset.</li>
<li>Injection of non-watermarked structures into the dataset.</li>
<li>Reordering of individual records in the dataset.</li>
<li>Reordering of atoms and bonds in the structure records.</li>
<li>Global 3D transforms, e.g., rotations or translations.</li>
<li>Changes of structural notation conventions.</li>
<li>Removal of hydrogen atoms from structures.</li>
</ul>
<p><strong>My new idea and why it fails</strong></p>
<p>I will cut to the chase and explain why my idea doesn&#8217;t work &#8212; and why, perhaps, no watermarking concept is feasible in the chemical domain.  Then I will conclude, anticlimactically, by describing my idea, in case someone can get something out of it.</p>
<p>Consider the domain of music piracy.  The attacker can hear the music, and perhaps even has access to guitar tabs or a symphony score.  However, it would not be cost-benefit for the attacker to hire a brand-new orchestra to re-record the original piece of music &#8212; and, even if the attacker did that, the new track would not sound exactly the same.  By contrast, in chemistry, every carbon atom is identical to every other carbon atom.  So in the case of a chemikcal structure set, the attacker could choose a molecule(s) of interest, and then just rebuild the structure from scratch, and use the 3D coordinates (and all other information) from the brand new molecule.  Presto, no watermark.</p>
<p>Eggers et al. consider this attack, sort of.  They say:</p>
<blockquote><p>We assume that no unlicensed copies of the software used to generate the original protected dataset are provided in circulation.  Furthermore, the computation time for large datasets in often significant.  Depending on the type of algorithm used and the size of the dataset, it can be up to several CPU months.  Thus, simple regeneration of the data is often not a feasible approach.</p></blockquote>
<p>While the claim about significant recomputation time may have been true in 2001, it no longer appears to be.  As one chemist said to me, recomputation of a molecular structure &#8220;wouldn&#8217;t be hard at all.&#8221;  This leaves the only defense of a watermark the unavailability of licensed software to perform the recomputation.  That, however, relies on an attacker who is willing to perform industrial espionage but who draws the line at software piracy.  So, no go.</p>
<p>Now we get to my idea.  In the field of image processing there has been a lot of work since 2001 on 3D watermarking.  One survey is <a href="http://www.springerlink.com/content/m117v1517384r181/">3D Watermarking: Techniques and Directions</a>, by Koz et al., which considers strengths and weaknesses of many different watermarking techniques.  One method that caught my eye was <a href="http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.59.7597&amp;rep=rep1&amp;type=pdf">Robust Image Watermarking Based on Generalized Radon Transformations</a>, by Simitopolous et al., because it is specifically designed to be resistant to &#8220;geometric attacks&#8221; like rotation, scaling, translaton and cropping, which closely follow the list of anticipated attacks in the Eggers et al. paper.  Applying this to chemistry might provide a much better watermarking tool than the more generic watermarking method chosen by Eggers et al.</p>
<p>However, I&#8217;ve decided not to consider this further, because it seems that the most I could get out of it would be a paper that would be theoretically &#8220;cute,&#8221; with no chance of being practical, ever.  I would love to be proven wrong, so if you can think of a way to get around the &#8220;rebuild the molecule from scratch&#8221; attack, please do comment.  In the meantime, I am on to other things.</p>
<p><span style="float:left;padding:5px;"><a href="http://www.researchblogging.org"><img style="border:0;" src="http://www.researchblogging.org/public/citation_icons/rb2_tiny.png" alt="ResearchBlogging.org" /></a></span> <span class="Z3988" title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&amp;rft.jtitle=Information+Hiding&amp;rft_id=info%3Adoi%2F10.1007%2F3-540-45496-9_15&amp;rfr_id=info%3Asid%2Fresearchblogging.org&amp;rft.atitle=Digital+Watermarking+of+Chemical+Structure+Sets&amp;rft.issn=&amp;rft.date=2001&amp;rft.volume=&amp;rft.issue=&amp;rft.spage=200&amp;rft.epage=214&amp;rft.artnum=http%3A%2F%2Fwww.springerlink.com%2Fcontent%2Fye6vt84eqneb96j2%2F&amp;rft.au=Joachim+J.+Eggers&amp;rft.au=W.D.+Ihlenfeldt&amp;rft.au=Bern+Girod&amp;rfe_dat=bpr3.included=1;bpr3.tags=Chemistry%2CComputer+Science+%2F+Engineering%2CEncryption%2C+Cheminformatics">Joachim J. Eggers, W.D. Ihlenfeldt, &amp; Bernd Girod (2001). Digital Watermarking of Chemical Structure Sets <span style="font-style:italic;">Information Hiding</span>, 200-214 DOI: <a href="http://dx.doi.org/10.1007/3-540-45496-9_15" rev="review">10.1007/3-540-45496-9_15</a></span></p>
<br /> Tagged: <a href='http://nanoexplanations.wordpress.com/tag/cheminformatics/'>cheminformatics</a>, <a href='http://nanoexplanations.wordpress.com/tag/chemoinformatics/'>chemoinformatics</a>, <a href='http://nanoexplanations.wordpress.com/tag/cryptography/'>cryptography</a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/nanoexplanations.wordpress.com/687/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/nanoexplanations.wordpress.com/687/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=nanoexplanations.wordpress.com&#038;blog=20214953&#038;post=687&#038;subd=nanoexplanations&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://nanoexplanations.wordpress.com/2012/01/27/watermarking-molecules/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/fa537ee1a516975bb8ec4733c208b528?s=96&#38;d=identicon&#38;r=PG" medium="image">
			<media:title type="html">nanoexplanations</media:title>
		</media:content>

		<media:content url="http://www.researchblogging.org/public/citation_icons/rb_editors-selection.png" medium="image">
			<media:title type="html">This post was chosen as an Editor&#039;s Selection for ResearchBlogging.org</media:title>
		</media:content>

		<media:content url="http://www.researchblogging.org/public/citation_icons/rb2_tiny.png" medium="image">
			<media:title type="html">ResearchBlogging.org</media:title>
		</media:content>
	</item>
		<item>
		<title>Ian Stewart&#8217;s Mathematics of Life</title>
		<link>http://nanoexplanations.wordpress.com/2012/01/20/ian-stewarts-mathematics-of-life/</link>
		<comments>http://nanoexplanations.wordpress.com/2012/01/20/ian-stewarts-mathematics-of-life/#comments</comments>
		<pubDate>Fri, 20 Jan 2012 15:00:21 +0000</pubDate>
		<dc:creator>Aaron Sterling</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[book review]]></category>
		<category><![CDATA[general audience]]></category>

		<guid isPermaLink="false">http://nanoexplanations.wordpress.com/?p=676</guid>
		<description><![CDATA[This post is based on a book review I recently wrote on The Mathematics of Life, by Ian Stewart. A final version of the review will appear in a future issue of SIGACT News.  Please feel free to download a &#8230; <a href="http://nanoexplanations.wordpress.com/2012/01/20/ian-stewarts-mathematics-of-life/">Continue reading <span class="meta-nav">&#8594;</span></a><img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=nanoexplanations.wordpress.com&#038;blog=20214953&#038;post=676&#038;subd=nanoexplanations&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p>This post is based on a book review I recently wrote on <a href="http://www.amazon.com/Mathematics-Life-Ian-Stewart/dp/0465022383">The Mathematics of Life</a>, by Ian Stewart. A final version of the review will appear in a future issue of <a href="http://www.sigact.org/SIGACT_News/">SIGACT News</a>.  Please feel free to download <a href="http://nanoexplanations.files.wordpress.com/2012/01/mathematicsoflife.pdf">a pdf version of the full preprint</a>, or just read an abbreviated version of it here, in blog format.</p>
<p><strong>Introduction</strong></p>
<p>Ian Stewart is one of the premier popularizers of mathematics.  He has written over twenty books about math for lay audiences.  He has also co-authored science fiction, and books on the science of science fiction (three books on &#8220;the science of discworld&#8221;).  In his newest effort, <em>The Mathematics of Life</em>, Stewart focuses his talents on the mathematics of biology, and the result is superb.  In an easy, flowing read, with dozens of diagrams and scholarly footnotes &#8212; but without a single formula &#8212; he introduces the reader to a wide range of interactions between mathematicians and biologists.  I heartily recommend this book.<br />
<span id="more-676"></span><br />
<strong>Turing&#8217;s morphogenesis in the modern day<br />
</strong></p>
<p><em>The Mathematics of Life</em> contains 19 chapters.  Chapter 8, &#8220;The Book of Life,&#8221; focuses on the Human Genome Project, and algorithmic challenges of DNA sequencing.  However, as this possibly the area most familiar to SIGACT News readers, I will only mention it briefly, and, instead, focus on chapters that introduced me to areas of mathematical biology I had not previously encountered.</p>
<p>Perhaps the most direct connection to (the roots of) theoretical computer science comes in Chapter 13, &#8220;Spots and Stripes,&#8221; where Stewart considers Alan Turing&#8217;s famous paper, <a href="http://www.jstor.org/stable/92463">The Chemical Basis of Morphogenesis</a>, and sketches the development of biological thought about animal markings since Turing&#8217;s groundbreaking proposal.  As Stewart says:</p>
<blockquote><p>For half a century, mathematical biologists have built on Turing&#8217;s ideas.  His specific model, and the biological theory of pattern-formation that motivated it, turns out to be too simple to explain many details of animal markings, but it captures many important features in a simple context, and points the way to models that are biologically realistic.</p></blockquote>
<p>Turing proposed &#8220;reaction-diffusion&#8221; equations to model the creation of patterns on animals during embryonic development.  As noted by Stewart, Hans Meinhardt, in <a href="http://www.amazon.com/Algorithmic-Beauty-Sea-Shells/dp/3540440100">The Algorithmic Beauty of Seashells</a>, has shown that the patterns on many seashells match the predictions of variations of Turing&#8217;s equations.  The mathematician James Murray extended Turing&#8217;s ideas with wave systems, and proved the following theorem: <em>a spotted animal can have a striped tail, but a striped animal cannot have a spotted tail</em>.  Intuitively, this is because &#8220;the smaller diameter of the tail leaves less room for stripes to become unstable, whereas this instability is more likely on the larger-diameter body.&#8221;</p>
<p><strong>Teaser for full review</strong></p>
<p>In the pdf I also discuss Stewart&#8217;s presentation of evolutionary game theory to model biological evolution, and the use of high-dimensional geometry to model the self-assembly of chemical virus coats.  Beyond that, there is much more great material in Stewart&#8217;s book that I did not mention at all.  The prose style is friendly and clear throughout, without talking down to the reader.</p>
<p>I consider this to be an excellent introduction to the mathematics of biology, for both amateurs and professionals. Seasoned researchers are likely to learn &#8220;teasers&#8221; about areas unfamiliar to them, and smart people &#8220;afraid of math&#8221; can read the book and enjoy the material.  Highly recommended.  I will conclude this review with the same words Stewart used to conclude the book:</p>
<blockquote><p>Instead of isolated clusters of scientists, obsessed with their own narrow specialty, today&#8217;s scientific frontiers increasingly require teams of people with diverse, complementary interests.  Science is changing from a collection of villages to a worldwide community.  And if the story of mathematical biology shows anything, it is that interconnected communities can achieve things that are impossible for their individual members.</p>
<p>Welcome to the global ecosystem of tomorrow&#8217;s science.</p></blockquote>
<p><span style="float:left;padding:5px;"><a href="http://www.researchblogging.org"><img alt="ResearchBlogging.org" src="http://www.researchblogging.org/public/citation_icons/rb2_tiny.png" style="border:0;" /></a></span> <span class="Z3988" title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&amp;rft.jtitle=Book%3A+ISBN+0465022383&amp;rft_id=info%3A%2F&amp;rfr_id=info%3Asid%2Fresearchblogging.org&amp;rft.atitle=The+Mathematics+of+Life&amp;rft.issn=&amp;rft.date=2011&amp;rft.volume=&amp;rft.issue=&amp;rft.spage=&amp;rft.epage=&amp;rft.artnum=&amp;rft.au=Ian+Stewart&amp;rfe_dat=bpr3.included=1;bpr3.tags=Biology%2CComputer+Science+%2F+Engineering%2CMathematics">Ian Stewart (2011). The Mathematics of Life <span style="font-style:italic;">Book: ISBN 0465022383</span></span></p>
<br /> Tagged: <a href='http://nanoexplanations.wordpress.com/tag/book-review/'>book review</a>, <a href='http://nanoexplanations.wordpress.com/tag/general-audience/'>general audience</a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/nanoexplanations.wordpress.com/676/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/nanoexplanations.wordpress.com/676/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=nanoexplanations.wordpress.com&#038;blog=20214953&#038;post=676&#038;subd=nanoexplanations&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://nanoexplanations.wordpress.com/2012/01/20/ian-stewarts-mathematics-of-life/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/fa537ee1a516975bb8ec4733c208b528?s=96&#38;d=identicon&#38;r=PG" medium="image">
			<media:title type="html">nanoexplanations</media:title>
		</media:content>

		<media:content url="http://www.researchblogging.org/public/citation_icons/rb2_tiny.png" medium="image">
			<media:title type="html">ResearchBlogging.org</media:title>
		</media:content>
	</item>
		<item>
		<title>My own information was just compromised in the Zappos hack</title>
		<link>http://nanoexplanations.wordpress.com/2012/01/16/my-own-information-was-just-compromised-in-the-zappos-hack/</link>
		<comments>http://nanoexplanations.wordpress.com/2012/01/16/my-own-information-was-just-compromised-in-the-zappos-hack/#comments</comments>
		<pubDate>Mon, 16 Jan 2012 15:27:36 +0000</pubDate>
		<dc:creator>Aaron Sterling</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://nanoexplanations.wordpress.com/?p=718</guid>
		<description><![CDATA[In an unfortunate coincidence, as a thematic followup to my previous post on hacking, a &#8220;throwaway&#8221; email I use, and partial credit card information of mine, has just been compromised in the recent hack of Zappos.com.  Infosec Island has a &#8230; <a href="http://nanoexplanations.wordpress.com/2012/01/16/my-own-information-was-just-compromised-in-the-zappos-hack/">Continue reading <span class="meta-nav">&#8594;</span></a><img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=nanoexplanations.wordpress.com&#038;blog=20214953&#038;post=718&#038;subd=nanoexplanations&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p>In an unfortunate coincidence, as a thematic followup to <a href="https://nanoexplanations.wordpress.com/2012/01/13/password-analysis-from-the-stratfor-hack/">my previous post</a> on hacking, a &#8220;throwaway&#8221; email I use, and partial credit card information of mine, has just been compromised in the recent hack of Zappos.com.  Infosec Island has <a href="http://infosecisland.com/blogview/19393-Zapposcom-Hack-24-Million-Customer-Records-Breached.html">a good blog post</a> about this data breach,  and I was one of 24 million Zappos customers who received the email quoted in that blog post.</p>
<p>I&#8217;ve deleted my credit card information from Zappos, and from one other online retailer I use.  To be honest, I&#8217;m not sure who else might have my sensitive information &#8212; and I bet I&#8217;m not alone in that.  I&#8217;m not sure what precautions I will take in the future when shopping online, but I plan never to save my credit card information again.</p>
<p>Stay safe, everyone.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/nanoexplanations.wordpress.com/718/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/nanoexplanations.wordpress.com/718/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=nanoexplanations.wordpress.com&#038;blog=20214953&#038;post=718&#038;subd=nanoexplanations&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://nanoexplanations.wordpress.com/2012/01/16/my-own-information-was-just-compromised-in-the-zappos-hack/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/fa537ee1a516975bb8ec4733c208b528?s=96&#38;d=identicon&#38;r=PG" medium="image">
			<media:title type="html">nanoexplanations</media:title>
		</media:content>
	</item>
		<item>
		<title>Password analysis from the Stratfor hack</title>
		<link>http://nanoexplanations.wordpress.com/2012/01/13/password-analysis-from-the-stratfor-hack/</link>
		<comments>http://nanoexplanations.wordpress.com/2012/01/13/password-analysis-from-the-stratfor-hack/#comments</comments>
		<pubDate>Fri, 13 Jan 2012 15:00:02 +0000</pubDate>
		<dc:creator>Aaron Sterling</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[security]]></category>
		<category><![CDATA[social history of computing]]></category>

		<guid isPermaLink="false">http://nanoexplanations.wordpress.com/?p=664</guid>
		<description><![CDATA[I will return to blogging about theoretical computer science and algorithm-related mathematics next week, but I wanted to take a few minutes today to mention a rare research opportunity that has arisen as a result of the hack of the &#8230; <a href="http://nanoexplanations.wordpress.com/2012/01/13/password-analysis-from-the-stratfor-hack/">Continue reading <span class="meta-nav">&#8594;</span></a><img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=nanoexplanations.wordpress.com&#038;blog=20214953&#038;post=664&#038;subd=nanoexplanations&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p>I will return to blogging about theoretical computer science and algorithm-related mathematics next week, but I wanted to take a few minutes today to mention a rare research opportunity that has arisen as a result of <a href="https://nanoexplanations.wordpress.com/2011/12/27/shadow-cia-apparently-stored-credit-card-information-in-cleartext/">the hack</a> of the private global intelligence company Stratfor.  This opportunity is the list of 860,000 (MD5 hashed) passwords to accounts of people in journalism, government contracting, the military, etc. &#8212; in short, people who &#8220;should&#8221; know how to create and maintain strong passwords.  Most of the MD5 hashes have now been cracked, and preliminary analysis indicates that even people who &#8220;know what they are doing&#8221; use weak passwords.</p>
<p>Stratfor, by the way, finally has their website back online, with a <a href="http://www.stratfor.com/hacking-news">Hacking News section</a>, in which they tell their side of the story.  (They verify that they stored credit card information in cleartext, as Anonymous had claimed, and they state that they were working with the FBI on an investigation into a hack of their systems before the hack went public on Christmas Eve.)  About a week ago, the hackers <a href="http://bolt.thexfil.es/84e9h!t">released a zine</a> which includes a press release about the Stratfor hack and two others, and a log of the hacks themselves.</p>
<p><span id="more-664"></span></p>
<p><strong>Passwords have always been weak</strong></p>
<p>Zviran and Haga published <a href="http://www.rmu.edu/SentryHTML/pdf/lib_finn_DISC8710_password_security.pdf">Password Security: An Empirical Study</a> in 1999.  They analyzed passwords used at a Department of Defense facility in California.  They discovered that the vast majority of passwords in use were extremely insecure.  80% of the passwords were 4-7 characters in length, 80% used alphabetic characters only, and 80% of the users had never changed their password.  Fast-forwarding to the present, passwords of Stratfor subscribers are not much better.  The most common password is &#8220;stratfor&#8221; and there are single-character passwords.</p>
<p>Steve Ragan was one of the first to <a href="http://www.thetechherald.com/articles/Report-Analysis-of-the-Stratfor-Password-List">publish an analysis</a> of the Stratfor passwords.  His conclusion:</p>
<blockquote><p>We’re sorry to report that the state of password management and creation is still living in the Dark Ages.</p></blockquote>
<p>Ragan cracked almost 82,000 of the hashed passwords in under five hours, using one desktop computer and Hashcat, an off-the-shelf password cracking tool.  He provides lists of the most common passwords, and his own &#8220;favorites&#8221; from the database, including the password *****  (five asterisks).</p>
<p>The <a href="http://news.electricalchemy.net/2012/01/stratfor-breach-better-password.html">most comprehensive analysis</a> of the Stratfor passwords I have seen is by Gerrit Padgham, who cracked 86% of the unique hashes using GPU technology.  Padgham writes:</p>
<blockquote><p>Probably the surprising and under-reported insight we found is that a majority (about 630K) of the passwords we recovered appear to be randomly generated by the Stratfor site at registration time.  These passwords all have a very specific set of characteristics.  They are eight characters long. They consist of uppercase and lowercase letters, and digits (&#8216;mixedalphanum&#8217;).  With a mid-range dual GPU machine, we were able to test and recover all passwords for that entire character set and length in just over 24 hours.</p>
<p>So what does this tell us?  It&#8217;s likely that during enrollment, the system generates a password automatically, and e-mails it to the user.  Normally users are required to change the randomly generated password on subsequent logins.  <strong>So it seems that well over three-quarters of all the breached accounts were created but never used.</strong> It&#8217;s possible that Stratfor auto-generated a password and didn&#8217;t require a change on next login, but based on our discussions with users exposed by the breach it appears that this was not the case.</p></blockquote>
<p><strong>Better security protocols going forward</strong></p>
<p>There have been a lot of posts on security blogs about lessons to learn from the Stratfor hack.   One, <a href="http://www.secureconsulting.net/2012/01/the-gross-example-of-stratfor.html">by Ben Tomhave,</a> lists the errors in Stratfor&#8217;s (lack of) security.  Tomhave was a Stratfor customer, and his information was compromised.  He is clearly very angry at Stratfor, and hopes they go out of business as a result of their incompetence.  (That scenario seems unlikely to me.)  However, tone aside, Tomhave makes strong points.</p>
<p>More constructively, Nick Selby <a href="http://policeledintelligence.com/2012/01/03/with-that-revealing-shirt-he-was-just-begging-to-be-hacked-blaming-the-victim-in-the-stratfor-hack/">calls on security professionals</a> not to blame the victims who had their information compromised.  Selby&#8217;s point is that it is incorrect to say that someone should just make a stronger password next time, because &#8220;the passwords are the problem, yo.&#8221;  His suggestion:</p>
<blockquote><p>Rather than continue to make the users do the stupid and useless things we as security professionals tell them to do, let’s remove them from the equation. First, some <a href="http://blog.hyland.com/enterprise-content-management/four-it-security-lessons-to-learn-from-anonymous%E2%80%99-stratfor-hack/" target="_blank">basic common sense </a>in building web applications  would be nice, as would <a href="https://www.whitehatsec.com/" target="_blank">testing regularly with competent people</a> doing the testing. Don’t let this be the end: <a href="http://www.troyhunt.com/2011/12/5-website-security-lessons-courtesy-of.html" target="_blank">secure stuff properly on your end</a>to protect your users. Stop being such a cheapskate and spend some money on your security people. Test your assumptions regularly by having competent people test them. Follow the instructions of what these people say – don’t just sweep them under the rug or plan it for the 2016 fifth quarter budget cycle.</p>
<p>Regarding passwords suckage, Hey! Allowing passphrases would be nice – I don’t know how <em>much</em> more secure a passphrase such as</p>
<p>Ooh, yo – this is my secret passphrase!</p>
<p>is than something random and stupid like</p>
<p>bRo$NdoG726.</p>
<p>but I can tell you that it is a lot easier to remember, doesn’t force your users to fill their desk with Post-It reminders and, oh yeah, is harder to crack.</p></blockquote>
<p>I will conclude with <a href="https://www.xkcd.com/936/">a link to an xkcd comic</a> that says the same thing visually that Selby said in his blog: passphrases are strong and easy to remember; passwords weak and forgettable.</p>
<p><span class="Z3988" title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&amp;rft.jtitle=Journal+of+Management+Information+Systems&amp;rft_id=info%3A%2F&amp;rfr_id=info%3Asid%2Fresearchblogging.org&amp;rft.atitle=Password+Security%3A+An+Empirical+Study&amp;rft.issn=&amp;rft.date=1999&amp;rft.volume=15&amp;rft.issue=4&amp;rft.spage=161&amp;rft.epage=185&amp;rft.artnum=http%3A%2F%2Fwww.jstor.org%2Fstable%2F40398409&amp;rft.au=Moshe+Zviran&amp;rft.au=William+J.+Haga&amp;rfe_dat=bpr3.included=1;bpr3.tags=Computer+Science+%2F+Engineering%2CEncryption">Moshe Zviran, &amp; William J. Haga (1999). Password Security: An Empirical Study <span style="font-style:italic;">Journal of Management Information Systems, 15</span> (4), 161-185</span></p>
<br /> Tagged: <a href='http://nanoexplanations.wordpress.com/tag/security/'>security</a>, <a href='http://nanoexplanations.wordpress.com/tag/social-history-of-computing/'>social history of computing</a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/nanoexplanations.wordpress.com/664/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/nanoexplanations.wordpress.com/664/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=nanoexplanations.wordpress.com&#038;blog=20214953&#038;post=664&#038;subd=nanoexplanations&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://nanoexplanations.wordpress.com/2012/01/13/password-analysis-from-the-stratfor-hack/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/fa537ee1a516975bb8ec4733c208b528?s=96&#38;d=identicon&#38;r=PG" medium="image">
			<media:title type="html">nanoexplanations</media:title>
		</media:content>
	</item>
		<item>
		<title>Polygon rectangulation wrap up</title>
		<link>http://nanoexplanations.wordpress.com/2012/01/06/polygon-rectangulation-wrap-up/</link>
		<comments>http://nanoexplanations.wordpress.com/2012/01/06/polygon-rectangulation-wrap-up/#comments</comments>
		<pubDate>Fri, 06 Jan 2012 15:00:35 +0000</pubDate>
		<dc:creator>Aaron Sterling</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[computational geometry]]></category>
		<category><![CDATA[rectangular partitioning]]></category>

		<guid isPermaLink="false">http://nanoexplanations.wordpress.com/?p=642</guid>
		<description><![CDATA[Tying up loose ends from my three posts in December about rectangulation of orthogonal polygons. Derrick Stolee requested in a comment a resolution of the computational complexity of the 3D version of the problem of decomposing a shape into the &#8230; <a href="http://nanoexplanations.wordpress.com/2012/01/06/polygon-rectangulation-wrap-up/">Continue reading <span class="meta-nav">&#8594;</span></a><img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=nanoexplanations.wordpress.com&#038;blog=20214953&#038;post=642&#038;subd=nanoexplanations&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p>Tying up loose ends from my three posts in December about rectangulation of orthogonal polygons.</p>
<ol>
<li>Derrick Stolee <a href="http://nanoexplanations.wordpress.com/2011/12/02/polygon-rectangulation-part-1-minimum-number-of-rectangles/comment-page-1/#comment-218">requested in a comment</a> a resolution of the computational complexity of the 3D version of the problem of decomposing a shape into the minimum number of rectangles.  I found a reference that proves the problem is NP-complete, by directly reducing the problem to a variant of 3SAT.  The diagrams of the gadgets used are pretty cool &#8212; the gadgets look like children&#8217;s toys used to build 3D structures.  <a href="http://www.sciencedirect.com/science/article/pii/002001909190207X">Rectangular partition is polynomial in two dimensions but NP-complete in three</a>, by Victor J. Dielissen and Anne Kaldewaij, Information Processing Letters, April 1991.</li>
<li>The survey <a href="http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.112.6835&amp;rep=rep1&amp;type=pdf">Polygon Decomposition</a> by J. Mark Keil (1996) has much more information on exact algorithms for rectangulation, triangulation, and problems I did not mention at all, like covering.</li>
<li>There is an extensive literature on approximation algorithms for finding a minimum-length rectangulation of an orthogonal polygon with holes.  (The problem is NP-complete even for the case where the polygon is a rectangle and its interior holes are points.)  I can recommend the survey <a href="http://www.cs.ucsb.edu/~teo/papers/AAMMel.pdf">Minimum Edge-Length Rectangular Partitions</a>, by Gonzalez and Zheng (in <em>Handbook of Approximation Algorithms and Metaheuristics</em>, 2007).</li>
</ol>
<p><span class="Z3988" title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&amp;rft.jtitle=Information+Processing+Letters&amp;rft_id=info%3A%2F10.1016%2F0020-0190%2891%2990207-X&amp;rfr_id=info%3Asid%2Fresearchblogging.org&amp;rft.atitle=Rectangular+partition+is+polynomial+in+two+dimensions+but+NP-complete+in+three&amp;rft.issn=&amp;rft.date=1991&amp;rft.volume=38&amp;rft.issue=1&amp;rft.spage=1&amp;rft.epage=6&amp;rft.artnum=http%3A%2F%2Fwww.sciencedirect.com%2Fscience%2Farticle%2Fpii%2F002001909190207X&amp;rft.au=Victor+J.+Dielissen&amp;rft.au=Anne+Kaldewaij&amp;rfe_dat=bpr3.included=1;bpr3.tags=Computer+Science+%2F+Engineering%2CAlgorithms%0D%0AComputational+Geometry">Victor J. Dielissen, &amp; Anne Kaldewaij (1991). Rectangular partition is polynomial in two dimensions but NP-complete in three <span style="font-style:italic;">Information Processing Letters, 38</span> (1), 1-6 : <a rev="review" href="10.1016/0020-0190(91)90207-X">10.1016/0020-0190(91)90207-X</a></span></p>
<br /> Tagged: <a href='http://nanoexplanations.wordpress.com/tag/computational-geometry/'>computational geometry</a>, <a href='http://nanoexplanations.wordpress.com/tag/rectangular-partitioning/'>rectangular partitioning</a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/nanoexplanations.wordpress.com/642/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/nanoexplanations.wordpress.com/642/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=nanoexplanations.wordpress.com&#038;blog=20214953&#038;post=642&#038;subd=nanoexplanations&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://nanoexplanations.wordpress.com/2012/01/06/polygon-rectangulation-wrap-up/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/fa537ee1a516975bb8ec4733c208b528?s=96&#38;d=identicon&#38;r=PG" medium="image">
			<media:title type="html">nanoexplanations</media:title>
		</media:content>
	</item>
		<item>
		<title>&#8220;Shadow CIA&#8221; apparently stored credit card information in cleartext</title>
		<link>http://nanoexplanations.wordpress.com/2011/12/27/shadow-cia-apparently-stored-credit-card-information-in-cleartext/</link>
		<comments>http://nanoexplanations.wordpress.com/2011/12/27/shadow-cia-apparently-stored-credit-card-information-in-cleartext/#comments</comments>
		<pubDate>Tue, 27 Dec 2011 19:32:00 +0000</pubDate>
		<dc:creator>Aaron Sterling</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[security]]></category>

		<guid isPermaLink="false">http://nanoexplanations.wordpress.com/?p=656</guid>
		<description><![CDATA[I had not planned to post until January, but I decided to say something briefly about a news story that relates to one of the first posts on this blog, about security firm HBGary&#8217;s insecure storage of data.  This story, &#8230; <a href="http://nanoexplanations.wordpress.com/2011/12/27/shadow-cia-apparently-stored-credit-card-information-in-cleartext/">Continue reading <span class="meta-nav">&#8594;</span></a><img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=nanoexplanations.wordpress.com&#038;blog=20214953&#038;post=656&#038;subd=nanoexplanations&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p>I had not planned to post until January, but I decided to say something briefly about a news story that relates to <a href="http://nanoexplanations.wordpress.com/2011/02/22/unsalted-passwords-can-raise-your-blood-pressure/">one of the first posts</a> on this blog, about security firm HBGary&#8217;s insecure storage of data.  This story, as I am sure many of you have already guessed, is the hacking of <a href="http://en.wikipedia.org/wiki/Stratfor">Strategic Forecasting, Inc.</a>, better known as Stratfor, by the group Anonymous.</p>
<p>Stratfor is a private intelligence-gathering firm whose principals have close ties to the US intelligence community.  Stratfor has been called the &#8220;shadow CIA.&#8221;  Anonymous claims to have obtained 200 GB of data, including 2.7 million private emails and 4000 credit cards.  While big media worldwide have focused so far on the &#8220;Operation Robin Hood&#8221; nature of the attack &#8212; the hackers claim to have made $1 million in donations to charities using the credit card information &#8212; one Anonymous member <a href="http://www.dailykos.com/story/2011/12/26/1049117/-Why-Stratfor-was-Really-Hacked?showAll=yes&amp;via=blog_481394">has stated</a> that the real reason for the attack was to obtain the emails, and the hackers did not expect the credit card information would be as easy to obtain as it was.</p>
<p>Perhaps the most interesting writing I have seen on this subject is at the site databreaches.net, which provides <a href="http://www.databreaches.net/?p=22426">a timeline of the hack</a>, and suggests that it had been going on for a week or more, without Stratfor&#8217;s knowledge.  Databreaches.net also asks the reasonable question <a href="http://www.databreaches.net/?p=22460">whether Stratfor might be legally liable</a> for the compromise of credit card data, because it appears that both Texas law (where Stratfor is based) and Stratfor&#8217;s own privacy policy prohibit the storage of credit card information in cleartext.  Moreover, Stratfor apparently stored the 3-digit security codes of credit cards in cleartext also, and standard security procedure is not to store those codes at all.</p>
<p>This situation reminded me of a comment Peter Taylor made on <a href="http://cstheory.stackexchange.com/a/5098/30">an answer of Peter Shor</a> on CSTheory.  Shor was answering a question about what would happen if it turned out that factoring could be solved in polynomial time.  Among other things, he said, &#8220;<code></code>as soon as it was known that factoring was in P, the banks would switch to some other system.&#8221;  Taylor responded:</p>
<blockquote><p>A bit off-topic, but <code>as soon as it was known that factoring was in P, the banks would switch to some other system</code> is largely wishful thinking. I discovered in December that a company which doesn&#8217;t do anything except process credit card details was using a variant of Vigenère with a key shorter than some runs of known plaintext. Worse, the technical director of the company wouldn&#8217;t believe me that it was insecure until I sent him some attack code. MD5, despite being widely considered broken, is still used heavily in banking.</p></blockquote>
<p>For as long as I have been reading computer science theory blogs, commenters have left a lot of critical comments, along the lines of, &#8220;The result you are getting excited about is a very small advance, and has nothing to do with the real needs of industry.&#8221;   At a political level, similar arguments are used to reduce funding to theoretical research of all kinds, including theoretical CS.  I believe these arguments are completely incorrect, because the much more pressing problem is that <em>industry doesn&#8217;t use fully-implementable techniques that theorists discovered years ago</em>.  In the cases of HBGary and Stratfor, this may well have been because the principals considered themselves &#8220;too important&#8221; to take mundane steps, but there is no doubt that data insecurity, extremely suboptimal algorithm design, etc., is rampant in the business sector.  An industry, and a government, that dismisses the importance of theory, will pay heavy prices in the long run.</p>
<p><strong>Postscripts</strong></p>
<ol>
<li>Jonathan Katz recently <a href="http://jonkatz.wordpress.com/2011/12/16/is-cryptographic-theory-practically-relevant/">blogged about</a> an upcoming workshop: &#8220;Is Cryptographic Theory Practically Relevant?&#8221;</li>
<li>There is a short <a href="http://cstheory.stackexchange.com/q/499/30">CSTheory community wiki</a> on the difference between the theory and practice of security and cryptography.</li>
<li>Databreaches.net reports that there is a series of <a href="http://www.databreaches.net/?p=22480">hacks taking place in China right now</a>, perhaps to protest a move to require the use of real names on the internet.  Over 40 million users have had their information compromised.  I hope everyone reading this blog stays safe, as we enter 2012.</li>
</ol>
<br /> Tagged: <a href='http://nanoexplanations.wordpress.com/tag/security/'>security</a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/nanoexplanations.wordpress.com/656/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/nanoexplanations.wordpress.com/656/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=nanoexplanations.wordpress.com&#038;blog=20214953&#038;post=656&#038;subd=nanoexplanations&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://nanoexplanations.wordpress.com/2011/12/27/shadow-cia-apparently-stored-credit-card-information-in-cleartext/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/fa537ee1a516975bb8ec4733c208b528?s=96&#38;d=identicon&#38;r=PG" medium="image">
			<media:title type="html">nanoexplanations</media:title>
		</media:content>
	</item>
		<item>
		<title>Happy holidays!</title>
		<link>http://nanoexplanations.wordpress.com/2011/12/20/happy-holidays/</link>
		<comments>http://nanoexplanations.wordpress.com/2011/12/20/happy-holidays/#comments</comments>
		<pubDate>Tue, 20 Dec 2011 23:00:08 +0000</pubDate>
		<dc:creator>Aaron Sterling</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[SIGGRAPH Asia]]></category>
		<category><![CDATA[video]]></category>

		<guid isPermaLink="false">http://nanoexplanations.wordpress.com/?p=633</guid>
		<description><![CDATA[I would like to wish a very happy holiday season to all the readers of this blog.  I am excited about the research I have planned in 2012, and I hope you are even more excited about your own year-to-come. &#8230; <a href="http://nanoexplanations.wordpress.com/2011/12/20/happy-holidays/">Continue reading <span class="meta-nav">&#8594;</span></a><img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=nanoexplanations.wordpress.com&#038;blog=20214953&#038;post=633&#038;subd=nanoexplanations&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p>I would like to wish a very happy holiday season to all the readers of this blog.  I am excited about the research I have planned in 2012, and I hope you are even more excited about your own year-to-come.</p>
<p>This will be my last post until the new year.  As a holiday gift, please allow me to share with you the &#8220;Technical Papers Trailer&#8221; for SIGGRAPH Asia 2011.  The conference itself just ended, but the video is a great example, to my mind, of how to popularize computer science.</p>
<p><span class='embed-youtube' style='text-align:center; display: block;'><iframe class='youtube-player' type='text/html' width='500' height='312' src='http://www.youtube.com/embed/7C1UwKlDjCk?version=3&#038;rel=1&#038;fs=1&#038;showsearch=0&#038;showinfo=1&#038;iv_load_policy=1&#038;wmode=transparent' frameborder='0'></iframe></span></p>
<br /> Tagged: <a href='http://nanoexplanations.wordpress.com/tag/siggraph-asia/'>SIGGRAPH Asia</a>, <a href='http://nanoexplanations.wordpress.com/tag/video/'>video</a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/nanoexplanations.wordpress.com/633/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/nanoexplanations.wordpress.com/633/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=nanoexplanations.wordpress.com&#038;blog=20214953&#038;post=633&#038;subd=nanoexplanations&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://nanoexplanations.wordpress.com/2011/12/20/happy-holidays/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/fa537ee1a516975bb8ec4733c208b528?s=96&#38;d=identicon&#38;r=PG" medium="image">
			<media:title type="html">nanoexplanations</media:title>
		</media:content>
	</item>
		<item>
		<title>Polygon rectangulation, part 3: Minimum-length rectangulation</title>
		<link>http://nanoexplanations.wordpress.com/2011/12/16/polygon-rectangulation-part-3-minimum-length-rectangulation/</link>
		<comments>http://nanoexplanations.wordpress.com/2011/12/16/polygon-rectangulation-part-3-minimum-length-rectangulation/#comments</comments>
		<pubDate>Fri, 16 Dec 2011 15:00:42 +0000</pubDate>
		<dc:creator>Aaron Sterling</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[computational geometry]]></category>
		<category><![CDATA[orthogonal polygon]]></category>
		<category><![CDATA[rectangular partitioning]]></category>
		<category><![CDATA[rectilinear polygon]]></category>

		<guid isPermaLink="false">http://nanoexplanations.wordpress.com/?p=597</guid>
		<description><![CDATA[In this third (and final) post on polygon rectangulation, I will consider how to find the rectangulation of minimum total length for an orthogonal polygon.  In part one of this short series, we considered rectangulations with a minimum number of &#8230; <a href="http://nanoexplanations.wordpress.com/2011/12/16/polygon-rectangulation-part-3-minimum-length-rectangulation/">Continue reading <span class="meta-nav">&#8594;</span></a><img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=nanoexplanations.wordpress.com&#038;blog=20214953&#038;post=597&#038;subd=nanoexplanations&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p>In this third (and final) post on polygon rectangulation, I will consider how to find the rectangulation of minimum total length for an orthogonal polygon.  In <a href="http://wp.me/p1mOPD-8y">part one</a> of this short series, we considered rectangulations with a minimum number of rectangles; and, in <a href="http://wp.me/p1mOPD-8Y">part two</a>, we considered rectangulations with a minimum number of &#8220;fat&#8221; rectangles.  I&#8217;ve saved this post for last, because this may be the most useful rectangulation application in VLSI, and this is the rectangulation problem that Ming-Yang Kao and I have applied to self-assembly (though I won&#8217;t discuss our application in this post).</p>
<p>The minimum-length rectangulation algorithm appeared in <a href="http://nanoexplanations.files.wordpress.com/2011/03/minimumedgelengthpartitioningofrectilinearpolygons.pdf">Minimum Edge Length Partitioning of Rectilinear Polygons</a>, by Lingas, Pinter, Rivest and Shamir (1982).  The authors proved both a positive and a negative result.  The positive result &#8212; which I will focus on today &#8212; is a <img src='http://s0.wp.com/latex.php?latex=O%28n%5E4%29&amp;bg=ffffff&amp;fg=333333&amp;s=0' alt='O(n^4)' title='O(n^4)' class='latex' /> dynamic programming algorithm that finds an optimal minimum-length rectangulation for any orthogonal polygon <em>with no interior holes</em>.  The negative result is a proof that, if the input polygon is allowed to have holes, then the problem is NP-complete.  (I discussed the proof of this result in <a href="http://nanoexplanations.wordpress.com/2011/03/05/minimum-edge-length-partitioning-of-rectilinear-polygons/">a previous blog post</a>.)<span id="more-597"></span><strong></strong></p>
<p><strong>Optimal polygon triangulation</strong></p>
<p>The dynamic programming algorithm for polygon rectangulation is similar in structure to a well-known one for polygon triangulation &#8212; finding a minimum-length set of nonoverlapping triangles that partitions the input polygon <img src='http://s0.wp.com/latex.php?latex=P&amp;bg=ffffff&amp;fg=333333&amp;s=0' alt='P' title='P' class='latex' />.  One online source for the triangulation algorithm is <a href="http://www.ics.uci.edu/~eppstein/260/011023/">these lecture notes</a> by David Eppstein.  As far as we know, rectangulation is more complicated to solve than triangulation.  (Among other things, minimum-length triangulation runs in <img src='http://s0.wp.com/latex.php?latex=O%28n%5E3%29&amp;bg=ffffff&amp;fg=333333&amp;s=0' alt='O(n^3)' title='O(n^3)' class='latex' />, while the Lingas et al. algorithm runs in <img src='http://s0.wp.com/latex.php?latex=O%28n%5E4%29&amp;bg=ffffff&amp;fg=333333&amp;s=0' alt='O(n^4)' title='O(n^4)' class='latex' />.)  In the words of Lingas et al., &#8220;The difficult proof for the rectangular case involves showing how a given polygon can be split in a small number of ways while guaranteeing that the optimal partitioning is consistent with one of these splits.&#8221;</p>
<p>In brief, the triangulation problem is &#8220;simple,&#8221; because finding a triangulation of any input polygon reduces to finding a triangulation of a regular polygon.  (Eppstein&#8217;s lecture notes explain why.)  Since we can limit ourselves to input polygons with such nice features, the algorithm analysis is fairly simple.  In the case of rectangulation, there is no known reduction to a simple class of input polygons.  Instead, Lingas et al. show that only certain kinds of subfigures need to be considered, and that an optimal rectangulation of the entire polygon can be built up from optimal rectangulations of those subfigures.  This makes the problem solvable via dynamic programming.  We turn now to the method of rectangulation itself.</p>
<p><strong>Proof of a key lemma</strong></p>
<p>A key lemma in the MELPRP paper is:</p>
<blockquote><p>Lemma 1. In all minimum edge length solutions for any given polygon <img src='http://s0.wp.com/latex.php?latex=P&amp;bg=ffffff&amp;fg=333333&amp;s=0' alt='P' title='P' class='latex' />, all edges and all internal corners lie on the vertex grid.</p></blockquote>
<p>As defined in the previous blog posts in this series, the vertex grid is the set of all points that lie on both vertical and horizontal lines that pass through a vertex of the input polygon.  This is a very useful fact, since it limits the number of possible subrectangulations we need to evaluate.  However, Lingas et al. assert it without proof.  (Their 11-page paper appeared in a conference, and, to my knowledge, no journal version of the paper has ever appeared.)  Perhaps this lemma is &#8220;obvious,&#8221; or folklore, but Ming-Yang Kao and I needed (a &#8220;slightly stronger&#8221; but still equivalent statement) for work we were doing, so we reproved lemma 1.  The proof is short enough that I will reproduce it here.</p>
<blockquote><p>Lemma. Let <img src='http://s0.wp.com/latex.php?latex=P&amp;bg=ffffff&amp;fg=333333&amp;s=0' alt='P' title='P' class='latex' /> be a polygon with all vertices lying on integer coordinates, and let <img src='http://s0.wp.com/latex.php?latex=R&amp;bg=ffffff&amp;fg=333333&amp;s=0' alt='R' title='R' class='latex' /> be a (finite) rectangulation of <img src='http://s0.wp.com/latex.php?latex=P&amp;bg=ffffff&amp;fg=333333&amp;s=0' alt='P' title='P' class='latex' />.  There is an algorithm that runs in time polynomial in the number of cuts of <img src='http://s0.wp.com/latex.php?latex=R&amp;bg=ffffff&amp;fg=333333&amp;s=0' alt='R' title='R' class='latex' />, that produces a rectangulation <img src='http://s0.wp.com/latex.php?latex=R%5E%2A&amp;bg=ffffff&amp;fg=333333&amp;s=0' alt='R^*' title='R^*' class='latex' /> of $P$ such that (1) all points of <img src='http://s0.wp.com/latex.php?latex=R%5E%2A&amp;bg=ffffff&amp;fg=333333&amp;s=0' alt='R^*' title='R^*' class='latex' /> lie on integer points, and (2) the total length of <img src='http://s0.wp.com/latex.php?latex=R%5E%2A&amp;bg=ffffff&amp;fg=333333&amp;s=0' alt='R^*' title='R^*' class='latex' /> is at most the total length of <img src='http://s0.wp.com/latex.php?latex=R&amp;bg=ffffff&amp;fg=333333&amp;s=0' alt='R' title='R' class='latex' />.</p></blockquote>
<p><em>Proof</em>.  If all vertical cuts have integer x-coordinates, and all horizontal cuts have integer y-coordinates, then the rectangulation is an integer rectangulation, and we are done.  Call the cuts that fail to have those properties <em>bad cuts</em>.</p>
<p><em>Claim</em>: For each horizontal bad cut, we can translate it north or south, so that it will either encounter another horizontal bad cut, or reach an integer y-coordinate, without increasing the total perimeter of the rectangulation.</p>
<p><em>Proof of Claim</em>: Let <img src='http://s0.wp.com/latex.php?latex=h&amp;bg=ffffff&amp;fg=333333&amp;s=0' alt='h' title='h' class='latex' /> be the horizontal bad cut we wish to translate.  Let <img src='http://s0.wp.com/latex.php?latex=v_1%2C%5Cldots%2Cv_k&amp;bg=ffffff&amp;fg=333333&amp;s=0' alt='v_1,&#92;ldots,v_k' title='v_1,&#92;ldots,v_k' class='latex' /> be all vertical cuts incident with <img src='http://s0.wp.com/latex.php?latex=h&amp;bg=ffffff&amp;fg=333333&amp;s=0' alt='h' title='h' class='latex' /> from the south.  Let <img src='http://s0.wp.com/latex.php?latex=v%27_1%2C%5Cldots%2Cv%27_l&amp;bg=ffffff&amp;fg=333333&amp;s=0' alt='v&#039;_1,&#92;ldots,v&#039;_l' title='v&#039;_1,&#92;ldots,v&#039;_l' class='latex' /> be all vertical cuts incident with <img src='http://s0.wp.com/latex.php?latex=h&amp;bg=ffffff&amp;fg=333333&amp;s=0' alt='h' title='h' class='latex' /> from the north.  Suppose WLOG that <img src='http://s0.wp.com/latex.php?latex=k+%5Cleq+l&amp;bg=ffffff&amp;fg=333333&amp;s=0' alt='k &#92;leq l' title='k &#92;leq l' class='latex' />.  We translate <img src='http://s0.wp.com/latex.php?latex=h&amp;bg=ffffff&amp;fg=333333&amp;s=0' alt='h' title='h' class='latex' /> north, extending each <img src='http://s0.wp.com/latex.php?latex=v_i&amp;bg=ffffff&amp;fg=333333&amp;s=0' alt='v_i' title='v_i' class='latex' /> so it remains incident with <img src='http://s0.wp.com/latex.php?latex=h&amp;bg=ffffff&amp;fg=333333&amp;s=0' alt='h' title='h' class='latex' />, and shortening each <img src='http://s0.wp.com/latex.php?latex=v%27_i&amp;bg=ffffff&amp;fg=333333&amp;s=0' alt='v&#039;_i' title='v&#039;_i' class='latex' /> so it remains incident with <img src='http://s0.wp.com/latex.php?latex=h&amp;bg=ffffff&amp;fg=333333&amp;s=0' alt='h' title='h' class='latex' /> as well.  (If <img src='http://s0.wp.com/latex.php?latex=k%3El&amp;bg=ffffff&amp;fg=333333&amp;s=0' alt='k&gt;l' title='k&gt;l' class='latex' /> then we translate <img src='http://s0.wp.com/latex.php?latex=h&amp;bg=ffffff&amp;fg=333333&amp;s=0' alt='h' title='h' class='latex' /> south, performing the same lengthening and shortening operations, but switching the roles of the <img src='http://s0.wp.com/latex.php?latex=v_i&amp;bg=ffffff&amp;fg=333333&amp;s=0' alt='v_i' title='v_i' class='latex' /> and the <img src='http://s0.wp.com/latex.php?latex=v%27_i&amp;bg=ffffff&amp;fg=333333&amp;s=0' alt='v&#039;_i' title='v&#039;_i' class='latex' />.)  Since we are shortening the <img src='http://s0.wp.com/latex.php?latex=v%27_i&amp;bg=ffffff&amp;fg=333333&amp;s=0' alt='v&#039;_i' title='v&#039;_i' class='latex' /> by the same length as we are lengthening the <img src='http://s0.wp.com/latex.php?latex=v_i&amp;bg=ffffff&amp;fg=333333&amp;s=0' alt='v_i' title='v_i' class='latex' />, we do not increase the total perimeter of the rectangulation.  We continue translating <img src='http://s0.wp.com/latex.php?latex=h&amp;bg=ffffff&amp;fg=333333&amp;s=0' alt='h' title='h' class='latex' /> to the north until we encounter either another horizontal cut, or until the <img src='http://s0.wp.com/latex.php?latex=y&amp;bg=ffffff&amp;fg=333333&amp;s=0' alt='y' title='y' class='latex' />-coordinate of <img src='http://s0.wp.com/latex.php?latex=h&amp;bg=ffffff&amp;fg=333333&amp;s=0' alt='h' title='h' class='latex' /> is an integer.</p>
<p>We run the following algorithm with input <img src='http://s0.wp.com/latex.php?latex=R&amp;bg=ffffff&amp;fg=333333&amp;s=0' alt='R' title='R' class='latex' />.  Initialize <img src='http://s0.wp.com/latex.php?latex=R%27%3DR&amp;bg=ffffff&amp;fg=333333&amp;s=0' alt='R&#039;=R' title='R&#039;=R' class='latex' />.  Order the horizontal bad cuts, and order the vertical bad cuts.  Go through the horizontal bad cuts one at a time.  Let <img src='http://s0.wp.com/latex.php?latex=h&amp;bg=ffffff&amp;fg=333333&amp;s=0' alt='h' title='h' class='latex' /> be the horizontal bad cut under consideration.  Translate it, without increasing the perimeter of <img src='http://s0.wp.com/latex.php?latex=R&amp;bg=ffffff&amp;fg=333333&amp;s=0' alt='R' title='R' class='latex' />, until it has an integer y-coordinate, or until it encounters another horizontal cut. If <img src='http://s0.wp.com/latex.php?latex=h&amp;bg=ffffff&amp;fg=333333&amp;s=0' alt='h' title='h' class='latex' /> encounters another horizontal cut, call it <img src='http://s0.wp.com/latex.php?latex=h%27&amp;bg=ffffff&amp;fg=333333&amp;s=0' alt='h&#039;' title='h&#039;' class='latex' />, then remove both <img src='http://s0.wp.com/latex.php?latex=h&amp;bg=ffffff&amp;fg=333333&amp;s=0' alt='h' title='h' class='latex' /> and <img src='http://s0.wp.com/latex.php?latex=h%27&amp;bg=ffffff&amp;fg=333333&amp;s=0' alt='h&#039;' title='h&#039;' class='latex' /> from <img src='http://s0.wp.com/latex.php?latex=R%5E%2A&amp;bg=ffffff&amp;fg=333333&amp;s=0' alt='R^*' title='R^*' class='latex' /> (and from the ordering of horizontal cuts of <img src='http://s0.wp.com/latex.php?latex=R&amp;bg=ffffff&amp;fg=333333&amp;s=0' alt='R' title='R' class='latex' />), and place a new cut <img src='http://s0.wp.com/latex.php?latex=h%27%27&amp;bg=ffffff&amp;fg=333333&amp;s=0' alt='h&#039;&#039;' title='h&#039;&#039;' class='latex' /> into <img src='http://s0.wp.com/latex.php?latex=R%5E%2A&amp;bg=ffffff&amp;fg=333333&amp;s=0' alt='R^*' title='R^*' class='latex' />, where the west endpoint of <img src='http://s0.wp.com/latex.php?latex=h%27%27&amp;bg=ffffff&amp;fg=333333&amp;s=0' alt='h&#039;&#039;' title='h&#039;&#039;' class='latex' /> is (min[x -coordinate of <img src='http://s0.wp.com/latex.php?latex=h&amp;bg=ffffff&amp;fg=333333&amp;s=0' alt='h' title='h' class='latex' />, x-coordinate of <img src='http://s0.wp.com/latex.php?latex=h%27&amp;bg=ffffff&amp;fg=333333&amp;s=0' alt='h&#039;' title='h&#039;' class='latex' />], y -coordinate of <img src='http://s0.wp.com/latex.php?latex=h%27&amp;bg=ffffff&amp;fg=333333&amp;s=0' alt='h&#039;' title='h&#039;' class='latex' />)$, and the east endpoint of <img src='http://s0.wp.com/latex.php?latex=h%27%27&amp;bg=ffffff&amp;fg=333333&amp;s=0' alt='h&#039;&#039;' title='h&#039;&#039;' class='latex' /> is max[x-coordinate of <img src='http://s0.wp.com/latex.php?latex=h&amp;bg=ffffff&amp;fg=333333&amp;s=0' alt='h' title='h' class='latex' />, x-coordinate of <img src='http://s0.wp.com/latex.php?latex=h%27&amp;bg=ffffff&amp;fg=333333&amp;s=0' alt='h&#039;' title='h&#039;' class='latex' />], y -coordinate of <img src='http://s0.wp.com/latex.php?latex=h%27&amp;bg=ffffff&amp;fg=333333&amp;s=0' alt='h&#039;' title='h&#039;' class='latex' />).  (We name this process <em>absorption</em>, and say that <img src='http://s0.wp.com/latex.php?latex=h&amp;bg=ffffff&amp;fg=333333&amp;s=0' alt='h' title='h' class='latex' /> and <img src='http://s0.wp.com/latex.php?latex=h%27&amp;bg=ffffff&amp;fg=333333&amp;s=0' alt='h&#039;' title='h&#039;' class='latex' /> are <em>absorbed</em> into <img src='http://s0.wp.com/latex.php?latex=h%27%27&amp;bg=ffffff&amp;fg=333333&amp;s=0' alt='h&#039;&#039;' title='h&#039;&#039;' class='latex' />.)  If <img src='http://s0.wp.com/latex.php?latex=h%27%27&amp;bg=ffffff&amp;fg=333333&amp;s=0' alt='h&#039;&#039;' title='h&#039;&#039;' class='latex' /> is at an integer y-coordinate, then we are done with this stage of the loop and we go on to the next horizontal cut in the order.  Otherwise, it may be that we need to translate <img src='http://s0.wp.com/latex.php?latex=h%27%27&amp;bg=ffffff&amp;fg=333333&amp;s=0' alt='h&#039;&#039;' title='h&#039;&#039;' class='latex' /> either in the same, or the opposite direction as we were translating <img src='http://s0.wp.com/latex.php?latex=h&amp;bg=ffffff&amp;fg=333333&amp;s=0' alt='h' title='h' class='latex' /> previously.  We continue translating in a non-lengthening direction, and absorbing if necessary, until we translate the horizontal cut at an integer y-coordinate.  (There are at most number-of-cuts-many absorptions, so this process terminates efficiently.)  Then we continue with the next horizontal cut in the ordering, until all are considered or removed from the ordering.</p>
<p>Once the bad horizontal cuts are all dealt with as above, we perform the same operations on the ordering of bad vertical cuts, except that we translate east-and-west instead of north-and-south.  By the same arguments as above, in time polynomial in the number of vertical cuts, we place and/or absorb all vertical cuts onto integer x-coordinates without increasing the length of the rectangulation.  Once all cuts have been considered, we have an integer rectangulation <img src='http://s0.wp.com/latex.php?latex=R%5E%2A&amp;bg=ffffff&amp;fg=333333&amp;s=0' alt='R^*' title='R^*' class='latex' /> such that <img src='http://s0.wp.com/latex.php?latex=p%28R%27%29+%5Cleq+p%28R%29&amp;bg=ffffff&amp;fg=333333&amp;s=0' alt='p(R&#039;) &#92;leq p(R)' title='p(R&#039;) &#92;leq p(R)' class='latex' />.</p>
<p><strong>Set of subfigures</strong></p>
<p>Given the input polygon <img src='http://s0.wp.com/latex.php?latex=P&amp;bg=ffffff&amp;fg=333333&amp;s=0' alt='P' title='P' class='latex' />, we will decompose <img src='http://s0.wp.com/latex.php?latex=P&amp;bg=ffffff&amp;fg=333333&amp;s=0' alt='P' title='P' class='latex' /> into subfigures, find the minimum-length rectangulation of each subfigure, then build from that a minimum-length rectangulation of <img src='http://s0.wp.com/latex.php?latex=P&amp;bg=ffffff&amp;fg=333333&amp;s=0' alt='P' title='P' class='latex' /> itself.  Naively, we might expect that we have to consider every subfigure whose vertices lie on the vertex grid of <img src='http://s0.wp.com/latex.php?latex=P&amp;bg=ffffff&amp;fg=333333&amp;s=0' alt='P' title='P' class='latex' />, and whose boundary is contained within the boundary of <img src='http://s0.wp.com/latex.php?latex=P&amp;bg=ffffff&amp;fg=333333&amp;s=0' alt='P' title='P' class='latex' />.  With a bit more analysis, it is possible to significantly reduce the set of subfigures that we need to consider.  In the words of Lingas et al, let us call a <em>constructed line</em> &#8220;a maximal extension of a partitioning edge to include any sides of the boundary that are contiguous to the edge and go in the same direction.  Two or more aligned edges may be put on the same constructed line, but this is not always the case.&#8221;  Lingas et al. provide the following diagram as an example of constructed lines.</p>
<p><a href="http://nanoexplanations.files.wordpress.com/2011/12/constructed_lines.png"><img class="aligncenter size-full wp-image-613" title="constructed_lines" src="http://nanoexplanations.files.wordpress.com/2011/12/constructed_lines.png?w=500&#038;h=177" alt="" width="500" height="177" /></a>We are now able to state the key fact used to limit the size of the set of subfigures that must be considered by the rectangulation algorithm.</p>
<blockquote><p>Fact. It suffices to consider subfigures whose boundary consists of a contiguous piece of the original boundary and at most two constructed lines (and the constructed lines are contiguous).</p></blockquote>
<p><strong>The partitioning rule</strong></p>
<p>Fix a subfigure <img src='http://s0.wp.com/latex.php?latex=F&amp;bg=ffffff&amp;fg=333333&amp;s=0' alt='F' title='F' class='latex' /> that satisfies the previous Fact.  We assume for the moment that we have already considered all (Fact-satisfying) subfigures that are contained inside <img src='http://s0.wp.com/latex.php?latex=F&amp;bg=ffffff&amp;fg=333333&amp;s=0' alt='F' title='F' class='latex' />.  We choose a <em>candidate point</em> for <img src='http://s0.wp.com/latex.php?latex=F&amp;bg=ffffff&amp;fg=333333&amp;s=0' alt='F' title='F' class='latex' /> by the following method.</p>
<ol>
<li>If <img src='http://s0.wp.com/latex.php?latex=F&amp;bg=ffffff&amp;fg=333333&amp;s=0' alt='F' title='F' class='latex' /> has 0 constructed lines, choose any vertex of <img src='http://s0.wp.com/latex.php?latex=F&amp;bg=ffffff&amp;fg=333333&amp;s=0' alt='F' title='F' class='latex' />.</li>
<li>If <img src='http://s0.wp.com/latex.php?latex=F&amp;bg=ffffff&amp;fg=333333&amp;s=0' alt='F' title='F' class='latex' /> has 1 constructed line, choose either endpoint of the constructed line.</li>
<li>If <img src='http://s0.wp.com/latex.php?latex=F&amp;bg=ffffff&amp;fg=333333&amp;s=0' alt='F' title='F' class='latex' /> has 2 constructed lines, choose the point where the constructed lines meet.</li>
</ol>
<p>Once we have chosen the candidate point <img src='http://s0.wp.com/latex.php?latex=p_F&amp;bg=ffffff&amp;fg=333333&amp;s=0' alt='p_F' title='p_F' class='latex' />, we consider each point on the vertex grid to be a possible <em>matching point</em>.  A matching point <img src='http://s0.wp.com/latex.php?latex=q&amp;bg=ffffff&amp;fg=333333&amp;s=0' alt='q' title='q' class='latex' /> is one that defines a rectangle when paired with <img src='http://s0.wp.com/latex.php?latex=p_F&amp;bg=ffffff&amp;fg=333333&amp;s=0' alt='p_F' title='p_F' class='latex' /> &#8212; i.e., they are the opposite corners of a rectangle.  There are at most <img src='http://s0.wp.com/latex.php?latex=O%28n%5E2%29&amp;bg=ffffff&amp;fg=333333&amp;s=0' alt='O(n^2)' title='O(n^2)' class='latex' /> possible matching points inside any subfigure, and we only need to consider the points such that the induced rectangle lies entirely within <img src='http://s0.wp.com/latex.php?latex=F&amp;bg=ffffff&amp;fg=333333&amp;s=0' alt='F' title='F' class='latex' />.  (There are additional optimizations available also.  For example, if <img src='http://s0.wp.com/latex.php?latex=p_F&amp;bg=ffffff&amp;fg=333333&amp;s=0' alt='p_F' title='p_F' class='latex' /> is a concave vertex, then its matching point must have the same x- or y-coordinate at <img src='http://s0.wp.com/latex.php?latex=p_F&amp;bg=ffffff&amp;fg=333333&amp;s=0' alt='p_F' title='p_F' class='latex' />.  I will leave this optimizaton to one side, though.)</p>
<p>The process so far has produced the following: a set of subfigures; a set of candidate points, one for each subfigure; and a set of matching points for each subfigure, at most <img src='http://s0.wp.com/latex.php?latex=O%28n%5E2%29&amp;bg=ffffff&amp;fg=333333&amp;s=0' alt='O(n^2)' title='O(n^2)' class='latex' /> for each subfigure.  We will now combine these ingredients into a dynamic programming algorithm for minimum-length rectangulation.</p>
<p><strong>Dynamic programming algorithm</strong></p>
<p>Given input polygon <img src='http://s0.wp.com/latex.php?latex=P&amp;bg=ffffff&amp;fg=333333&amp;s=0' alt='P' title='P' class='latex' />, do the following</p>
<ol>
<li>Produce all subfigures that satisfy the Fact above, and order them by area, from smallest to largest.</li>
<li>Find the candidate point for each figure.</li>
<li>Loop through the figures, in order.</li>
<ol>
<li>When considering figure <img src='http://s0.wp.com/latex.php?latex=F&amp;bg=ffffff&amp;fg=333333&amp;s=0' alt='F' title='F' class='latex' />, loop through the set of matching points <img src='http://s0.wp.com/latex.php?latex=m_1%2Cm_2%2C%5Cldots&amp;bg=ffffff&amp;fg=333333&amp;s=0' alt='m_1,m_2,&#92;ldots' title='m_1,m_2,&#92;ldots' class='latex' />.</li>
<ol>
<li>Calculate the length of the rectangulation of <img src='http://s0.wp.com/latex.php?latex=F&amp;bg=ffffff&amp;fg=333333&amp;s=0' alt='F' title='F' class='latex' /> obtained by drawing a rectangle <img src='http://s0.wp.com/latex.php?latex=R&amp;bg=ffffff&amp;fg=333333&amp;s=0' alt='R' title='R' class='latex' /> defined by the candidate point and the matching point <img src='http://s0.wp.com/latex.php?latex=m_i&amp;bg=ffffff&amp;fg=333333&amp;s=0' alt='m_i' title='m_i' class='latex' />. This can be done quickly because previously in the order of figures we computed the minimum length of the figure <img src='http://s0.wp.com/latex.php?latex=F%27&amp;bg=ffffff&amp;fg=333333&amp;s=0' alt='F&#039;' title='F&#039;' class='latex' />, which is <img src='http://s0.wp.com/latex.php?latex=F&amp;bg=ffffff&amp;fg=333333&amp;s=0' alt='F' title='F' class='latex' /> minus the rectangle <img src='http://s0.wp.com/latex.php?latex=R&amp;bg=ffffff&amp;fg=333333&amp;s=0' alt='R' title='R' class='latex' />.</li>
</ol>
<li>Find the minimum over all rectangulations obtained in Step A(i).  Store that as the minimum-length rectangulation for figure <img src='http://s0.wp.com/latex.php?latex=F&amp;bg=ffffff&amp;fg=333333&amp;s=0' alt='F' title='F' class='latex' />.</li>
</ol>
<li>Halt when we have computed the value of the maxmimum figure, that is, the minimum-length rectangulation of <img src='http://s0.wp.com/latex.php?latex=P&amp;bg=ffffff&amp;fg=333333&amp;s=0' alt='P' title='P' class='latex' />.</li>
</ol>
<p>Since there <img src='http://s0.wp.com/latex.php?latex=O%28n%5E2%29&amp;bg=ffffff&amp;fg=333333&amp;s=0' alt='O(n^2)' title='O(n^2)' class='latex' /> figures that satisfy the Fact, and, for each figure, there are <img src='http://s0.wp.com/latex.php?latex=O%28n%5E2%29&amp;bg=ffffff&amp;fg=333333&amp;s=0' alt='O(n^2)' title='O(n^2)' class='latex' /> matching points, the total time of the algorithm is <img src='http://s0.wp.com/latex.php?latex=O%28n%5E4%29&amp;bg=ffffff&amp;fg=333333&amp;s=0' alt='O(n^4)' title='O(n^4)' class='latex' />.</p>
<p><span class="Z3988" title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&amp;rft.jtitle=Proceedings+of+the+20th+Allerton+Conference+on+Communication&amp;rft_id=info%3A%2F&amp;rfr_id=info%3Asid%2Fresearchblogging.org&amp;rft.atitle=Minimum+edge+length+partitioning+of+rectilinear+polygons&amp;rft.issn=&amp;rft.date=1982&amp;rft.volume=&amp;rft.issue=&amp;rft.spage=53&amp;rft.epage=63&amp;rft.artnum=&amp;rft.au=Andrzej+Lingas&amp;rft.au=Ron+Y.+Pinter&amp;rft.au=Ronald+R.+Rivest&amp;rft.au=Adi+Shamir&amp;rfe_dat=bpr3.included=1;bpr3.tags=Computer+Science+%2F+Engineering%2CAlgorithms%2C+Computational+Geometry">Andrzej Lingas, Ron Y. Pinter, Ronald R. Rivest, &amp; Adi Shamir (1982). Minimum edge length partitioning of rectilinear polygons <span style="font-style:italic;">Proceedings of the 20th Allerton Conference on Communication</span>, 53-63</span></p>
<br /> Tagged: <a href='http://nanoexplanations.wordpress.com/tag/computational-geometry/'>computational geometry</a>, <a href='http://nanoexplanations.wordpress.com/tag/orthogonal-polygon/'>orthogonal polygon</a>, <a href='http://nanoexplanations.wordpress.com/tag/rectangular-partitioning/'>rectangular partitioning</a>, <a href='http://nanoexplanations.wordpress.com/tag/rectilinear-polygon/'>rectilinear polygon</a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/nanoexplanations.wordpress.com/597/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/nanoexplanations.wordpress.com/597/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=nanoexplanations.wordpress.com&#038;blog=20214953&#038;post=597&#038;subd=nanoexplanations&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://nanoexplanations.wordpress.com/2011/12/16/polygon-rectangulation-part-3-minimum-length-rectangulation/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/fa537ee1a516975bb8ec4733c208b528?s=96&#38;d=identicon&#38;r=PG" medium="image">
			<media:title type="html">nanoexplanations</media:title>
		</media:content>

		<media:content url="http://nanoexplanations.files.wordpress.com/2011/12/constructed_lines.png" medium="image">
			<media:title type="html">constructed_lines</media:title>
		</media:content>
	</item>
	</channel>
</rss>
