Implement a secure ICS protocol targeting LoRa Node151 microcontroller for controlling irrigation.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

80 lines
3.8 KiB

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="utf-8" />
  5. <title>Strobe protocol framework</title>
  6. <link rel="stylesheet" type="text/css" href="/style.css"/>
  7. </head>
  8. <body>
  9. <h1><a href="/"><span class="sc">Strobe</span> protocol framework</a></h1>
  10. <div id="nav">
  11. <a href="/" class="here">overview</a>
  12. <a href="/specs/">specification</a>
  13. <a href="/examples/">example protocols</a>
  14. <a href="/code/">code</a>
  15. <a href="/papers/">papers</a>
  16. </div>
  17. <h2>Version and changelog</h2>
  18. <p>This is version 1.0.2 of the <span class="sc">Strobe</span> specification.
  19. The software is in alpha.
  20. </p>
  21. <ul>
  22. <li>January 24, 2017: version 1.0.2. Fix the length of <var>S</var> in
  23. the cSHAKE domain separation string. Hopefully the last change
  24. for this silly reason.</li>
  25. <li>January 6, 2017: version 1.0.1. Adjust, hopefully, to the final version
  26. of the NIST cSHAKE standard. The difference is how the empty
  27. personalization string is encoded, and in the order of the <var>N</var>
  28. and <var>S</var> strings. The draft was ambiguous, but <var>N</var>
  29. followed <var>S</var> and the empty string was probably best interpreted
  30. as <code>[0]</code>. The final version
  31. changed it to <code>[1,0]</code> with <var>N</var> preceding <var>S</var>.
  32. I'm still not sure I got it right because there are no test vectors.</li>
  33. <li>January 3, 2017: version 1.0.0.</li>
  34. </ul>
  35. <h2>Goals</h2>
  36. <p>
  37. The Internet of Things (IoT) promises ubiquitous, cheap, connected devices.
  38. Unfortunately, most of these devices are hastily developed and will never
  39. receive code updates. Part of the IoT's security problem is cryptographic,
  40. but established cryptographic solutions seem too heavy or too inflexible
  41. to adapt to new use cases.
  42. </p>
  43. <p>
  44. <span class="sc">Strobe</span> is a new framework for cryptographic
  45. protocols. It can also be used for regular encryption. Its goals are
  46. to make cryptographic protocols much simpler to develop, deploy and analyze;
  47. and to fit into even tiny IoT devices. To that end, it uses only one block
  48. function &mdash; <span class="sc">Keccak</span>-<i>f</i> &mdash; to encrypt
  49. and authenticate messages.
  50. </p>
  51. <p>
  52. Flexibility is an important goal of <span class="sc">Strobe</span>. It isn't
  53. just a replacement for TLS. I specifically designed it to support
  54. a wide variety of protocol building blocks: authenticated DH or FHMQV,
  55. signatures, password-authenticated key exchange, DPA-resistant key diversification,
  56. ratcheting for forward secrecy, and steganographic connections with length hiding.
  57. </p>
  58. <p>
  59. Performance is a secondary goal. <span class="sc">Strobe</span> is based
  60. on SHA-3, or rather <span class="sc">Keccak</span>-<i>f</i> and cSHAKE
  61. (draft NIST SP 800-185). SHA-3 is a very conservative design. It doesn't
  62. yet have acceleration on most CPUs, and it isn't the fastest algorithm around.
  63. That said, <span class="sc">Strobe</span> is generic and could be rebuilt
  64. around a faster permutation once one appears.
  65. </p>
  66. <h2>Non-goals</h2>
  67. <p>
  68. Any framework has some rails. <span class="sc">Strobe</span>'s main rails
  69. are around message flow. As a protocol framework, it isn't designed to handle
  70. unreliable or out-of-order message delivery. It can still be used as an
  71. authenticated cipher, hash function, key derivation function etc. in these protocols.
  72. </p>
  73. <p>
  74. <span class="sc">Strobe</span> isn't inherently nonce-misuse resistant.
  75. However, it can be used in an SIV construction to add this property.
  76. </p>
  77. </body>
  78. </html>