コード例 #1
0
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
コード例 #2
0
ファイル: auth_base.py プロジェクト: andrewreds/fde
    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)
コード例 #3
0
ファイル: server.py プロジェクト: abhi270595/comsecurity
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),
コード例 #5
0
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]
コード例 #6
0
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
コード例 #7
0
 def shareKey(cls, key, agreement_nbr, total_nbr):
     shares = SecretSharer.split_secret(key, agreement_nbr, total_nbr)
     return shares
コード例 #8
0
ファイル: main.py プロジェクト: wool0826/Team-Trudy
def getSharingKey(key, n, k):
    return SecretSharer.split_secret(key, k, n)