1.1 (first line) to be added: in magnetic (hard) disk drives.
--- (second line) "... interoperability between different
implementations" There is no interoperability between disk-internal
encrypted devices and external encryption is not best served with this
standard. Instead, I would write something like: for archival purposes,
aiding data recovery from failed disk drives.

--- (second paragraph) "sector-based storage". Here, or somewhere else
we need a definition of 'sector', which is a fixed size block of data
handled by the drive as one unit. Its size is fixed, when the disk is
low-level formatted. Most often used sector sizes are 512, 520 and 4
Kbytes.

--- a) "is be" ?!

--- a)...f) This whole list is unclear. For example: "Resilience against
dictionary attacks". What is checked against a dictionary? The keys or
the plaintext blocks or something else, like the tweak values? How can
someone access the data? How often? Is it going to be detected? End so
on. Without clearing the many ambiguities, this section would not
provide any useful information, but could lead to many
misunderstandings. This block needs a complete re-write and precede it
with a section about the threat model: attack scenarios. Something like
the following.

Attack scenarios
~~~~~~~~~~~~~~~
I. Stolen disk (lost laptop, office break-in)
   Data access/modification via
- a. Disk interface
- b. Physical probes on pins on the disk electronics, head signal
- c. Probes on integrated circuit internal lines (irreversible physical
changes = detectable)
- d. Magnetic platters on spin stand (broken seal, irreversible physical
changes = detectable)

II. Periodic inspection of a freshly powered up disk. (Intruder, night
guard, janitor, colleague/visitor in lunch time, etc.)
   Data access/modification via
- a. Disk interface
- b. Physical probes on pins on the disk electronics, head signal

Note that, this standard does not intend to protect disk data after a
user has been authenticated and the right keys are transferred to the
encryption engine (viruses, key loggers). Also, data in transit (on
cables or in a network) needs to be protected by other means, like
network security protocols or physical protection of the communication
lines.

Access control
~~~~~~~~~~~~
Access control can be provided by physical means (guard) or
cryptographically, within the hard drive, but it is not the subject of
this standard.

- With access control, only attacks I.c and I.d. could give access to
the encrypted data, but the attack is detectable, therefore only one
snapshot can be made on the encrypted data.
- Without access control, attacks II.a. and II.b. provide many snapshots
to the intruder, which reveal the location of changes of disk data, with
a very good granularity of 16 bytes. It could be a serious leak in
database applications, in the file system structure, etc.

Therefore, LRW-AES as described in the current standard is NOT
recommended if no access control can be provided to the encrypted data.

1.1 Paragraph after a)...f) needs a rework. Parallelizable: OK.
Different keys for every sector: replace with 'one reasonable sized
key' (we don't want questions about different keys for half of the
sectors, do we?). ECB, CBC and Counter modes and many more can be
criticized here - or none of them, but refer to the properties by their
labels: a)...f), not numbers.

--- (4th last paragraph on page 5) "logical position" needs a
definition. One can use 'LBA' as defined in disk standards, or describe
as the index (or address) of the sector, the disk drive uses for access.
LBA is in the range of 0...N-1, if there are N sectors.
--- Append to the text in brackets: 'with the same key'.

--- (2nd last paragraph on page 5) With support for odd length sectors
the last sentence is obsolete.

--- (Last paragraph on page 5) The goal of data decryption in another
device cannot be achieved if the standard is implemented in disk
drives. Raw (encrypted) data cannot be (must not be allowed to be)
moved from one device to another. Reword the second sentence to
reflect, that if data is encrypted by a disk-external implementation of
the standard (not recommended because of the possible traffic analysis),
than other compliant external decryption engines could decrypt the data.
But, this goal is of questionable value. Why do we want to promote an
inherently dangerous use of the standard?

4.1 (Page 9) Just a question: The algorithm as described does not use
the last computed V value and the first XOR is not necessary. Cannot we
optimize the pseudo-code, so this kind of questions won't be raised?

4.2 (Page 9) G is a field defined on bit vectors. It is isomorphic to
GF(2^128), by representing binary polynomials with their coefficient
sequences, that is, using polynomial bases to represent the elements of
GF(2^128). This is all what has to be said. Delete the whole 4.2
section, as it is confusing. There are logical and terminological
inconsistencies. The attempt to prove the correctness of the modular
multiplication algorithm should be replaced by a reference to any
introductory algebra textbook (in section 4.1).

Also, the standard nowhere uses the fact that G is a field, rather than
a ring (nonzero elements have inverses). At least a reference is needed
to a book, where Fields and Rings are defined. And, why do we use this
finite field, at all? There are simple rings, which should work here
better.

Figures 1, and 2. The Galois multiplier block seems to have two outputs,
both marked with T. It would be clearer to connect the horizontal T line
to the vertical part of the other T line, forming a "T" junction ("T"
rotated counterclockwise by 90 degrees).

5.1 (Page 13) Paragraph 1: the requirements that the data consists of an
integral number of cipher blocks is now obsolete.
--- It is unusual to number blocks from 1 to N. Earlier the standard
speaks about logical block indices, which are different. It looks
better to use 0...N-1, and modify the algorithms to increment it as
needed. It is not only more convenient, but the available address field
might be too narrow to represent N.

--- (Second paragraph) the last sentence is obsolete.

--- (Third paragraph, last line) The text allows key scopes to start and
end in the middle of sectors. It is better to prohibit it, because the
LRW_AES algorithms, as described in the standard, are not defined for
changing keys in the middle of the sector. If you do allow unaligned
key scopes, please modify all the algorithms to allow starting and
ending encryption in the middle of the sector. It is not obvious, and
when left undefined it leads to incompatible implementations.

--- (Last paragraph before 5.2) Keep only the first sentence. The
explanation should go to the background section (with more
elaboration), because a vague expression "security vulnerabilities"
does not say anything useful. We ought to know, what they are, if they
can be exploited under our threat model, the attack scenarios.

5.2 (Second paragraph) We cannot define LBA = 1 for the first sector on
the disk, because LBA's are already defined in other standards,
starting from 0. It is better to use base 0 and modify the algorithms
as needed, otherwise you have to call it P1619-LBA, or something else.

--- (Third paragraph) "i = LBA<<n + q". The parameter n is dependent on
the low-level format of the disk, and so the whole LRW-AES. If we don't
choose a large enough universal constant, the transform is dependent on
another parameter: n, and it has to be described as such. It also
means, that hardware implementations cannot hardcode the shift amount,
they have to act differently if the disk is reformatted. It seems to be
an unnecessary complication artificially imposed on the electronics.

Table 4 (Page 15) KeyScopeStrart - Description: Remove "a multiple of 16
and should be".

Table 4 (Page 15) KeyScopeLength - Description: Replace "16" with 'the
sector size', unless you changed all the algorithms to handle key
changes in the middle of a sector.

Laszlo Hars
Seagate Research

Reply via email to