What are the vulnerabilities of this OTP-like system? I've read that a OTP is only perfectly secure if the key is perfectly random, and the pad is never reused.

If you encrypt documents using two keys, where one is random but stays constant for some period of time, and the other is only pseudo-random but unique to each message, is the security of the OTP better or worse than if you used only one key or the other?

And would it still be vulnerable to frequency analysis?
I've read that a OTP is only perfectly secure if the key is perfectly random, and the pad is never reused.


But you've left out the most important condition: the key space must be as large as the message space.


  If you encrypt documents using two keys, where one is random but stays constant for some period of time, and the other is only pseudo-random but unique to each message, is the security of the OTP better or worse than if you used only one key or the other?


You don't specify how the keys are used to encrypt documents, but since you've been talking about one-time pads I will assume the keys are as long as the documents and the encryption works by XOR.

Encrypting messages with distinct pseudorandom key streams is called a stream cipher, and is already secure if the pseudorandom stream generator used is secure and the same keystream is not used twice.  So we can refactor your idea into two components, applied in sequence:


Encrypt the documents with a stream cipher, applying a different keystream to each document;
XOR each ciphertext with a the same true random long-term key.


This has to be at least as secure as the stream cipher is; even if the adversary knows the long-term key for step #2, they'd still have to break the stream cipher. 
 This is theoretically less secure than the OTP's "perfect security," but can be plenty secure in practice; my browser session to this site, for example, is protected by such a stream cipher.

Now, the question is whether the addition of the reused long-term true random key enhances the security in any way.  The answer is no, because an adversary who can break the stream cipher is able to exploit the reuse of the long-term key to break the composite system.  Notating the long-term key as $K_L$, the pseudorandom key streams as $K_1, K_2$, the plaintexts as $P_1, P_2$ and the ciphertexts as $C_1, C_2$, the encryptions satisfy these equations (where $\oplus$ is bitwise XOR):

$$
\begin{align}
C_1 &amp;= P_1 \oplus K_1 \oplus K_L \\
C_2 &amp;= P_2 \oplus K_2 \oplus K_L
\end{align}
$$

Solving both equations for $K_L$:

$$
\begin{align}
K_L &amp;= P_1 \oplus K_1 \oplus C_1 \\
K_L &amp;= P_2 \oplus K_2 \oplus C_2
\end{align}
$$

By transitivity of equality:

$$
\begin{align}
P_1 \oplus K_1 \oplus C_1 &amp;= P_2 \oplus K_2 \oplus C_2
\end{align}
$$

And now I can solve for the XOR of the two plaintexts:

$$
\begin{align}
P_1 \oplus P_2 &amp;= K_1 \oplus C_1 \oplus K_2 \oplus C_2
\end{align}
$$

This is significant, because obtaining the XOR of two plaintexts is the basis for the standard two-time pad attacks:


How does one attack a two-time pad (i.e. one time pad with key reuse)?
Many time pad attack
http://www.juliansanchez.com/2012/07/06/a-friday-puzzler-un-xoring-two-plaintexts/


$K_1$ and $K_2$ are pseudorandom keystreams, I can use a brute force attack to enumerate possible values for them, and use statistics on the implied values $P_1 \oplus P_2$ to infer whether I've hit the right key.  And then when I've found the value $P_1 \oplus P_2$, I can try the two-time pad attacks on it.

So your proposal's security is more or less the same as just using the stream cipher.  Lesson: just use the stream cipher.