yuuwwang/aicrypto huggingface dataset:
## Note

For Problems 2, 4, 5, 6, please provide formal proofs by writing down a reduction like ''Suppose there is a p.p.t. adversary A that does ..., then there is a p.p.t. adversary B that breaks ... as follows: (then describe what B gets, what B generates by itself, and what B sends to A, ...)''. 
If you are using the hybrid argument, please define the hybrid distributions clearly. 
You may get partial credits by writing down informal proofs or providing proof intuitions.

You can use any theorems except when it is explicitly disallowed in some problems.  
For example, in all problems, you can use ''the existence of OWFs implies the existence of PRFs''. 
If you want to use Goldreich-Levin's construction of a hardcore bit, you still need to provide the ''construction'' of the hardcore bit, then state the theorem of Goldreich-Levin, but you don't need to prove the theorem of Goldreich-Levin by yourself.