diff --git a/LICENSE b/LICENSE
new file mode 100644
index 0000000..662709a
--- /dev/null
+++ b/LICENSE
@@ -0,0 +1,74 @@
+Note: This repo uses only some part of the code from XKCP library, therefore only the corresponding license notices are given below for the used part of the source code. The full version of the library and its comprehensive license can be found at https://github.com/XKCP/XKCP.
+
+The redistribution and use of this software (with or without changes) is allowed without the payment of fees or royalties provided that the terms of the licenses of the different source files used is respected. Most of the source and header files in the XKCP are released to the public domain and associated to the CC0 (http://creativecommons.org/publicdomain/zero/1.0/) deed, but there are exceptions.
+
+In general, the redistribution of this software should include a copy of this file. However, if only a part of the software is redistributed or used, the portions that are no longer relevant may be removed. Hints are given below whether a file is used in libXKCP, UnitTests, Benchmarks or KeccakSum.
+
+
+For ./common/brg_endian.h (used in libXKCP, UnitTests, Benchmarks and KeccakSum):
+
+    ---------------------------------------------------------------------------
+    Copyright (c) 1998-2008, Brian Gladman, Worcester, UK. All rights reserved.
+
+    LICENSE TERMS
+
+    The redistribution and use of this software (with or without changes)
+    is allowed without the payment of fees or royalties provided that:
+
+    1. source code distributions include the above copyright notice, this
+        list of conditions and the following disclaimer;
+
+    2. binary distributions include the above copyright notice, this list
+        of conditions and the following disclaimer in their documentation;
+
+    3. the name of the copyright holder is not used to endorse products
+        built using this software without specific written permission.
+
+    DISCLAIMER
+
+    This software is provided 'as is' with no explicit or implied warranties
+    in respect of its properties, including, but not limited to, correctness
+    and/or fitness for purpose.
+    ---------------------------------------------------------------------------
+
+
+For ./low/KeccakP-1600/AVX2/KeccakP-1600-AVX2.s and ./low/KeccakP-1600/AVX512/KeccakP-1600-AVX512.s (potentially used in libXKCP, UnitTests, Benchmarks and KeccakSum, depending on the target platform):
+
+    Copyright (c) 2006-2017, CRYPTOGAMS by <appro@openssl.org>
+    All rights reserved.
+
+    Redistribution and use in source and binary forms, with or without
+    modification, are permitted provided that the following conditions
+    are met:
+
+        *	Redistributions of source code must retain copyright notices,
+        this list of conditions and the following disclaimer.
+
+        *	Redistributions in binary form must reproduce the above
+        copyright notice, this list of conditions and the following
+        disclaimer in the documentation and/or other materials
+        provided with the distribution.
+
+        *	Neither the name of the CRYPTOGAMS nor the names of its
+        copyright holder and contributors may be used to endorse or
+        promote products derived from this software without specific
+        prior written permission.
+
+    ALTERNATIVELY, provided that this notice is retained in full, this
+    product may be distributed under the terms of the GNU General Public
+    License (GPL), in which case the provisions of the GPL apply INSTEAD OF
+    those given above.
+
+    THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDER AND CONTRIBUTORS
+    "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+    LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+    A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+    OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+    SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+    LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+    DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+    THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+    (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+    OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
