From single-bit to multi-bit public-key encryption via non-malleable codes