added message cipher implementation