PKCS # 1 definisce solo due paddati "vecchio stile" (detti anche "v1.5" perché questi erano i due paddings definiti in PKCS # 1 v1.5, mentre versioni più moderne aggiungono altre opzioni, note come "OAEP" e "PSS"). Questi due paddings sono "tipo 1" e "tipo 2". Non esiste una padding definita di "tipo 0"; naturalmente, ogni byte può concettualmente avere un valore nell'intervallo da 0 a 255, ma PKCS # 1 definisce solo due paddings, non tre o più.
I due paddings non differiscono solo dal "tipo byte" (del valore 0x01 o 0x02). I byte successivi (la stringa "PS") sono molto importanti per la sicurezza. Nella spaziatura "tipo 1", la stringa "PS" consiste solo di byte di valore 0xFF; è completamente deterministico. Nel padding "tipo 2", la stringa "PS" è composta da byte casuali (i byte non devono avere valore 0x00, ma altrimenti devono essere generati casualmente nell'intervallo 0x01..0xFF). non possono essere usati in modo intercambiabile. Il padding di tipo 1 è per la firma, il tipo 2 è per la crittografia asimmetrica. Se si utilizza un riempimento di tipo 2 per le firme, si ottiene uno schema di firma molto debole (a causa della malleabilità inerente agli esponenziamenti modulari). Se si utilizza un padding di tipo 1 per la crittografia asimmetrica, si ottiene uno schema di crittografia debole (a causa del determinismo del padding di tipo 1, che consente un attacco di forza bruta sul testo in chiaro).
Il byte "BT" che identifica il tipo di padding è principalmente (e principalmente) per rendere i due paddings distinti in modo univoco. Altrimenti, ci si dovrebbe preoccupare degli aggressori che usano una firma come messaggio crittografato o viceversa. Pertanto, i due paddings dovrebbero avere un valore "BT" distinto; gli autori PKCS # 1 potevano scegliere i due valori per essere 0 e 1, o 1 e 2, o 17 e 42, o qualsiasi altra coppia di valori distinti; hanno scelto 1 e 2. Questo è arbitrario.
In ogni caso, l'importanza del padding non è nel byte "BT", ma nei byte che seguono (la stringa "PS"). Non è consigliabile utilizzare un riempimento "tipo 0" perché non esiste un padding di tipo 0 .