<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title>Cryptography on truegav</title>
		<link>/tags/cryptography/</link>
		<description>Recent content in Cryptography on truegav</description>
		<generator>Hugo</generator>
		<language>en-us</language>
		
		
		
		
			<lastBuildDate>Sat, 30 Aug 2025 14:00:00 +0530</lastBuildDate>
		
			<atom:link href="/tags/cryptography/index.xml" rel="self" type="application/rss+xml" />
			<item>
				<title>Monero has better privacy than any coin you use and you do not care</title>
				<link>/posts/monero-better-privacy-nobody-cares/</link>
				<pubDate>Sat, 30 Aug 2025 14:00:00 +0530</pubDate>
				<guid>/posts/monero-better-privacy-nobody-cares/</guid>
				<description>&lt;h2 id=&#34;the-cathedral-and-the-cardboard-box&#34;&gt;The cathedral and the cardboard box&lt;/h2&gt;&#xA;&lt;p&gt;The best privacy technology in cryptocurrency has been running in production for ten years. Every transaction is private by default. Sender hidden. Receiver hidden. Amount hidden. The engineering is meticulous. The cryptography has survived every audit and every upgrade without a single known privacy break.&lt;/p&gt;&#xA;&lt;p&gt;Nobody uses it.&lt;/p&gt;&#xA;&lt;p&gt;The market prefers Tether, which broadcasts every transaction onto a permanent public ledger and can freeze any address through a single administrative ICANN-style phone call. Tether operates a customer support hotline and maintains 115 billion dollars in circulation. Monero operates a whitepaper and a development community of cryptographers who would lose a marketing contest to a sandwich board outside a hardware store. The cardboard box with a toll-free number printed on the side is overflowing with customers. The cathedral is empty.&lt;/p&gt;</description>
			</item>
			<item>
				<title>ecrecover has been lying for eight years and your code still trusts it</title>
				<link>/posts/ecrecover-has-been-lying-for-eight-years/</link>
				<pubDate>Fri, 05 Jul 2024 14:00:00 +0530</pubDate>
				<guid>/posts/ecrecover-has-been-lying-for-eight-years/</guid>
				<description>&lt;h2 id=&#34;the-liar-at-address-0x01&#34;&gt;The liar at address 0x01&lt;/h2&gt;&#xA;&lt;p&gt;There is a function baked into the EVM protocol at &lt;code&gt;0x01&lt;/code&gt; that has been deceiving developers since the Frontier release in 2015. Not a smart contract bug. Not a compiler issue. A precompile. Hardcoded into every Ethereum node. When ECDSA public key recovery succeeds, it returns the signer&amp;rsquo;s address. When recovery fails, it returns &lt;code&gt;address(0)&lt;/code&gt;.&lt;/p&gt;&#xA;&lt;p&gt;Zero. The null address. Delivered with the emotional affect of a cinder block. No revert. No event. No error state. Just zero.&lt;/p&gt;</description>
			</item>
			<item>
				<title>Every single signature you have ever verified has a twin</title>
				<link>/posts/every-signature-has-a-twin/</link>
				<pubDate>Wed, 10 Apr 2024 14:00:00 +0530</pubDate>
				<guid>/posts/every-signature-has-a-twin/</guid>
				<description>&lt;h2 id=&#34;the-sibling&#34;&gt;The sibling&lt;/h2&gt;&#xA;&lt;p&gt;Every ECDSA signature &lt;code&gt;(r, s, v)&lt;/code&gt; possesses an identical twin &lt;code&gt;(r, n - s, v XOR 1)&lt;/code&gt;. Same private key signed both. Same message was hashed. &lt;code&gt;ecrecover&lt;/code&gt; returns the identical address for both. Your protocol processes them as distinct authorizations because the raw bytes differ.&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-python&#34; data-lang=&#34;python&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;r&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;s&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;v&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;original_sig&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;s2&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;-&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;s&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;%&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;SECP256K1_ORDER&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;v2&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;v&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;^&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;1&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# (r, s2, v2) recovers to the same address&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;The secp256k1 curve is symmetric. For every valid point &lt;code&gt;(x, y)&lt;/code&gt; that exists on the curve, &lt;code&gt;(x, -y)&lt;/code&gt; also exists. The &lt;code&gt;s&lt;/code&gt; component of the signature encodes which y-coordinate was selected during the signing process. Flip &lt;code&gt;s&lt;/code&gt; modulo the curve order and flip the parity bit in &lt;code&gt;v&lt;/code&gt;. You have now manufactured a second, completely valid, cryptographically indistinguishable signature for the identical message from the identical key. You never touched the private key. You performed modular arithmetic that a motivated fourteen year old could execute.&lt;/p&gt;</description>
			</item>
			<item>
				<title>A 1982 paper broke knapsack crypto and nobody noticed for a fucking decade</title>
				<link>/posts/1982-paper-broke-knapsack/</link>
				<pubDate>Mon, 22 Jan 2024 14:00:00 +0530</pubDate>
				<guid>/posts/1982-paper-broke-knapsack/</guid>
				<description>&lt;h2 id=&#34;the-gift-that-keeps-on-killing&#34;&gt;The gift that keeps on killing&lt;/h2&gt;&#xA;&lt;p&gt;A 1982 paper about the geometry of numbers has killed more cryptosystems than every signals intelligence agency on the planet combined. Three Dutch mathematicians published it, collected their citations, and went home. They had no idea they had just handed the world a weapon that would still be executing cryptosystems forty years later while they enjoyed retirement.&lt;/p&gt;&#xA;&lt;p&gt;The algorithm finds short vectors in polynomial time.&lt;/p&gt;</description>
			</item>
	</channel>
</rss>
