2016-12-21 13 views
1

컴퓨터 과학 분야에서 확장 된 에세이를하고 있으며 무엇을 해야할지 고심하고 있습니다. 나는 AES 알고리즘이나 암호화 알고리즘의 주제에 관심이있다. 그러나 컴퓨터 과학은 과학 과목이므로 나는 실험을해야합니다. 그러나 나는 그것을 테스트해야하는 방법에 관해서 확실하지 않다.AES 알고리즘을 테스트 할 수있는 방법/할 수 있습니까?

다른 유형의 파일을 암호화하는 것에 대해 생각했습니다. 비디오, 사진 및 단어 파일 요법, 그리고 다른 암호화 알고리즘에 비해 데이터 전송 속도 또는 암호화 속도 테스트. 나는 당신이이 일을하는 방법이나 다른 실험을 권하는 방법을 제게 말해 줄 수 있는지 궁금합니다. 내가 할 수 없거나 너무 쉽지 않아서 좋은 성적이 될 자격이 없다. 감사. 추신 I a 17 (12 학년)

+0

다음 사이트에서 질문하십시오 : http://cs.stackexchange.com/ 프로그래밍 사이트이므로 문의하십시오. – kenorb

+0

도움이되는 답변 수락을 고려하십시오. 대답을 수락하면 미래의 독자에게 올바른 답임을 나타냅니다. 답변을 수락하는 가장 좋은 답변 옆의 빈 체크 표시를 클릭하면 명성이 올라가고 더 많은 기능이 허용됩니다. [reputation faq] (http://stackoverflow.com/faq#reputation) 참고 [ 이 페이지] (http://meta.stackoverflow.com/questions/5234/how-does-accepting-an-answer-work)를 참조하십시오. 또한 돌아가서 과거 대답을 수락하십시오. [평판 faq] (http://stackoverflow.com/faq#reputation) – zaph

답변

1

확실히 여기에 연구 할 수있는 기회가 풍부합니다. 이 문제에 대해 궁금해하고 그것에 대해 조사해 주셔서 감사합니다.

  • 대칭 대 비대칭 암호화 (예 : AES 대 RSA)
  • 다른 대칭 알고리즘 (즉, Rijndael을 (현재 AES 알고리즘) 대 다음과 같은 라인을 따라 몇 가지 변수와 시험을 제어 할 전망이다 (예 : CTR vs. CBC vs. GCM 등)
  • 다른 데이터 크기 (즉, 선형 적으로 확장됩니까? 정확히 1000x가 걸립니까? 16KB 대 16_000_000 대 16MB를 암호화하는 데 오래 걸립니까?)

같은 언어로 동일한 하드웨어에서 동일한 실험을 여러 번 실행하면 적절한 데이터를 얻을 수 있습니다. 특히 현대 CPU가 AES-NI 명령 세트와 암호화 데이터에 대한 사용자 정의 레지스터를 가지고 있다고 가정 할 때 실험을 시드하거나 이후 실행시 다른 성능 프로파일을 가질 수 있습니다.

이전 코딩 경험이 없으면 Java, Ruby 및 Python 모두에 매우 인기있는 암호화 라이브러리와 광범위한 커뮤니티가 있으며 문제가 발생할 경우 지원할 수 있습니다. 이미 하나 이상의 특정 언어에 익숙하다면 그 중 하나를 사용하는 것이 좋습니다. 암호 전용 지침을 배우기에는 너무 까다 롭습니다. 새로운 언어를 배우는 것은 현재로서는 불필요한 부담이 될 것입니다.

필자는 이것이 충분히 모호하여 여전히 종이에 대한 조사 및 조사를해야하지만 출발점을 제공해야한다고 생각합니다. 필요한 경우 구체적인 질문을 후속 조치하십시오.

+0

고맙습니다. 알고리즘의 속도를 테스트 할 수있는 방법을 알고 계십니까? 다른 사람과 비교하여 암호화하는데 얼마나 오래 걸리나요? –

+0

두 작업을 수행하고 시간을 비교하는 테스트 장치를 작성해야합니다. 각각 여러 번 실행하고 mean/median/std dev를 고려해야합니다. 벤치마킹을 수행 할 수있는 다양한 라이브러리가 여러 언어로 제공되지만 기본 개념은 현재 시계 시간을 기록하고 작업을 수행하며 시계 시간을 다시 기록하고 빼는 것입니다. – Andy