This Article is yet to be approved by a Coordinator.
TASK 9: Encryption Techniques - Secure Messaging App
Objectives:
- Learn and implement (in 2) basic encryption and decryption programs using Python with the PyCrypto library. Learn about Ciphers, Caesar, Vigenère, and substitution cipher. Why is this different from encryption techniques like SHA256? Learn about symmetric and asymmetric keys (Public and Private keys). How are prime numbers used in RSA?
- Develop a simple chat application where messages are encrypted before being sent and decrypted upon receipt.
Learnings:
- A cipher is a method used to hide a message by changing its letters or structure in some systematic way. The goal is that only someone who knows the method (or key) can read the original message.
- In Caesar Cipher, each letter in the message is shifted by a certain number
- Vigenère Cipher is an improvement over Caesar cipher; instead of using one shift, it uses a word (key) to decide how each letter is shifted
- In Substitution Cipher, each letter is replaced with a different letter, according to a secret mapping
The ciphers above are reversible; if we know the method (key), we can get back the original message
But SHA256 is a hashing algorithm, not a cipher. It takes any message and creates a unique, fixed-length fingerprint (called a hash), which we cannot reverse.
- Symmetric Key Encryption: one key is used to encrypt and decrypt; Both sender and receiver must share the same key secretly.
- Asymmetric Key Encryption(Public & Private Keys):
Public Key: Can be shared with anyone
Private Key: Must be kept secret
How it works: we encrypt a message with someone’s public key which only their private key can decrypt.
- RSA is a popular type of asymmetric encryption. It stays secure by using really large prime numbers that no one can factor easily.
For instance, consider 2 prime nos. p=61 and q=53. Let n=p*q=3233. This n is a part of the public key and if someone sees thsi n, they will have to figure out the 2 primes used to make it, which will be quite difficult...esp. for huge primes, it will be practically impossible.
Task outcome:
TASK 10: IP Addressing and Web Scraping - Job Listings Scraper
Objectives:
- Use Python and libraries like BeautifulSoup to scrape IP address data from a website and analyze it.
- Extract job postings from platforms like Indeed or Glassdoor.
Learnings and outcome:
- Web scraping is the process of extracting data from websites
- BeautifulSoup is a Python library used for web scraping. It makes it easy to extract information from web pages by parsing the HTML and XML content of a website and also simplifies the process of navigating through and searching HTML elements to get the data you need
- IP address is a unique identifying no. assigned to every device connected to internet. It identifies our device and device's geographical location. Thus, IP Addressing allows devices to be uniquely identified and communicate over the network.
- TCP/IP (Transmission Control Protocol / Internet Protocol) is a suite of protocols that enable communication over a network.
- IP (Internet Protocol) is responsible for routing data packets from the source device to the destination device. It ensures that data is addressed correctly but doesn’t guarantee that data will be delivered in order [It works at the network layer of the OSI model]
- TCP (Transmission Control Protocol) works on top of IP and ensures reliable delivery of data. It breaks data into packets, numbers them, and ensures they are reassembled correctly at the destination. Thus, TCP ensures reliability, ordered delivery and error checking [It works at the transport layer of the OSI model]
(https://github.com/JithaJ-21/webscrape)
