예제 #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, hashObj
     group = groupObj
     hashObj = hashlib.new('sha1') 
예제 #2
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
예제 #3
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."
 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."
    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."
예제 #6
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."
예제 #7
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
예제 #8
0
 def __init__(self, groupObj):
     IBEnc.__init__(self)
     global group,h,ZN
     group = groupObj
     h = Hash('sha1', group)
     ZN = -1
예제 #9
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)
예제 #10
0
 def encrypt(self, pk, ID, msg):
     if not self.ibe_good: return IBEnc.encrypt(self, pk, ID, msg)
     return self.ibenc.encrypt(pk, ID, msg)
예제 #11
0
 def setup(self):
     if not self.ibe_good: return IBEnc.setup(self)
     return self.ibenc.setup()
예제 #12
0
 def __init__(self, groupObj):
     IBEnc.__init__(self)
     global group,h,ZN
     group = groupObj
     h = Hash('sha1', group.Pairing)
     ZN = -1
 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)
 def encrypt(self, pk, ID, msg):
     if not self.ibe_good: return IBEnc.encrypt(self, pk, ID, msg)
     return self.ibenc.encrypt(pk, ID, msg)
 def setup(self):
     if not self.ibe_good: return IBEnc.setup(self)
     return self.ibenc.setup()