Skip to content

Commit a88e74c

Browse files
qryptdevSpenca
andauthored
Major docs clean-up (#98)
* Major docs clean-up --------- Co-authored-by: Spencer Vatrt-Watts <spencer@qrypt.com>
1 parent a8aa26d commit a88e74c

File tree

71 files changed

+919
-8248
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

71 files changed

+919
-8248
lines changed

config.toml

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -18,11 +18,11 @@ publishDir = "docs"
1818
identifier = "ws"
1919
url = "https://www.qrypt.com/"
2020
weight = 1
21-
[[menu.shortcuts]]
22-
name = '<div class=link-container><svg height=16px width=16px xmlns="http://www.w3.org/2000/svg" viewBox="0 0 390.01 388.4"><path d="m257.37 241.66 122.43 122.43-23.22 23.26-125.39-125.44 18.59 71.67-31.82 8.25-16.67-64.16-29.63 110.73-31.73-8.51 30.77-114.96-111.04 111.03-23.26-23.22 109.59-109.59-97.06 24.96-8.16-31.86 100.16-25.75-140.93-37.75 8.51-31.73 139.01 37.23-45.96-45.96 23.22-23.22 44.26 44.25-37.67-145.07 31.82-8.25 38.62 148.74 25.1-93.79 31.77 8.51-24.52 91.52 111.59-111.6 23.23 23.27-114.7 114.69 127.53-32.77 8.2 31.81-119.63 30.77 85.76 22.96-8.51 31.73z" fill="currentColor" style="fill: currentColor;"/></svg>&nbspQrypt Portal </div>'
23-
identifier = "ps"
24-
url = "https://portal.qrypt.com/"
25-
weight = 2
21+
# [[menu.shortcuts]]
22+
# name = '<div class=link-container><svg height=16px width=16px xmlns="http://www.w3.org/2000/svg" viewBox="0 0 390.01 388.4"><path d="m257.37 241.66 122.43 122.43-23.22 23.26-125.39-125.44 18.59 71.67-31.82 8.25-16.67-64.16-29.63 110.73-31.73-8.51 30.77-114.96-111.04 111.03-23.26-23.22 109.59-109.59-97.06 24.96-8.16-31.86 100.16-25.75-140.93-37.75 8.51-31.73 139.01 37.23-45.96-45.96 23.22-23.22 44.26 44.25-37.67-145.07 31.82-8.25 38.62 148.74 25.1-93.79 31.77 8.51-24.52 91.52 111.59-111.6 23.23 23.27-114.7 114.69 127.53-32.77 8.2 31.81-119.63 30.77 85.76 22.96-8.51 31.73z" fill="currentColor" style="fill: currentColor;"/></svg>&nbspQrypt Portal </div>'
23+
# identifier = "ps"
24+
# url = "https://portal.qrypt.com/"
25+
# weight = 2
2626
[[menu.shortcuts]]
2727
name = "<i class='fab fa-github'></i> Github Repo"
2828
identifier = "gh"

content/_index.md

Lines changed: 0 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -19,22 +19,10 @@ Below is a list of the products that Qrypt offers with links to their supporting
1919
### [Quantum Entropy Appliance (on-prem)](eaas/appliance/)
2020
Qrypt's on-prem quantum entropy appliance is a server that is intentended for on-prem deployments. It exposes a REST API that clients can call to retrieve quantum entropy from the QRNG card installed on the server.
2121

22-
### [Quantum Readiness](quantumreadiness/)
23-
24-
Quantum readiness provides centralized deployment and management UI of all Qrypt products.
25-
26-
### [Post quantum TLS proxy](postquantumproxy/)
27-
28-
This post quantum TLS proxy allows for incoming TLS connections to use post quantum cryptography.
29-
3022
### [Quantum Entropy as a Service](/eaas/)
3123

3224
Qrypt's Quantum Entropy service measures quantum effects and converts those measurements into pure random numbers. The service leverages multiple Quantum Random Number Generators (QRNGs) developed in collaboration with national and international research labs to ensure the highest quality random.
3325

3426
### [Key Generation](sdk/)
3527

3628
Qrypt SDK includes client library SDKs, cloud-based REST services, command line clients and guidance to help integrate post-quantum security into your applications and services. You can add security features to your applications without being an expert in post-quantum cryptography.
37-
38-
### [Portable OpenSSH with Qrypt](openssh/)
39-
40-
This implementation of OpenSSH has been modified to provide additional security via the Qrypt Key Generation SDK. During key exchange negotiation, the Qrypt SDK will generate an additional quantum-secure secret that is added to the session key hash inputs.

content/eaas/_index.md

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -8,11 +8,12 @@ disableToc = "true"
88

99
## Using Qrypt's Quantum Entropy Service
1010

11-
Qrypt’s Entropy as a Service is a RESTful web service that allows you to generate random data (henceforth referred to as entropy or random) that is truly random—based on quantum-mechanical phenomena.
11+
Qrypt’s Entropy as a Service is a RESTful web service that allows you to generate random data (henceforth referred to as entropy or random) that is truly random—based on quantum-mechanical phenomena.
1212

13-
This service requires an access token. Follow the steps in [Getting Started]({{< ref "/getting_started" >}}) to obtain an access token.
13+
This service requires an access token. Please {{< externalLink link="https://www.qrypt.com/contact/" text="contact us" >}} to obtain one.
1414

1515
### Related Tools and Services
16+
1617
1. [RNG Tools]({{< ref "/eaas/rngd" >}}): Integrating Qrypt's Quantum Entropy service as a random source for system devices.
1718
2. [Qseed]({{< ref "/eaas/pkcs11" >}}): Integrating Qrypt's Quantum Entropy service as a random source for PKCS#11 HSMs.
1819

@@ -31,7 +32,7 @@ Follow these steps in your preferred tool or language of choice to request entro
3132
1. Specify your access token and the desired number of kibibytes (1,024 bytes) of entropy in a web request. Use the following URL: {{< externalLink link="https://api-eus.qrypt.com/api/v1/quantum-entropy?size={kib_entropy}" text="https://api-eus.qrypt.com/api/v1/quantum-entropy?size={kib_entropy}" >}}.
3233
2. Replace {**kib_entropy**} in the aforementioned URL with an integer indicating the number of kibibytes of entropy to return.
3334
3. Include an HTTP **“Accept”** header field with a value of **“application/json”**</span>.
34-
4. Include an HTTP **“Authorization”** header with a value of **“Bearer {access_token}”**, where {**access_token**} is the access token obtained from the Qrypt portal.
35+
4. Include an HTTP **“Authorization”** header with a value of **“Bearer {access_token}”**, where {**access_token**} is the access token obtained from the Qrypt portal (contact us to get one).
3536
5. Submit the HTTP request using the HTTP GET method.
3637
6. If the HTTP request is successful, the JSON-formatted response will contain a structure containing two fields named **“random”** and **“size”**. The **“random”** field contains an array of base64-encoded strings (each of which—when decoded—contains 1,024 bytes of entropy). The **“size”** field contains the number of elements in the **“random”** field.
3738

@@ -76,7 +77,7 @@ The following illustrates an example of JSON output as returned by a request for
7677
## Examples
7778

7879
The following examples demonstrate how to submit a request and display the returned entropy.
79-
In the following examples, _{subdomain}_ should be replaced with the subdomain for a server in the geographic location you would like to use (see Table 2), _{kib_entropy}_ should be replaced with an integer between 1 and 512, and _{qrypt_access_token}_ should be replaced with an access token generated using your Qrypt account.
80+
In the following examples, _{subdomain}_ should be replaced with the subdomain for a server in the geographic location you would like to use (see Table 2), _{kib_entropy}_ should be replaced with an integer between 1 and 512, and _{qrypt_access_token}_ should be replaced with an access token.
8081

8182
## Curl
8283

content/eaas/nist/_index.md

Lines changed: 18 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -5,13 +5,14 @@ weight = 20
55
chapter = false
66
+++
77

8-
98
## Using Qrypt's NIST Entropy Quality Tests
109

11-
Qrypt’s NIST Entropy Quality Tests is a set of APIs that allows you to check the quality of Qrypt's entropy using the NIST Statistical Test Suite. Tests are conducted every 10 minutes against Qrypt's Quantum Entropy service. Accessing this service does not require a Qrypt account or access token.
10+
Qrypt’s NIST Entropy Quality Tests is a set of APIs that allows you to check the quality of Qrypt's entropy using the NIST Statistical Test Suite. Tests are conducted every 10 minutes against Qrypt's Quantum Entropy service. Accessing this service does not require a Qrypt access token.
1211

1312
---
13+
1414
## About NIST Entropy Quality Tests
15+
1516
The NIST Entropy Quality Test suite uses the 15 statistical tests defined by the NIST Statistical Test Suite (STS). Each of these 15 tests is repeated over many samples. The APIs generate two test results:
1617

1718
1. **Total number of individual passing tests**: considered successful if a sufficient number of individual tests pass. The threshold varies based on the number of individual tests run and is based on an alpha value of 0.01. For example, 1000 individual tests requires a 98% pass rate to be considered successful.
@@ -20,27 +21,32 @@ The NIST Entropy Quality Test suite uses the 15 statistical tests defined by the
2021
The tests are considered as succeeding overall if either of these criteria are met. This provides a metric for passing that is more robust to fluctuations than using either criterion alone. However, this standard does not catch certain randomness defects. For example, if the randomness was periodic with a period equal to the size used for batching, a sufficiently high portion of the tests might pass, but the P-values would not be uniform.
2122

2223
## NIST Entropy Quality Test Endpoints
23-
There are three endpoints for obtaining NIST entropy quality test results.
24+
25+
There are three endpoints for obtaining NIST entropy quality test results.
26+
2427
1. NIST Logs: retrieves a specified number of recent test results
2528
2. Failing NIST Logs: retrieves a specified number of recent failing test results
2629
3. Failing NIST Random: retrieves random of recent failing tests
2730

2831
### NIST Logs
32+
2933
This API contains the most recent NIST test results. To get NIST test results, you must submit an HTTP request to the API, optionally providing the number of results to view and whether they should be shown in a simplified format.
3034

3135
1. Make a request to the following URL: {{< externalLink link="https://nist.qrypt.com/api/v1/logs?num={num}&simple={simple}" text="https://nist.qrypt.com/api/v1/logs?num={num}&simple={simple}" >}}.
3236
2. Optionally replace {**num**} with the desired number of recent test results to show.
3337
3. Optionally replace {**simple**} with a true or false to specify if you want a simplified test result output.
3438

3539
##### Request Parameters
40+
3641
{{< nist/logs/requestParameters >}}
3742

3843
##### Response Codes
44+
3945
{{< nist/logs/responseCodes >}}
4046

4147
##### JSON Response Fields
4248

43-
For a successful 200 response, the response contains a JSON-encoded structure with an array of test results with the following fields in each array element. Note that the simplified logs only contain 'tests_passed', 'time_of_completion' and 'time_of_completion_string' fields.
49+
For a successful 200 response, the response contains a JSON-encoded structure with an array of test results with the following fields in each array element. Note that the simplified logs only contain 'tests_passed', 'time_of_completion' and 'time_of_completion_string' fields.
4450

4551
There are two main groupings of tests. One is prefixed 'nist' for the number of NIST STS tests that passed or failed, and the second is 'uniformity' for the uniformity of each NIST STS test's P-values.
4652

@@ -67,19 +73,22 @@ The following illustrates an example of JSON output as returned by a request for
6773
```
6874

6975
### NIST Failed Test Logs
76+
7077
This API contains the most recent failed NIST test results, where both the individual test rate and uniformity tests fail. To get failed NIST test results, you must submit an HTTP request to the API.
7178

7279
1. Make a request to the following URL: {{< externalLink link="https://nist.qrypt.com/api/v1/failing_logs?num={num}&simple={simple}&strict={strict}&include_random={include_random}&randsize={randsize}" text="https://nist.qrypt.com/api/v1/failing_logs?num={num}&simple={simple}&strict={strict}&include_random={include_random}&randsize={randsize}" >}}
7380
2. Optionally replace {**num**} with the number of recent test results to show.
7481
3. Optionally replace {**simple**} with 'true' to output simplified logs.
7582
4. Optionally replace {**strict**} with 'false' specify if you want to show logs that failed either the test rate or uniformity.
76-
4. Optionally replace {**include_random**} with 'true' to see failed random. Only applicable if 'strict' is 'true'.
77-
5. Optionally replace {**randsize**} with the number of bits to show. Only applicable if 'include_random' is set to 'true'.
83+
5. Optionally replace {**include_random**} with 'true' to see failed random. Only applicable if 'strict' is 'true'.
84+
6. Optionally replace {**randsize**} with the number of bits to show. Only applicable if 'include_random' is set to 'true'.
7885

7986
##### Request Parameters
87+
8088
{{< nist/failing_logs/requestParameters >}}
8189

8290
##### Response Codes
91+
8392
{{< nist/failing_logs/responseCodes >}}
8493

8594
##### JSON Response Fields
@@ -109,18 +118,20 @@ The following illustrates an example of JSON output as returned by a request for
109118
]
110119
```
111120

112-
113121
### NIST Failed Random
122+
114123
This API contains the random of the most recent strictly failing NIST tests. To get the random of failed NIST test results, you must submit an HTTP request to the API.
115124

116125
1. Make a request to the following URL: {{< externalLink link="https://nist.qrypt.com/api/v1/failing_random?num={num}&randsize={randsize}" text="https://nist.qrypt.com/api/v1/failing_random?num={num}&randsize={randsize}" >}}
117126
2. Optionally replace {**num**} with the number of recent test results to show.
118127
3. Optionally replace {**randsize**} with 'true' to output simplified logs.
119128

120129
##### Request Parameters
130+
121131
{{< nist/failing_random/requestParameters >}}
122132

123133
##### Response Codes
134+
124135
{{< nist/failing_random/responseCodes >}}
125136

126137
##### JSON Response Fields

content/eaas/pkcs11/_index.md

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,15 +5,18 @@ weight = 40
55

66
This page covers the [Qseed](https://github.com/QryptInc/qseed) application architecture that downloads quantum entropy from Qrypt's entropy service and injects it into a PKCS#11 compliant HSM (Hardware Security Modules) as seed random.
77

8-
This service requires an access token. Follow the steps in [Getting Started]({{< ref "/getting_started" >}}) to obtain an access token.
8+
This service requires an access token. Please {{< externalLink link="https://www.qrypt.com/contact/" text="contact us" >}} to obtain one.
99

1010
## Technology Value
11+
1112
Many of the available HSMs use non-quantum entropy sources. Fortunately, the PKCS#11 Cryptoki interface provides a C_SeedRandom function to inject entropy into a PKCS#11 compliant HSM. Developers can inject Qrypt's quantum entropy into a HSM using the C_SeedRandom function. As a result, HSM keys can be pseudorandomly generated from quantum entropy.
1213

1314
## Overview
15+
1416
{{< figure src="images/inject-seedrandom.png" >}}
1517

1618
There are four components to the architecture diagram above.
19+
1720
1. **Qrypt Services**: Qrypt's entropy service that can provide quantum entropy via a REST API.
1821
2. **Qseed Application**: Application that periodically retrieves entropy from Qrypt's entropy service and injects it into an HSM via a PKCS#11 Cryptoki interface (C_SeedRandom).
1922
3. **Cryptoki Library**: A library that the HSM vendor provides that implements the PKCS#11 Cryptoki interface for their device.
@@ -44,4 +47,3 @@ The Qseed application only support Crypto User PINs. You will need to create a C
4447
## References
4548

4649
More information about the PKCS#11 Cryptoki interface can be found at [Oasis PKCS#11 Specification](https://docs.oasis-open.org/pkcs11/pkcs11-base/v2.40/os/pkcs11-base-v2.40-os.html).
47-

content/eaas/rngd/_index.md

Lines changed: 17 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -8,24 +8,26 @@ disableToc = "true"
88

99
## Using Qrypt's Quantum Entropy in RNG Tools
1010

11-
*rng-tools* is a utility that allows you to inject entropy from hardware sources, prngs, and http streams into system devices. Qrypt's Quantum Entropy service is a random source option in *rng-tools*, allowing you to inject quantum entropy into system devices such as '/dev/random', '/dev/urandom', and user-defined nodes or files.
11+
_rng-tools_ is a utility that allows you to inject entropy from hardware sources, prngs, and http streams into system devices. Qrypt's Quantum Entropy service is a random source option in _rng-tools_, allowing you to inject quantum entropy into system devices such as '/dev/random', '/dev/urandom', and user-defined nodes or files.
1212

13-
This service requires an access token. Follow the steps in [Getting Started]({{< ref "/getting_started" >}}) to obtain an access token.
13+
This service requires an access token. Please {{< externalLink link="https://www.qrypt.com/contact/" text="contact us" >}} to obtain one.
1414

15-
More information about *rng-tools* can be found on the {{< externalLink link="https://github.com/nhorman/rng-tools" text="rng-tools Github" >}} and the {{< externalLink link="https://wiki.archlinux.org/title/Rng-tools" text="rng-tools wiki page" >}}.
15+
More information about _rng-tools_ can be found on the {{< externalLink link="https://github.com/nhorman/rng-tools" text="rng-tools Github" >}} and the {{< externalLink link="https://wiki.archlinux.org/title/Rng-tools" text="rng-tools wiki page" >}}.
1616

1717
---
1818

1919
## Installation
2020

21-
To use Qrypt's Quantum Entropy service in *rng-tools*, *rng-tools* must be installed and configured.
21+
To use Qrypt's Quantum Entropy service in _rng-tools_, _rng-tools_ must be installed and configured.
22+
23+
Clone the latest _rng-tools_ master from GitHub.
2224

23-
Clone the latest *rng-tools* master from GitHub.
2425
```bash
2526
git clone https://github.com/nhorman/rng-tools
2627
```
2728

28-
Install *rng-tools* dependencies. Additional packages may be required, depending on linux distro. The configure script below will name any missing packages it encounters.
29+
Install _rng-tools_ dependencies. Additional packages may be required, depending on linux distro. The configure script below will name any missing packages it encounters.
30+
2931
```bash
3032
sudo apt install \
3133
make \
@@ -41,6 +43,7 @@ sudo apt install \
4143
```
4244

4345
Add `--disable-dependency-tracking` to the './configure' command if needed.
46+
4447
```bash
4548
./autogen.sh
4649
./configure
@@ -49,11 +52,13 @@ sudo make install
4952
```
5053

5154
Verify installation.
55+
5256
```bash
5357
which rngd
5458
```
5559

5660
## Command Line Usage
61+
5762
The resulting 'rngd' executable can run directly to start either a daemon or a foreground process. By default, 'rngd' will run as a background daemon and attempt to use the 'hwrng', 'errand', 'pkcs11', and 'rtlsdr' random sources.
5863

5964
To run 'rngd' using exclusively Qrypt's Quantum Entropy, run the following command. This will run 'rngd' as a foreground process with the Qrypt source enabled and all other entropy sources disabled. 'rngd' will send its random to the /dev/random device.
@@ -68,7 +73,8 @@ Command line options:
6873
{{< rngd/rngd-options >}}
6974

7075
## Service Usage
71-
*rng-tools* comes with a 'rngd.service' file for setting up a systemd service. To configure rngd to automatically start the Qrypt source on boot, follow these steps:
76+
77+
_rng-tools_ comes with a 'rngd.service' file for setting up a systemd service. To configure rngd to automatically start the Qrypt source on boot, follow these steps:
7278

7379
Save your Qrypt api token to a system-accessible directory, such as '/etc/rngd/qrypt.token'. Then, edit 'rngd.service' to add Qrypt arguments and options.
7480

@@ -90,23 +96,27 @@ WantedBy=multi-user.target
9096
```
9197

9298
Copy the 'rngd' service to systemd.
99+
93100
```
94101
sudo cp rngd.service /etc/systemd/system/rngd.service
95102
sudo chmod 644 /etc/systemd/system/rngd.service
96103
```
97104

98105
Start the 'rngd' service.
106+
99107
```
100108
sudo systemctl daemon-reload
101109
sudo systemctl start rngd
102110
```
103111

104112
Verify the 'rngd' service is running properly.
113+
105114
```
106115
sudo systemctl status rngd
107116
```
108117

109118
Enable the 'rngd' service for it to start on system boot.
119+
110120
```
111121
sudo systemctl enable rngd
112122
```

0 commit comments

Comments
 (0)