Lecture Note
University
University of California San DiegoCourse
DSC 207R | Python for Data SciencePages
2
Academic year
2023
anon
Views
22
Splitting and Sharing Keys As the popularity of Bitcoin and other cryptocurrencies continues to grow, the need for secure storage and management of the secret keys that control them has become increasinglyimportant. Until now, most methods of storing Bitcoin keys have involved placing them in a singlelocation, whether it be in software, on paper, or locked in a safe. However, this method leaves uswith a single point of failure, and if something goes wrong with that single storage place, then weare in trouble. Therefore, it's essential to take a key and split it up into pieces and share thosepieces around to avoid the single point of failure problem. In this article, we'll talk about how to share and split keys using a cryptographic trick called Secret Sharing. The idea is to take a secret key and divide it into some number N of pieces, suchthat if we're given any K of those pieces, we'll be able to reconstruct the original secret. Still, ifwe're given fewer than K pieces, then we won't be able to learn anything about the originalsecret. In conclusion, address creation and storage are essential components of Bitcoin security. It is crucial to generate addresses using an ECDSA-compatible digital signature protocol that enableshierarchical key generation. Additionally, maintaining your Bitcoin address information securely isas crucial. You have the option of keeping your data on a physical device, a brain wallet, or apaper wallet. Regardless of the method you select, it is crucial to take the proper securitymeasures to protect your Bitcoin. The first piece, X1, is (S+R) mod P. That's S plus R modulo P, which means taking the value S+R, dividing it by P, and keeping the remainder. The second piece, X2, is S+2R mod P. Now, ifwe have both shares X1 and X2, we can combine them to reconstruct the secret S by computingtwo times X1 minus X2 mod P. That's 2S plus 2R minus S minus 2R mod P, which leaves us withjust S, the original secret. However, if we have only one share, we can't learn anything about the original secret. For example, consider the first share X1. It's S plus R modulo P, where R is a random number thatcould take on any value between zero and P minus one with equal likelihood. Therefore, thisshare by itself looks like a purely random number and doesn't convey anything about the value ofS. Similarly, X2 is also equally likely to take on any value between zero and P minus one byitself. Secret sharing can be extended to any number of shares, not just two. For example, if we want to split a secret into three pieces (N=3), we can generate two random values, R1 and R2,and split the secret into three pieces as follows: X1 = (S+R1+R2) mod PX2 = (S+2R1+R2) mod PX3 = (S+3R1+R2) mod P To reconstruct the secret S, we need any two of the shares. Suppose we have X1 and X2. Then we can compute:
2(X1-X2) mod P = S+R1 mod P We can then combine this result with X3 to get: 3(X1-X2)+X3 mod P = S Using secret sharing, we can store different shares of the same key in different locations
Splitting and Sharing Keys
Please or to post comments