Perché?
Il meccanismo di funzionamento della crittografia asimmetrica dovrebbe ormai essere chiaro: la chiave pubblica (quella conosciuta da tutti) serve a cifrare un file, per leggere il quale sarà necessaria la chiave privata (che deve essere tenuta segreta).
È però possibile usare la chiave privata per firmare un file e non solo per decifrarlo: in questo caso, chiunque sia in possesso di chiave pubblica potrà verificare che quel file sia stato "firmato" da quella chiave privata.
Ogni repository Debian contiene un file Release che viene aggiornato ogni volta che un pacchetto dell'archivio cambia e che contiene anche i checksum di altri file sempre contenuti in quel repository. Tra questi ci sono i file Packages.gz.
Questo uno "stralcio" del file Release presente nei repository di Debian Lenny:
Origin: Debian Label: Debian Suite: stable Version: 5.0.4 Codename: lenny Date: Fri, 29 Jan 2010 23:18:16 UTC Architectures: alpha amd64 arm armel hppa i386 ia64 mips mipsel powerpc \ s390 sparc Components: main contrib non-free Description: Debian 5.0.4 Released 29 January 2010 MD5Sum: 5a5774342de8498b6c39666a287277cb 13513135 Contents-powerpc.gz 31e526616dffa65cbd000aba82049fb8 13210302 Contents-armel.gz a663bc33ed6e79c0256053cd30226987 13157248 Contents-alpha.gz d8b6b3e5097edcda8d280211fa5df4ca 13824603 Contents-i386.gz ... [cut] ... dda6fb2fc2e6ed6d41a6a0786c05e5bd 24354793 main/binary-i386/Packages 56df8601bb6c9fc91e899e88cbd6fe3d 6724599 main/binary-i386/Packages.gz <----- 9e32cd68e56b8ae0120b2e278e5a30d3 5196154 main/binary-i386/Packages.bz2 6f8ee24cb11bb35bfff84442b5f23c02 95 main/binary-i386/Release ... [cut] ...
Ogni file Packages.gz, parimenti, contiene un checksum per ogni pacchetto in esso listato.
Eccone uno stralcio:
... [cut] ... Package: 3dchess Priority: optional Section: games Installed-Size: 100 Maintainer: Debian Games Team <pkg-games-devel@lists.alioth.debian.org> Architecture: i386 Version: 0.8.1-15 Depends: libc6 (>= 2.7-1), libx11-6, libxext6, libxmu6, libxpm4, libxt6, \ xaw3dg (>= 1.5+E-1) Filename: pool/main/3/3dchess/3dchess_0.8.1-15_i386.deb Size: 34526 MD5sum: 4605788bdc35ee2e7ff419162f86c126 <------------ SHA1: 27415ead5f8bf401d73bd9f0fb9ea24cd727e54e SHA256: e1231555d343e141fbd803998537032e4af78695d523a0e8f65b2f6f4d38226f Description: 3D chess for X11 3 dimensional Chess game for X11R6. There are three boards, stacked vertically; 96 pieces of which most are the traditional chess pieces with just a couple of additions; 26 possible directions in which to move. The AI isn't wonderful, but provides a challenging enough game to all but the most highly skilled players. Tag: game::board, game::board:chess, implemented-in::c, interface::x11, \ role::program, uitoolkit::xlib, use::gameplaying, x11::application ... [cut] ...