def METHOD_NAME(self, mpk, ID, M):
    #_ID is an element in ZR, s is an random number in ZR
    s = group.random(ZR)
    _ID = group.hash(ID,ZR)
    #M is an element in GT
    C0 = [mpk['g1b0'][0]**s, mpk['g1b0'][1]**s]
    C1 = [(mpk['g1b2'][0]*(mpk['g1b1'][0]**_ID))**s,
          (mpk['g1b2'][1]*(mpk['g1b1'][1]**_ID))**s]
    C2 = (mpk['egg']**s) * M
    ct_id = { 'C0':C0, 'C1':C1, 'C2':C2}
    if(debug):
        print('\nEncrypt...')
        group.debug(ct_id)
    return ct_id