Skip to content

gyeongpunch/Security-Embedded-System

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

9 Commits
 
 
 
 

Repository files navigation

📚 암호학 C 언어 학습 레포지토리

  • 이 레포지토리는 암호학의 다양한 알고리즘들을 C 언어로 구현하여 공부한 내용을 정리한 프로젝트입니다. 이 프로젝트에서는 여러 암호화 기법들에 대해 자세히 학습하고 구현하여, 암호학의 기본 개념과 그 구현 방법을 이해하고자 했습니다.

🧑‍💻 학습한 암호학 알고리즘 및 기법들

Elgamal 암호화 (Elgamal Encryption)

  • Elgamal 암호화 알고리즘은 공개키 암호화 알고리즘 중 하나로, RSA와 유사한 원리를 따르며, Diffie-Hellman 키 교환 프로토콜을 기반으로 한 암호화 방식입니다.

유클리드 알고리즘 (Euclid's Algorithm)

  • 두 수의 최대공약수를 구하는 알고리즘인 유클리드 알고리즘을 구현하여, 암호학에서 중요한 역할을 하는 계산을 수행할 수 있습니다.

RSA 알고리즘 (RSA Algorithm)

  • RSA는 공개키 암호화 알고리즘으로, 두 개의 큰 소수를 사용하여 공개키와 개인키를 생성하고 데이터를 암호화 및 복호화하는 과정입니다.

CBC 모드 (Cipher Block Chaining)

  • CBC 모드는 대칭키 암호화 알고리즘의 블록 암호화 모드 중 하나로, 암호화 과정에서 이전 블록의 암호문을 현재 블록의 평문에 XOR하여 암호화하는 방식입니다.

CPA (Chosen Plaintext Attack)

  • CPA는 암호 시스템의 보안성을 평가하는 공격 기법 중 하나로, 공격자가 선택한 평문을 암호화하여 그 결과를 분석하는 방법입니다.

CTR 모드 (Counter Mode)

  • CTR 모드는 대칭키 암호화 방식에서, 각 블록의 암호화를 카운터 값을 이용해 진행하는 방식입니다. 이는 암호화와 병렬 처리가 가능하게 하여 성능이 뛰어납니다.

ECB 모드 (Electronic Codebook Mode)

  • ECB 모드는 가장 기본적인 블록 암호화 모드로, 각 블록을 독립적으로 암호화하는 방식입니다. 그러나 동일한 평문 블록이 동일한 암호문 블록으로 변환되어 보안상 취약점이 있습니다.

🛠️ 사용된 기술

  • C 언어: 주요 구현 언어로 사용되었으며, 각 암호화 알고리즘과 기법을 C 언어로 직접 구현하였습니다.
  • GNU GCC: C 컴파일러로, 소스 코드를 컴파일하고 실행합니다.
  • OpenSSL (옵션): 암호화 관련 함수들을 활용할 때, OpenSSL 라이브러리를 일부 사용하여 기본적인 암호화 및 해싱 작업을 처리할 수 있습니다.

About

Security Embedded System

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages