def parser(u1, a, b): k = [] for i in range(len(u1)): shares = Shamir.split_secret(u1[i], a, b) tmp = [] for i in shares: tmp.append(int(i[2:], 16)) k.append(tmp) k = np.transpose(np.array(k)).tolist() return k
def _re_key(self, target_nonce, current_sss_tree): if "key_slot_id" in current_sss_tree: key_slot = self.data["key_slots"][current_sss_tree["key_slot_id"]] auth_module = AUTH_TYPE_MAP[key_slot["auth_type"]] auth_module.lock_key_slot(key_slot, target_nonce) else: sss_keys = SecretSharer.split_secret( target_nonce, current_sss_tree["required_auth_count"], len(current_sss_tree["children"]), ) for new_target, child in zip(sss_keys, current_sss_tree["children"]): self._re_key(new_target, child)
def process_image(filename,k,n,users,sender_id): # AES Key key = Random.new().read(32) hexkey = key.encode('hex') # Encrypting Image and Deleting the file aes.encrypt_file(key,filename) os.remove(filename) # Splitting AES Key into N parts shares = SecretSharer.split_secret(hexkey,k,n) # Creating a New Message msg_id = database.new_message(filename + '.enc', k, sender_id) users.insert(0,sender_id) # Updating message queue database.update_message_queue(users,shares,msg_id)
def secret_sharing(): lines = read_in() lamb = int(lines) #lamb = 5 vote = str(lamb) voteMsg = 'bce' + str(vote) shares = SecretSharer.split_secret(voteMsg, 2, 3) #priv, pub = generate_keypair(512) # read pk.pem and sk.pem f = file("./pk.pem", "r") line = f.readline() line = line.replace("<PublicKey:", "").replace(">", "") pub = PublicKey(int(line)) array = [] g = file("./sk.pem", "r") line = g.readline() line = line.replace("<PrivateKey:", "").replace(">", "") priv = PrivateKey(int(line.split()[0]), int(line.split()[1])) # print "Original secret of vote:" # for item in range(0, 3): # print shares[item] # shares = SecretSharer.split_secret( #"c4bbcb1fbec99d65bf59d85c8cb62ee2db963f0fe106f483d9afa73bd4e39a8a", 2, 3) #['1-58cbd30524507e7a198bdfeb69c8d87fd7d2c10e8d5408851404f7d258cbcea7', '2-ecdbdaea89d75f8e73bde77a46db821cd40f430d39a11c864e5a4868dcb403ed', #'3-80ebe2cfef5e40a2cdefef0923ee2bb9d04bc50be5ee308788af98ff609c380a'] sh3 = ["" for x in range(3)] # print "-------------------------encrypt # loop-----------------------------------------" for index in range(0, 3): tmpCoordinate = shares[index][2:].encode('hex') crypt_tmpCoordinate = encrypt(pub, int(tmpCoordinate)) sh3[index] = crypt_tmpCoordinate if index == 2: print str(crypt_tmpCoordinate) + "$", else: print str(crypt_tmpCoordinate),
def shamirs_split(file_object): text = file_object.read() list = PlaintextToHexSecretSharer.split_secret(text, 2, 2) hexcode = SecretSharer.split_secret(list[0][2:], 2, 2) return hexcode, list[1]
import timeit from secretsharing import SecretSharer data = "baf011876aec65950556a5b3048b4d0e0e57008508270629f0d0e91aac916187561c9e94cb2b118633bd1c8174ac10d1dba342ee31f91fa4f83e398f25581448" n = 2 m = 3 wr = open("resutl.csv", 'w') while m < 8000: start = timeit.default_timer() secret = SecretSharer.split_secret(data, n, m) stop = timeit.default_timer() print(str(n) + " of " + str(m)) print(str(stop - start) + " seconds") wr.write(str(n) + ";" + str(m) + ";" + str(stop - start) + '\n') n += 1 m += 2
def shareKey(cls, key, agreement_nbr, total_nbr): shares = SecretSharer.split_secret(key, agreement_nbr, total_nbr) return shares
def getSharingKey(key, n, k): return SecretSharer.split_secret(key, k, n)