diff --git a/pkg.go b/pkg.go new file mode 100644 index 0000000..5907159 --- /dev/null +++ b/pkg.go @@ -0,0 +1,16 @@ +// Package qpp implements Quantum permutation pad +// +// Quantum permutation pad or QPP is a quantum-safe symmetric cryptographic +// algorithm proposed by Kuang and Bettenburg in 2020. The theoretical +// foundation of QPP leverages the linear algebraic representations of +// quantum gates which makes QPP realizable in both, quantum and classical +// systems. By applying the QPP with 64 of 8-bit permutation gates, holding +// respective entropy of over 100,000 bits, they accomplished quantum random +// number distributions digitally over today’s classical internet. The QPP has +// also been used to create pseudo quantum random numbers and served as a +// foundation for quantum-safe lightweight block and streaming ciphers. +// +// This file implements QPP in 8-qubits, which is compatible with the classical +// architecture. In 8-qubits, the overall permutation matrix reaches 256!. + +package qpp diff --git a/prng.go b/prng.go index 5070371..7db2431 100644 --- a/prng.go +++ b/prng.go @@ -1,3 +1,18 @@ +// # Copyright (c) 2024 xtaci +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . + package qpp // xorshift64star is a pseudo-random number generator that is part of the xorshift family of PRNGs. diff --git a/prng_test.go b/prng_test.go index a048295..4458b43 100644 --- a/prng_test.go +++ b/prng_test.go @@ -1,3 +1,18 @@ +// # Copyright (c) 2024 xtaci +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . + package qpp import "testing" diff --git a/qpp.go b/qpp.go index 6d3a46b..ccbd4db 100644 --- a/qpp.go +++ b/qpp.go @@ -1,17 +1,18 @@ -// Package qpp implements Quantum permutation pad +// # Copyright (c) 2024 xtaci // -// Quantum permutation pad or QPP is a quantum-safe symmetric cryptographic -// algorithm proposed by Kuang and Bettenburg in 2020. The theoretical -// foundation of QPP leverages the linear algebraic representations of -// quantum gates which makes QPP realizable in both, quantum and classical -// systems. By applying the QPP with 64 of 8-bit permutation gates, holding -// respective entropy of over 100,000 bits, they accomplished quantum random -// number distributions digitally over today’s classical internet. The QPP has -// also been used to create pseudo quantum random numbers and served as a -// foundation for quantum-safe lightweight block and streaming ciphers. +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. // -// This file implements QPP in 8-qubits, which is compatible with the classical -// architecture. In 8-qubits, the overall permutation matrix reaches 256!. +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . + package qpp import ( diff --git a/qpp_test.go b/qpp_test.go index 5516e45..418b163 100644 --- a/qpp_test.go +++ b/qpp_test.go @@ -1,3 +1,18 @@ +// # Copyright (c) 2024 xtaci +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . + package qpp import (