KEMBAR78
Ypes of Cryptography | PDF | Scripting Language | Cryptography
0% found this document useful (0 votes)
106 views7 pages

Ypes of Cryptography

Cryptography is the practice and study of securing communication through encryption and decryption techniques. There are two main types: secret key cryptography where both parties share a secret key, and public key cryptography where keys are paired and the public key can encrypt but only the corresponding private key can decrypt. Modern cryptography relies on mathematical algorithms designed to be computationally difficult to break but still theoretically breakable. Cryptography raises legal issues around law enforcement access to encrypted data.

Uploaded by

kavas26
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
106 views7 pages

Ypes of Cryptography

Cryptography is the practice and study of securing communication through encryption and decryption techniques. There are two main types: secret key cryptography where both parties share a secret key, and public key cryptography where keys are paired and the public key can encrypt but only the corresponding private key can decrypt. Modern cryptography relies on mathematical algorithms designed to be computationally difficult to break but still theoretically breakable. Cryptography raises legal issues around law enforcement access to encrypted data.

Uploaded by

kavas26
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 7

Cryptography

From Wikipedia, the free encyclopedia

"Secret code" redirects here. For the Aya Kamiki album, see Secret Code.
"Cryptology" redirects here. For the David S. Ware album, see Cryptology (album).

German Lorenz cipher machine, used in World War II to encrypt very-high-level general staff messages

Cryptography (or cryptology; from Greek krypts, "hidden, secret";


and graphein, "writing", or - -logia, "study", respectively)[1] is the practice and study
of techniques for secure communication in the presence of third parties (called adversaries).
[2]
More generally, it is about constructing and analyzing protocols that overcome the influence of
adversaries[3] and that are related to various aspects in information security such as
data confidentiality, data integrity,authentication, and non-repudiation.[4] Modern cryptography
intersects the disciplines of mathematics, computer science, andelectrical engineering.
Applications of cryptography include ATM cards, computer passwords, and electronic commerce.
Cryptography prior to the modern age was effectively synonymous with encryption, the
conversion of information from a readable state to apparent nonsense. The originator of an
encrypted message shared the decoding technique needed to recover the original information
only with intended recipients, thereby precluding unwanted persons to do the same. SinceWorld
War I and the advent of the computer, the methods used to carry out cryptology have become
increasingly complex and its application more widespread.
Modern cryptography is heavily based on mathematical theory and computer science practice;
cryptographic algorithms are designed around computational hardness assumptions, making
such algorithms hard to break in practice by any adversary. It is theoretically possible to break
such a system, but it is infeasible to do so by any known practical means. These schemes are
therefore termed computationally secure; theoretical advances, e.g., improvements in integer
factorizationalgorithms, and faster computing technology require these solutions to be continually
adapted. There exist information-theoretically secure schemes that provably cannot be broken
even with unlimited computing poweran example is the one-time padbut these schemes are
more difficult to implement than the best theoretically breakable but computationally secure
mechanisms.
Cryptology-related technology has raised a number of legal issues. In the United Kingdom,
additions to the Regulation of Investigatory Powers Act 2000 require a suspected criminal to
hand over his or her decryption key if asked by law enforcement. Otherwise the user will face a
criminal charge.[5] The Electronic Frontier Foundation (EFF) was involved in a case in the United
States which questioned whether requiring suspected criminals to provide their decryption keys
to law enforcement is unconstitutional. The EFF argued that this is a violation of the right of not
being forced to incriminate oneself, as given in the fifth amendment.[6]

types of Cryptography
There are two main types of cryptography:

Secret key cryptography

Public key cryptography

In cryptographic systems, the term key refers to a numerical value used by an


algorithm to alter information, making that information secure and visible only to
individuals who have the corresponding key to recover the information.
Secret key cryptography is also known as symmetric key cryptography. With this
type of cryptography, both the sender and the receiver know the same secret code,
called the key. Messages are encrypted by the sender using the key and decrypted
by the receiver using the same key.
This method works well if you are communicating with only a limited number of
people, but it becomes impractical to exchange secret keys with large numbers of
people. In addition, there is also the problem of how you communicate the secret key
securely.
Public key cryptography, also called asymmetric encryption, uses a pair of keys for
encryption and decryption. With public key cryptography, keys work in pairs of
matched public and private keys.
The public key can be freely distributed without compromising the private key, which
must be kept secret by its owner. Because these keys work only as a pair, encryption
initiated with the public key can be decrypted only with the corresponding private
key. The following example illustrates how public key cryptography works:

Ann wants to communicate secretly with Bill. Ann encrypts her message using
Bills public key (which Bill made available to everyone) and Ann sends the
scrambled message to Bill.

When Bill receives the message, he uses his private key to unscramble the
message so that he can read it.

When Bill sends a reply to Ann, he scrambles the message using Anns public
key.

When Ann receives Bills reply, she uses her private key to unscramble his
message.

The major advantage asymmetric encryption offers over symmetric key cryptography
is that senders and receivers do not have to communicate keys up front. Provided
the private key is kept secret, confidential communication is possible using the public
keys.

Applications in Natural Language Processing


Natural language processing is an interesting and difficult domain in which
to develop and evaluate representation and reasoning theories. All of the

problems of AI arise in this domain; solving "the natural language


problem" is as difficult as solving "the AI problem" because any domain
can be expressed in natural language. The field of computational
linguistics has a wealth of techniques and knowledge. In this book, we
can only give an overview.
There are at least three reasons for studying natural language processing:

You want a computer to communicate with users in their terms; you


would rather not force users to learn a new language. This is particularly
important for casual users and those users, such as managers and children,
who have neither the time nor the inclination to learn new interaction skills.
There is a vast store of information recorded in natural language that
could be accessible via computers. Information is constantly generated in
the form of books, news, business and government reports, and scientific
papers, many of which are available online. A system requiring a great deal
of information must be able to process natural language to retrieve much of
the information available on computers.
Many of the problems of AI arise in a very clear and explicit form in
natural language processing and, thus, it is a good domain in which to
experiment with general theories.

The development of natural language processing provides the possibility


of natural language interfaces to knowledge bases and natural language
translation. We show in the next section how to write a natural language
query answering system that is applicable to very narrow domains for
which stylized natural language is adequate and in which little, if any,
ambiguity exists. At the other extreme are shallow but broad systems,
such as the help system presented
in Example 6.16 and Example 7.13. Example 7.13. Developing useful
systems that are both deep and broad is difficult.
There are three major aspects of any natural language understanding
theory:
Syntax
The syntax describes the form of the language. It is usually specified by a
grammar. Natural language is much more complicated than the formal
languages used for the artificial languages of logics and computer
programs.
Semantics
The semantics provides the meaning of the utterances or sentences of the
language. Although general semantic theories exist, when we build a
natural language understanding system for a particular application, we try
to use the simplest representation we can. For example, in the

development that follows, there is a fixed mapping between words and


concepts in the knowledge base, which is inappropriate for many domains
but simplifies development.
Pragmatics
The pragmatic component explains how the utterances relate to the world.
To understand language, an agent should consider more than the
sentence; it has to take into account the context of the sentence, the state
of the world, the goals of the speaker and the listener, special
conventions, and the like.

To understand the difference among these aspects, consider the following


sentences, which might appear at the start of an AI textbook:

This book is about artificial intelligence.


The green frogs sleep soundly.
Colorless green ideas sleep furiously.
Furiously sleep ideas green colorless.

The first sentence would be quite appropriate at the start of such a book;
it is syntactically, semantically, and pragmatically well formed. The
second sentence is syntactically and semantically well formed, but it
would appear very strange at the start of an AI book; it is thus not
pragmatically well formed for that context. The last two sentences are
attributed to linguist Noam Chomsky (1957). The third sentence is
syntactically well formed, but it is semantically non-sensical. The fourth
sentence is syntactically ill formed; it does not make any sense syntactically, semantically, or pragmatically.
In this book, we are not attempting to give a comprehensive introduction
to computational linguistics. See the references at the end of the chapter
for such introductions.

Scripting language
A scripting language or script language is a programming language that supports scripts,
programs written for a special run-time environment that can interpret(rather than compile)
and automate the execution of tasks that could alternatively be executed one-by-one by a human
operator. Environments that can be automated through scripting include software
applications, web pages within a web browser, the shells of operating systems (OS),
and embedded systems. A scripting language can be viewed as a domain-specific language for a
particular environment; in the case of scripting an application, this is also known as anextension
language. Scripting languages are also sometimes referred to as very high-level programming

languages, as they operate at a high level of abstraction, or as control languages, particularly


for job control languages on mainframes.
The term "scripting language" is also used loosely to refer to dynamic high-level general-purpose
language, such as Perl,[1] Tcl, and Python,[2] with the term "script" often used for small programs
(up to a few thousand lines of code) in such languages, or in domain-specific languages such as
the text-processing languages sedand AWK. Some of these languages were originally developed
for use within a particular environment, and later developed into portable domain-specific or
general-purpose languages. Conversely, many general-purpose languages have dialects that are
used as scripting languages. This article discusses scripting languages in the narrow sense of
languages for a specific environment; dynamic, general-purpose, and high-level languages are
discussed at those articles.
The spectrum of scripting languages ranges from very small and highly domain-specific
languages to general-purpose programming languages used for scripting. Standard examples of
scripting languages for specific environments include: Bash, for the Unix or Unix-like operating
systems; ECMAScript (JavaScript), for web browsers; and Visual Basic for Applications,
for Microsoft Office applications. Lua is a language designed and widely used as an extension
language. Python is a general-purpose language that is also commonly used as an extension
language, while ECMAScript is still primarily a scripting language for web browsers, but is also
used as a general-purpose language. The Emacs Lisp dialect of Lisp (for the Emacs editor) and
the Visual Basic for Applications dialect of Visual Basic are examples of scripting language
dialects of general-purpose languages. Some game systems, notably the Trainz franchise of
Railroad simulators have been extensively extended in functionality by scripting extensions.

Types of scripting languages


Scripting is often contrasted with system programming, as in Ousterhout's dichotomy or
"programming in the large and programming in the small". In this view, scripting is
particularly glue code, connecting system components, and a language specialized for this
purpose is a glue language. Pipelines and shell scripting are archetypal examples of glue
languages, and Perl was initially developed to fill this same role. Web development can be
considered a use of glue languages, interfacing between a database and web server. The
characterization of glue languages as scripting languages is ambiguous, however, as if a
substantial amount of logic is part of the "glue" code, it is better characterized as simply another
software component.
A glue language is a programming language (usually an interpreted scripting language) that is
designed or suited for writing glue code code to connect software components. They are
especially useful for writing and maintaining:

Custom commands for a command shell

Smaller programmes than those that are better implemented in a compiled language

"Wrapper" programmes for executables, like a batch file that moves or manipulates files
and does other things with the operating system before or after running an application like a
word processor, spreadsheet, data base, assembler, compiler, etc.

Scripts that may change

Rapid prototypes of a solution eventually implemented in another, usually compiled,


language.

Glue language examples:

Erlang

Unix Shell scripts (ksh, csh, bash, sh and others)

Windows PowerShell

ecl

DCL

Scheme

JCL

m4

VBScript

JScript and JavaScript

AppleScript

Python

Ruby

Lua

Tcl

Perl

PHP

Pure

Rexx

XSLT

PHP
PHP is a server-side scripting language designed for web development but also used as
a general-purpose programming language. As of January 2013, PHP was installed on more than
240 million websites (39% of those sampled) and 2.1 million web servers.[4] Originally created
by Rasmus Lerdorf in 1994,[5] the reference implementationof PHP (powered by the Zend Engine)
is now produced by The PHP Group.[6] While PHP originally stood for Personal Home Page,[5] it
now stands for PHP: Hypertext Preprocessor, which is a recursive backronym.[7]
PHP code can be simply mixed with HTML code, or it can be used in combination with
various templating engines andweb frameworks. PHP code is usually processed by a
PHP interpreter, which is usually implemented as a web server's native module or a Common
Gateway Interface (CGI) executable. After the PHP code is interpreted and executed, the web
server sends resulting output to its client, usually in form of a part of the generated web page
for example, PHP code can generate a web page's HTML code, an image, or some other data.
PHP has also evolved to include acommand-line interface (CLI) capability and can be used
in standalone graphical applications.[8]
The canonical PHP interpreter, powered by the Zend Engine, is free software released under
the PHP License. PHP has been widely ported and can be deployed on most web servers on
almost every operating system and platform, free of charge.[9]
Despite its popularity, no written specification or standard exists for the PHP language; instead,
the canonical PHP interpreter serves as a de facto standard. However, work on creating a formal
specification has started in 2014

You might also like