Skip to content

The Crypto Painting Competition is a secure digital art contest where contestants encrypt their paintings, judges evaluate them using blind signatures, and the president verifies results to select winners, ensuring fairness and cryptographic integrity. πŸš€

Notifications You must be signed in to change notification settings

RicardoUMC/Crypto-Painting-Competition

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Crypto Painting Competition

Table of Contents

  1. Project Overview
  2. Technologies Used
  3. System Features
  4. Installation and Setup
  5. Usage Instructions
  6. Database Structure
  7. File Structure
  8. Future Improvements

Project Overview

The Crypto Painting Competition is a secure digital art competition platform where contestants submit encrypted paintings, a jury evaluates them using blind signatures, and the competition president verifies and announces the winners. This system ensures fair evaluation, cryptographic integrity, and security of submitted artworks.

Technologies Used

  • Programming Language: Java (JDK 22)
  • Graphical User Interface: JavaFX
  • Cryptographic Libraries: Bouncy Castle
  • Database Management: MySQL
  • Security Mechanisms:
    • RSA for encryption and blind signatures
    • AES-GCM for artwork encryption
    • ECDSA for digital signatures

System Features

  • User Roles:
    • Contestants: Encrypt and submit digital paintings.
    • Judges: Evaluate and rate the paintings using blind signatures.
    • President: Verifies the jury's evaluation and announces winners.
  • Secure Artwork Submission: Paintings are encrypted before submission.
  • Blind Signature-Based Voting: Judges evaluate paintings without revealing their identity to the president.
  • Winner Selection: The president selects the top three winners based on verified evaluations.
  • Login System: Users authenticate based on their assigned roles.

Installation and Setup

Prerequisites

  • Java 22 SDK installed.
  • MySQL Database setup.
  • Bouncy Castle JAR file in the lib/ directory.

Steps

  1. Clone the repository:
    git clone https://github.com/your-repo/Crypto-Painting-Competition.git
  2. Add Bouncy Castle to the lib/ directory.
  3. Configure the database connection in DatabaseManager.java.
  4. Compile and run the project:
    javac -cp lib/bcprov-jdk15on.jar:. src/*.java
    java -cp lib/bcprov-jdk15on.jar:. src.LoginScreen

Usage Instructions

  1. Login as a Contestant, Judge, or President.
  2. Contestants generate key pairs, encrypt and upload their artwork.
  3. Judges evaluate paintings and submit blind-signed ratings.
  4. The President verifies ratings and selects winners.
  5. The system announces the top three winners based on total scores.

Database Structure

The database consists of the following key tables:

  • Users: Stores login credentials and roles.
  • Paintings: Stores encrypted paintings and metadata.
  • Evaluations: Stores jury ratings and blind signatures.
  • VerifiedEvaluations: Tracks validated evaluations.

File Structure

Crypto-Painting-Competition/
│── src/
β”‚   β”œβ”€β”€ LoginScreen.java
β”‚   β”œβ”€β”€ DatabaseManager.java
β”‚   β”œβ”€β”€ ArtistWindow.java
β”‚   β”œβ”€β”€ JudgeWindow.java
β”‚   β”œβ”€β”€ PresidentWindow.java
β”‚   β”œβ”€β”€ BlindSignature.java
β”‚   β”œβ”€β”€ AESGC.java
β”‚   β”œβ”€β”€ RSA.java
β”‚   β”œβ”€β”€ ECDSA.java
β”‚   β”œβ”€β”€ StarRatingApp.java
│── lib/ (Bouncy Castle JAR file)
│── README.md

Future Improvements

  • Implement additional validation mechanisms for enhanced security.
  • Improve the user interface with enhanced graphics and animations.
  • Optimize database queries for better performance.

About

The Crypto Painting Competition is a secure digital art contest where contestants encrypt their paintings, judges evaluate them using blind signatures, and the president verifies results to select winners, ensuring fairness and cryptographic integrity. πŸš€

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages