RE: security fixes (KDF, MDC->MAC)?

Trevor Perrin <> Fri, 27 September 2002 19:22 UTC

Received: from ( []) by (8.9.1a/8.9.1a) with ESMTP id PAA07270 for <>; Fri, 27 Sep 2002 15:22:38 -0400 (EDT)
Received: (from majordomo@localhost) by (8.11.6/8.11.3) id g8RJGoc24750 for ietf-openpgp-bks; Fri, 27 Sep 2002 12:16:50 -0700 (PDT)
Received: from ( []) by (8.11.6/8.11.3) with SMTP id g8RJGmv24744 for <>; Fri, 27 Sep 2002 12:16:48 -0700 (PDT)
Received: from ( by (Sigaba Gateway v3.5) with SMTP; Fri, 27 Sep 2002 12:09:50 -0700
Received: from ( []) by (8.12.2/8.12.2) with ESMTP id g8RJGjE3007976; Fri, 27 Sep 2002 12:16:46 -0700
Received: by with Internet Mail Service (5.5.2653.19) id <TM7RD0RV>; Fri, 27 Sep 2002 12:16:44 -0700
Message-id: <>
From: Trevor Perrin <>
To: "''" <>,
Subject: RE: security fixes (KDF, MDC->MAC)?
Date: Fri, 27 Sep 2002 12:16:37 -0700
MIME-Version: 1.0
X-mailer: Internet Mail Service (5.5.2653.19)
Content-Type: text/plain; charset="iso-8859-1"
Content-Transfer-Encoding: 7bit
Precedence: bulk
List-Archive: <>
List-Unsubscribe: <>
List-ID: <>
Content-Transfer-Encoding: 7bit

>-----Original Message-----
>From: []
>[...]    Unlike the Symmetrically Encrypted Data Packet, no
>   special CFB resynchronization is done after encrypting this prefix
>   data.
>doesn't this prevent converting packet 18 to 9 ?

It doesn't completely prevent the JKS attack.  The attacker can still copy
the first two blocks of ciphertext from a packet 18 to 9, and the check
bytes will decrypt appropriately, but the remainder of the second block will
be scrambled.

So this will probably leave a malformed packet header, but there's a chance
the header might still work, depending on how strict the parsing code is
(for example, what if the packet tag gets randomly set to 9, but the length
is wrong?).  The attacker can flip bits in the remainder of the second block
and keep submitting guesses to a decryption oracle, until he stumbles on a
packet header that makes the attack work.  

The attacker may also learn information from observing the oracle which lets
him reconstruct the keystream bytes that the ciphertext is being XOR'd with.
For example, if the oracle says "Error: packet tag 62 not supported", the
attacker can reconstruct the keystream bits that correspond to the packet
tag, and thus gain the ability to control its value.