Why require that public and private key each have length at least the security parameter?
You're probably familiar with the convention of giving input $1^n$ to an algorithm as a way to indicate &quot;this algorithm is allowed to run in polynomial time in $n$.&quot; Suppose you are writing about an encryption scheme and want to be very precise about this. You would write:

$\textsf{KeyGen}(1^n) \to (sk,pk)$
$\textsf{Enc}(1^n, pk, m) \to c$
$\textsf{Dec}(1^n, sk, c) \to m$

Now suppose you know (or insist) that $|pk| \ge n$ and $|sk| \ge n$, and that $n$ can be efficiently computed by looking at $pk$, $sk$.
Then $1^n$ can be omitted as input from $\textsf{Enc}$ and $\textsf{Dec}$ without loss of generality: these algorithms have enough information and running-time budget to efficiently reconstruct the string $1^n$ if needed.
In short, this requirement simplifies the notation without sacrificing any rigor.
It would have also worked to insist that $|sk|, |pk|$ are $\Omega(n^c)$, so that any polynomial function of $|sk|$ is also a polynomial function of $n$.
Basically, $|sk|, |pk|$ can't be exponentially smaller than $n$.
(The fact that $\textsf{KeyGen}$ is a polynomial time algorithm already means that $|sk|,|pk|$ can't be exponentially larger than $n$.)