Earlier quoted context omitted.
The notation in that article is basic discrete math stuff...
I got most of it, but... KeyGen(1^lambda), what does the 1^lambda part mean? They don't really explain that, and I don't remember encountering that notation in any of the mathematics courses I took at university
It's lambda encoded as a unary vector, i.e. a vector (1, ..., 1) of lambda ones. It means KeyGen is parametrized by a natural number lambda, like KeyGen(lambda).
The notion is from computer science or complexity theory I think. The reason it's written like this is because the complexity of functions is described as a function of the length of the inputs, rather than the input itself.