Hex Artifact Content
Not logged in

Artifact b29805a0eff03b544cb61317d0b16ad4777c3ad5:

Wiki page [Algorithm and Implementation] by martin_vahi on 2016-11-13 11:25:21.
0000: 44 20 32 30 31 36 2d 31 31 2d 31 33 54 31 31 3a  D 2016-11-13T11:
0010: 32 35 3a 32 31 2e 36 35 35 0a 4c 20 41 6c 67 6f  25:21.655.L Algo
0020: 72 69 74 68 6d 5c 73 61 6e 64 5c 73 49 6d 70 6c  rithm\sand\sImpl
0030: 65 6d 65 6e 74 61 74 69 6f 6e 0a 50 20 39 36 64  ementation.P 96d
0040: 34 30 38 37 61 32 62 65 65 34 38 34 61 32 32 64  4087a2bee484a22d
0050: 30 31 66 39 35 66 31 35 30 62 65 35 66 65 32 35  01f95f150be5fe25
0060: 31 30 30 66 36 0a 55 20 6d 61 72 74 69 6e 5f 76  100f6.U martin_v
0070: 61 68 69 0a 57 20 32 39 30 38 0a 3c 70 3e 3c 62  ahi.W 2908.<p><b
0080: 3e 54 68 65 20 6d 61 69 6e 20 70 72 6f 70 65 72  >The main proper
0090: 74 79 2c 20 77 68 65 72 65 20 74 68 65 20 53 69  ty, where the Si
00a0: 6c 6b 74 6f 72 72 65 6e 74 20 64 69 66 66 65 72  lktorrent differ
00b0: 73 20 66 72 6f 6d 20 74 68 65 20 6f 74 68 65 72  s from the other
00c0: 20 73 69 6d 69 6c 61 72 0a 70 72 6f 6a 65 63 74   similar.project
00d0: 73 20 69 73 20 74 68 61 74 20 69 74 73 20 61 6c  s is that its al
00e0: 67 6f 72 69 74 68 6d 20 69 73 20 6d 6f 64 75 6c  gorithm is modul
00f0: 61 72 2e 3c 2f 62 3e 20 54 68 65 20 6d 6f 64 75  ar.</b> The modu
0100: 6c 61 72 69 74 79 20 6f 66 20 69 74 73 0a 69 6d  larity of its.im
0110: 70 6c 65 6d 65 6e 74 61 74 69 6f 6e 20 69 73 20  plementation is 
0120: 61 74 20 6c 65 61 73 74 20 61 73 20 67 72 61 6e  at least as gran
0130: 75 6c 61 72 20 61 73 20 69 74 73 20 61 6c 67 6f  ular as its algo
0140: 72 69 74 68 6d 2e 3c 2f 70 3e 0a 0a 3c 70 3e 3c  rithm.</p>..<p><
0150: 62 72 3e 0a 3c 2f 70 3e 0a 0a 3c 68 31 3e 41 6c  br>.</p>..<h1>Al
0160: 67 6f 72 69 74 68 6d 3c 2f 68 31 3e 0a 0a 3c 64  gorithm</h1>..<d
0170: 69 76 3e 3c 62 72 3e 0a 3c 2f 64 69 76 3e 0a 0a  iv><br>.</div>..
0180: 3c 68 32 3e 53 69 6c 6b 74 6f 72 72 65 6e 74 20  <h2>Silktorrent 
0190: 50 61 63 6b 65 74 73 3c 2f 68 32 3e 0a 0a 3c 70  Packets</h2>..<p
01a0: 3e 53 69 6c 6b 74 6f 72 72 65 6e 74 20 70 61 63  >Silktorrent pac
01b0: 6b 65 74 73 20 61 72 65 20 74 61 72 2d 66 69 6c  kets are tar-fil
01c0: 65 73 20 74 68 61 74 20 68 61 76 65 20 61 20 6e  es that have a n
01d0: 61 6d 65 20 74 68 61 74 20 63 6f 6e 74 61 69 6e  ame that contain
01e0: 73 20 74 68 65 20 73 69 7a 65 20 6f 66 0a 74 68  s the size of.th
01f0: 65 20 66 69 6c 65 20 61 6e 64 20 61 74 20 6c 65  e file and at le
0200: 61 73 74 20 6f 6e 65 20 63 72 79 70 74 6f 67 61  ast one cryptoga
0210: 70 68 69 63 61 6c 6c 79 20 73 65 63 75 72 65 20  phically secure 
0220: 68 61 73 68 20 6f 66 20 74 68 61 74 20 74 61 72  hash of that tar
0230: 2d 66 69 6c 65 2e 20 54 68 65 0a 72 65 61 73 6f  -file. The.reaso
0240: 6e 2c 20 77 68 79 20 74 61 72 20 69 73 20 75 73  n, why tar is us
0250: 65 64 20 69 6e 20 73 74 65 61 64 20 6f 66 20 74  ed in stead of t
0260: 61 72 2e 67 7a 2c 20 7a 69 70 2c 20 78 7a 2c 20  ar.gz, zip, xz, 
0270: 65 74 63 2e 20 69 73 20 74 68 61 74 20 6d 75 6c  etc. is that mul
0280: 74 69 2d 54 69 42 0a 66 69 6c 65 73 20 74 68 61  ti-TiB.files tha
0290: 74 20 63 6f 6e 73 69 73 74 20 6f 66 20 6f 6e 6c  t consist of onl
02a0: 79 20 72 65 67 75 6c 61 72 20 70 61 74 74 65 72  y regular patter
02b0: 6e 73 2c 20 6d 61 79 20 62 65 20 61 6c 6c 20 7a  ns, may be all z
02c0: 65 72 6f 73 20 6f 72 20 61 6c 6c 20 6f 6e 65 73  eros or all ones
02d0: 2c 20 63 61 6e 0a 62 65 20 63 6f 6d 70 72 65 73  , can.be compres
02e0: 73 65 64 20 74 6f 20 61 20 76 65 72 79 20 73 6d  sed to a very sm
02f0: 61 6c 6c 20 66 69 6c 65 20 61 6e 64 20 74 68 61  all file and tha
0300: 74 20 6b 69 6e 64 20 6f 66 20 66 69 6c 65 20 63  t kind of file c
0310: 61 6e 20 62 65 20 75 73 65 64 20 66 6f 72 0a 44  an be used for.D
0320: 6f 53 2d 61 74 74 61 63 6b 69 6e 67 20 63 6f 6d  oS-attacking com
0330: 70 75 74 65 72 73 20 74 68 61 74 20 72 75 6e 20  puters that run 
0340: 73 6f 66 74 77 61 72 65 20 74 68 61 74 20 75 6e  software that un
0350: 70 61 63 6b 73 20 74 68 65 20 63 6f 6d 70 72 65  packs the compre
0360: 73 73 69 6f 6e 20 72 65 73 75 6c 74 2e 0a 54 68  ssion result..Th
0370: 65 20 53 69 6c 6b 74 6f 72 72 65 74 20 70 61 63  e Silktorret pac
0380: 6b 65 74 20 63 6f 6e 74 61 69 6e 73 20 66 6f 6c  ket contains fol
0390: 64 65 72 73 20 22 68 65 61 64 65 72 22 20 61 6e  ders "header" an
03a0: 64 20 22 70 61 79 6c 6f 61 64 22 2e 20 54 68 65  d "payload". The
03b0: 20 66 6f 6c 64 65 72 0a 22 68 65 61 64 65 72 22   folder."header"
03c0: 20 63 6f 6e 74 61 69 6e 73 20 61 20 66 69 6c 65   contains a file
03d0: 20 22 73 69 6c 6b 74 6f 72 72 65 6e 74 5f 73 61   "silktorrent_sa
03e0: 6c 74 2e 74 78 74 22 20 6f 72 20 22 73 69 6c 6b  lt.txt" or "silk
03f0: 74 6f 72 72 65 6e 74 5f 73 61 6c 74 2e 62 6c 6f  torrent_salt.blo
0400: 62 22 2c 0a 77 68 69 63 68 20 73 6c 69 67 68 74  b",.which slight
0410: 6c 79 20 73 61 6c 74 73 20 61 6c 73 6f 20 74 68  ly salts also th
0420: 65 20 73 69 7a 65 20 6f 66 20 74 68 65 20 53 69  e size of the Si
0430: 6c 6b 74 6f 72 72 65 6e 74 20 70 61 63 6b 65 74  lktorrent packet
0440: 20 61 6e 64 20 61 6c 6c 6f 77 73 20 74 68 65 0a   and allows the.
0450: 73 61 6d 65 20 70 61 79 6c 6f 61 64 20 74 6f 20  same payload to 
0460: 62 65 20 74 72 61 6e 73 70 6f 72 74 65 64 20 62  be transported b
0470: 79 20 64 69 66 66 65 72 65 6e 74 20 53 69 6c 6b  y different Silk
0480: 74 6f 72 72 65 6e 74 20 70 61 63 6b 65 74 73 2e  torrent packets.
0490: 20 54 68 65 20 69 64 65 61 20 69 73 0a 74 68 61   The idea is.tha
04a0: 74 20 77 68 65 6e 20 6f 6e 65 20 70 61 63 6b 61  t when one packa
04b0: 67 65 20 6e 61 6d 65 20 69 73 20 62 6c 61 63 6b  ge name is black
04c0: 6c 69 73 74 65 64 20 62 79 20 63 65 6e 73 6f 72  listed by censor
04d0: 73 2c 20 74 68 65 20 73 61 6d 65 20 70 61 79 6c  s, the same payl
04e0: 6f 61 64 20 63 61 6e 20 62 65 0a 64 69 73 74 72  oad can be.distr
04f0: 69 62 75 74 65 64 20 62 79 20 75 73 69 6e 67 20  ibuted by using 
0500: 61 20 64 69 66 66 65 72 65 6e 74 20 53 69 6c 6b  a different Silk
0510: 74 6f 72 72 65 6e 74 20 70 61 63 6b 65 74 2e 26  torrent packet.&
0520: 6e 62 73 70 3b 3c 2f 70 3e 0a 0a 3c 70 3e 3c 62  nbsp;</p>..<p><b
0530: 72 3e 0a 3c 2f 70 3e 0a 0a 3c 68 33 3e 4f 70 74  r>.</p>..<h3>Opt
0540: 69 6f 6e 61 6c 20 53 69 6c 6b 74 6f 72 72 65 6e  ional Silktorren
0550: 74 20 50 61 63 6b 65 74 20 48 65 61 64 65 72 20  t Packet Header 
0560: 46 69 65 6c 64 73 3c 2f 68 33 3e 0a 0a 3c 70 3e  Fields</h3>..<p>
0570: 41 6c 6c 20 6f 66 20 74 68 65 20 66 69 6c 65 73  All of the files
0580: 20 69 6e 20 74 68 65 20 22 68 65 61 64 65 72 22   in the "header"
0590: 20 66 6f 6c 64 65 72 20 61 72 65 20 70 61 72 74   folder are part
05a0: 20 6f 66 20 74 68 65 20 74 61 72 2d 66 69 6c 65   of the tar-file
05b0: 20 61 6e 64 0a 69 6e 66 6c 75 65 6e 63 65 20 74   and.influence t
05c0: 68 65 20 73 65 63 75 72 65 20 68 61 73 68 20 6f  he secure hash o
05d0: 66 20 74 68 65 20 74 61 72 2d 66 69 6c 65 2e 20  f the tar-file. 
05e0: 53 65 63 75 72 65 20 68 61 73 68 20 61 6c 67 6f  Secure hash algo
05f0: 72 69 74 68 6d 73 20 64 6f 20 68 61 76 65 0a 63  rithms do have.c
0600: 6f 6c 6c 69 73 69 6f 6e 73 2c 20 62 75 74 20 77  ollisions, but w
0610: 69 74 68 69 6e 20 74 68 65 20 6c 69 6d 69 74 73  ithin the limits
0620: 20 6f 66 20 74 68 6f 73 65 20 63 6f 6c 6c 69 73   of those collis
0630: 69 6f 6e 73 20 74 68 65 20 68 65 61 64 65 72 73  ions the headers
0640: 20 61 72 65 0a 69 6e 73 65 70 61 72 61 62 6c 65   are.inseparable
0650: 20 66 72 6f 6d 20 74 68 65 20 53 69 6c 6b 74 6f   from the Silkto
0660: 72 72 65 6e 74 20 70 61 63 6b 65 74 2e 20 53 69  rrent packet. Si
0670: 6c 6b 74 6f 72 72 65 6e 74 20 70 61 63 6b 65 74  lktorrent packet
0680: 20 63 72 65 61 74 69 6f 6e 20 73 6f 66 74 77 61   creation softwa
0690: 72 65 0a 69 73 20 61 6c 6c 6f 77 65 64 20 74 6f  re.is allowed to
06a0: 20 61 64 64 20 61 64 64 69 74 69 6f 6e 61 6c 2c   add additional,
06b0: 20 69 6d 70 6c 65 6d 65 6e 74 61 74 69 6f 6e 20   implementation 
06c0: 73 70 65 63 69 66 69 63 2c 20 66 69 6c 65 73 20  specific, files 
06d0: 74 6f 20 74 68 65 20 22 68 65 61 64 65 72 22 0a  to the "header".
06e0: 66 6f 6c 64 65 72 2c 20 70 72 6f 76 69 64 65 64  folder, provided
06f0: 20 74 68 61 74 20 6e 6f 6e 65 20 6f 66 20 74 68   that none of th
0700: 65 20 69 6d 70 6c 65 6d 65 6e 74 61 74 69 6f 6e  e implementation
0710: 20 73 70 65 63 69 66 69 63 20 66 69 6c 65 73 20   specific files 
0720: 69 6e 20 74 68 65 20 22 68 65 61 64 65 72 22 0a  in the "header".
0730: 66 6f 6c 64 65 72 20 68 61 73 20 61 20 6e 61 6d  folder has a nam
0740: 65 20 74 68 61 74 20 73 74 61 72 74 73 20 77 69  e that starts wi
0750: 74 68 20 74 68 65 20 70 72 65 66 69 78 20 22 73  th the prefix "s
0760: 69 6c 6b 74 6f 72 72 65 6e 74 5f 22 2e 20 54 68  ilktorrent_". Th
0770: 65 20 6f 70 74 69 6f 6e 61 6c 2c 0a 22 73 74 61  e optional,."sta
0780: 6e 64 61 72 64 22 2c 20 66 69 6c 65 73 20 69 6e  ndard", files in
0790: 20 74 68 65 20 22 68 65 61 64 65 72 22 20 66 6f   the "header" fo
07a0: 6c 64 65 72 20 61 72 65 3a 3c 2f 70 3e 0a 0a 3c  lder are:</p>..<
07b0: 70 3e 3c 2f 70 3e 0a 3c 75 6c 3e 0a 3c 6c 69 3e  p></p>.<ul>.<li>
07c0: 73 69 6c 6b 74 6f 72 72 65 6e 74 5f 70 61 63 6b  silktorrent_pack
07d0: 65 74 5f 73 75 67 67 65 73 74 65 64 5f 64 65 6c  et_suggested_del
07e0: 65 74 69 6f 6e 5f 64 61 74 65 5f 74 31 2e 74 78  etion_date_t1.tx
07f0: 74 20 26 6e 62 73 70 3b 3c 66 6f 6e 74 20 63 6f  t &nbsp;<font co
0800: 6c 6f 72 3d 22 23 66 66 30 30 30 30 22 3e 28 54  lor="#ff0000">(T
0810: 4f 44 4f 3a 0a 64 65 73 63 72 69 62 65 20 66 6f  ODO:.describe fo
0820: 72 6d 61 74 20 61 66 74 65 72 20 69 6d 70 6c 65  rmat after imple
0830: 6d 65 6e 74 61 74 69 6f 6e 20 63 6f 6e 74 61 69  mentation contai
0840: 6e 73 20 74 68 65 20 69 6d 70 72 6f 76 65 6d 65  ns the improveme
0850: 6e 74 73 2e 20 43 75 72 72 65 6e 74 6c 79 0a 63  nts. Currently.c
0860: 75 73 74 6f 6d 20 68 65 61 64 65 72 20 66 69 6c  ustom header fil
0870: 65 73 20 63 61 6e 20 6e 6f 74 20 62 65 20 61 64  es can not be ad
0880: 64 65 64 2c 20 6f 6e 6c 79 20 74 68 65 20 70 61  ded, only the pa
0890: 79 6c 6f 61 64 20 63 61 6e 20 62 65 20 75 73 65  yload can be use
08a0: 64 2c 20 62 75 74 20 69 74 20 69 73 0a 70 6f 73  d, but it is.pos
08b0: 73 69 62 6c 65 20 74 6f 20 73 69 6d 75 6c 61 74  sible to simulat
08c0: 65 20 74 68 65 20 68 65 61 64 65 72 20 69 64 65  e the header ide
08d0: 61 20 61 74 20 73 6f 6d 65 20 73 75 62 66 6f 6c  a at some subfol
08e0: 64 65 72 20 6f 66 20 74 68 65 20 70 61 79 6c 6f  der of the paylo
08f0: 61 64 20 66 6f 6c 64 65 72 2e 29 3c 2f 66 6f 6e  ad folder.)</fon
0900: 74 3e 3c 2f 6c 69 3e 0a 3c 2f 75 6c 3e 0a 0a 3c  t></li>.</ul>..<
0910: 70 3e 3c 2f 70 3e 0a 0a 3c 70 3e 3c 66 6f 6e 74  p></p>..<p><font
0920: 20 63 6f 6c 6f 72 3d 22 23 66 66 30 30 30 30 22   color="#ff0000"
0930: 3e 28 54 4f 44 4f 3a 20 43 68 61 70 74 65 72 20  >(TODO: Chapter 
0940: 74 6f 20 62 65 20 63 6f 6d 70 6c 65 74 65 64 2e  to be completed.
0950: 29 3c 2f 66 6f 6e 74 3e 3c 2f 70 3e 0a 0a 3c 70  )</font></p>..<p
0960: 3e 3c 62 72 3e 0a 3c 2f 70 3e 0a 0a 3c 68 32 3e  ><br>.</p>..<h2>
0970: 53 69 6c 6b 74 6f 72 72 65 6e 74 20 54 75 6e 6e  Silktorrent Tunn
0980: 65 6c 73 26 6e 62 73 70 3b 3c 2f 68 32 3e 0a 0a  els&nbsp;</h2>..
0990: 3c 70 3e 54 68 65 20 67 65 6e 65 72 61 6c 20 69  <p>The general i
09a0: 64 65 61 20 69 73 20 74 68 61 74 20 74 68 65 72  dea is that ther
09b0: 65 27 73 20 61 20 72 61 6e 64 6f 6d 20 67 72 61  e's a random gra
09c0: 70 68 2c 20 61 6e 20 61 64 64 72 65 73 73 69 6e  ph, an addressin
09d0: 67 20 73 63 68 65 6d 65 20 66 6f 72 0a 6e 61 76  g scheme for.nav
09e0: 69 67 61 74 69 6e 67 20 69 6e 20 61 20 68 75 67  igating in a hug
09f0: 65 20 72 61 6e 64 6f 6d 20 67 72 61 70 68 20 61  e random graph a
0a00: 6e 64 20 74 68 65 20 74 75 6e 6e 65 6c 73 20 61  nd the tunnels a
0a10: 72 65 20 74 68 65 20 65 64 67 65 73 20 6f 66 20  re the edges of 
0a20: 74 68 65 20 67 72 61 70 68 2e 20 41 0a 74 75 6e  the graph. A.tun
0a30: 6e 65 6c 20 63 61 6e 20 62 65 20 61 6e 20 55 53  nel can be an US
0a40: 42 2d 73 74 69 63 6b 20 74 68 61 74 20 69 73 20  B-stick that is 
0a50: 70 61 73 73 65 64 20 6f 6e 2c 20 6c 69 74 65 72  passed on, liter
0a60: 61 6c 6c 79 20 61 20 6d 61 69 6c 20 70 69 67 65  ally a mail pige
0a70: 6f 6e 20 77 69 74 68 20 61 0a 6d 65 6d 6f 72 79  on with a.memory
0a80: 20 63 61 72 64 20 61 74 74 61 63 68 65 64 20 74   card attached t
0a90: 6f 20 69 74 73 20 6c 65 67 2c 20 61 20 64 72 6f  o its leg, a dro
0aa0: 6e 65 20 77 69 74 68 20 61 6e 20 55 53 42 2d 73  ne with an USB-s
0ab0: 74 69 63 6b 2c 20 6f 72 64 69 6e 61 72 79 20 48  tick, ordinary H
0ac0: 54 54 50 2c 0a 42 69 74 54 6f 72 72 65 6e 74 2c  TTP,.BitTorrent,
0ad0: 20 54 6f 72 20 6e 65 74 77 6f 72 6b 2c 20 3c 61   Tor network, <a
0ae0: 20 68 72 65 66 3d 22 68 74 74 70 73 3a 2f 2f 66   href="https://f
0af0: 72 65 65 6e 65 74 70 72 6f 6a 65 63 74 2e 6f 72  reenetproject.or
0b00: 67 2f 22 3e 46 72 65 65 6e 65 74 3c 2f 61 3e 2c  g/">Freenet</a>,
0b10: 0a 65 74 63 2e 20 54 68 65 20 64 65 74 61 69 6c  .etc. The detail
0b20: 73 20 61 72 65 20 61 74 20 61 20 73 65 70 61 72  s are at a separ
0b30: 61 74 65 20 64 6f 63 75 6d 65 6e 74 2e 3c 2f 70  ate document.</p
0b40: 3e 0a 0a 3c 70 3e 3c 61 20 68 72 65 66 3d 22 68  >..<p><a href="h
0b50: 74 74 70 3a 2f 2f 6c 6f 6e 67 74 65 72 6d 2e 73  ttp://longterm.s
0b60: 6f 66 74 66 31 2e 63 6f 6d 2f 73 70 65 63 69 66  oftf1.com/specif
0b70: 69 63 61 74 69 6f 6e 73 2f 65 78 70 65 72 69 6d  ications/experim
0b80: 65 6e 74 61 6c 2f 73 69 6c 6b 74 6f 72 72 65 6e  ental/silktorren
0b90: 74 5f 76 5f 31 5f 30 2f 22 3e 53 70 65 63 69 66  t_v_1_0/">Specif
0ba0: 69 63 61 74 69 6f 6e 5f 76 5f 31 5f 30 3c 2f 61  ication_v_1_0</a
0bb0: 3e 3c 62 72 3e 0a 3c 2f 70 3e 0a 0a 3c 70 3e 3c  ><br>.</p>..<p><
0bc0: 62 72 3e 0a 3c 2f 70 3e 0a 0a 3c 70 3e 3c 62 72  br>.</p>..<p><br
0bd0: 3e 0a 3c 2f 70 3e 0a 0a 5a 20 39 33 61 62 36 32  >.</p>..Z 93ab62
0be0: 35 36 35 36 34 31 66 36 32 64 35 30 34 32 65 38  565641f62d5042e8
0bf0: 39 36 36 31 33 62 33 37 36 32 0a                 96613b3762.