양자 암호 라이브러리 설치 후 + 검증 알고리즘 선택 (미완성)
항목이 어떤 알고리즘을 사용할지 설명하는 단독 보고서가 있을 것이다.
하지만 궁금증을 풀기 위해
'SIKE' is constructed by taking the supersingular isogeny of two derived elliptic curves ; 따라서 이것은 우리가 흔히 알고 있는 개념인'익숙함'(저자가 생각할 수 있는 거의 모든 암호화 화폐는 Edwards 곡선이나 NIST 타원 곡선 알고리즘을 주소 생성 방안으로 사용한다)
위의 글은'SIKEp751'과'SIKEp610'을 개괄적으로 기술했다. 왜냐하면 본문을 작성할 때 최종적으로 어느 것을 선택할지 최종 결정을 내리지 않았기 때문이다.
더 안전한 (p751)을 선택한 알고리즘의 실례화(추가 암호화 작업의 증가로 인한 성능 저하)가 속도/성능에 어떤 균형을 이룰지 평가하기 위해 더 많은 정보를 수집해야 한다.
어떤 상황에서도 알고리즘의 압축 버전을 선택한다(뚜렷한 이유에서, 알고리즘을 사용하는 압축 버전을 선택해도 안전성/성능에 의미 있는 저하를 초래하지 않는다).
키 크기 비교를 깊이 연구하기 전에 주의해야 할 것은 다른 pq 방안이 어떤 상황에서 서명/키 (privkey) 크기가 몇 KBs를 넘었다는 것이다.
대체 검토에서는 주요 크기 축소를 위한 권장 최적화 시나리오를 요약했습니다.
마이크로소프트와'디지털 보안 그룹'연구진이 2019년에 발표한 'Dual Isogenies and Their Application to Public-Key Compression for Isogeny-based Cryptography'라는 연구에서 연구진은 서로 다른 알고리즘 최적화 방안(SIKE)을 개괄적으로 기술했는데 이 알고리즘은 더욱 작은 서명을 제공했다.
특히 다음 사항에 대해 살펴보겠습니다.
"Compression has been included in the Round 2 submission of SIKE and, along with the introduction of new parameter sets, has enabled public keys of merely 196 bytes and ciphertexts of only 209 bytes for NIST level 1"
위 발췌문에서 언급한 NIST의'레벨1'명칭은 양자 능력이 있는 상대를 가정해 알고리즘의 이론적 비트 강도를 말한다.
키/공개 키/암호/공유 키 크기 문제 해결
비트코인은 secp256k1(ecdsa)을 사용합니다.압축된 원시 키는 33 바이트입니다. (키 좌표/데이터 점은 기호 정수이기 때문에 추가 바이트를 추가했습니다. ['y' 가 '0선' 의 북쪽인지 남쪽인지 지정해야 합니다.]
즉,
sudo apt install build-essential
sudo apt install libssl-dev
sudo apt install libgmp-dev
sudo apt install python3
#그때"Check that
df /home/
shows at least 300000 1K-blocks available, and thatdf -i /home/
shows at least 30000 inodes free. Currently a typical compile-and-test run uses about 200MB and about 15000 inodes."
이러한 예방 조치를 취한 후 다음 스크립트를 작성합니다.
#!/bin/sh
# Before proceeding, have to create a 'libpqcrypto' system user
sudo adduser --disabled-password --gecos libpqcrypto libpqcrypto
# login to the newly created user
su - libpqcrypto
# Run these commands as said user (in one script)
touch pqinstall.sh # (to create the file)
cat <<EOF >>pqinstall.sh
wget -m https://libpqcrypto.org/libpqcrypto-latest-version.txt
version=$(cat libpqcrypto.org/libpqcrypto-latest-version.txt)
wget -m https://libpqcrypto.org/libpqcrypto-$version.tar.gz
tar -xzf libpqcrypto.org/libpqcrypto-$version.tar.gz
cd libpqcrypto-$version
ln -s $HOME link-build
ln -s $HOME link-install
EOF
그때부터 우리는 운행을 시작했다chmod +x pqinstall.sh
.그 다음에 우리는 pqinstall.sh
파일을 실행한다.스크립트가 실행될 때, 우리는
./do
을 실행한다. ["컴파일, 테스트, 설치. 75가지 다른 암호화 알고리즘을 컴파일, 테스트, 설치하는 데 상당한 시간이 걸릴 것이다."완성된 후에 우리는 그곳에서
exit
명령을 실행할 수 있다. (이것은 모두 하나의 스크립트에서 컴파일될 수 있다. 그들이'do'명령을 사용하여 무엇을 가리키는지 되돌아보아야 한다//간단한 cat do
면 충분하다)GMP 다운로드
what the fuck are they referring to with this?
GMP header files: sudo apt install libgmp-dev
^^ (이것은 본문 시작할 때 언급한 것입니다. 단지, 일반적인 Ubuntu/Debian 실례와 함께 설치하고 준비해야 한다는 것을 알아차리지 못했을 뿐입니다.)libpqcrypto 설치 후: CLI 설정
(URL=https://libpqcrypto.org/command.html)
라이브러리가 성공적으로 설치되면
/home/libpqcrypto/command
를 경로에 추가하는 것을 권장합니다.이것이 라이브러리의 실제 설치 위치인지 확인해야 한다this will be successful if we begin the installation process from the root home directory of the newly created libpqcrypto user
구체적으로 명령은:
export PATH=$PATH:/home/libpqcrypto/command
^ ~/.bashrc
파일에 추가하는 것이 좋습니다.기타 정보
내가 읽은 내용에 따르면 '/home/libpqcrypto/command' 디렉터리에는 직접 호출할 수 있는 바이너리 파일이 포함될 것 같습니다.
추가 설명이 이를 증명합니다.
""You can indstead put /home/libpqcrypto/command/ in front of each command name; but this does not work for the pq-*-all wrappers."
서명 생성 예제(이 템플릿은 모든 서명에 적용됨)
pq-keypair-sphincsf256sha256 5>publickey 9>secretkey
(5와 9는 무슨 뜻입니까?)pq-sign-sphincsf256sha256 <message 8\<secretkey \>signedmessage
pq-open-sphincsf256sha256 <signedmessage 4<publickey >message
pq-open-sphincsf256sha256
빈 출력을 생성하고 stderr에 오류 메시지를 출력하고 100암호화 예시 (샘플은 암호화 기반 pq 알고리즘에 적용됨)
"There is a unified interface for all encryption systems"
pq-keypair-mceliece8192128 5>publickey 9>secretkey
pq-encrypt-mceliece8192128 <message 4<publickey >ciphertext
pq-decrypt-mceliece8192128 <ciphertext 8<secretkey >message
Python 인스턴스화
여기에 포함된 정보 및 명령(우리가 찾고 있는 것) = https://libpqcrypto.org/python.html
"Pythonpath"를 내보낸 후 스크립트 시작
import pqcrypto
("libqcrypto"프로젝트 폴더로 생성될 하위 디렉터리의 내용입니다. 다음 명령을 실행하십시오.export PYTHONPATH="/home/libpqcrypto/python${PYTHONPATH+:$PYTHONPATH}"
(이 코드는 한 줄에 놓아야 한다. 형식이 좀 이상할 수도 있다)모든 관련 정보는 위에서 제공한 URL 링크에 있습니다. (내가 사용하고자 하는 후량 알고리즘에 따라 템플릿 스크립트를 수정하기만 하면 됩니다.)
Sidenote: If REPL allowed users to 'sudo' within the containers, then I could provide an embedded instance that would allow people to run various code designed to produce the signatures, associated public / private key pairs accompanying various pq-crypto algorithms etc. - but, alas, they restrict this feature; so, I can't [perhaps I could go with Katacoda]
Reference
이 문제에 관하여(양자 암호 라이브러리 설치 후 + 검증 알고리즘 선택 (미완성)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/librehash/post-quantum-crypto-library-installation-justifying-algorithm-selection-unfinished-17kd텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)