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...

1 answer below »

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).



  1. 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.



  1. 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).



  1. 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)



  1. 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.



  1. 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.



  1. 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, 2021). SCA 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).



References


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. (2020). Importance of Object Oriented Programming!.https://medium.com/@naman.sharma2018/importance-of-object-oriented-programming-1c028973cff4


Wojciechowski, J. (2019). Functional Primer, Part 3 – When and When Not to Use It.https://spin.atomicobject.com/2019/08/29/functional-prog-pros-cons/





Answered 2 days AfterMay 14, 2022

Answer To: HI I HAVE FOUR TO ANSWER HERE FOR 63 WORDS FOR EACH OF THEM JUST ANSWER FROM THE TUTOR VIEW POINT...

Kshitij answered on May 15 2022
82 Votes
1. What is the significance of the OOP paradigm to modern software design and development?
Object-orientated programming paradigm methods regulate to shape a set of items that task alongside to offer software program machine it truly is better apprehensible and fashions their disadvantage domain names than created exploitation historical strategies. The software program machine created exploitation item-orientated programming paradigm is much less complex to evolve to the dynamic necessities, less difficult to take care of, produce modules of practicality,
sell larger s
tyle, be extra strong, and carry out favored paintings with performance. Object orientation strategies paintings extra with performance than historical strategies way to the following reasons. The better degree of abstraction: top-down technique guide abstraction on the beneficial degree while item orientated technique guides abstraction on the article degree. The seamless transition amongst absolutely distinct software program machine improvement phases: It makes use of an equal language for all phases, which reduces the quantity of complexness and redundancy and makes software program machine improvement clean and strong. Good programming practice: The bundle and attributes of a class rectangular degree command alongside tightly. Improves reusability: it helps inheritance way to that classes can be engineered from one another. therefore entirely differences and development among classes ought to be pressured to be designed and coded. All the preceding practicality stays due to the fact it's miles and is probably used even as now no longer amendment.
References :
https://www.tutorialspoint.com/object_oriented_analysis_design/ooad_object_oriented_paradigm.htm
https://www.tutorialspoint.com/software_architecture_design/object_oriented_paradigm.htm
2. Research and list at least three programming languages that support OOP. What are their similarities and differences?
Java Without a doubt, Java is one of the most widely-used OOP languages on the market. part of the reason for the extensive use of Java is because it’s one of all of the legitimate languages for golem development. With golem the most fashionable cellular bundle on the earth, Java isn’t achieving to be knocked off that excessive spot for some time. Java became created as a “write once, run anywhere” language, which makes
it paintings for consequently numerous applications. And with Java 100% on board with the thoughts and standards in the back of OOP, it’s intelligible why it lives at the best of this listing. Python One of the most effective matters regarding Python is that it’s an all-cause language to be carried out in numerous use-cases. However, one in all of the reasons why this express Object-Oriented Language is enclosed near the best of this listing is that it’s one in all of the extra important languages for system mastering and data science. possibilities are excessive that clever you won’t recognize a language better applicable to those a couple of functions. And with every cubic centimeter and DS persisted to increase their significance in technology, Python can nonetheless develop extra in fashion. C++ C++ is one in all of the few languages wont to construct compilers and interpreters that assemble extraordinary programming languages. C++ consists of the velocity of C, with the addition of the essential OOP thoughts, which makes it brief and versatile. one of the first motives why C++ is therefore in fashion is that all operation structures location units written with a mixture of C and C++. therefore whilst now no longer C++, there’d be no bundle with that to apply C++. In extraordinary words, C++ can be an important language for technology. C++ is moreover wont to increase net browsers (which include Chrome, Firefox, and Safari).
References:-
https://www.bairesdev.com/blog/top-object-oriented-programming-languages/
https://en.wikipedia.org/wiki/Object-oriented_programming
3. Research and list at least two alternatives to OOP. Describe the benefits and disadvantages of each.
First of all please notice that several of the programming languages currently in use (especially "better stage languages") have rectangular degree multi-paradigm. meaning {you rectangular degree|you're} ne'er constructing packages which can be strictly OOP (besides in case you make use of Smalltalk or engineer to make your big comes maybe). Have a look at PHP for instance: Has numerous additives of OOP (for the reason that model 5) Was in large part procedural before Has additives of declarative programming (e.g. the array
functions) Implemented numerous additives of beneficial programming (for the reason that model five.4) PHP is gluing thousands of diverse paradigms along (and can be a "glue language" itself). Also, Java implements thousands of thoughts that do not appear to be from the Object-Oriented paradigm (e.g. from beneficial programming). First of all please notice that some of the programming languages currently in use (especially "better stage languages") have rectangular degree multi-paradigm. meaning {you rectangular degree|you're} ne'er constructing packages which can be strictly OOP (besides in case you make use of Smalltalk or engineer to make your big comes maybe). Have a look at PHP for instance: Has numerous additives of OOP (for the reason that model 5) Was in large part procedural before Has additives of declarative programming (e.g. the array
functions) Implemented numerous additives of beneficial programming (for the reason that model five.4) PHP is gluing thousands of diverse paradigms along (and can be a "glue language" itself). Also, Java implements thousands of thoughts that do not appear to be from the Object-Oriented...
SOLUTION.PDF

Answer To This Question Is Available To Download

Submit New Assignment

Copy and Paste Your Assignment Here