Randomness Extractors - Applications and Constructions