Questions tagged [cryptography]

Concerning the broad subject of cryptography and its narrow application in Bitcoin protocol and applications.

64
votes
4answers
22k views

What is a compressed Bitcoin key?

The standard Bitcoin client in version 0.6 apparently introduces compressed keys. What are they? Are there any drawbacks to using them? Any incompatibilities with older software? Reductions in ...
55
votes
4answers
7k views

Have any cryptography experts vetted the bitcoin source code?

Theoretically, bitcoin's open source nature makes it more resistant to bugs and exploits. However, due to the specialized nature of the code, even many programmers don't fully understand the ...
50
votes
2answers
26k views

What does the curve used in Bitcoin, secp256k1, look like?

I'm reading up on ECC curves and on many of them I see an illustration that looks like this What does the comparable curve in Bitcoin look like, or are all curves generally the same?
33
votes
5answers
11k views

Bitcoin Mining ASICs used for cryptographic application? Rainbow tables?

What is the potential that the ASICs being developed for mining could be used for other cryptographic applications such as building rainbow tables? I know that for instance those that crack GSM with ...
20
votes
2answers
11k views

ECDSA: (v, r, s), what is v?

Deterministically signing a Tx with RFC6979 returns v, r, s, where r and s are the 2 values used in standard ECDSA signatures. v = 27 + (y % 2), so 27 + the parity of r, as pybitcointools indicates. ...
15
votes
6answers
3k views

Which Bitcoin-powered gambling sites are “provably fair”?

Through the spread of Bitcoin for the purposes of online gambling, the concept of "provably fair" games came more into the limelight. Which of the Bitcoin-powered gambling websites are provably fair? ...
13
votes
1answer
2k views

What is the origin of insecure 64-bit nonces in signatures in the Bitcoin chain?

In Biased Nonce Sense: Lattice Attacks against Weak ECDSA Signatures in Cryptocurrencies Joachim Breitner and Nadia Heninger use a lattice based algorithm to recover private keys from signatures in ...
12
votes
3answers
1k views

Can the Bitcoin network be used for cracking?

I'm assuming that the Bitcoin economy is rapidly building a computing cluster capable of unprecedented amount of hash searching. Would it be possible for an attacker to leverage this to crack other ...
11
votes
1answer
601 views

What mathematical property links the Armory chain to the public/private keys?

According to the Armory site the Public Keys needed for the Bitcoin addresses can be generated without having access to the Private Keys, which ideally are stored on a completely different computer. ...
8
votes
4answers
4k views

What exactly is generator G in Bitcoin's elliptical curve algorithm?

What exactly is the generator G in elliptical curve math? It is typically described as a point on the curve. Is this a tuple of values? What properties does it have?
8
votes
2answers
15k views

How to generate a Bitcoin Private Key Checksum

I want to understand how a bitcoin private key is made up. Looking at this graphical generator https://royalforkblog.github.io/2014/08/11/graphical-address-generator/#hello I understand step 1, how ...
8
votes
1answer
2k views

Problems with deterministic ECDSA based on RFC6979 in Bitcoin

Generating random number k in elliptic curve is crucial and in any transactions signature in Bitcoin, random number k is required to compute a point k*G. If this k is chosen not randomly, it instantly ...
8
votes
4answers
748 views

How can a bitcoin exchange prove its solvency while maintaining privacy?

What methods can an exchange website use to prove that it actually has all its users' bitcoins? These are the requirements: User privacy is a must. No one should be able to tell how many bitcoins an ...
7
votes
2answers
2k views

Is a bitcoin address collision possible if generating 90 million addresses every 4 hours?

I am running a test to see if I can obtain a successful bitcoin address collision after generating billions of addresses. I am not entirely sure how I would check them yet. Basically I have an extra ...
7
votes
2answers
2k views

If SHA256 and/or RIPEMD-160 were broken, would all bitcoin addresses be compromised?

If not, what else would be needed to steal all funds from all people and completely break bitcoin? I bet some will say ECSDA gives bitcoin an additional layer of protection. I counter this by saying ...
7
votes
1answer
173 views

What level of mathematical understanding do I need in order to contribute or to understand the crypto behind bitcoin?

My mathematical knowledge is up to CALC II (college level.) Is this enough mathematical maturity in order to understand the crypto in bitcoin or do I need more knowledge? If I do indeed need more ...
7
votes
1answer
466 views

Is there a fallback plan if bitcoin's underlying cryptography is cracked?

Lets say someone started making real viable quantum computers that were affordable enough that large companies could buy one. And lets say a quantum algorithm was devised to crack the private keys of ...
7
votes
1answer
550 views

What OpenCL video cards (or FPGAs) are best for multiplication?

I'm benchmarking some Bitcoin related software and am looking for cards that are better at parallel multiplication vs parallel addition. Is there any prior work that may have this information? ...
6
votes
4answers
883 views

Is it possible to forward bitcoins without the private keys?

According to this question, there isn't an easy way to automatically send bitcoins from one address to another and I think that it might be useful. So I thought about creating a website were people ...
6
votes
1answer
1k views

Where and how is secp256k1 used within Bitcoin?

Bitcoin is unique that is uses secp256k1 to secure it's transactions; and any cryptographic attack against this algorithm is probably going to be percieved as an attack against the bitcoin network. ...
6
votes
1answer
466 views

Is there a point on the secp256k1 curve for any given X coordinate?

There function in libsecp256k1 that allows you to directly set the field element to 32 bytes of your choice. Does secp256k1 always return a valid group element for any 32 byte value? ...
6
votes
3answers
664 views

Papers/Books on how bitcoin works from a mathematical perspective?

I'm a math student interested in Cryptography. Is there any paper or book which explains, in mathematics and cryptography terms, how bitcoin (more general, a digital cryptocurrency system) works? In ...
6
votes
3answers
1k views

How do you derive the lambda and beta values for endomorphism on the secp256k1 curve?

You can see a little background about this on this bitcointalk post by the late Hal Finney. Beta and lambda are the values on the secp256k1 curve where: λ^3 (mod N) = 1 β^3 (mod P) = 1 As seen ...
6
votes
1answer
439 views

Bitcoin Research

I have recently been assigned to advise a student on a senior thesis in math. She has taken linear algebra, introductory real analysis, basic cryptography, and abstract algebra. Her interest is in ...
6
votes
1answer
257 views

What standard is used for the ECDSA to verify transactions?

Bitcoin used Elliptic Curve Digital Signature Algorithm. (see here). I'm wondering what standard is actually used for this Algorithm: which curve? which prime? Can anybody give me a reference? (Wiki ...
6
votes
1answer
625 views

Recovering the last few digits of a Litecoin private key

Is it possible to recover the last few lost digits (10) of my Litecoin wallet private key? Are there any recovery tools available? Or will I have to try and roll my own? Crucially, what crypto ...
5
votes
1answer
13k views

Byte array to hexadecimal and back again in JavaScript [closed]

I can generate a byte array with var myByteArray = window.crypto.getRandomValues(new Uint8Array(16)) and I get 181,143,16,173,231,56,63,149,181,185,224,124,84,230,123,36 I can then turn this into ...
5
votes
2answers
500 views

BIP32 recommends a 256 bit seed. Why do most Bitcoin wallets only use a 128 bit seed?

According to BIP32's "Master key generation" section, "256 bits is advised". See https://github.com/bitcoin/bips/blob/master/bip-0032.mediawiki#Master_key_generation Why did BIP32 consider 256 bits ...
5
votes
2answers
946 views

Bitcoin Blockchain in the Quantum computing era

The design and the evolution of quantum computers has been one of the "hot" topics during the last 20 years. My question is about the possible consequences of the rise of quantum computers (through ...
5
votes
2answers
2k views

Is it possible to use a PGP key as a bitcoin address?

Both bitcoin and encrypted emailing are based on public key cryptography. However, they use different implementations, so I assume that a public PGP key cannot be used as a bitcoin address directly. ...
5
votes
1answer
1k views

Address Public Private key verification [duplicate]

Apologies if this question has been asked before, but when a bitcoin client wishes to send funds to an address, does the bitcoin protocol force the client to verify that the address has a ...
5
votes
1answer
326 views

Does a Vanity Address reduce the randomness / entropy of the private key? Is there cryptographic proof?

Since a vanity address discards many "valid" keys in order to find one that matches a pre-determined string, I think that the "randomness" of the data would be reduced, thus weakening the key. Is ...
5
votes
2answers
560 views

Is it possible to discover the set of bitcoin addresses from a public key?

I'm trying to find the set of bitcoin addresses from a public key associated with a user just to analyse this user transaction. Is there any way to derive/find all the addresses that have been ...
5
votes
2answers
685 views

Is Electrum Cryptographically Secure?

Electrum seems very user friendly, thin and convenient, but is it cryptographically secure? One of the ways to attack any cryptographic system is to exploit weaknesses in the key generation algorithm....
4
votes
2answers
565 views

What are the advantages of using Secp256k1?

Bitcoin uses secp256k1 as the specification for it's address system (https://en.bitcoin.it/wiki/Secp256k1). What are the advantages (and disadvantages) of using this over other specifications such as ...
4
votes
2answers
4k views

How to generate Ed25519 public key from private key using libsodium?

Not all crypto currencies are using secp256k1 technology for keypair generation and digital signatures. Curve25519 technology (frequently used to support ECDH key exchanges) is being used by a few ...
4
votes
1answer
167 views

what is a discrete logarithmic assumption? how does it set-up trustless proofs?

pending proposal of bulletproofs as a zk proof for confidential transactions relies on fiat-shamir heuristic to be non-interactive via creating a digital signature on interactive proof of knowledge ...
4
votes
1answer
300 views

Why is a chain code needed for entropy in HD wallets?

In the documents and articles I have read, it is stated that the "chain code" in HD wallets exists to provide entropy to the derivation of child public/private keys. If I understand the process ...
4
votes
1answer
47 views

Low-s value in bitcoin signature

What are the problems related in using the "normal" ( bigger than N/2) value of the s number in transaction signature and why we use the lower one? Is it about the math behind the ecdsa?
4
votes
1answer
159 views

Bitcoin's Cryptographic Integrity

A few people I know compare bitcoin and gold regarding currencies with integrity; Martin Armstrong on Zero Hedge compared both in a recent post. One advantage I currently see that bitcoin has over ...
4
votes
2answers
146 views

Which cryptocurrencies deviate significantly from Bitcoin?

There's been dozens of alternate cryptocurrencies but I don't believe many of them did much other than find/replace some strings. We see Bitcoin as made up of the blockchain and proof-of-work via ...
4
votes
1answer
413 views

What are the weakest cryptographic guarantees in Bitcoin?

I read in this Github pull that Bitcoin relies on weaker cryptographic guarantees than SHA256. What are the weaker cryptographic guarantees being referred to? Could it be that RipeMD is 160 bits? ......
3
votes
1answer
144 views

What are the 3 arguments called in function SHA256?

void sha256(struct sha256 *sha, const void *p, size_t size) { struct sha256_ctx ctx; sha256_init(&ctx); sha256_update(&ctx, p, size); sha256_done(&ctx, sha); } I'm trying ...
3
votes
1answer
66 views

ECDSA signature with r value of 31?

occasionally on Android we are generating an ECDSA signature. This turns out to have a "r" length of 31 bytes. Is that valid? For reference here is a nice diagram outlining the ASN.1 structure of ...
3
votes
2answers
752 views

Are Bitcoin Block Hashes Predictable

to create the block chain, the Bitcoin network runs hashing algorithms for each block, is it mathematically possible to predict the hash value of say, the 100th block from the last block currently in ...
3
votes
1answer
819 views

Implementing NiPoPoW algorithm

Hello, We, a small team, have implemented about 95% of a breakthrough scientific proposal that is describing the NiPoPoW Non-Interactive Proofs of Proof-of-Work. You can find our source code ...
3
votes
2answers
440 views

Verifying that a transaction is in the blockchain

Let me first start off by saying im just learning about blockchain and the technical aspects. From my understanding, each transaction is cryptographically hashed, the hashes are paired and hashed ...
3
votes
2answers
2k views

Do all Cryptocurrencies uses same Public key Cryptography algorithm?

I have been trying to read about how Public key cryptography works and I have just understand what public key cryptography is and how it differs from symmetric key cryptography. I have also just read ...
3
votes
1answer
184 views

What is the ECC key length for OpenCoin's implementation of Ripple?

http://www.reddit.com/r/Bitcoin/comments/1lubl1/wired_oped_worries_that_elliptic_curve/cc2vhos suggests that key lengths < 500 bits are no longer considered secure from the NSA. What key length is ...
3
votes
1answer
622 views

The compressed public key byte header

I've noticed that compressed public keys are always either 0x02 or 0x03, but what exactly determines whether it's 0x02 or 0x03? I can go look at the OpenSSL code to answer this, but I'm hoping someone ...