From: Jean-Luc Cooke <jlcooke@certainkey.com>
To: dean gaudet <dean-list-linux-kernel@arctic.org>
Cc: James Morris <jmorris@redhat.com>,
Christophe Saout <christophe@saout.de>,
Carl-Daniel Hailfinger <c-d.hailfinger.kernel.2004@gmx.net>,
Linux Kernel Mailing List <linux-kernel@vger.kernel.org>,
Andrew Morton <akpm@osdl.org>
Subject: Re: dm-crypt, new IV and standards
Date: Wed, 3 Mar 2004 10:06:47 -0500 [thread overview]
Message-ID: <20040303150647.GC1586@certainkey.com> (raw)
In-Reply-To: <Pine.LNX.4.58.0403022352080.12846@twinlark.arctic.org>
On Wed, Mar 03, 2004 at 12:35:07AM -0800, dean gaudet wrote:
> On Sat, 21 Feb 2004, Jean-Luc Cooke wrote:
>
> > Well, CTR mode is not recommended for encrypted file systems because it is very
> > easy to corrupt single bits, bytes, blocks, etc without an integrity check.
> > If we add a MAC, then any mode of operation except ECB can be used for
> > encrypted file systems.
>
> what does "easy to corrupt" mean? i haven't really seen disks generate
> bit errors ever. this MAC means you'll need to write integrity data for
> every real write. that really doesn't seem worth it...
The difference between "$1,000,000" and "$8,000,000" is 1 bit. If an
attacker knew enough about the layout of the filesystem (modify times on blocks,
etc) they could flip a single bit and change your $1Mil purchase order
approved by your boss to a $8Mil order.
Extraneous example to be sure. But this is why you want MACs. CBC mode is
more difficult to tamper with, but not immune.
> it seems like a block is either right, or it isn't -- the only thing the
> MAC is telling you is that the block isn't right... it doesn't tell you
> how to fix it. that's a total waste of write bandwidth -- you might as
> well return the bogus decrypted block.
A block cipher can be viewed as a huge lookup table. Converting a 128 bit
block of data (in the case of AES) into another using a single key as the
rule-set for this transformation. This alone is not secure (think of the
attacks on ECB which does exactly this for all your data). That's why we
have 6 modes of operation in common use in the industry.
ECB, CBC : block-mode
CFB, OFB : stream-moe
CTR : block- and/mode stream-mode
OMAC : 128bit keyed Message Authentication Code
CCM : CTR + CBC-MAC defined by IEEE 802.11i
> > [3] Why not use IV == block number or IV == firstIV + block number?
> > Certain modes of operation (like CTR) begin to leak information about the
> > plaintext if you ever use the same Key-IV pair for your data.
> > The IV will need to be updated every time you update the block.
> > The IV generation does need not be from a cryptographicly strong PRNG,
> > it need only be different from the previous IV.
> > So incrementing the IV by 1 mod 2^128 every time you write to the block will
> > suffice.
>
> is CTR the only mode which is weak with simple IV / block number
> relationships?
CTR, ECB, and CFB are vulnerable.
> if you absolutely need this IV update for every write then you should
> consider a disk layout which mixes IV (or IV+MAC) blocks so that they are
> grouped near their data blocks, to reduce seek overhead.
>
> i.e. 1 block containing 15 IV+MAC, followed by 15 data blocks, followed by
> IV+MAC, followed by 15 data...
CBC mode doesn't absolutely need macs. But the IV changes *are* required for
all modes of operation. Christophe and I's scheme of IV = firstIV + blockNum
for initial setup and IV = IV + 2^64 for IV updates will work fine as long as
there are less then 2^(128-64) block in the file system and less then 2^64
updates to any one block. This scheme will keep CBC, OFB, CTR, and CCM modes
secure from eavesdropping but not Necessarily^[[1~^[[1~ from tampering.
JLC
--
http://www.certainkey.com
Suite 4560 CTTC
1125 Colonel By Dr.
Ottawa ON, K1S 5B6
next prev parent reply other threads:[~2004-03-03 15:18 UTC|newest]
Thread overview: 27+ messages / expand[flat|nested] mbox.gz Atom feed top
2004-02-19 22:06 dm-crypt, new IV and standards Carl-Daniel Hailfinger
2004-02-19 22:20 ` Christophe Saout
2004-02-20 17:22 ` Jean-Luc Cooke
2004-02-20 21:26 ` James Morris
2004-02-20 21:52 ` 2.6.3 adaptec I2O will not compile David Lang
2004-02-25 16:25 ` Adrian Bunk
2004-02-26 8:02 ` Jaco Kroon
2004-02-26 8:08 ` David Lang
2004-02-26 9:28 ` Jaco Kroon
2004-02-26 10:24 ` David Lang
2004-02-21 0:31 ` dm-crypt, new IV and standards Carl-Daniel Hailfinger
2004-02-21 16:48 ` Jean-Luc Cooke
2004-02-21 17:36 ` Jean-Luc Cooke
2004-02-21 19:01 ` Andreas Jellinghaus
2004-03-03 8:35 ` dean gaudet
2004-03-03 15:06 ` Jean-Luc Cooke [this message]
2004-03-03 21:40 ` David Wagner
2004-03-08 19:58 ` Jean-Luc Cooke
2004-03-04 1:48 ` dean gaudet
2004-03-04 13:24 ` Jean-Luc Cooke
2004-03-04 17:44 ` David Wagner
2004-03-05 1:19 ` dean gaudet
2004-03-05 2:14 ` Jean-Luc Cooke
2004-03-04 15:08 ` Pavel Machek
2004-03-07 4:14 ` DM for detecting bad disks was: " Mike Fedyk
-- strict thread matches above, loose matches on Subject: below --
2004-02-22 19:20 Adam J. Richter
2004-02-22 20:53 ` Christophe Saout
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20040303150647.GC1586@certainkey.com \
--to=jlcooke@certainkey.com \
--cc=akpm@osdl.org \
--cc=c-d.hailfinger.kernel.2004@gmx.net \
--cc=christophe@saout.de \
--cc=dean-list-linux-kernel@arctic.org \
--cc=jmorris@redhat.com \
--cc=linux-kernel@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox