CINXE.COM
Rosenpass
<!doctype html> <html itemscope itemtype="http://schema.org/WebPage" lang="en" class="no-js"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"> <meta name="generator" content="Hugo 0.134.0"> <link rel="alternate" type="application/rss+xml" href="https://rosenpass.eu/index.xml"> <meta name="robots" content="index, follow"> <link rel="shortcut icon" href="/favicons/favicon.ico" > <link rel="apple-touch-icon" href="/favicons/apple-touch-icon-180x180.png" sizes="180x180"> <link rel="icon" type="image/png" href="/favicons/favicon-16x16.png" sizes="16x16"> <link rel="icon" type="image/png" href="/favicons/favicon-32x32.png" sizes="32x32"> <link rel="icon" type="image/png" href="/favicons/android-36x36.png" sizes="36x36"> <link rel="icon" type="image/png" href="/favicons/android-48x48.png" sizes="48x48"> <link rel="icon" type="image/png" href="/favicons/android-72x72.png" sizes="72x72"> <link rel="icon" type="image/png" href="/favicons/android-96x96.png" sizes="96x96"> <link rel="icon" type="image/png" href="/favicons/android-144x144.png" sizes="144x144"> <link rel="icon" type="image/png" href="/favicons/android-192x192.png" sizes="192x192"> <title>Rosenpass</title> <meta name="description" content="Build post-quantum-secure VPNs with WireGuard!"> <meta property="og:url" content="https://rosenpass.eu/"> <meta property="og:site_name" content="Rosenpass"> <meta property="og:title" content="Rosenpass"> <meta property="og:description" content=" Build post-quantum-secure VPNs with WireGuard!"> <meta property="og:locale" content="en"> <meta property="og:type" content="website"> <meta property="og:image" content="https://rosenpass.eu/img/rosenpass-preview.png"> <meta itemprop="name" content="Rosenpass"> <meta itemprop="description" content=" Build post-quantum-secure VPNs with WireGuard!"> <meta itemprop="datePublished" content="2024-10-01T00:00:00+00:00"> <meta itemprop="dateModified" content="2024-10-01T00:00:00+00:00"> <meta itemprop="wordCount" content="2071"> <meta itemprop="image" content="https://rosenpass.eu/img/rosenpass-preview.png"> <meta name="twitter:card" content="summary_large_image"> <meta name="twitter:image" content="https://rosenpass.eu/img/rosenpass-preview.png"> <meta name="twitter:title" content="Rosenpass"> <meta name="twitter:description" content=" Build post-quantum-secure VPNs with WireGuard!"> <link rel="preload" href="/scss/main.min.75af642c48e31705da540599bb39419f2a736d038e6369503998a4b90c28333a.css" as="style"><link href="/scss/main.min.75af642c48e31705da540599bb39419f2a736d038e6369503998a4b90c28333a.css" rel="stylesheet"> <script src="/js/jquery-3-7-1-min.js"></script> <script src="/js/main.min.ccf296647cac89ce725eb6f1d1e2eb4741764547f0a6c7861c59a94a446cdb71.js" integrity="sha256-zPKWZHysic5yXrbx0eLrR0F2RUfwpseGHFmpSkRs23E=" crossorigin="anonymous"></script> <script defer src="/js/click-to-copy.min.61b91f9ef09691a8347464b1e11ad27f11dcac0665a485f82bc2a46177f293d2.js" integrity="sha256-YbkfnvCWkag0dGSx4RrSfxHcrAZlpIX4K8KkYXfyk9I=" crossorigin="anonymous"></script> <script src='/js/tabpane-persist.js'></script> <link rel="stylesheet" href="/css/rosenpass.css"/> <link rel="me" href="https://chaos.social/@rosenpass"/> </head> <body class="td-home"> <header> <nav class="navbar navbar-expand-md navbar-light td-navbar-cover flex-column flex-md-row td-navbar" role="navigation"> <div class="container-fluid"> <a class="navbar-brand" href="/"><span class="navbar-brand__logo navbar-logo svg-invert"><svg width="100%" height="100%" viewBox="0 0 500 500" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:serif="http://www.serif.com/" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2"><g id="Siebdruck-weiss" transform="matrix(1.37628,0,0,1.37628,-100.283,-17.0017)"><path d="M143.193 176.423c-16.767-28.837-42.551-73.072-52.816-103.154C87.528 64.919 85.863 57.576 85.721 51.82 85.603 47.032 86.547 43.156 88.357 40.318c6.523-10.228 16.409-16.646 27.868-17.609C127.253 21.781 139.95 25.944 152.503 37.442c22.412 20.368 46.738 79.744 54.561 146.119C218.007 180.321 241.576 175.264 267.062 181.844 269.78 166.773 278.853 125.979 301.79 93.65c17.231-24.412 38.803-44.053 59.217-54.405 14.473-7.339 28.468-10.014 40.198-7.057C432.077 39.97 428.056 72.738 399.558 97.715c-17.045 14.94-46.599 52.036-64.424 78.247-7.327 10.774-12.689 19.573-14.036 24.032C320.972 200.411 320.797 200.801 320.583 201.159 324.988 210.807 328.015 222.271 329.735 234.343 334.147 265.307 330.088 300.103 321.004 316.767L320.998 316.777C320.029 318.544 319.003 320.287 317.925 322.003 321.837 321.83 324.475 321.712 324.475 321.712 325.202 316.059 327.005 306.042 331.25 297.347 335.987 287.647 343.68 279.728 355.369 279.232 364.167 278.859 371.454 280.692 376.979 283.746 376.997 283.719 377.015 283.692 377.034 283.665 377.034 283.665 380.54 278.57 386.077 275.453 390.237 273.11 395.424 271.861 401.118 273.853 408.509 276.439 411.995 281.918 412.224 287.437 412.332 290.041 411.696 292.765 410.243 295.301 410.663 295.496 411.085 295.705 411.505 295.929 417.32 299.023 422.888 304.673 422.177 314.738 422.176 314.756 422.175 314.774 422.173 314.792 421.35 324.919 415.475 330.292 410.147 333.104 411.672 335.608 412.528 338.622 411.912 341.938 411.49 344.217 410.358 346.724 407.935 349.288 403.426 354.061 399.314 355.666 395.744 355.88 390.635 356.186 386.197 353.334 382.279 350.483 382.171 350.404 382.067 350.322 381.966 350.237 377.171 354.473 369.624 357.222 358.594 356.233H358.592C335.669 354.171 327.76 339.223 325.202 331.625L310.595 332.275C301.423 343.685 290.095 353.213 278.573 359.27 273.122 362.236 268.089 364.082 263.505 365.092 261.128 365.663 258.779 366.049 256.478 366.238H256.475C235.484 367.942 210.453 362.568 186.729 338.762L177.323 339.242l1.524 22.257C178.943 362.899 178.467 364.277 177.528 365.32 176.589 366.362 175.267 366.979 173.865 367.03L156.473 367.656C154.978 367.709 153.533 367.115 152.509 366.024 151.486 364.933 150.984 363.454 151.132 361.965L151.803 355.225 147.629 355.416 149.43 362.106C149.838 363.621 149.538 365.238 148.614 366.505 147.691 367.772 146.243 368.552 144.677 368.628L127.126 369.472C124.31 369.607 121.903 367.466 121.709 364.653L119.812 337.083C119.717 335.697 120.182 334.33 121.104 333.29 122.027 332.251 123.328 331.625 124.716 331.554L170.152 329.234C170.556 329.101 170.983 329.015 171.428 328.984 171.935 328.95 172.43 328.989 172.902 329.094L177.988 328.834c-9.083-12.604-13.224-30.186-14.648-47.24C161.88 264.119 163.181 247.286 164.278 237.6L165.49 225.683l-1.029-9.303L157.303 203.62l-14.11-27.197zm233.23 148.509C369.603 330.315 360.746 335.449 352.763 337.84 348.877 339.018 345.154 339.505 341.828 339.242 345.661 342.67 351.282 345.6 359.481 346.338 367.184 347.027 372.495 345.556 375.688 342.516 380.076 338.337 379.931 331.577 377.279 326.176 377.062 325.751 376.774 325.337 376.423 324.932zM384.957 290.276C391.269 297.924 391.746 307.998 385.162 316.479 384.712 317.061 384.212 317.658 383.667 318.266 384.744 319.418 385.59 320.587 386.17 321.74 386.176 321.752 386.182 321.765 386.188 321.777 389.285 328.065 389.967 335.395 387.721 341.699 387.945 341.817 388.164 341.952 388.374 342.105 389.44 342.88 390.538 343.707 391.7 344.399 392.76 345.028 393.859 345.613 395.124 345.537 396.737 345.441 398.367 344.329 400.404 342.173 401.129 341.405 401.599 340.73 401.726 340.048 401.942 338.879 401.037 338.012 400.369 337.311 399.246 336.133 398.042 335.432 398.042 335.432 396.087 334.325 395.068 332.084 395.52 329.883 395.971 327.682 397.79 326.023 400.023 325.775c0 0 10.937-1.15899999999999 11.823-11.817C412.163 309.178 409.408 306.549 406.638 305.075 403.291 303.294 399.848 302.944 399.848 302.944 397.587 302.726 395.732 301.061 395.272 298.837 394.812 296.613 395.855 294.348 397.843 293.251 400.399 291.842 401.957 289.91 401.872 287.867 401.794 285.996 400.202 284.509 397.697 283.633 394.471 282.504 391.661 283.97 389.609 285.494 387.1 287.356 385.562 289.549 385.562 289.549 385.379 289.813 385.176 290.056 384.957 290.276zm-17.552 29.098C361.115 316.717 353.368 315.023 346.906 315.394 343.241 315.605 339.976 316.304 338.255 318.547 337.291 319.805 337.033 321.538 337.327 323.755 337.646 326.048 338.352 327.657 339.686 328.522 342.214 330.16 345.9 329.539 349.883 328.331 349.889 328.33 349.895 328.328 349.9 328.326 355.698 326.592 362.062 323.171 367.405 319.374zm-29.488-12.213C340.414 306.217 343.259 305.652 346.336 305.475 355.063 304.973 365.738 307.481 373.751 311.34 374.407 311.656 375.045 311.983 375.663 312.319 376.272 311.664 376.821 311.023 377.302 310.401L377.31 310.391C385.038 300.444 374.682 288.357 355.79 289.159 348.028 289.488 343.324 295.265 340.179 301.706 339.312 303.482 338.563 305.322 337.917 307.161z" style="fill:#fff;stroke:#fff;stroke-width:7.27px"/></g><g id="Logo" transform="matrix(1,0,0,1,-18502.4,-1406.52)"><g id="white" transform="matrix(1.37628,0,0,1.37628,18402.1,1389.52)"><path d="M316.139 198.496S340.003 262.98 316.88 312.712c-23.122 49.732-57.641 46.429-68.102 50.282C238.318 366.848 192.807 354.553 177.759 317.667 162.711 280.781 170.786 221.139 170.786 221.139L170.675 215.182S162.927 199.775 148.223 174.767C124.506 133.973 81.499 60.707 92.725 43.103c11.226-17.604 33.836-22.405 56.288-1.833 22.611 20.542 46.802 81.864 53.601 149.253.0.0 33.203-13.647 68.621-2.066.0.0 6.79899999999998-52.375 34.785-91.815 27.827-39.427 67.198-66.167 93.919-59.431C426.66 43.947 420.81 72.2 396.144 93.819s-75.262 88.979-80.005 104.677zM172.782 334.153 173.679 361.853 156.287 362.479 157.551 349.778 140.95 350.534 144.428 363.453 126.877 364.297 124.98 336.728 172.782 334.153z" style="fill:#fff"/></g><g id="pink" transform="matrix(0.0554558,0,0,0.0554558,18510.4,1418.84)"><path d="M4412.48 8432.4 4000.46 8414.74C4133.87 8407.68 4082.86 8351.96 4039.7 8324.49 3812.1 8178.13 3659.07 7779.06 3714 7761c0 0 392.41 119.69 482.66 122.04C4341.85 7887.36 4569.44 7856.36 4651.84 7712.74 4671.46 7678.21 4753.86 7543.22 4714.62 7544.01 4059.32 7557.35 3953.37 7178.29 3961.22 7008.38c0 0 600.37 171.88 753.4-36.1000000000004C4863.73 6763.91 4659.69 6088.21 4867.66 5758.98 4950.07 5628.71 5071.71 5521.58 5189.43 5420.34 5358.16 5279.87 5636.77 5225.32 5683.86 5020.49 5715.24 4881.58 5562.21 4653.98 5507.27 4590.81 5397.4 4461.71 5267.91 4346.74 5142.34 4232.16 5228.67 3961.79 5314.99 3690.25 5428.79 3427.74c243.29-572.12 627.84-1028.09 957.46-1576.66 325.69-549.36 1361.62-814.63 1145.81-386.52.0.0-494.43 567.8-525.820000000001 601.55-647.46 773.81-914.29 1237.63-1385.17 2040.87C5695.63 4183.5 5766.26 4260.41 5829.04 4344.38 5887.9 4426 5934.99 4630.44 5974.23 4721.87 6162.59 5139.78 6154.74 5564.74 6158.66 5974.01 6166.51 6767.05 5919.3 7476.12 5267.92 8016.84 5048.17 8198.92 4726.4 8406.89 4412.49 8432.4H4412.48zM3502.11 6353.07S2889.97 6387.6 2787.94 5861.39C2670.22 5226.1 3074.39 5328.91 3301.99 5569.06 3529.58 5809.21 3502.11 6353.07 3502.11 6353.07z" style="fill:#f70484"/></g><g id="black" transform="matrix(1.37628,0,0,1.37628,18402.1,1389.52)"><path d="M314.273 190.015C317.032 184.775 321.294 177.887 326.566 170.136c18.287-26.889 48.677-64.886 66.163-80.212C401.799 81.974 408.187 73.112 410.912 64.868 412.657 59.59 412.897 54.637 410.916 50.609 408.963 46.637 404.874 43.798 398.672 42.234 389.025 39.802 377.596 42.45 365.693 48.486c-19.148 9.71-39.279 28.245-55.441 51.143L310.245 99.639c-27.273 38.436-33.873 89.485-33.873 89.485C276.173 190.653 275.303 192.015 273.999 192.838 272.694 193.661 271.091 193.86 269.625 193.381 236.055 182.404 204.583 195.314 204.583 195.314 203.07 195.936 201.353 195.807 199.95 194.966 198.547 194.124 197.624 192.67 197.46 191.043c-6.642-65.824-29.845-125.874-51.93-145.939C145.524 45.099 145.519 45.094 145.514 45.089 135.617 36.022 125.788 32.302 117.094 33.033c-8.265.695-15.297 5.479-20.001 12.855C96.208 47.276 96.021 49.225 96.079 51.565 96.2 56.499 97.741 62.767 100.182 69.923c10.196 29.879 36.057 73.925 52.513 102.23 14.808 25.185 22.608 40.702 22.608 40.702C176.588 215.409 175.557 218.526 173.002 219.81 170.448 221.095 167.331 220.064 166.047 217.51c0 0-7.69299999999998-15.293-22.29-40.118C143.753 177.385 143.749 177.378 143.744 177.37c-16.748-28.807-42.989-73.687-53.367-104.101C87.528 64.919 85.863 57.576 85.721 51.82 85.603 47.032 86.547 43.156 88.357 40.318c6.523-10.228 16.409-16.646 27.868-17.609C127.253 21.781 139.95 25.944 152.503 37.442c22.412 20.368 46.738 79.744 54.561 146.119C218.007 180.321 241.576 175.264 267.062 181.844 269.78 166.773 278.853 125.979 301.79 93.65c17.231-24.412 38.803-44.053 59.217-54.405 14.473-7.339 28.468-10.014 40.198-7.057C432.077 39.97 428.056 72.738 399.558 97.715c-17.045 14.94-46.599 52.036-64.424 78.247-7.327 10.774-12.689 19.573-14.036 24.032C320.972 200.411 320.797 200.801 320.583 201.159 324.988 210.807 328.015 222.271 329.735 234.343 334.147 265.307 330.088 300.103 321.004 316.767L320.998 316.777C320.029 318.544 319.003 320.287 317.925 322.003 321.837 321.83 324.475 321.712 324.475 321.712 325.202 316.059 327.005 306.042 331.25 297.347 335.987 287.647 343.68 279.728 355.369 279.232 364.167 278.859 371.454 280.692 376.979 283.746 376.997 283.719 377.015 283.692 377.034 283.665 377.034 283.665 380.54 278.57 386.077 275.453 390.237 273.11 395.424 271.861 401.118 273.853 408.509 276.439 411.995 281.918 412.224 287.437 412.332 290.041 411.696 292.765 410.243 295.301 410.663 295.496 411.085 295.705 411.505 295.929 417.32 299.023 422.888 304.673 422.177 314.738 422.176 314.756 422.175 314.774 422.173 314.792 421.35 324.919 415.475 330.292 410.147 333.104 411.672 335.608 412.528 338.622 411.912 341.938 411.49 344.217 410.358 346.724 407.935 349.288 403.426 354.061 399.314 355.666 395.744 355.88 390.635 356.186 386.197 353.334 382.279 350.483 382.171 350.404 382.067 350.322 381.966 350.237 377.171 354.473 369.624 357.222 358.594 356.233H358.592C335.669 354.171 327.76 339.223 325.202 331.625L310.595 332.275C301.423 343.685 290.095 353.213 278.573 359.27 273.122 362.236 268.089 364.082 263.505 365.092 261.128 365.663 258.779 366.049 256.478 366.238H256.475C235.484 367.942 210.453 362.568 186.729 338.762L177.323 339.242l1.524 22.257C178.943 362.899 178.467 364.277 177.528 365.32 176.589 366.362 175.267 366.979 173.865 367.03L156.473 367.656C154.978 367.709 153.533 367.115 152.509 366.024 151.486 364.933 150.984 363.454 151.132 361.965L151.803 355.225 147.629 355.416 149.43 362.106C149.838 363.621 149.538 365.238 148.614 366.505 147.691 367.772 146.243 368.552 144.677 368.628L127.126 369.472C124.31 369.607 121.903 367.466 121.709 364.653L119.812 337.083C119.717 335.697 120.182 334.33 121.104 333.29 122.027 332.251 123.328 331.625 124.716 331.554L170.152 329.234C170.556 329.101 170.983 329.015 171.428 328.984 171.935 328.95 172.43 328.989 172.902 329.094L177.988 328.834c-9.083-12.604-13.224-30.186-14.648-47.24C161.087 254.624 165.41 229.184 165.41 229.184 165.888 226.365 168.565 224.465 171.384 224.943 174.203 225.422 176.103 228.099 175.624 230.918c0 0-4.101 24.18-1.96000000000001 49.814C175.036 297.152 178.856 314.266 188.507 325.461 189.314 326.39 190.122 327.294 190.933 328.173L214.208 326.985C217.064 326.839 219.5 329.039 219.646 331.894 219.792 334.75 217.592 337.186 214.736 337.332L201.284 338.019C210.917 345.972 220.661 350.829 230.09 353.49 225.019 346.304 222.247 338.156 221.376 332.827 221.046 330.808 221.936 328.783 223.646 327.661 225.357 326.538 227.568 326.527 229.29 327.634 238.465 333.531 246.735 335.123 253.532 333.476 256.357 332.792 258.893 331.547 261.091 329.875 251.961 329.434 245.756 326.631 241.5 323.249 231.793 315.533 231.587 304.145 231.587 304.145 231.54 302.261 232.52 300.499 234.147 299.545 235.773 298.592 237.79 298.598 239.411 299.56 248.048 304.688 256.372 305.707 263.951 299.837 263.323 291.373 262.167 265.635 269.794 250.967 278.259 234.5 293.71 226.341 301.479 223.123 298.765 213.482 293.71 205.381 283.24 198.988 281.33 197.822 280.385 195.561 280.896 193.382c0 0 13.761-58.499 50.623-100.896L331.527 92.477c19.813-22.681 34.346-27.369 43.539-27.001C386.3 65.926 391.372 73.529 391.372 73.529 392.775 75.529 392.591 78.237 390.931 80.028c-26.26 28.321-56.559 63.651-79.829 105.928C312.205 187.228 313.262 188.583 314.273 190.015zM305.033 322.577C307.563 319.123 309.875 315.514 311.91 311.803 320.279 296.445 323.543 264.335 319.478 235.804 316.834 217.249 311.165 200.129 301.166 190.519 299.49 188.909 299.092 186.38 300.191 184.333c22.861-42.561 52.831-78.362 79.391-107.284C374.112 74.508 361.523 73.889 339.334 99.288c-29.986 34.493-43.954 80.144-47.449 92.977C304.438 201.036 309.924 212.102 312.673 225.346 313.227 228.013 311.62 230.653 308.997 231.388c0 0-20.426 5.70599999999999-29.992 24.323C279 255.719 278.996 255.727 278.992 255.735 270.832 271.407 274.485 301.451 274.485 301.451 274.669 303.075 274.077 304.69 272.887 305.81 264.57 313.633 255.615 315.804 246.265 313.589 246.766 314.123 247.324 314.643 247.947 315.138 252.35 318.637 259.663 320.68 271.605 318.964 273.514 318.69 275.417 319.499 276.544 321.063 277.672 322.628 277.837 324.689 276.973 326.413 272.734 334.873 265.392 341.264 255.971 343.546 249.922 345.011 242.936 344.792 235.316 342.125 236.845 345.181 238.844 348.277 241.354 350.989 244.071 353.908 250.141 356.815 259.008 355.476 262.538 354.858 266.152 353.732 269.774 352.169 277.29 348.778 285.946 342.749 295.709 332.937L285.483 333.391C282.744 333.513 280.421 331.388 280.299 328.649 280.178 325.91 282.302 323.587 285.042 323.465 285.042 323.465 295.084 323.019 305.033 322.577zm79.924-32.301C391.269 297.924 391.746 307.998 385.162 316.479 384.712 317.061 384.212 317.658 383.667 318.266 384.744 319.418 385.59 320.587 386.17 321.74 386.176 321.752 386.182 321.765 386.188 321.777 389.285 328.065 389.967 335.395 387.721 341.699 387.945 341.817 388.164 341.952 388.374 342.105 389.44 342.88 390.538 343.707 391.7 344.399 392.76 345.028 393.859 345.613 395.124 345.537 396.737 345.441 398.367 344.329 400.404 342.173 401.129 341.405 401.599 340.73 401.726 340.048 401.942 338.879 401.037 338.012 400.369 337.311 399.246 336.133 398.042 335.432 398.042 335.432 396.087 334.325 395.068 332.084 395.52 329.883 395.971 327.682 397.79 326.023 400.023 325.775c0 0 10.937-1.15899999999999 11.823-11.817C412.163 309.178 409.408 306.549 406.638 305.075 403.291 303.294 399.848 302.944 399.848 302.944 397.587 302.726 395.732 301.061 395.272 298.837 394.812 296.613 395.855 294.348 397.843 293.251 400.399 291.842 401.957 289.91 401.872 287.867 401.794 285.996 400.202 284.509 397.697 283.633 394.471 282.504 391.661 283.97 389.609 285.494 387.1 287.356 385.562 289.549 385.562 289.549 385.379 289.813 385.176 290.056 384.957 290.276zm-17.552 29.098C361.115 316.717 353.368 315.023 346.906 315.394 343.241 315.605 339.976 316.304 338.255 318.547 337.291 319.805 337.033 321.538 337.327 323.755 337.646 326.048 338.352 327.657 339.686 328.522 342.214 330.16 345.9 329.539 349.883 328.331 349.889 328.33 349.895 328.328 349.9 328.326 355.698 326.592 362.062 323.171 367.405 319.374zM376.423 324.932C369.603 330.315 360.746 335.449 352.763 337.84 348.877 339.018 345.154 339.505 341.828 339.242 345.661 342.67 351.282 345.6 359.481 346.338 367.184 347.027 372.495 345.556 375.688 342.516 380.076 338.337 379.931 331.577 377.279 326.176 377.062 325.751 376.774 325.337 376.423 324.932zm-38.506-17.771C340.414 306.217 343.259 305.652 346.336 305.475 355.063 304.973 365.738 307.481 373.751 311.34 374.407 311.656 375.045 311.983 375.663 312.319 376.272 311.664 376.821 311.023 377.302 310.401L377.31 310.391C385.038 300.444 374.682 288.357 355.79 289.159 348.028 289.488 343.324 295.265 340.179 301.706 339.312 303.482 338.563 305.322 337.917 307.161zm-170.943 32.61L130.51 341.633 131.697 358.879 137.753 358.588 135.947 351.881C135.539 350.365 135.841 348.745 136.767 347.478 137.694 346.21 139.145 345.431 140.714 345.359L157.316 344.603C158.818 344.534 160.277 345.122 161.311 346.214 162.346 347.306 162.855 348.794 162.706 350.291L162.029 357.088 168.145 356.868 166.974 339.771zm53.186-56.955S212.252 282.591 204.081 278.987c-8.649-3.815-17.507-11.239-18.648-25.449C184.555 242.565 188.173 237.062 192.343 234.831 195.243 233.279 198.815 233.018 202.639 234.136 206.943 235.394 211.711 238.507 215.702 242.723 219.988 247.239 222.558 253.937 223.923 260.429 225.813 269.411 225.5 277.827 225.5 277.827 225.396 280.676 223.01 282.906 220.16 282.816zM215.001 271.678C214.829 269.085 214.48 265.869 213.785 262.562 212.813 257.943 211.235 253.065 208.186 249.853L208.18 249.848C205.952 247.493 203.417 245.574 200.956 244.524 199.562 243.929 198.263 243.413 197.231 243.966 196.524 244.344 196.259 245.248 195.994 246.455 195.632 248.104 195.558 250.172 195.761 252.71 196.518 262.141 202.522 266.975 208.262 269.507 210.649 270.56 213.004 271.24 215.001 271.678z"/></g></g></svg></span> <span class="navbar-brand__logo navbar-logo svg-light"><svg width="100%" height="100%" viewBox="0 0 8684 8684" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:serif="http://www.serif.com/" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4.62209"><g><path d="M5918.83 4378.11s595.781 1609.9 18.511 2851.49c-577.269 1241.59-1439.06 1159.12-1700.2 1255.33-261.145 96.212-1397.36-210.749-1773.04-1131.63-375.684-920.883-174.098-2409.87-174.098-2409.87l-2.764-148.72s-193.424-384.642-560.532-1009c-592.108-1018.45-1665.79-2847.58-1385.53-3287.07 280.266-439.485 844.737-559.345 1405.27-45.766 564.478 512.859 1168.42 2043.79 1338.17 3726.19.0.0 828.95-340.693 1713.16-51.577.0.0 169.739-1307.56 868.429-2292.22 694.737-984.308 1677.64-1651.89 2344.74-1483.72 667.109 168.171 521.06 873.53-94.738 1413.27-615.794 539.732-1878.96 2221.41-1997.38 2613.31z" style="fill:#fff"/><path d="M2339.83 7764.88l-1193.39 64.289 47.37 688.29 438.162-21.068-86.841-322.534 414.471-18.887-31.575 317.086 434.211-15.621-22.404-691.555z" style="fill:#fff"/><path id="pink" d="M4428.82 8437.2l-414.478-17.761c134.211-7.111 82.897-63.158 39.473-90.793-228.951-147.235-382.896-548.684-327.636-566.845.0.0 394.745 120.398 485.533 122.764 146.053 4.345 374.999-26.844 457.895-171.319 19.739-34.734 102.631-170.526 63.158-169.733-659.211 13.422-765.793-367.901-757.896-538.82.0.0 603.95 172.898 757.896-36.314 150-209.611-55.261-889.347 153.951-1220.53 82.896-131.054 205.26-238.815 323.684-340.659 169.739-141.315 450.005-196.189 497.375-402.242 31.575-139.736-122.369-368.688-177.636-432.238-110.527-129.867-240.788-245.525-367.108-360.791 86.842-271.975 173.684-545.137 288.162-809.216 244.74-575.528 631.581-1034.22 963.162-1586.06 327.636-552.635 1369.74-819.479 1152.64-388.82.0.0-497.374 571.188-528.951 605.136-651.319 778.421-919.743 1245.01-1393.43 2053.04 74.999 76.973 146.053 154.345 209.211 238.816 59.212 82.109 106.582 287.763 146.054 379.743 189.479 420.395 181.582 847.896 185.527 1259.61 7.897 797.767-240.787 1511.07-896.053 2055.01-221.054 183.161-544.744 392.373-860.531 418.031l-.006.004zm-915.798-2091.73s-615.792 34.74-718.423-494.61c-118.423-639.078 288.157-535.655 517.108-294.075 228.945 241.58 201.315 788.685 201.315 788.685z" style="fill:#f70484"/><path d="M2287.24 4794.71s-193.424-384.642-560.532-1009c-592.108-1018.45-1665.79-2847.58-1385.53-3287.07 280.266-439.485 844.737-559.345 1405.27-45.766 564.478 512.859 1168.42 2043.79 1338.17 3726.19.0.0 828.95-340.693 1713.16-51.577.0.0 169.739-1307.56 868.429-2292.22 694.737-984.308 1677.64-1651.89 2344.74-1483.72 667.109 168.171 521.06 873.53-94.738 1413.27-615.794 539.732-1878.96 2221.41-1997.38 2613.31" style="fill:none;stroke:#000;stroke-width:258.66px"/><path d="M2283.29 5165.91s-292.108 1720.54 351.315 2466.58c600.004 691.555 1247.38 848.099 1784.22 804.514 532.902-43.585 1168.42-548.815 1507.91-1168.08 363.157-666.13 374.999-2542.12-292.109-3183.19 592.108-1102.35 1377.64-2020.92 2056.59-2753.16.0.0-386.841-550.991-1290.8 483.804-900.004 1035.15-1235.53 2463.66-1235.53 2463.66 335.526 204.849 473.683 471.449 540.791 794.71.0.0-564.477 157.992-828.955 672.668-217.103 416.963-126.315 1215.66-126.315 1215.66-248.685 233.909-525.004 220.469-813.162 49.395.0.0 15.789 626.545 888.162 501.237-177.63 354.492-611.841 539.733-1144.74 197.221 23.684 144.922 110.527 383.194 276.32 562.254 177.63 191.052 801.319 425.683 1756.58-677.752" style="fill:none;stroke:#000;stroke-width:258.66px;stroke-miterlimit:3.75"/><path d="M3380.67 7715.09l-2234.23 114.072 47.37 688.29 438.162-21.068-86.841-322.534 414.471-18.887-31.575 317.086 434.211-15.621-47.37-691.555" style="fill:none;stroke:#000;stroke-width:258.66px;stroke-miterlimit:1.5"/><path d="M5147.98 7621.96l1091.47-48.521s57.123-1030.02 664.047-1055.78c606.924-25.754 888.736 410.526 640.449 730.086-134.769 174.352-464.845 406.176-746.683 490.485-233.087 70.667-437.159 38.209-472.337-216.25-79.459-595.607 1077.88-316.741 1231.47-11.283 150.028 304.643 32.017 735.54-566.576 681.906-667.083-60.004-750.369-619.165-750.369-619.165" style="fill:none;stroke:#000;stroke-width:248.05px;stroke-miterlimit:1.5"/><path d="M7545.57 6577.87s196.999-285.577 452.118-196.331c246.844 86.35 253.996 348.283 23.412 475.463.0.0 442.268 42.684 416.038 414.054-30.169 371.089-409.823 413.21-409.823 413.21s285.689 161.749 89.258 369.662c-204.157 216.089-346.463 104.255-470.429 14.063" style="fill:none;stroke:#000;stroke-width:258.66px;stroke-miterlimit:1.5"/><path d="M3526.72 6353.97s19.733-541.549-209.212-782.725c-228.95-241.895-572.374-322.17-532.902 170.711 47.37 590.219 742.114 612.014 742.114 612.014z" style="fill:none;stroke:#000;stroke-width:258.66px;stroke-miterlimit:1.5"/></g></svg></span><span class="navbar-brand__name">Rosenpass</span></a> <div class="collapse navbar-collapse" id="main_navbar"> <ul class="navbar-nav mt-2 mt-lg-0" id="navbar-custom"> <li class="nav-item mr-4 mb-2 mb-lg-0 mx-auto"> <div class="dropdown d-flex"> <a class="nav-link" href="/docs/rosenpass-tool/start"><span>Quick Start</span> </a> </div></li> <li class="nav-item mr-4 mb-2 mb-lg-0 mx-auto"> <div class="dropdown d-flex"> <a class="nav-link" href="/#what-is-rosenpass"><span>What is Rosenpass?</span> </a> </div></li> <li class="nav-item mr-4 mb-2 mb-lg-0 mx-auto"> <div class="dropdown d-flex"> <a class="nav-link" href="/docs/"><span>Documentation</span> </a> <button class="dropdown-toggle navbar-dropdown-button d-none d-md-block" href="#" role="button" id="dropdownNavbarLink" data-bs-toggle="dropdown" aria-expanded="false"></button> </button> <ul class="dropdown-menu nest-ul" aria-labelledby="dropdownNavbarLink"> <li class="dropdown-section"><a class="dropdown-item dropdown-section-header " href="/docs/rosenpass-project/">The Rosenpass Project</a> <div class="row"> <ul class="nest-ul nested-ul"> <li><a class="dropdown-item nested" href="/docs/rosenpass-project/whitepaper/">Whitepaper</a> <p>Science paper on the Rosenpass protocol</p></li> <li><a class="dropdown-item nested" href="/docs/rosenpass-project/pentest/">Penetration Test 2024</a> <p>Report on Rosenpass' security performance</p></li> <li><a class="dropdown-item nested" href="/docs/rosenpass-project/presentations/">Conference Presentations</a> <p>Presentations on Rosenpass and Cryptography</p></li> </ul> </div> </li> <li class="dropdown-section"><a class="dropdown-item dropdown-section-header " href="/docs/rosenpass-tool/">The Rosenpass Tool</a> <div class="row"> <ul class="nest-ul nested-ul"> <li><a class="dropdown-item nested" href="/docs/rosenpass-tool/start/">Quick Start</a> <p>Get Rosenpass installed and running</p></li> <li><a class="dropdown-item nested" href="/docs/rosenpass-tool/release_notes/">Release Notes</a> <p>A summary of code changes on the tool</p></li> <li><a class="dropdown-item nested" href="/docs/rosenpass-tool/compilation/">Compilation and Installation</a> <p>Manually set up Rosenpass</p></li> <li><a class="dropdown-item nested" href="https://github.com/rosenpass/rosenpass">Source Code <i class="fa-solid fa-up-right-from-square fa-2xs external-link text-muted"></i></a> <p>The Rosenpass GitHub repository</p></li> <li><a class="dropdown-item nested" href="/docs/rosenpass-tool/manuals/">Man Pages</a> <p>Rosenpass's command line guides</p></li> </ul> </div> </li> </ul> </div></li> <li class="nav-item mr-4 mb-2 mb-lg-0 mx-auto"> <div class="dropdown d-flex"> <a class="nav-link" href="/blog/"><span>Blog</span> </a> <button class="dropdown-toggle navbar-dropdown-button d-none d-md-block" href="#" role="button" id="dropdownNavbarLink" data-bs-toggle="dropdown" aria-expanded="false"></button> </button> <ul class="dropdown-menu nest-ul" aria-labelledby="dropdownNavbarLink"> <li class="unnested"><a class="dropdown-item" href="/blog/022_september/">Rosenpass v0.2.2 Release</a> <p>Upgrading the cookie mechanism</p> </li> <li class="unnested"><a class="dropdown-item" href="/blog/tlsrosenpass_july/">Rosenpass with TLS</a> <p>Using Rosenpass with OpenSSL over TLS</p> </li> <li class="unnested"><a class="dropdown-item" href="/blog/pentest_january/">Rosenpass Penetration Test</a> <p>Testing Rosenpass' security</p> </li> <li class="unnested"><a class="dropdown-item" href="/blog/avionics_july/">Post-Quantum Security in Avionics Paper Hackathon</a> <p>Integrating Post-Quantum Security into Avionics</p> </li> <li class="unnested"><a class="dropdown-item" href="/blog/netbird_july/">NetBird and Rosenpass' July Hackathon</a> <p>Collaborating with NetBird</p> </li> </ul> </div></li> <li class="nav-item mr-4 mb-2 mb-lg-0 mx-auto"> <div class="dropdown d-flex"> <a class="nav-link" href="/contributors/"><span>Contributors & Contact</span> </a> </div></li> </ul> </div> <div class="d-flex options-box"> <ul class="navbar-nav mt-2 mt-lg-0 d-block"> <li class="td-light-dark-menu nav-item dropdown"> <svg xmlns="http://www.w3.org/2000/svg" class="d-none"> <symbol id="check2" viewBox="0 0 16 16"> <path d="M13.854 3.646a.5.5 0 0 1 0 .708l-7 7a.5.5 0 0 1-.708 0l-3.5-3.5a.5.5 0 1 1 .708-.708L6.5 10.293l6.646-6.647a.5.5 0 0 1 .708 0z"/> </symbol> <symbol id="circle-half" viewBox="0 0 16 16"> <path d="M8 15A7 7 0 1 0 8 1v14zm0 1A8 8 0 1 1 8 0a8 8 0 0 1 0 16z"/> </symbol> <symbol id="moon-stars-fill" viewBox="0 0 16 16"> <path d="M6 .278a.768.768 0 0 1 .08.858 7.208 7.208 0 0 0-.878 3.46c0 4.021 3.278 7.277 7.318 7.277.527 0 1.04-.055 1.533-.16a.787.787 0 0 1 .81.316.733.733 0 0 1-.031.893A8.349 8.349 0 0 1 8.344 16C3.734 16 0 12.286 0 7.71 0 4.266 2.114 1.312 5.124.06A.752.752 0 0 1 6 .278z"/> <path d="M10.794 3.148a.217.217 0 0 1 .412 0l.387 1.162c.173.518.579.924 1.097 1.097l1.162.387a.217.217 0 0 1 0 .412l-1.162.387a1.734 1.734 0 0 0-1.097 1.097l-.387 1.162a.217.217 0 0 1-.412 0l-.387-1.162A1.734 1.734 0 0 0 9.31 6.593l-1.162-.387a.217.217 0 0 1 0-.412l1.162-.387a1.734 1.734 0 0 0 1.097-1.097l.387-1.162zM13.863.099a.145.145 0 0 1 .274 0l.258.774c.115.346.386.617.732.732l.774.258a.145.145 0 0 1 0 .274l-.774.258a1.156 1.156 0 0 0-.732.732l-.258.774a.145.145 0 0 1-.274 0l-.258-.774a1.156 1.156 0 0 0-.732-.732l-.774-.258a.145.145 0 0 1 0-.274l.774-.258c.346-.115.617-.386.732-.732L13.863.1z"/> </symbol> <symbol id="sun-fill" viewBox="0 0 16 16"> <path d="M8 12a4 4 0 1 0 0-8 4 4 0 0 0 0 8zM8 0a.5.5 0 0 1 .5.5v2a.5.5 0 0 1-1 0v-2A.5.5 0 0 1 8 0zm0 13a.5.5 0 0 1 .5.5v2a.5.5 0 0 1-1 0v-2A.5.5 0 0 1 8 13zm8-5a.5.5 0 0 1-.5.5h-2a.5.5 0 0 1 0-1h2a.5.5 0 0 1 .5.5zM3 8a.5.5 0 0 1-.5.5h-2a.5.5 0 0 1 0-1h2A.5.5 0 0 1 3 8zm10.657-5.657a.5.5 0 0 1 0 .707l-1.414 1.415a.5.5 0 1 1-.707-.708l1.414-1.414a.5.5 0 0 1 .707 0zm-9.193 9.193a.5.5 0 0 1 0 .707L3.05 13.657a.5.5 0 0 1-.707-.707l1.414-1.414a.5.5 0 0 1 .707 0zm9.193 2.121a.5.5 0 0 1-.707 0l-1.414-1.414a.5.5 0 0 1 .707-.707l1.414 1.414a.5.5 0 0 1 0 .707zM4.464 4.465a.5.5 0 0 1-.707 0L2.343 3.05a.5.5 0 1 1 .707-.707l1.414 1.414a.5.5 0 0 1 0 .708z"/> </symbol> </svg> <button class="btn btn-link nav-link dropdown-toggle d-flex align-items-center" id="bd-theme" type="button" aria-expanded="false" data-bs-toggle="dropdown" data-bs-display="static" aria-label="Toggle theme (auto)"> <svg class="bi my-1 theme-icon-active"><use href="#circle-half"></use></svg> </button> <ul class="dropdown-menu dropdown-menu-end" aria-labelledby="bd-theme-text"> <li> <button type="button" class="dropdown-item d-flex align-items-center" data-bs-theme-value="light" aria-pressed="false"> <svg class="bi me-2 opacity-50"><use href="#sun-fill"></use></svg> Light <svg class="bi ms-auto d-none"><use href="#check2"></use></svg> </button> </li> <li> <button type="button" class="dropdown-item d-flex align-items-center" data-bs-theme-value="dark" aria-pressed="false"> <svg class="bi me-2 opacity-50"><use href="#moon-stars-fill"></use></svg> Dark <svg class="bi ms-auto d-none"><use href="#check2"></use></svg> </button> </li> <li> <button type="button" class="dropdown-item d-flex align-items-center active" data-bs-theme-value="auto" aria-pressed="true"> <svg class="bi me-2 opacity-50"><use href="#circle-half"></use></svg> Auto <svg class="bi ms-auto d-none"><use href="#check2"></use></svg> </button> </li> </ul> </li> </ul> <div class="navbar-nav d-block"> <div class="td-search td-search--offline my-2 my-lg-0"> <div class="td-search__icon"></div> <input type="search" class="td-search__input form-control" placeholder="Search this site…" aria-label="Search this site…" autocomplete="off" data-offline-search-index-json-src="/offline-search-index.dd0cce7f91e51ae2fb6151783358a2f4.json" data-offline-search-base-href="/" data-offline-search-max-results="10" > </div> </div> </div> <button class="navbar-toggler collapsed" type="button" data-bs-toggle="collapse" data-bs-target="#main_navbar" aria-controls="main_navbar" aria-expanded="false" aria-label="Toggle navigation"> <span class="icon-bar"></span> <span class="icon-bar"></span> <span class="icon-bar"></span> </button> </div> </nav> </header> <div class="container-fluid td-default td-outer"> <main role="main" class="td-main"> <link rel="preload" as="image" href="/featured-background_hu1347049916068391725.jpg" media="(max-width: 1200px)"> <link rel="preload" as="image" href="/featured-background_hu8364680943723113398.jpg" media="(min-width: 1200px)"> <style> #td-cover-block-0 { background-image: url(/featured-background_hu1347049916068391725.jpg); } @media only screen and (min-width: 1200px) { #td-cover-block-0 { background-image: url(/featured-background_hu8364680943723113398.jpg); } } [data-bs-theme="dark"]{ #td-cover-block-0 { background-image: url(/featured-darkground_hu12578675968791000966.jpg); } @media only screen and (min-width: 1200px) { #td-cover-block-0 { background-image: url(/featured-darkground_hu14368185773146794567.jpg); } } } </style> <section id="td-cover-block-0" class="row td-cover-block td-cover-block--height-auto js-td-cover /*td-overlay td-overlay--dark*/ -bg-white "> <div class="container td-overlay__inner"> <div class="row"> <div class="col-12"> <div class="text-center"> <h1 class="display-1 mt-0"> <img class="td-cover-logo cover-logo-light" src="/rosenpass-darkogo.svg" alt="Rosenpass Logo"> </h1> <div class="pt-3 lead"> <p class="subtitle">Build post-quantum-secure VPNs with WireGuard!</p> <div class="rp-buttonrow mx-auto"> <a class="btn btn-lg btn-secondary mr-3 mb-4" href="/docs/rosenpass-tool/start"> Quick Start <!-- <i class='fas fa-arrow-alt-circle-down '></i>--> </a> <a class="btn btn-lg btn-primary mr-3 mb-4" href="#what-is-rosenpass"> What is Rosenpass? <!--<i class="fas fa-arrow-alt-circle-right ml-2"></i>--> </a> <a class="btn btn-lg btn-dark mr-3 mb-4" href="https://github.com/rosenpass/rosenpass" target="_blank"> Source Code <i class="fab fa-github ml-2 "></i> </a> <div> <a class="btn btn-link text-info" href="#td-block-1" aria-label="Read more"><i class="fa-solid fa-circle-chevron-down" style="font-size: 400%"></i></a> </div> </div> </div> </div> </div> </div> </div> </section> <div><a id="td-block-1" class="td-offset-anchor"></a></div> <section class="row td-box td-box--dark lead-block position-relative td-box--height-auto "> <div class="col-12"> <div class="container text-center td-arrow-down"> <div class="h4 lead mb-0"> <h3 id="what-is-rosenpass">What is Rosenpass?<a class="td-heading-self-link" href="#what-is-rosenpass" aria-label="Heading self-link"></a></h3> </div> </div> </div> </section> <a id="td-block-2" class="td-offset-anchor"></a> <section class="row td-box td-box--white td-box--gradient td-box--height-auto rosenpass-overview-links pb-0"> <div class="col"> <div class="row "> <div class="col-sm-4 mb-5 mb-sm-0 text-center"> <div class="mb-4 h1"> <i class="fas fa-lock"></i> </div> <h4 class="h3">Post-Quantum Secure</h4> <div class="mb-0"> <strong>Rosenpass</strong> is a key-exchange protocol using techniques that are secure against attacks from quantum computers. It achieves the same security guarantees as WireGuard, using two strong post-quantum key exchange methods – Classic McEliece and Kyber. </div> </div> <div class="col-sm-4 mb-5 mb-sm-0 text-center"> <div class="mb-4 h1"> <i class="fas fa-dragon"></i> </div> <h4 class="h3">Works with WireGuard</h4> <div class="mb-0"> <strong>Rosenpass</strong> keeps WireGuard security intact and adds on to it; Rosenpass handles post-quantum security, WireGuard handles pre-quantum security. </div> </div> <div class="col-sm-4 mb-5 mb-sm-0 text-center"> <div class="mb-4 h1"> <i class="fas fa-box-open"></i> </div> <h4 class="h3">Free and Open Source</h4> <div class="mb-0"> <strong>Rosenpass</strong> is Free and Open Source Software under the Apache 2.0 and MIT license and developed by hackers and researchers. </div> </div> </div> </div> </section> <div class="about"> <a id="td-block-3" class="td-offset-anchor"></a> <section class="row td-box td-box--white td-box--gradient td-box--height-auto "> <div class="col"> <div class="row "> <p><strong>Rosenpass</strong> is free and <strong>open-source</strong> software based on the latest research in the field of <strong>cryptography</strong>. It is intended to be used with WireGuard VPN, but can work with all software that uses pre-shared keys. It uses two cryptographic methods (Classic McEliece and Kyber) to secure systems against attacks with <strong>quantum computers</strong>.</p> <p><strong>Rosenpass</strong> is also a <strong>science communication</strong> project that intends to make cryptography easy to understand for everyone. </p> <h4>“Explain it like …”</h4> <p> On that note, we have provided a series in-depth of explanations about what <strong>Rosenpass</strong> does at different levels. Pick whatever you feel suits you best! :D </p> <div class="link-collection"> <a class="link-block btn btn-light" href="#-im-five">Explain it like I'm five!</a> <a class="link-block btn btn-secondary" href="#-im-a-tech-journalist">… a tech journalist!</a> <a class="link-block btn btn-primary" href="#-im-a-developer">… a developer!</a> <a class="link-block btn btn-dark" href="#-im-a-cryptographer">… a cryptographer!</a> </div> </div> </div> </section> <div><a id="td-block-4" class="td-offset-anchor"></a></div> <section class="row td-box td-box--light lead-block position-relative td-box--height-auto "> <div class="col-12"> <div class="container text-center td-arrow-down"> <div class="h4 lead mb-0"> <h3 id="-im-five">… I’m five!<a class="td-heading-self-link" href="#-im-five" aria-label="Heading self-link"></a></h3> <p>(Meaning you don't have to know a lot about computers to understand this.)</p> </div> </div> </div> </section> <a id="td-block-5" class="td-offset-anchor"></a> <section class="row td-box td-box--white td-box--gradient td-box--height-auto "> <div class="col"> <div class="row "> <h4 id="what-is-cryptograph">What is cryptography?</h4> <p>Have you ever tried <strong>writing a message</strong> to a friend that <strong>only they could read</strong>? You might have told them: "Take each letter and move it forward three places in the alphabet!". Then you would have moved each letter of your message three places backward before writing it down. Encryption is basically like that, but *a lot* more complicated! And you can do other useful stuff with it. For example, you can make sure the message really does come from the person it claims to be from.</p> </div> </div> </section> <section class="eli5-images td-box td-box--white " > <img class="eli5-image col" src="https://rosenpass.eu/img/about/eli5_wic1.png" alt="Childish drawing of a girl handing a note to a boy." /> <img class="eli5-image col" src="https://rosenpass.eu/img/about/eli5_wic2.png" alt="Girl handing a letter to the boy. Both have notes at their desks. " /> <img class="eli5-image col" src="https://rosenpass.eu/img/about/eli5_wic3.png" alt="Decoding the letter with the note. " /> </section> <a id="td-block-7" class="td-offset-anchor"></a> <section class="row td-box td-box--white td-box--gradient td-box--height-auto "> <div class="col"> <div class="row "> <h4 id="why-do-we-need-cryptography">Why do we need cryptography?</h4> <p>Without cryptography, every message you send on your phone or computer could be <strong>read by everyone</strong> on the way between you and the receiver of that message. It's like sending a letter without an envelope! That might not be such a big problem for the GIFs you send to your friends (We also send postcards without envelopes, after all!), but there are parts of our communication that really shouldn't be public. Like when you buy something online: If you sent your <strong>credit card information</strong> unencrypted, it would mean that everyone could read that data and go buy something with your money!</p> <h4 id="what-is-a-quantum-computer">What is a quantum computer?</h4> <p>Regular computers only know two states: 0 (= power off) and 1 (= power on). When you send data on a regular computer, it maps every character to a long sequence of <strong>ones and zeros</strong>.</p> <p>All over the world, scientists are trying to build computers that use quantum mechanics to have <strong>more than just these two states</strong>, because that would make them much <strong>faster</strong> than the computers we have today. They made prototypes that kind of work, but they are huge, unstable (because they are super sensitve to their environment) and <strong>can't really do much, yet</strong>. </p> <h4 id="what-makes-quantum-computers-so-bad-for-cryptography">What makes quantum computers so bad for cryptography?</h4> <p>Cryptography is so secure because it takes your message and does some <strong>math</strong> with it, that's <strong>super hard for computers</strong> to undo. Your communication partner exchanged a <strong>"key"</strong> with you at some point. That's basically a long series of ones and zeros. With this, your computer can <strong>restore the original message</strong> pretty fast. Someone who doesn't have your key could just <strong>try all possible combinations</strong> of ones and zeros to find out which of them is your key. But it would take them centuries to try all possible combinations!</p> <p>The problem with <strong>quantum computers</strong> is that they are <strong>super good at the math</strong> that's so hard for normal computers. So suddenly, trying all possible combinations doesn't take years anymore. Just minutes!</p> <p>(You can also use quantum computers to make cryptography that's impossible to break even for quantum computers. But that's a whole other story. Everyone who wants to use it would need a quantum computers or at least a special device for that. So that's even much farther in the future than a few huge but functioning quantum computers that can break regular cryptography!)</p> <h4 id="what-can-we-do-to-protect-our-encryption-against-quantum-computers">What can we do to protect our encryption against quantum computers?</h4> <p>Cryptographers, the scientists that invent cryptography, have been watching the development of quantum computers closely. Their whole job is to <strong>solve complex mathematical problems</strong> and finding a way to protect encryption that's made on regular computers from attacks from quantum computers is an interesting and very important problem. </p> <p>So they tried (and still try) new things and held contests to <strong>find cyphers</strong> that could withstand quantum computer attacks. A cypher is like a set of instructions on what math you have to do with a message to encrypt and decrypt it. Then they proceeded to try and break each other's cyphers. That's just what scientist do to make sure that they really found the right solution. Even if it hurts, it's better when a fellow scientist breaks your cypher then when attacker does (without your knowledge)!</p> <h4 id="what-is-a-vpn">What is a VPN?</h4> <p>A VPN or <strong>Virtual Private Network</strong> is like a <strong>tunnel</strong> that you can send your messages through, so that <strong>nobody can see</strong> them. Not even when and where they go to! This tunnel is also <strong>made of encryption</strong>! Many companies use VPNs so that their employees who work from home or are on a business trip can connect to the company network. This makes sure that their competitiors or people who want to harm them can't know what they are working on. </p> <p>But you can also use a VPN at home. There are many providers that offer easy to use VPN software. </p> <h4 id="what-is-wireguard">What is WireGuard?</h4> <p>Many people think that software is secure if you just do your best to hide it's code from everyone's eyes. But that's not true. Software is the most secure when everyone can have a look at it and check that it really does what it does and nothing else. </p> <p>That's what makes <strong>WireGuard</strong> stand out among other <strong>VPNs</strong>. It is made of <strong>short and easy to read code</strong> that everyone can access. That's why people trust it to be really <strong>secure</strong>. </p> <h4 id="what-does-rosenpass-do">What does Rosenpass do?</h4> <p><strong>Rosenpass</strong> is a piece of <strong>software</strong> that uses two of the <strong>post-quantum-secure cyphers</strong> the scientists found. It <strong>generates keys</strong> with those cyphers and <strong>hands them to WireGuard</strong>. Like WireGuard, it is easy to read and anyone can have a look at what it does.</p> <p>WireGuard already comes with it's own cyphers, but those are not post-quantum-secure. <strong>Rosenpass</strong> doesn't replace those cyphers, but just kind of wraps around them. That means that even if there were something wrong with Rosenpass, the encryption can't get worse than the one WireGuard already has. Just better. Having <strong>failsafes</strong> like that is important in writing secure software. </p> <h4 id="how-can-i-use-rosenpass">How can I use Rosenpass?</h4> <p>If you don't know a lot about computers, you will probably never install <strong>Rosenpass</strong> yourself. But you could subscribe to a <strong>VPN provider</strong> that uses WireGuard and <strong>Rosenpass</strong> to make <strong>your communication secure against attacks from quantum computers</strong>. </p> </div> </div> </section> <div><a id="td-block-8" class="td-offset-anchor"></a></div> <section class="row td-box td-box--secondary lead-block position-relative td-box--height-auto "> <div class="col-12"> <div class="container text-center td-arrow-down"> <div class="h4 lead mb-0"> <h3 id="-im-a-tech-journalist">… I’m a tech journalist!<a class="td-heading-self-link" href="#-im-a-tech-journalist" aria-label="Heading self-link"></a></h3> </div> </div> </div> </section> <a id="td-block-9" class="td-offset-anchor"></a> <section class="row td-box td-box--light td-box--gradient td-box--height-auto "> <div class="col"> <div class="row "> <p>Rosenpass provides a complement to the well-known WireGuard protocol, adding quantum-hardened cryptography and key exchange while keeping the established WireGuard standard encryption security. So Rosenpass functions as an add-on, enhancing WireGuard's key negotiation process with Post Quantum Secure (PQS) cryptography, based a combination of Classic McEliece and Kyber.</p> <p>Rosenpass is free and open-source software. This means it can be publicly reviewed and adapted by other developers for their purposes. All contributions to Rosenpass are provided both under a Apache 2.0 and an MIT License. When using Rosenpass itself, the user may choose under which license to use Rosenpass.<br>(See the <a href="/#license">License</a> section for detailed information.) </p> <p>Rosenpass uses symbolically verified, state-of-the-art cryptography. This project is part of a wider effort to break new ground in improving the security of an important component of the public internet.</p> <p>The project is run by a team of cryptographers, researchers, open-source developers, hackers and designers. We emphasise verifiable security, usability, and science communication. It is provided as a small package in a GitHub repository, and is easy to install and maintain alongside your WireGuard installation.</p> <p>Rosenpass is written in Rust. The application serves as a reference implementation. It aids developers in implementing and adapting the protocol to other systems by providing readable source code and ample documentation. The software developed to implement Rosenpass can be easily adapted to other pieces of the internet security landscape, preserving trust and safety of future networks.</p> </div> </div> </section> <div><a id="td-block-10" class="td-offset-anchor"></a></div> <section class="row td-box td-box--primary lead-block position-relative td-box--height-auto "> <div class="col-12"> <div class="container text-center td-arrow-down"> <div class="h4 lead mb-0"> <h3 id="-im-a-developer">… I’m a developer!<a class="td-heading-self-link" href="#-im-a-developer" aria-label="Heading self-link"></a></h3> </div> </div> </div> </section> <a id="td-block-11" class="td-offset-anchor"></a> <section class="row td-box td-box--white td-box--gradient td-box--height-auto "> <div class="col"> <div class="row "> <p>Rosenpass implements a post-quantum-secure key exchange in the spirit of the <a href="https://noiseprotocol.org/">Noise Protocol Framework</a>. The motivating use case is integrating with the WireGuard VPN. In this mode, the shared secret generated by Rosenpass is supplied to WireGuard as its pre-shared symmetric key (PSK). This results in a WireGuard VPN connection with hybrid post-quantum security.</p> <p>While Rosenpass is designed with WireGuard in mind, it can be used as a stand-alone tool to exchange keys. Using this mode, it can be employed to secure other protocols against attacks from quantum computers. The other protocol needs to provide security, assuming a secure PSK is used for this to work. To use this mode, the `rosenpass` binary must be used together with the `outfile <FILE>` parameter. Rosenpass will write a key to the given file every two minutes, and print a message on standard out to notify the user or the calling script that the key has changed.</p> <p>The implementation is written in Rust but uses libsodium and liboqs, both of which are C libraries. This does not result in pretty code everywhere, but enables some advanced security features. We use a couple of techniques to make sure the code is secure. We use variable colouring (gating use of a secret value through a `.secret()` method), and the code zeroises all key material.</p> <h4 id="repo">Repo</h4> <p>We maintain a public GitHub repository for Rosenpass and welcome all kinds of contributions:</p> <p><a href="https://github.com/rosenpass/rosenpass">https://github.com/rosenpass/rosenpass</a></p> <p>Check the <a href="/start">Getting Started</a> section for further information.</p> </div> </div> </section> <div><a id="td-block-12" class="td-offset-anchor"></a></div> <section class="row td-box td-box--dark lead-block position-relative td-box--height-auto "> <div class="col-12"> <div class="container text-center td-arrow-down"> <div class="h4 lead mb-0"> <h3 id="-im-a-cryptographer">… I’m a cryptographer!<a class="td-heading-self-link" href="#-im-a-cryptographer" aria-label="Heading self-link"></a></h3> </div> </div> </div> </section> <a id="td-block-13" class="td-offset-anchor"></a> <section class="row td-box td-box--light td-box--gradient td-box--height-auto "> <div class="col"> <div class="row "> <p>The Rosenpass protocol provides a post-quantum-secure authenticated key exchange, based on the work "Post-quantum WireGuard" (PQWG) by Hülsing, Ning, Schwabe, Weber, and Zimmermann<a href="#pqwg"><sup>1</sup></a>. Apart from some tweaks to the protocol internals, we provide security against what we call <em>state disruption attacks</em> as a major contribution.</p> <p>Both the classic WireGuard protocol (WG)<a href="#wg"><sup>2</sup></a> and PQWG rely on a timestamp to protect against replay of the first protocol message. By setting the system time to a future date, an attacker can trick the initiator into generating a kill-packet that can be used to inhibit future handshakes without special access. This renders the initiator's static key pair practically useless. Assuming an attacker's ability to modify the system time is realistic due to the use of the insecure NTP protocol on many systems, as described in <a href="https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2021-46873">WireGuard CVE-2021-46873</a>.</p> <p>Instead of attempting to protect against replay attacks on the first protocol message, Rosenpass uses a stateless responder, so replay of the first message leads to no attack. To achieve this, we move the responder state into an encrypted cookie and have the responder include it with their message. The initiator returns this cookie in their reply, so the responder can restore it before processing the reply.</p> <p>In practice, Rosenpass is meant to be used together with WireGuard to achieve hybrid post-quantum security. In this scenario, WireGuard is still used as the main VPN protocol for transporting data while Rosenpass runs on the side and supplies the WireGuard implementation with keys to be used as the pre-shared key (PSK) during its handshake. Just like WireGuard, Rosenpass executes a new handshake every two minutes.</p> <p>A cryptographic proof of security is in the works. At this time, we provide a symbolic analysis of the protocol using ProVerif and a practical implementation of the protocol in the Rust programming language. The implementation uses cryptographic primitives from liboqs<a href="#liboqs"><sup>3</sup></a> and libsodium<a href="#libsodium"><sup>4</sup></a>.</p> <hr> <h4 id="references">References</h4> <ol> <li id="pqwg">Andreas Hülsing, Kai-Chun Ning, Peter Schwabe, Florian Weber, and Philip R. Zimmermann. Post-quantum WireGuard. <a href="https://eprint.iacr.org/2020/379">https://eprint.iacr.org/2020/379</a></li> <li id="wg">Jason A. Donenfeld. WireGuard: Next Generation Kernel Network Tunnel. NDSS 2017 <a href="https://www.ndss-symposium.org/ndss2017/ndss-2017-programme/wireguard-next-generation-kernel-network-tunnel/">https://www.ndss-symposium.org/ndss2017/ndss-2017-programme/wireguard-next-generation-kernel-network-tunnel/</a></li> <li id="liboqs">Douglas Stebila, Michele Mosca. Post-quantum key exchange for the Internet and the Open Quantum Safe project. In Roberto Avanzi, Howard Heys, editors, Selected Areas in Cryptography (SAC) 2016, LNCS, vol. 10532, pp. 1–24. Springer, October 2017. <a href="https://openquantumsafe.org">https://openquantumsafe.org</a> <a href="https://eprint.iacr.org/2016/1017">https://eprint.iacr.org/2016/1017</a></li> <li id="libsodium"><a href="https://doc.libsodium.org/">https://doc.libsodium.org/</a></li> </ol> </div> </div> </section> </div> </main> <footer class="py-5 row d-print-none footer"> <p class=" text-center mb-1"><a href="/press/">Press</a> | <a href="/impressum/" >Impressum</a> | <a href="/contributors/#contact">Contact</a></p> <p class=" text-center text-xs mb-1">Funded through <a href="https://nlnet.nl/">NLNet</a> with financial support from the European Commission's <a href="https://nlnet.nl/assure">NGI Assure</a> program <br/> and ProtoType Fund of the <a href="https://okfn.de/en/">Open Knowledge Foundation Germany</a>, financed by the <a href="https://www.bmbf.de/en/index.html">Federal Ministry of Education and Research (BMBF).</a></p></p> <p class=" text-center text-xs">Website and mail hosting sponsored by <a href="https://servercow.de/">Servercow</a>.</p> <div class="container-fluid mx-sm-5 text-center text-xs"> <div class="row"> <div class="col-6 col-sm-4 text-xs-center order-sm-2"> </div> <div class="col-6 col-sm-4 text-right text-xs-center order-sm-3"> </div> <div class="col-12 col-sm-4 text-center py-2 order-sm-2"> </div> </div> </div> </footer> </div> </body> </html>