- Genel Bakış
- Temel Özellikler
- Yöntemsel Arka Plan
- Mimari ve Akış
- Proje Yapısı
- Kurulum
- Hızlı Başlangıç
- Performans ve Analiz
- Geliştirme Notları
- Harici Bağımlılıklar
- Katkı Rehberi
- Lisans
Bu depo, RGB görüntüleri DNA kodlama ve kaotik lojistik harita tabanlı çok katmanlı bir yaklaşımla şifrelemek ve çözmek için tam yığın (CLI + Flask UI) bir uygulama sunar. Parola temelli anahtar türetimi (PBKDF2‑HMAC‑SHA256) kaba kuvvet saldırılarına karşı dayanıklıdır; Cython ile derlenmiş çekirdekler işlemleri hızlandırır; şifreye ilişkin salt ve parametreler PNG tEXt meta‑veri alanlarında saklanarak her şifreli dosyanın kendi kendini tanımlaması sağlanır.
| Modül | Amaç | Öne Çıkan Noktalar |
|---|---|---|
encrypt.py |
CLI & Flask üzerinden şifreleme | Salt + parametreler PNG meta‑veriye gömülür |
decrypt.py |
Ters işlem | Gerekli tüm parametreler dosyanın kendisinden okunur |
analysis_utils.py |
PSNR, NPCR/UACI, entropi hesaplar | Standart kriptanaliz metrikleri |
src/accelerated/*.pyx |
Cython hızlandırıcı çekirdekler | 10‑20× performans artışı |
app.py |
Flask + Jinja2 arayüz | Basit REST API & CORS yönetimi |
- DNA Kodlama (1‑8 kuralı) — ikili veriyi A/T/C/G taban dizisine dönüştürür.
- Lojistik Harita xₙ₊₁ = r·xₙ·(1 − xₙ) — r ≈ 3,98–4,00 aralığında maksimum kaos üretir.
- PBKDF2‑HMAC‑SHA256 — 256 bit anahtar + 128 bit salt, varsayılan 200 000 iterasyon.
- Çoklu Kriptanaliz Metrikleri — NPCR > 99 %, UACI ≈ 33 %, entropi ≈ 8 bit hedeflenir.
Tüm adımlar modüler fonksiyonlar hâlinde tasarlandığından hem CLI hem Flask rotaları tarafından yeniden kullanılabilir.
.
├── app.py
├── encrypt.py # Ana şifreleyici/CLI arayüzü
├── decrypt.py
├── analysis_utils.py
├── requirements.txt
├── utils/
│ ├── __init__.py
│ ├── misc_utils.py
│ ├── logging_cfg.py
│ └── ... # Diğer yardımcı modüller
├── src/
│ └── accelerated/
│ ├── dna_codec_cy.pyx
│ ├── logistic_cy.pyx
│ └── chaos_utils_cy.pyx
├── templates/ # HTML şablonları
└── static/
├── uploads/ # Zamana göre oluşturulan klasörler
├── analysis/ # Histogram & korelasyon çıktıları
└── examples/ # Demo görseller
# 1) Sanal ortam oluştur
python -m venv venv && source venv/bin/activate
# 2) Temel araçlar
pip install --upgrade pip wheel cython
# 3) Proje bağımlılıkları
pip install -r requirements.txt
# 4) Cython modüllerini derle
python -m pip install .Windows kullanıcıları: "Visual C++ Build Tools" kurulu olmalıdır.
Linux/macOS kullanıcıları: GCC veya Clang yeterlidir.
# Komut Satırı
python encrypt.py -i lenna.png -o cipher.png -k "S3cret!"
python decrypt.py -i cipher.png -o plain.png -k "S3cret!"
# Web Arayüzü
export FLASK_APP=app.py
flask run # http://localhost:5000 adresinde hizmet verir| Metrik | Örnek Değer | Açıklama |
|---|---|---|
| PSNR | 49,2 dB | Şifreli ↔ çözülen görüntü arasındaki kalite |
| NPCR | 99,65 % | Bit‑düzeyi değişim oranı |
| UACI | 49,99 % | Ortalama yoğun değişim |
| Entropi | 7,999 bit | Rastgelelik üst sınırına yakın |
analysis_utils.py veya /analyze API uç noktası ile bu metrikler otomatik hesaplanabilir.
- Cython Derleme:
setup.cfgşablonu vepyximportdesteği içerir. Ek performans için--annotation-htmlseçeneğini kullanın. - PNG Metadata: Salt ve parametreler
tEXtalanına gömülür – dosya bütünlüğü bozulmaz. - Ekstra Araçlar:
flask-cors,tqdm,pytest-benchmark, opsiyonelPillow-SIMD, deneyselnumbadesteği.
- UI: Bootstrap 5 + Tailwind CSS & DaisyUI.
- Web Yazı Tipleri: Inter • Roboto Mono
- Görsel İşleme: NumPy, Pillow, scikit‑image, matplotlib.
- Kriptografi: Python
hashlib(OpenSSL PBKDF2 uygulaması).
- Çalışmanızı
devdalına karşı çatallayın ve PR açın. - Kod biçimlendirme için Black + isort kullanılır.
- Yeni özelliklerde test kapsaması ≥ %90 olmalıdır.
- Cython değişikliklerine
make benchraporu ekleyin. - Güvenlik‑kritik PR’lar için, örnek görsellerle NPCR/UACI raporu paylaşın.
Kod tabanı MIT lisansı altındadır. Tez/sunum gibi yan materyaller Creative Commons BY‑4.0 ile paylaşılabilir.
- Overview
- Key Features
- Methodological Background
- Architecture & Flow
- Project Layout
- Installation
- Quick Start
- Performance & Analysis
- Development Notes
- External Dependencies
- Contributing
- License
This repository offers a full‑stack solution (CLI + Flask UI) for encrypting and decrypting RGB images through DNA coding and a chaotic logistic‑map cascade. Password‑derived keys (PBKDF2‑HMAC‑SHA256) harden brute‑force resistance; Cython‑compiled cores keep throughput high; salts and parameters are preserved in PNG tEXt chunks so every cipher file is self‑describing.
| Module | Purpose | Highlights |
|---|---|---|
encrypt.py |
Encrypt via CLI or Flask | Stores salt + params inside PNG metadata |
decrypt.py |
Reverse process | Reads all parameters from the file itself |
analysis_utils.py |
Computes PSNR, NPCR/UACI, entropy | Standard crypto‑analysis metrics |
src/accelerated/*.pyx |
Cython acceleration cores | 10‑20× speed‑up |
app.py |
Flask + Jinja2 UI | Simple REST API & CORS management |
- DNA coding (rules 1‑8) — maps binary to A/T/C/G.
- Logistic map xₙ₊₁ = r·xₙ·(1 − xₙ) with r ≈ 3.98–4.00 for maximum chaos.
- PBKDF2‑HMAC‑SHA256 — 256‑bit key, 128‑bit salt, default 200 000 iterations.
- Multi‑metric cryptanalysis — targets NPCR > 99 %, UACI ≈ 33 %, entropy ≈ 8 bit.
Each step is exposed as a reusable function for both CLI and Flask routes.
(Same tree as Turkish section.)
python -m venv venv && source venv/bin/activate
pip install --upgrade pip wheel cython
pip install -r requirements.txt
python -m pip install .python encrypt.py -i sample.png -o cipher.png -k "Passw0rd"
python decrypt.py -i cipher.png -o plain.png -k "Passw0rd"
export FLASK_APP=app.py
flask run # open http://localhost:5000| Metric | Sample Value | Note |
|---|---|---|
| PSNR | 49.2 dB | High fidelity after round‑trip |
| NPCR | 99.65 % | Optimal pixel change rate |
| UACI | 49.99 % | Uniform average intensity change |
| Entropy | 7.999 bit | Near the theoretical maximum |
analysis_utils.py or the /analyze API endpoint can generate these metrics automatically.
- Cython build: pre‑configured
setup.cfg; enable--annotation-htmlfor insight. - PNG metadata: salts & parameters live in
tEXtchunks — file integrity intact. - Extra tooling:
flask-cors,tqdm,pytest-benchmark, optionalPillow‑SIMD, experimentalnumba.
- UI: Bootstrap 5, Tailwind CSS with DaisyUI.
- Fonts: Inter • Roboto Mono
- Imaging: NumPy, Pillow, scikit‑image, matplotlib.
- Cryptography: Python
hashlib(OpenSSL PBKDF2).
- Fork → work on
devbranch → open PR. - Follow Black + isort for code style.
- Aim for ≥ 90 % test coverage.
- Attach
make benchresults for Cython changes. - Provide NPCR/UACI report with example images for security‑critical PRs.
Source code is released under the MIT License. Auxiliary academic content (thesis, slides) is shared under CC BY‑4.0.

