HI I HAVE FOUR TO ANSWER HERE FOR 63 WORDS FOR EACH OF THEM JUST ANSWER FROM THE TUTOR VIEW POINT AND NO REFERENCE IS FINE
1)
The discussion is about Object-Oriented Programming. Object-Oriented Programming (OOP) is a computer programming model that organizes software design around data, or objects, rather than functions and logic. An object can be defined as a data field that has unique attributes and behavior(Alexander S. Gillis, 2021).
- What is the significance of the OOP paradigm to modern software design and development?
OOP organizes around data or objects instead of functions and logic.
- Research and list at least three programming languages that support OOP. What are their similarities and differences?
Java ruby and python. Java is both compiled and interpreted programming language. Ruby is interpreted programming and python is first compiled and then interpreted. Java is slightly complex and a general-purpose language but a little slower than Ruby is simpler and a little faster than java. Python is a high-level programming language. Java is good for high-traffic sites and huge computational applications. Python for high traffic and Data-heavy Apps. Ruby is good for fewer traffic sites and less load computational applications(Wodehouse, 2016).
- Research and list at least two alternatives to OOP. Describe the benefits and disadvantages of each.
Procedurally Oriented Programming
A procedurally oriented programmer does not start solving a problem by thinking about Dog, Cat, and Animal classes. Instead, they write the simplest code that gets the job done(Bell, 2019).
Benefits:
General-purpose programming.
Can be used in various parts of the program without copying it.
Program flow can easily be tracked.
Disadvantages:
The program code is harder to write when Procedural Programming is employed.
The Procedural code is often not reusable, which may pose the need to recreate the code if needed to use in another application.
Difficult to relate to real-world objects(Bhatia, 2021).
Data-Oriented Programming
Transforms data
Advantages:
When we apply data-oriented design, parallelization becomes a lot simpler: We have the input data, a small function to process it, and some output data. We can easily take something like that and split it among multiple threads with minimal synchronization between them(Noel, 2009).
Disadvantage:
The main problem with the data-oriented design is that it is different from what most programmers are used to or learned in school. It requires turning our mental model of the program ninety degrees and changing how we think about it. It takes some practice before it becomes second-nature(Noel, 2009).
Can be challenging to interface with existing code written in an OOP or procedural way(Noel, 2009).
References
Alexander S. Gillis, S. L. (2021, July).object-oriented programming (OOP). Retrieved from TechTarget: www.techtarget.com
Bell, J. (2019, November 27).Alternatives to Object Oriented Programming. Retrieved from Medium: medium.com
Bhatia, S. (2021, January 8).Procedural Programming [Definition]. Retrieved from Hakr.io: hackr.io
Noel. (2009, December 4).Data-Oriented Design (Or Why You Might Be Shooting Yourself in The Foot With OOP). Retrieved from Games from within: gamesfromwithin.com
Talor, C. (2021, April 28).Top 5 Object-Oriented Programming Languages. Retrieved from Baires Dev: www.bairesdev.com
Wodehouse, C. (2016, August 23).Python: A Powerful Language for High-Traffic, Data-Heavy Apps. Retrieved from Business 2 Community: www.business2community.com
2)
- What is the significance of the OOP paradigm to modern software design and development?
The main significance of Object-Oriented Programming (OOP) is: (Swain, 2015)
- Object
- Class
- Data Encapsulation
- Data Abstraction
- Dynamic Binding
- Inheritance
- Polymorphism
- Message Communication
OOP is based on the concept of inheritance which provides the idea of reusability. Meaning that additional features can be added to an existing class without modifying it.
- Research and list at least three programming languages that support OOP. What are their similarities and differences?
Here are three programming languages that support OOP: (Tran, 2021)
- TypeScript- is a superset of JavaScript providing interfaces, classes, and optional static typing. It is beneficial when writing large-scale applications and it is compiled into standard JavaScript files that can be run in any browser or run engine.
- PHP- It is mostly used to create dynamic web pages. It is primarily used for web development and used in conjunction with HTML and CSS.
- Ruby- is an open-source programming language focusing on productivity and simplicity. It is natural to read and easy to write. It is made up of a comprehensive library which makes it reliable and portable.
They all share object-oriented programming in the languages.
- Research and list at least two alternatives to OOP. Describe the benefits and disadvantages of each.
Two alternatives to OOP include functional programming (includes languages such as Scala and Erlang) and Imperative programming. Functional programming is a form of declarative programming. With an imperative approach, the developer uses specific steps that the computer must take to accomplish the mission. Some major differences between the two approaches are the following:
Characteristic | Imperative approach | Functional approach |
Order of execution | Important | Low importance |
Primary flow control | Loops, conditionals, and function calls | Function calls, including recursion |
State changes | Important | Non-existent |
Programmer focus | How to perform tasks and how to track changes in state | What information is desired and what transformations are required |
(Wagner, 2021)
References
Swain, G. (2015).Object-Oriented Analysis and Design Through Unified Modeling Language. Laxmi Publications.
Tran, T. (2021).The List of Object-oriented Programming Languages. Orientsoftware.com. Retrieved 13 May 2022, fromhttps://www.orientsoftware.com/blog/list-of-object-oriented-programming-languages/.
Wagner, B. (2021).Functional programming vs. imperative programming - LINQ to XML. Docs.microsoft.com. Retrieved 13 May 2022, from https://docs.microsoft.com/en-us/dotnet/standard/linq/functional-vs-imperative-programming.
3)
What is your understanding of the difference between astream cipherand ablock cipher?
There are several variances betweenStream Ciphers and Block Ciphers. Let me explain thesedeviations; Stream Ciphers onlyusethe confusion principles during plain text encryption andchange1 byte at a time and up to 8bits atany specific time. Implementation of stream ciphers takes place in Vernam Cipher and uses Output Feedback (OFB) & Cipher Feedback (CFB) algorithms. And as far as security, stream cipher encryption canbe reversedmuch easier than Block Ciphers which encrypts blocks of bits making the reverse decryption much harder to carry out (Byju’s, (n.d.)).
Blockcipher'sinclusive design is plain and simple and uses confusion and diffusion during plain test encryption and Implementation which takes place in the Fiestal Cipher. Block ciphers use Electronic Code Block (ECB) and Cipher Block Chaining (CBC). Block ciphers encrypt blocks of bits at a time, this makes reverse encryption more complex, and Block Cipher encrypts much slower than Steam Ciphers (Byju’s, (n.d.)).
What are two ways tolaunch a cryptanalytic attack against a cipher (based upon what the attacker knows or has in possession)? Be sure to provide detailed examples with supporting research.
“Cryptanalysis is the science of obtaining encrypted data without Authenticated Access, (Simpililearn, 2019)”. “Knowledge of the system and the secret key is the basis of Breaking and/or Cracking Code, (Simpililearn, 2019)”. Depending on the data availability & type of algorithm being analysis, is when the choice of models willbe made. Sending fakeencrypted messages to gain access, these messages materializeas if they are coming from a trustedsource (Simpililearn, 2019).
There isan extensive list of different attacks, listed below are a few of them:
- Cipher Text Only Attacks
- KnownPlaintextAttacks
- ChoosenPlaintext Attacks
- ChoosenCiphertext Attacks
- Man-In-The-Middle Attacks
- Side Channel Attacks
- Brute Force Attacks
- Birthday Attacks
The two Ciphers that canbe usedto launch an attack are Choosen Cipher Text Attack & Side Channel Attacks, with explanation and examples of use.
Choosen Cipher Attack model (CCA)is usedwhen the attacker has collected information or has gathered atleastbits and pieces of vital data. CCA chooses ciphertext &acquiresdecryption by using an unknown key. The attacker uses this opportunity to gain access to one or more plaintext in the system, resulting in fake messages sent to discover the secret key (Firmino, 2014).
Using (CCA) even secure algorithms canbe crackedand hacked, such as: Ei Gamal Cryptosystem thatis protected, against plaintext attacks, but semantic security canbe brokenthrough CCA. Due to the flaws in the RSApadding inthe first type used in SSL protocols were not secure fromstate-of-the-artattacks like those of Adaptive Choosen Cipher Attacks (Firmino, 2014).
Side Channel Attacks (SCA)– does not target algorithms or code, it gathers data to control the execution of that system. Thisis doneby assembly of data while the system is executing an encryption algorithm, the period that an algorithm needs to respond, power usage, traffic volume, and electromagnetic leaks (Rambus, XXXXXXXXXXSCA breaks cryptography by taking advantage of data leaked unexpectedly by the system. A good example of such an attack: thevan Eck phreaking attack– also known as the Transient Electromagnetic Pulse Examination Standard (TEMPEST). This attack keeps track of the Electromagnetic Field (EMF) radiation expelled from the computer screen used forobservingdata prior to encryption (Rambus, 2021).
What is your understanding of the difference between an unconditionally secure cipher and a computationally secure cipher?
The differences between the two ciphers:unconditionally secure cipher there is not enough information in the cyphertext to figure out the unmistakableness of the plaintext nevertheless the obtainable amounts of plaintext. There is only one unconditionally encrypted algorithm One-Time Pad (OTP) (WordPress, (n.d.)). Next, if the cost of breaking the secure cipher is greater than the net worth of the encrypted dataacquired, and exceeds lifetime usefulness of the obtained information, then it is acomputationally secure cipher.If both situations and/or just one of these variations exist, it is a computationally secure cipher (WordPress, (n.d.)).
Fact – it is hard tocalculatethe period (of time) needed to properly cryptanalyze cipher text (WordPress, (n.d.)).
Your organization has asked for a cryptographic algorithm recommendation for a new project that requires high-level security. What algorithm would you recommend and why?
I would recommendDiffie-Hellman Key Exchange Algorithmfor new projects or existing projects. In our world all companies and organizationsare responsible forencrypting data. There are protocols and regulations in place that need tobe followedand compliance is necessary. Purchases, financial data, and healthcare are just a few companies and corporations that require strong secure algorithms to be in place andutilized(Azad, 2018).
Our World Wide Web highways arebeing targetedevery second of the day, if not only by intrusion into classified information or corporate data, by monitoring keeping a watchful eye waiting for perfect situation, and then hacked by an attacker. Therefor the Diffie-Hellman algorithm fits these situations (Azad, 2018).
Diffie-Hellman uses key exchange between two computers without data encryption. This process is shared-key exchange based on 768, 1024, or 2048 bits of keying material. This is known as the Diffie-Hellman groups 1, 2, and 4048. Even though the Diffie-Hellman algorithm does not offer authentication, protocols canbe embeddedin the algorithm with special injected protocols for authentication tobe added(Azad, 2018).
XXXXXXXXXXReferences
Azad, Tariq Ban (2008),Security Guidance for ICA and Network Connections,Secure Algorithm - an overview | ScienceDirect Topics
Byus Exam Prep, (n.d.),Differences Between Block Cipher & StreamCipher, DifferenceBetween Block Cipher and Stream Cipher (byjus.com)
Firmino Luiz, CISSP, CISM, CRISC, CCISCO, (Dec 1, 2014),Choosen – Cipher Attack (CCA),Chosen-Ciphertext Attack (CCA) (linkedin.com)
Rambus-Press, October 14, 2012,Side – Channel Attacks explained – everything you need to know,Side-channel attacks explained: All you need to know -Rambus
Simplilearn, (July 19, 2019),Cryptanalyses in Cryptography – Decrypting the Encrypted,Cryptanalysis in Cryptography - Decrypting the Encrypted Data (simplilearn.com)
WordPress.com, (n.d.).,Learn Network Security – Cryptography Unit 1,Cryptography – 1 | learnnetworksecurity (wordpress.com)
4)
Object-Oriented Programming
Object-oriented programming is important in today’s modern environment, providing ways to implement real-world entities, such as polymorphism, inheritance, and hiding in programming. OOP’s main aim is to bind together the functions and data that operate on them, allowing only that function to access that data. It allows breaking a hug problem into small solvable chunks, allowing each class written for mini-problem reusable. OOP improves flexibility and reliability, a far more reliable approach than traditional systems. It allows new objects to create at any time since the objects created can be dynamically accessed or called.
Three common designed languages for OOP include Java, Python, and C++. All three are based on OOP principles, including encapsulation, abstraction, and inheritance. The encapsulation principle of OOP states that an object has important information which can only be exposed when the object is selected. Therefore, each object's important state and implementation are inherent to the action in a defined class. Abstraction is an important characteristic of OOP, so internal mechanisms in objects are revealed only when triggered by action derived by class. Developers can easily add or make changes to these classes after deploying a program. Java, Python, and C++ languages support OOP, have similar syntax, and are the biggest enterprise platforms in the market. These languages have similar features, such as dynamic binding, static binding, and polymorphism. C++ is only compiled OOP, while Java is interpreted and compiled OOP language (Sharma, 2020).
Two alternative programming languages include Logic Programming Language (LPL) and Functional Programming Language (FPL). LPL is a programming language based on formal logic, with a set of sentences that express rules and facts about a problem. FPL paradigms list processing applications and handle symbolic computation based on mathematical functions. The advantage of these programming languages is that they solve complex problems effectively and improve modularity. However, these languages are complex, and difficult to write the source code to achieve specific objectives, particularly terminology problems (Wojciechowski, 2019).
. References
Sharma, N XXXXXXXXXXImportance of Object Oriented Programming!.https://medium.com/@naman.sharma2018/importance-of-object-oriented-programming-1c028973cff4
Wojciechowski, J XXXXXXXXXXFunctional Primer, Part 3 – When and When Not to Use It.https://spin.atomicobject.com/2019/08/29/functional-prog-pros-cons/