示例#1
0
 def compute():
     if len(self.shares) > 1:
         print threshold_scheme.recover_secret(self.shares)
     else:
         tkMessageBox.showerror(message='Need more shares!',
                                title='Invalid Entry')
示例#2
0
	print('Generating secret fragments...')
	fragments = threshold_scheme.share_secret(secret, t, n)

	print('Shares:')
	i = 0
	for f in fragments:
		i += 1
		print('Share #{}:\np:\t\t\t{}\ncoprime:\t{}\nshare:\t\t{}\n'.format(i, f['p'], f['d'], f['k']))

	# recovery part	
	print('\n--- recovery of secret ---')
	# choosing any t parts can recover secret
	shuffle(fragments)
	recovery_set = fragments[:t]
	print('Recovery set:')
	i = 0
	for f in recovery_set:
		i += 1
		print('Recovery part #{}:\np:\t\t\t{}\ncoprime:\t{}\nshare:\t\t{}\n'.format(i, f['p'], f['d'], f['k']))

	start_time = time()
	encrypted_secret = threshold_scheme.recover_secret(recovery_set)
	elapsed_time = time() - start_time
	if encrypted_secret == secret:
		print('--- SUCCESS ---\nTime elapsed: {}\nSecret:\n{}'.format(elapsed_time, encrypted_secret))
	else:
		print("--- ERROR Decrypted secret doesn't equal encrypted secret ---\nTime elapsed: {}\nSecret:\n{}\n".format(elapsed_time, encrypted_secret))

if input('Enter "exit" to exit. Any other input will restart program: ').lower() != 'exit':
	restart()
示例#3
0
 def compute():
   if len(self.shares) > 1:
     print threshold_scheme.recover_secret(self.shares)
   else:
     tkMessageBox.showerror(message = 'Need more shares!', title = 'Invalid Entry')