示例#1
0
 def __init__(self, groupObj):
     IBEnc.__init__(self)
     IBEnc.setProperty(self, secdef='IND_ID_CPA', assumption='DBDH', secmodel='Standard')
     #, other={'id':ZR}
     #message_space=[GT, 'KEM']
     global group
     group = groupObj
示例#2
0
 def __init__(self, groupObj):
     IBEnc.__init__(self)
     IBEnc.setProperty(self, secdef="IND_ID_CPA", assumption="DBDH", secmodel="Standard")
     # , other={'id':ZR}
     # message_space=[GT, 'KEM']
     global group
     group = groupObj
示例#3
0
 def __init__(self, groupObj):
     IBEnc.__init__(self)
     #IBEnc.setProperty(self, secdef='IND_ID_CPA', assumption='DBDH', secmodel='Standard')
     #, other={'id':ZR}
     #message_space=[GT, 'KEM']
     global group
     group = groupObj
     global waters_hash
     waters_hash = Waters(group)
示例#4
0
 def __init__(self, groupObj):
     IBEnc.__init__(self)
     IBEnc.setProperty(self,
                       secdef='IND_sID_CPA',
                       assumption='DBDH',
                       message_space=[GT, 'KEM'],
                       secmodel='ROM',
                       other={'id': ZR})
     global group
     group = groupObj
示例#5
0
 def extract(self, mk, ID):
     if not self.ibe_good: return IBEnc.extract(self, mk, ID)
     if type(ID) == str:
         ID2 = self.group.hash(ID)
         return self.ibenc.extract(mk, ID2)
     else:
         assert False, "invalid type on ID."
示例#6
0
 def encrypt(self, pk, ID, msg):
     if not self.ibe_good: return IBEnc.encrypt(self, pk, ID, msg)
     if type(ID) == str:
         ID2 = self.group.hash(ID)
         return self.ibenc.encrypt(pk, ID2, msg)
     else:
         assert False, "invalid type on ID."
示例#7
0
 def extract(self, mk, ID):
     if not self.ibe_good: return IBEnc.extract(self, mk, ID)
     if type(ID) == str:
         ID2 = self.group.hash(ID)
         return self.ibenc.extract(mk, ID2)
     else:
         assert False, "invalid type on ID."
示例#8
0
 def encrypt(self, pk, ID, msg):
     if not self.ibe_good: return IBEnc.encrypt(self, pk, ID, msg)
     if type(ID) == str:
         ID2 = self.group.hash(ID)
         return self.ibenc.encrypt(pk, ID2, msg)
     else:
         assert False, "invalid type on ID."
示例#9
0
    def __init__(self, scheme, group):
        IBEnc.__init__(self)
        self.group = group
        self.ibe_good = False
        # validate that we have the appropriate object
        
        if IBEnc.checkProperty(self, scheme, {'scheme':self.baseSchemeTypes.IBEnc, 
                                        'secdef':self.baseSecDefs.sIND_ID_CPA, 
                                        'id':ZR}):
            self.ibenc = scheme
            # change our property as well
            IBEnc.setProperty(self, secdef='IND_ID_CPA', other={'id':str}, secmodel='ROM')
            # check message space?
            self.ibe_good = True

        if not self.ibe_good:
            assert False, "ibe object does not satisfy requirements."
示例#10
0
    def __init__(self, scheme, group):
        IBEnc.__init__(self)
        self.group = group
        self.ibe_good = False
        # validate that we have the appropriate object

        if IBEnc.checkProperty(
                self, scheme, {
                    'scheme': self.baseSchemeTypes.IBEnc,
                    'secdef': self.baseSecDefs.sIND_ID_CPA,
                    'id': ZR
                }):
            self.ibenc = scheme
            # change our property as well
            IBEnc.setProperty(self,
                              secdef='IND_ID_CPA',
                              other={'id': str},
                              secmodel='ROM')
            # check message space?
            self.ibe_good = True

        if not self.ibe_good:
            assert False, "ibe object does not satisfy requirements."
示例#11
0
 def __init__(self, groupObj):
     IBEnc.__init__(self)
     global group,h
     group = groupObj
     h = Hash('sha1', group)
示例#12
0
 def __init__(self, groupObj):
     IBEnc.__init__(self)
     global group, util
     group = groupObj
示例#13
0
 def __init__(self, groupObj):
     IBEnc.__init__(self)
     global group, H, util
     group = groupObj
     H = lambda x: group.hash(('0', x), ZR)
     util = SecretShare(group, False)
示例#14
0
 def decrypt(self, pk, sk, ct):
     if not self.ibe_good: return IBEnc.decrypt(self, pk, sk, ct)
     return self.ibenc.decrypt(pk, sk, ct)
示例#15
0
 def setup(self):
     if not self.ibe_good: return IBEnc.setup(self)
     return self.ibenc.setup()
示例#16
0
 def decrypt(self, pk, sk, ct):
     if not self.ibe_good: return IBEnc.decrypt(self, pk, sk, ct)
     return self.ibenc.decrypt(pk, sk, ct)
示例#17
0
 def __init__(self, groupObj):
     IBEnc.__init__(self)
     global group, H, util
     group = groupObj
     H = lambda x: group.hash(('0', x), ZR)
     util = SecretShare(group, False)
示例#18
0
 def __init__(self, groupObj):
     IBEnc.__init__(self)
     global group
     group = groupObj
示例#19
0
 def __init__(self, groupObj):
     IBEnc.__init__(self)
     #IBEnc.setProperty(self, message_space=[GT, 'KEM'], secdef='IND_sID_CPA', assumption='DBDH', secmodel='ROM', other={'id':ZR})
     global group
     group = groupObj
示例#20
0
 def setup(self):
     if not self.ibe_good: return IBEnc.setup(self)
     return self.ibenc.setup()