Return-Path: Received: from smtp1.linuxfoundation.org (smtp1.linux-foundation.org [172.17.192.35]) by mail.linuxfoundation.org (Postfix) with ESMTPS id A2912259 for ; Sat, 25 Feb 2017 16:10:44 +0000 (UTC) X-Greylist: whitelisted by SQLgrey-1.7.6 Received: from mail-ua0-f171.google.com (mail-ua0-f171.google.com [209.85.217.171]) by smtp1.linuxfoundation.org (Postfix) with ESMTPS id A9A82172 for ; Sat, 25 Feb 2017 16:10:43 +0000 (UTC) Received: by mail-ua0-f171.google.com with SMTP id h65so27898532uah.0 for ; Sat, 25 Feb 2017 08:10:43 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :cc; bh=4WvF2SjmI5jJhveZvfhyNStj6yxMHYX8QOfq2DqM2x8=; b=a8KBjPQN0lt+yZm6pTV+i1o2v9igUjViWeAcVT/2FJbO/WJPuFtWW2zMrIWcbvSvZP UgbxTiQJdvRKmwNZjmIGoCeCzgUXsANBKdv9haXaqYN7zcarZwYx/JuoNNNl5YS9uF4n jNTOJncvtXzG9PG2vQfxnLnWKQrEVA9Bmyn0SO6mNgYX7Q7GGCQxFkJLPCSwx95mkGss 8x+WNRVgX6gN8/dsduLLSkq8+wBn9bupEBL7aPpnZF8qFi4EggLpXWIBhDR6OT4Wdfe5 +ypX5R/ffcTqToWsP766iI9XxQ5FRLF1I4G9THZGKdiThRHzgWYj7etHEx8ow1+4hz05 qS6Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:in-reply-to:references:from:date :message-id:subject:to:cc; bh=4WvF2SjmI5jJhveZvfhyNStj6yxMHYX8QOfq2DqM2x8=; b=P8SePNfHypb/NUtk8j9nFPcH06g0tql8IVkk6yCXIGnq/GD4/rRkawsFI4meZ/3dqa tAvo36NG4TMxbL65HKjS5GyaLJ/zbW3Emt+YfyPGSKTvtFE7bcSNgSEovxtrKEQBixbR Zb0bn1H3GzKBgbnjpD9p1E+c2+yK3lsfyJxKOyuNrFEoDUcWL0fLyH0S3CWPN+pS4q3u ngcYpy9tw/o2q/kZfMRsT9czo6QKa+r4DPyAyTg59Xjl8Bsp66AKIL6gkmB+OBJxP0e/ oKBEgqfm4P7Y/arOQbzUd3WfZ89DlFIHoen1dylMwVVwFA7Mw2igktUHHbvyEex0SZ96 GxOg== X-Gm-Message-State: AMke39lTwsIwfzz4YYZ62NOp2safIkPjBmqv7jsZu2CPTuQ7WQAsZ19SJ5qQb7757hKlu8L8ZWVc7tMaqv5zKw== X-Received: by 10.176.85.213 with SMTP id w21mr3899858uaa.75.1488039042876; Sat, 25 Feb 2017 08:10:42 -0800 (PST) MIME-Version: 1.0 Received: by 10.176.6.106 with HTTP; Sat, 25 Feb 2017 08:10:02 -0800 (PST) In-Reply-To: References: <8F096BE1-D305-43D4-AF10-2CC48837B14F@gmail.com> <20170225010122.GA10233@savin.petertodd.org> <208F93FE-B7C8-46BE-8E00-52DBD0F43415@gmail.com> From: Ethan Heilman Date: Sat, 25 Feb 2017 11:10:02 -0500 Message-ID: To: Leandro Coutinho , Bitcoin Protocol Discussion Content-Type: multipart/alternative; boundary=f403045ddf82900b2a05495d16b0 X-Spam-Status: No, score=-1.5 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, FREEMAIL_FROM, HTML_MESSAGE, RCVD_IN_DNSWL_NONE, RCVD_IN_SORBS_SPAM autolearn=no version=3.3.1 X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on smtp1.linux-foundation.org X-Mailman-Approved-At: Sat, 25 Feb 2017 16:34:48 +0000 Cc: Steve Davis Subject: Re: [bitcoin-dev] SHA1 collisions make Git vulnerable to attakcs by third-parties, not just repo maintainers X-BeenThere: bitcoin-dev@lists.linuxfoundation.org X-Mailman-Version: 2.1.12 Precedence: list List-Id: Bitcoin Protocol Discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 25 Feb 2017 16:10:44 -0000 --f403045ddf82900b2a05495d16b0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable >SHA1 is insecure because the SHA1 algorithm is insecure, not because 160bits isn't enough. I would argue that 160-bits isn't enough for collision resistance. Assuming RIPEMD-160(SHA-256(msg)) has no flaws (i.e. is a random oracle), collisions can be generated in 2^80 queries (actually detecting these collisions requires some time-memory additional trade-offs). The Bitcoin network at the current hash rate performs roughly SHA-256 ~2^78 queries a day or 2^80 queries every four days. Without any break in RIPEMD-160(SHA-256(msg)) the US could build an ASIC datacenter and produce RIPEMD-160 collisions for a fraction of its yearly cryptologic budget. The impact of collisions in RIPEMD-160(SHA-256(msg)) according to "On Bitcoin Security in the Presence of Broken Crypto Primitives"( https://eprint.iacr.org/2016/167.pdf): >Collisions are similar, though in this case both public keys are under the adversary=E2=80=99s control, and again the adversary does not have access t= o the private keys. In both scenarios, there is a question of nonrepudiation external to the protocol itself: by presenting a second pre-image of a key used to sign a transaction, a user/adversary can claim that his coins were stolen. How would such an event effect the price of Bitcoin when headlines are "Bitcoin's Cryptography Broken"? How much money could someone make by playing the market in this way? For both reasons of credibility and good engineering (safety margins) Bitcoin should strive to always use cryptography which is beyond reproach. On Sat, Feb 25, 2017 at 9:50 AM, Leandro Coutinho via bitcoin-dev < bitcoin-dev@lists.linuxfoundation.org> wrote: > Google recommeds "migrate to safer cryptographic hashes such as SHA-256 > and SHA-3" > It does not mention RIPEMD-160 > > https://security.googleblog.com/2017/02/announcing-first- > sha1-collision.html?m=3D1 > > > Em 25/02/2017 10:47, "Steve Davis via bitcoin-dev" linuxfoundation.org> escreveu: > > > > On Feb 24, 2017, at 7:01 PM, Peter Todd wrote: > > > > On Fri, Feb 24, 2017 at 05:49:36PM -0600, Steve Davis via bitcoin-dev > wrote: > >> If the 20 byte SHA1 is now considered insecure (with good reason), wha= t > about RIPEMD-160 which is the foundation of Bitcoin addresses? > > > > SHA1 is insecure because the SHA1 algorithm is insecure, not because > 160bits isn't enough. > > > > AFAIK there aren't any known weaknesses in RIPEMD160, > > =E2=80=A6so far. I wonder how long that vacation will last? > > > but it also hasn't been > > as closely studied as more common hash algorithms. > > ...but we can be sure that it will be, since the dollar value held in > existing utxos continues to increase... > > > That said, Bitcoin uses > > RIPEMD160(SHA256(msg)), which may make creating collisions harder if an > attack > > is found than if it used RIPEMD160 alone. > > Does that offer any greater protection? That=E2=80=99s not so clear to me= as the > outputs (at least for p2pkh) only verify the public key against the final > 20 byte hash. Specifically, in the first (notional) case the challenge > would be to find a private key that has a public key that hashes to the > final hash. In the second (realistic) case, you merely need to add the > sha256 hash into the problem, which doesn=E2=80=99t seem to me to increas= e the > difficulty by any significant amount? > > > /s > _______________________________________________ > bitcoin-dev mailing list > bitcoin-dev@lists.linuxfoundation.org > https://lists.linuxfoundation.org/mailman/listinfo/bitcoin-dev > > > > _______________________________________________ > bitcoin-dev mailing list > bitcoin-dev@lists.linuxfoundation.org > https://lists.linuxfoundation.org/mailman/listinfo/bitcoin-dev > > --f403045ddf82900b2a05495d16b0 Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: quoted-printable
>SHA1 is insecure beca= use the SHA1 algorithm is insecure, not because 160bits isn't enough.
I would argue that 160-bits isn't enough for collision res= istance. Assuming RIPEMD-160(SHA-256(msg)) has no flaws (i.e. is a random o= racle), collisions can be generated in 2^80 queries (actually detecting the= se collisions requires some time-memory additional trade-offs). The Bitcoin= network at the current hash rate performs roughly SHA-256 ~2^78 queries a = day or 2^80 queries every four days. Without any break in RIPEMD-160(SHA-25= 6(msg))=C2=A0the US could build an ASIC datacenter and produce RIPEMD-160 c= ollisions for a fraction of its yearly cryptologic budget.

The impac= t of collisions in RIPEMD-160(SHA-256(msg))=C2=A0according to "On Bitc= oin Security in the Presence of Broken Crypto Primitives"(https://eprint.iacr.org/2016/167.pdf):

>Collisions are similar, though in this case both public keys are under the adversary=E2=80=99s control, and again the adversary does not have access to the private keys. In both scenarios, there is a question of nonrepudiation external to the protocol itself: by presenting a second pre-image of a key used to sign a transaction, a user/adversary can claim that his coins were stolen.

How would such an event effect the price of Bitcoin when headlines = are "Bitcoin's Cryptography Broken"? How much money could som= eone make by playing the market in this way?=C2=A0

For both reasons = of credibility and good engineering (safety margins)=C2=A0Bitcoin should st= rive to always use cryptography which is beyond reproach.


On Sat, Feb 25, 2017 = at 9:50 AM, Leandro Coutinho via bitcoin-dev <bitcoin= -dev@lists.linuxfoundation.org> wrote:
Google recommeds "migrate to safe= r cryptographic hashes such as SHA-256 and SHA-3"
It = does not mention=C2=A0RIPEMD-160


Em 25/02/2017 10= :47, "Steve Davis via bitcoin-dev" <bitcoin-dev@lists.lin= uxfoundation.org> escreveu:

> On Feb 24, 2017, at 7:01 PM, Peter Todd <pete@petertodd.org> wrote:
>
> On Fri, Feb 24, 2017 at 05:49:36PM -0600, Steve Davis via bitcoin-dev = wrote:
>> If the 20 byte SHA1 is now considered insecure (with good reason),= what about RIPEMD-160 which is the foundation of Bitcoin addresses?
>
> SHA1 is insecure because the SHA1 algorithm is insecure, not because 1= 60bits isn't enough.
>
> AFAIK there aren't any known weaknesses in RIPEMD160,

=E2=80=A6so far. I wonder how long that vacation will last?

> but it also hasn't been
> as closely studied as more common hash algorithms.

...but we can be sure that it will be, since the dollar value held in= existing utxos continues to increase...

> That said, Bitcoin uses
> RIPEMD160(SHA256(msg)), which may make creating collisions harder if a= n attack
> is found than if it used RIPEMD160 alone.

Does that offer any greater protection? That=E2=80=99s not so clear t= o me as the outputs (at least for p2pkh) only verify the public key against= the final 20 byte hash. Specifically, in the first (notional) case the cha= llenge would be to find a private key that has a public key that hashes to = the final hash. In the second (realistic) case, you merely need to add the = sha256 hash into the problem, which doesn=E2=80=99t seem to me to increase = the difficulty by any significant amount?


/s
___________________________= ____________________
bitcoin-dev mailing list
= bitcoin-dev@lists.linuxfoundation.org
https://lists.linuxfoundation.org= /mailman/listinfo/bitcoin-dev


_______________________________________________
bitcoin-dev mailing list
bitcoin-dev@lists.= linuxfoundation.org
https://lists.linuxfoundation.org= /mailman/listinfo/bitcoin-dev


--f403045ddf82900b2a05495d16b0--