From: Hans Petter Selasky <hps@selasky.org>
To: git@vger.kernel.org
Subject: Gitorious should use CRC128 / 256 / 512 instead of SHA-1
Date: Fri, 13 Jan 2023 14:23:59 +0100 [thread overview]
Message-ID: <9c0fda42-67ab-f406-489b-38a2d9bbcfc2@selasky.org> (raw)
Hi,
Currently GIT only supports cryptographic hashes for its commit tags.
That means:
1) It's very difficult to edit the history without also recomputing the
hash tags for all commits after the needed change-point, which then
means references to a repository is broken.
2) Only a single bit error in the main repository can break everything!
3) Illicit contents may be present in binary blobs, which in the future
may be need to be removed without warrant and the only way to do that is
by rebasing and force pushing, which will break "everything". It can be
everything from child-porn to expired distribution licenses.
Many people think that bit errors cannot happen because the memory uses
ECC and the file system uses cryptographic hashes to verify the
integrity of the data. But what many people forget about is that when
copying data from memory to disk, typically using a DMA channel data is
copied w/o any kind of integrity protection, because the integrity
protection is not end-to-end. The integrity protection is only per-link.
Therefore I propose the following changes to GIT.
1) Use a CRC128 / 256 or 512 non-cryptographic based hashing algorithm
as default.
2) Add support for a CRC fixup field, which usually is zero, but when
merges are needed, it can be non-zero, to allow the hash-tag-value to
remain the same! This also allows for easy conversion of existing GIT
repositories to the new scheme.
3) All git objects should be uncompressed.
CRC-XXX can easily be used to correct multiple bit errors without any
performance overhead.
--HPS
next reply other threads:[~2023-01-13 13:33 UTC|newest]
Thread overview: 42+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-01-13 13:23 Hans Petter Selasky [this message]
2023-01-14 23:59 ` Gitorious should use CRC128 / 256 / 512 instead of SHA-1 brian m. carlson
2023-01-15 3:14 ` Junio C Hamano
2023-01-15 10:09 ` demerphq
2023-01-16 7:21 ` Hans Petter Selasky
2023-01-16 7:23 ` Hans Petter Selasky
2023-01-16 12:34 ` rsbecker
2023-01-16 14:01 ` Hans Petter Selasky
2023-01-16 15:06 ` Junio C Hamano
2023-01-15 13:53 ` Michal Suchánek
2023-01-16 7:17 ` Hans Petter Selasky
2023-01-16 9:13 ` Michal Suchánek
2023-01-16 9:55 ` Hans Petter Selasky
2023-01-16 12:31 ` rsbecker
2023-01-16 14:10 ` Hans Petter Selasky
2023-01-16 19:08 ` Michal Suchánek
-- strict thread matches above, loose matches on Subject: below --
2023-01-13 12:59 Hans Petter Selasky
2023-01-13 13:30 ` Konstantin Khomoutov
2023-01-13 13:39 ` Hans Petter Selasky
2023-01-13 14:21 ` rsbecker
2023-01-13 14:42 ` Hans Petter Selasky
2023-01-13 15:45 ` Konstantin Ryabitsev
2023-01-13 15:50 ` Hans Petter Selasky
2023-01-13 15:56 ` rsbecker
2023-01-13 16:02 ` Hans Petter Selasky
2023-01-13 15:54 ` Hans Petter Selasky
2023-01-13 16:02 ` Konstantin Ryabitsev
2023-01-13 16:06 ` Hans Petter Selasky
2023-01-13 16:18 ` Hans Petter Selasky
2023-01-13 16:36 ` Konstantin Ryabitsev
2023-01-13 16:44 ` Hans Petter Selasky
2023-01-13 16:49 ` Konstantin Ryabitsev
2023-01-13 16:51 ` Hans Petter Selasky
2023-01-13 16:27 ` Konstantin Ryabitsev
2023-01-13 16:30 ` Hans Petter Selasky
2023-01-13 16:35 ` Hans Petter Selasky
2023-01-13 16:41 ` Konstantin Ryabitsev
2023-01-13 16:45 ` Hans Petter Selasky
2023-01-13 15:15 ` Hans Petter Selasky
2023-01-13 17:44 ` Philip Oakley
2023-01-13 15:30 ` Konstantin Khomoutov
2023-01-13 15:39 ` Konstantin Ryabitsev
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
List information: http://vger.kernel.org/majordomo-info.html
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=9c0fda42-67ab-f406-489b-38a2d9bbcfc2@selasky.org \
--to=hps@selasky.org \
--cc=git@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.
Code repositories for project(s) associated with this public inbox
https://80x24.org/mirrors/git.git
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).