바른허리
106
2021-03-05 21:45:07 작성 2021-03-05 21:48:18 수정됨
5
249

대칭키 알고리즘에 대한 질문입니다.


https://github.com/dazoe/ed25519/blob/master/test/ed25519.js


해당 test 파일 내용은  "전자서명 (sign, verify)을 테스트합니다. sign, verify가 정상 동작하는지 테스트합니다. "


그리고 테스트에 사용한 private Key 와 public Key는  아래와 같습니다. (하드코딩되어 박혀있습니다)

  privateKey:"af9881fe34edfd3463cf3e14e22ad95a0608967e084d3ca1fc57be023040de590c32c468980d40237f4e44a66dec3beb564b3e1394a4c6df1da2065e3afc1d81",
  publicKey: "0c32c468980d40237f4e44a66dec3beb564b3e1394a4c6df1da2065e3afc1d81",


저는 ssh-keygen 프로그램을 이용해서 pem 파일을 만들었습니다

ssh-keygen -t ed25519 -f test.key


test.key 파일과 test.pub 파일을 만들었는데... 문제는 테스트를 성공시킬 pubkey와 privatekey형태로 바꾸지 못하고 있습니다.



test 파일에 있는 키 형식이 어떤 형식인지 아시는분 부탁드립니다.

- 또 혹시 어떻게 변경하는지 아신다면 설명 부탁드립니다



------


일단 pem to hex 하는 사이트를 찾아서 해당 hex를 이용해보기도 하였고, sha256으로 해쉬하여 사용해보기도 했습니다.


제가 해당 형식에 대한 명확한 이해가 없어서 일단 아는 몇가지 방법을 썻는데...  (base64, ascii format.. 등등) 흠..


0
  • 답변 5

  • allinux
    2k
    2021-03-05 21:48:46

    공개키 알고리즘 rsa 등을 공부해보세요

  • 바른허리
    106
    2021-03-05 22:01:29

    공개키 알고리즘에 대해 개념 가지고 있습니다.


    다만 현재 제 지식이 부족해서 오늘 하루 동안 계속 시도해봤지만 문제를 해결하지 못해 질문드렸습니다.


    혹시 제 문제의 해결방법을 아신다면 도와주시면 감사하겠습니다.


    allinux 

  • allinux
    2k
    2021-03-06 00:08:59

    https://medium.com/risan/upgrade-your-ssh-key-to-ed25519-c6e8d60d3c54

    상기링크가 도움이 될 듯 하네요.

  • 퍼대기
    449
    2021-03-06 19:46:19 작성 2021-03-06 19:47:31 수정됨

    질문이 잘 이해는 안되지만, 필요한 답이 이것이 맞는지 모르겠습니다.


    자바에서는 개인키 형식이 PKCS#1는 지원 안하고, PKCS#8만 지원합니다.

    자바스크립트는 어떤지 모르습니다.


    openssl을 이용한 자바에서 사용할 개인키, 공개키 생성 과정은 이렇습니다.


    1. 개인키 pkcs#1 형식으로 생성

    genrsa -out private_key1.pem 2048


    2. 개인키 pkcs#8 형식으로 변환

    pkcs8 -in private_key1.pem -inform PEM -out private_key8.pem -outform PEM -topk8 -nocrypt


    3. 공개키 생성

    rsa -in private_key8.pem -out public_key.pem -pubout

  • 바른허리
    106
    2021-03-08 00:01:04

     퍼대기


    "자바에서는 개인키 형식이 PKCS#1는 지원 안하고, PKCS#8만 지원합니다." 



    이 부분에서 힌트를 얻은것 같습니다 :) 


    ---


    해결:


    nodejs 에서 key-gen 명령어로 생성한 OPENSSH 파일을 지원하지 않아 python 을 이용해서 key를 hex 화 시키고 다른 ed25519 모듈 사용해서 암호화 복호화 테스트 성공했습니다.



  • 로그인을 하시면 답변을 등록할 수 있습니다.