{"id":29792334,"url":"https://github.com/shanthi-1821/software_development_ml_project","last_synced_at":"2026-05-18T02:35:43.153Z","repository":{"id":305890556,"uuid":"1024286182","full_name":"Shanthi-1821/Software_Development_ML_project","owner":"Shanthi-1821","description":"Software Development : AI-ML Supervised Classifier project on Security Authentication Algorithm","archived":false,"fork":false,"pushed_at":"2025-07-22T18:09:56.000Z","size":71,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-07-22T20:19:08.360Z","etag":null,"topics":["classification-algorithm","google-colab","machine-learning-algorithms","python3","security","software-development"],"latest_commit_sha":null,"homepage":"https://github.com/Shanthi-1821/Software_Development_ML_project","language":"Jupyter Notebook","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Shanthi-1821.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2025-07-22T13:14:13.000Z","updated_at":"2025-07-22T18:11:22.000Z","dependencies_parsed_at":"2025-07-22T20:19:42.051Z","dependency_job_id":null,"html_url":"https://github.com/Shanthi-1821/Software_Development_ML_project","commit_stats":null,"previous_names":["shanthi-1821/exposes-data-labs-internship-ml-project","shanthi-1821/software_development_ml_project"],"tags_count":null,"template":false,"template_full_name":null,"purl":"pkg:github/Shanthi-1821/Software_Development_ML_project","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Shanthi-1821%2FSoftware_Development_ML_project","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Shanthi-1821%2FSoftware_Development_ML_project/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Shanthi-1821%2FSoftware_Development_ML_project/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Shanthi-1821%2FSoftware_Development_ML_project/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Shanthi-1821","download_url":"https://codeload.github.com/Shanthi-1821/Software_Development_ML_project/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Shanthi-1821%2FSoftware_Development_ML_project/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33162681,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-17T22:39:12.733Z","status":"online","status_checked_at":"2026-05-18T02:00:06.436Z","response_time":71,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["classification-algorithm","google-colab","machine-learning-algorithms","python3","security","software-development"],"created_at":"2025-07-28T01:07:24.957Z","updated_at":"2026-05-18T02:35:43.139Z","avatar_url":"https://github.com/Shanthi-1821.png","language":"Jupyter Notebook","funding_links":[],"categories":[],"sub_categories":[],"readme":"**Overview**\n\nThis project uses a Machine Learning model to authenticate users based on typing behavior and allows only authenticated users to encrypt and send messages. The messages are securely decrypted by the receiver. Unauthorized users are blocked from accessing the encryption process.\n\n\n---\n\n**Dataset Used**\n\nDataset Source: Kaggle (Keystroke Dynamics)\n\nLink: https://www.kaggle.com/datasets/carnegiecylab/keystroke-dynamics-benchmark-data-set\n\n---\n\n**the libraries used**\n\n**Machine Learning \u0026 Data Handling**\n\n1. **pandas** – for handling and analyzing the dataset (`import pandas as pd`)\n2. **numpy** – for numerical operations (`import numpy as np`)\n3. **scikit-learn** (`sklearn`) – for ML model and evaluation:\n\n   * `train_test_split` – to split data into train/test\n   * `RandomForestClassifier` – ML model\n   * `accuracy_score` – to check model accuracy\n   * `classification_report`, `confusion_matrix` *(if used)*\n\n**Security \u0026 Encryption**\n\n4. **cryptography** – for message encryption/decryption (`from cryptography.fernet import Fernet`)\n5. **hashlib** – to generate SHA-256 hash of a message\n\n**Visualization**\n\n**matplotlib.pyplot** – to plot feature importance chart (`import matplotlib.pyplot as plt`)\n\n---\n\n**How It Works**\n\nData Preprocessing: Clean the dataset, label users as real or fake\n\nModel Training: Split data and train ML model for authentication\n\nUser Authentication: Predict if the user is authorized\n\nEncryption: If authenticated, encrypt message using Fernet\n\nDecryption: Decrypt the message for authorized receivers\n\nHashing (optional): Ensure message integrity\n\n---\n\n**ML Model Details**\n\nAlgorithm: Random Forest Classifier\n\nInput Features: Typing durations, delays\n\nTarget: 1 for authenticated user, 0 for others\n\nAccuracy: ~100% (on test set)\n\n---\n\n**Demo**\n\nRun the full notebook on Google Colab\n\nInput a message manually or select from file\n\nGet encrypted and decrypted results\n\nView real/fake user authentication in action\n\n---\n\n**Key Functionalities**\n\nUpload Dataset (.csv) from local machine\n\nPreprocess Data and label a specific user (e.g., s027) as the real user\n\nTrain a Machine Learning Model (Random Forest Classifier)\n\nAuthenticate User (real or fake)\n\nEncrypt Message using Fernet (symmetric AES encryption)\n\nDecrypt Message on receiver side if authenticated\n\n---\n\n**Dataset Format**\n\nColumns: subject, sessionIndex, rep, H.period, DD.period.t, UD.period.t, etc.\n\nReal user label is set based on the subject column (e.g., 's027' is real, others are fake)\n\n---\n\n**Future Enhancements**\n\nReal-time user typing input capture (instead of static data)\n\nGUI-based front end or integration with a messaging platform\n\nAdd hashing or digital signature for integrity verification\n\n---\n\n**Sample Outputs**\n\nUser Authenticated. Proceeding to encrypt message...\n\nEncrypted: gAAAAABi..\n\nDecrypted: This is a confidential message.\n\nAuthentication Failed. Message encryption blocked.\n\n---\n\n\n\n\n\n\n\n\n\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fshanthi-1821%2Fsoftware_development_ml_project","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fshanthi-1821%2Fsoftware_development_ml_project","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fshanthi-1821%2Fsoftware_development_ml_project/lists"}