Club Activity
Intro
CO2(Coding & Optimization Together)는 2021년 06월 21에 창립된 코딩 및 암호 최적화 연구 학술동아리입니다.
CO2의 핵심 분야는 "코딩" 및 "암호최적화" 입니다. 우리는 다양한 IT 환경에서 편의성과 보안성을 제공하기 위한 소프트웨어의 코딩 방법과 보안의 기초가 되는 암호체계에 대한 최적화 구현까지 공부하고 연구합니다.
아울러, CO2는 구성원 간의 소통과 발전을 위한 개방적인 분위기를 지향합니다
Coding & Optimization Together
정기 모임
각 학기 동안은 2주에 한 번 동아리의 멤버들이 모여 연구 내용을 공유하고, 앞으로의 계획에 대해 논의합니다.
신입생 교육
코딩 및 암호를 처음 배우는 신입생들을 위한 기초 교육을 진행합니다. 교육 프로그램은 프로그래밍 언어 (C/C++, Python) 및 기초 암호학으로 진행합니다.
포트폴리오 작성
동아리 및 학교에서 활동한 프로젝트를 바탕으로 포트폴리오를 제작합니다. Github를 사용하고 협업하는 방법에 대해 배웁니다.
암호 분야
암호체계를 이해하고 필드에서 사용하는 암호화 디바이스에 구현하는것을 목표로 합니다. 사용하는 장비는 AVR, MSP, ARM, RISC-V, CPU, GPU 입니다.
최적화 연구
디바이스 기반의 어셈블리 혹은 병렬 기반 언어 등을 사용하여 최적화 로직을 설계합니다. 지금까지 다양한 환경에서 암호체계의 최적화 연구 결과들이 존재합니다.
학술대회 & 공모전 참여
동아리에서 열심히 연구한 내용을 학교 행사 및 국내 학술대회에 공유하고있습니다. 또한, 우수한 결과는 공모전에 참여하여 수상을 목표로 합니다.
응용 분야
GUI 기반 포트폴리오부터 통신 및 라이브러리 프로젝트 까지 다양한 언어를 사용하여 응용 서비스를 개발합니다. 사용하는 언어는 C/C++, Java, Python, Javascript 입니다
CMVP 검증대상 암호알고리즘 구현
CMVP 검증대상 암호알고리즘 (대칭, 공개, 난수 발생기, 키유도)을 구현하고, KAT, MCT, MMT 그리고 Metamorphic testing 등 다양한 테스팅 방법을 이용하여 구현 정확성을 검증합니다.
친목 행사
CO2는 동아리 부원간 친목 도모를 위해 정기모임 및 다양한 친목 도모 행사를 진행하고 있습니다.
2024년 CO2 동아리 활동
[1-2 학년 대상] LEA 블록 암호 구현 및 검증
목표 : C언어 이해, 암호 구현 능력 향상 및 친목 도모를 위함
세부사항 : C언어 기초 학습, 블록암호 LEA 구현 및 검증
방식: C언어를 통한 구현 + 세미나
[3-4 학년 대상] Cryptol을 사용한 암호 알고리즘 정형검증
목표 : 정형검증 개념 학습, 관련 툴(Cryptol) 사용 및 친목 도모를 위함
세부사항 : Cryptol 언어 기초 학습, 블록암호 HIGHT 정형검증
방식: Cryptol & SAW script를 이용한 동치성 검사 + 세미나
문의 : 김민기 (mingi1684@kookmin.ac.kr)
위치 : 국민대학교 과학관 313호 암호 및 보안 공학 연구실
20240507 CO2 활동
[LEA 트랙] 동아리 부원들의 연습 문제 풀이 세미나
[LEA 트랙] 세미나, 중간고사 끝난 기념 회식
20240430 CO2 활동
[정형검증 트랙] 함수형 프로그래밍에 대한 수업
[정형검증 트랙] 중간고사 끝난 기념 회식
20240402, 20240409 CO2 활동
[정형검증 트랙] 동아리 부원들의 정형검증 동향 세미나
+ 스도쿠 정형검증 개요 학습
[LEA 트랙] C 언어 기초 (조건문, 반복문) + 연습문제 실습
20240319, 20240326 CO2 활동
[정형검증 트랙] 정형검증 개요 학습 및 환경설정
[LEA 트랙] C 언어 기초 (변수, 연산자, 조건문, 반복문)
20240312 CO2 동아리 OT
정형검증 트랙 일정
LEA 트랙 일정
2023년 겨울방학 동아리 활동
HIGHT 블록 암호 구현
목표 : 암호 구현 능력 향상 및 친목 도모를 위함
세부사항 : 경량 블록암호 HIGHT 구현 및 검증
방식: C언어를 통한 구현
문의 : 김민기 (mingi1684@kookmin.ac.kr)
위치 : 국민대학교 과학관 313호 암호 및 보안 공학 연구실
20240125 CO2 동아리 컴퓨터 구조 수업
20240118 CO2 동아리 조별모임
20231228 CO2 동아리 소개 및 HIGHT 개요 설명 + 맛있는 국민딸기우유
2023년 2학기 동아리 활동
암호 라이브러리 제작 트랙
목표 : 코딩 실력 향상 친목 도모를 위함
세부사항 : 블록 암호, 해시함수 기반 암호 알고리즘과 검증 기법 구현
세부목표: 블록 암호 2종(LEA, AES) 해시함수 기반 암호 알고리즘 2종구현(SHA2, LSH) 구현, 암호 라이브러리 제작
결과 : 구현물에 대한 평가 및 동아리 자체 시상
Former Member
김나연 김민기 김수아 김태우 노예지 민수림 박승현 서재원
오지언 윤대훈 이재석 위승주 정서윤 최성준 최용렬 하재원 한윤선
20231121 2학기 마지막 모임 및 회식
20231107 연구실 연구 분야 소개 및 회식
20230919 CO2 LSH 강의 및 개강 기념 회식
20230808 ~ 0814 CO2 조별활동
20230802 CO2 SHA2 라이브코딩...피자...
20230725~0731 CO2 조별활동
20230718 CO2 LEA 라이브 코딩 수업과 동아리 개편 이후 첫 회식
20230704 CO2 Makefile 수업과 피자
2022년 동아리 활동
코딩 테스트 준비 트랙
목표 : 알고리즘 및 자료구조 학습
세부사항 : 코딩 테스트를 위한 알고리즘/자료구조 공부 및 문제 풀이 진행
방식: BOJ와 solved.ac를 활용하여 문제 풀이 및 피드백 진행
2022 1학기 계획
기초 트랙 (1학년 대상)
목표 : Python 공부 및 프로젝트 진행
사용 교재 : 어서와 파이썬은 처음이지!
세부사항 : Python 언어를 통한 기초프로그래밍 및 GUI 기반 프로젝트 (게임 및 유틸)
결과 : (학기 말에) 프로젝트를 개발하고 결과회를 진행
심화 트랙 (2-4학년 대상)
Track 1
목표 : C++/Python 기반 자료구조 및 알고리즘 공부
세부사항 : 코딩 테스트를 위한 알고리즘 공부 및 예제 문제 풀이 진행
사용교재: 파이썬 알고리즘 인터뷰, C++ 기초 플러스
결과 : 프로그래밍 경진대회 참가 (SCPC, KAKAO 등), 소프트웨어 개발 공모전 참가
Track 2
목표 : C/Assembly 기반 검증대상 암호알고리즘 구현
세부사항 : 블록암호, 해시함수, 공개키 암호 (타원곡선), 난수발생기 등을 구현하고 다양한 IT 장비에서 밴치마킹 및 추가 최적화
사용교재 : Assembly Instruction Manual, Cortex-M4/ARMv8 Assembly Programming Manual
결과 : 다양한 IT 환경에서 암호알고리즘 최적화를 통한 신규 결과 도출 및 학술대회 논문 발표
Track 3
목표 : Software 구조 분석 및 취약점 스터디
세부사항 : 소프트웨어 취약점의 유형, 소프트웨어 구조 분석을 위한 기술적 사항 공부 (역공학, x86 어셈블리 언어 등)
사용교재 : 리버싱 핵심원리
결과 : IoT 장치의 펌웨어 취약점 분석, 랜섬웨어 구조 분석, Software 버그바운티 등
2021 동계방학 계획
2021 2학기 겨울방학 (22.01.01~22.02.28)
Track 1
목표 : C++/Python 기반 자료구조 및 알고리즘 공부
세부사항 : 코딩 테스트를 위한 알고리즘 공부 및 예제 문제 풀이 진행
사용교재: 파이썬 알고리즘 인터뷰
결과 : 프로그래밍 경진대회 참가 (SCPC, KAKAO 등), 소프트웨어 개발 공모전 참가
Track 2
목표 : C/Assembly 기반 검증대상 암호알고리즘 구현
세부사항 : 블록암호, 해시함수, 공개키 암호 (타원곡선), 난수발생기 등을 구현하고 다양한 IT 장비에서 밴치마킹 및 추가 최적화
사용교재: Assembly Instruction Manual, Embedded Systems with ARM Cortex-M Microcontrollers in Assembly Language and C (Third Edition)
결과 : 다양한 IT 환경에서 암호알고리즘 최적화를 통한 신규 결과 도출 및 학술대회 논문 발표
2021 2학기 계획
2021 2학기 (21.09.01~21.12.31)
목표 : Python 심화 과정 (Collaboration with 유레카 프로젝트)
사용 교재 : 화이트 해커를 위한 암호와 해킹
세부사항 : Python 언어를 통한 암호 분석 및 해킹 공부 + 보안 네트워크 프로그램 개발 (유레카프로젝트)
결과 : 암호 분석, 보안 네트워크 프로그래밍, 해킹 라이브러리 개발 및 포트폴리오 작성
2021 하계방학 (21.07.01~21.08.31)
목표 : Python 공부 및 프로젝트 진행
사용 교재 : 어서와 파이썬은 처음이지!
세부사항 : Python 언어를 통한 기초프로그래밍 및 GUI 기반 프로젝트 (게임 및 유틸)
결과 : 프로젝트를 개발하고 결과회를 진행
2021 1학기 여름방학 프로젝트 결과회 (2021년 8월 31일)
로그인프로그램과 스네이크 게임
팀원
최용렬, 박태양, 안현종, 하재원프로그램 소개
해시함수를 이용한 회원가입과 로그인 프로그램. 아울러 회원가입과 로그인 뒤 간단한 게임(스네이크) 자동 실행 후 플레이할 수 있음.사용기술
해시함수 :SHA-256
모듈 : tkinter
스도쿠 게임
팀원
최찬, 이로사, 박동현, 최경호프로그램 소개
GUI프로그래밍을 통한 스도쿠게임. 메뉴창을 도입하여 난이도, 새 게임, 게임종료를 선택할 수 있도록함. 난이도는 빈칸의 갯 수에 따라 다르게 만듬.사용기술
모듈 : tkinter
블록암호를 사용한 로그인 프로그램
팀원
이민엽, 정혜승, 이진현, 원채은프로그램 소개
GUI프로그래밍을 통해 로그인 화면을 만들고 회원가입된 정보를 암,복호화 하는 프로그램입니다.사용기술
블록암호 : AES
운영모드 : ECB
모듈 : tkinter
AES를 이용 이미지 암호화 프로그램
팀원
김수빈, 문예찬, 박지수, 김태환, 강혜리프로그램 소개
GUI을 이용한 이미지 암호화 프로그램. 암호화 할 이미지를 선택한 후 텍스트파일 또는 이미지 파일로 출력가능. 파이썬에서 제공하는 tkinter 모듈과 AES 모듈을 사용합니다.사용기술
블록암호 : AES
운영모드 : ECB, CBC, CFB, OFB, CTR
모듈 : tkinter
계산기 게임
팀원
권다은, 김동천, 방수경, 이태경, 장민우프로그램 소개
랜덤으로 제시되는 숫자를 계산하여 맞추는 게임. 한자리 연산을 기반한 2배 포인트, 시간 보너스 개수 등 다양한 이벤트를 가지고 있음. 총 10문제가 있고, 한 문제 당 30초와 5번의 기회가 존재사용기술
모듈 : tkinter