List of 3D rendering software

List of 3D rendering software

3D rendering software products are the dedicated engines used for rendering computer-generated imagery. This is not the same as 3D modeling software, which involves the creation of 3D models, for which the software listed below can produce realistically rendered visualisations.General-purpose packages which can have their own built-in rendering capabilities are not listed here; these can be found in the list of 3D computer graphics software and list of 3D animation software. See 3D computer graphics software for more discussion about the distinctions.

Feature (machine learning)

In machine learning and pattern recognition, a feature is an individual measurable property or characteristic of a data set. Choosing informative, discriminating, and independent features is crucial to producing effective algorithms for pattern recognition, classification, and regression tasks. Features are usually numeric, but other types such as strings and graphs are used in syntactic pattern recognition, after some pre-processing step such as one-hot encoding. The concept of "features" is related to that of explanatory variables used in statistical techniques such as linear regression. == Feature types == In feature engineering, two types of features are commonly used: numerical and categorical. Numerical features are continuous values that can be measured on a scale. Examples of numerical features include age, height, weight, and income. Numerical features can be used in machine learning algorithms directly. Categorical features are discrete values that can be grouped into categories. Examples of categorical features include gender, color, and zip code. Categorical features typically need to be converted to numerical features before they can be used in machine learning algorithms. This can be done using a variety of techniques, such as one-hot encoding, label encoding, and ordinal encoding. The type of feature that is used in feature engineering depends on the specific machine learning algorithm that is being used. Some machine learning algorithms, such as decision trees, can handle both numerical and categorical features. Other machine learning algorithms, such as linear regression, can only handle numerical features. == Classification == A numeric feature can be conveniently described by a feature vector. One way to achieve binary classification is using a linear predictor function (related to the perceptron) with a feature vector as input. The method consists of calculating the scalar product between the feature vector and a vector of weights, qualifying those observations whose result exceeds a threshold. Algorithms for classification from a feature vector include nearest neighbor classification, neural networks, and statistical techniques such as Bayesian approaches. == Examples == In character recognition, features may include histograms counting the number of black pixels along horizontal and vertical directions, number of internal holes, stroke detection and many others. In speech recognition, features for recognizing phonemes can include noise ratios, length of sounds, relative power, filter matches, logarithmic Mel-scale spectral vectors and Mel-frequency cepstral coefficients, which represent the frequency characteristics of audio signals. In spam detection algorithms, features may include the presence or absence of certain email headers, the email structure, the language, the frequency of specific terms, the grammatical correctness of the text. In computer vision, there are a large number of possible features, such as edges and objects. == Feature vectors == In pattern recognition and machine learning, a feature vector is an n-dimensional vector of numerical features that represent some object. Many algorithms in machine learning require a numerical representation of objects, since such representations facilitate processing and statistical analysis. When representing images, the feature values might correspond to the pixels of an image, while when representing texts the features might be the frequencies of occurrence of textual terms. Feature vectors are equivalent to the vectors of explanatory variables used in statistical procedures such as linear regression. Feature vectors are often combined with weights using a dot product in order to construct a linear predictor function that is used to determine a score for making a prediction. The vector space associated with these vectors is often called the feature space. In order to reduce the dimensionality of the feature space, a number of dimensionality reduction techniques can be employed. Higher-level features can be obtained from already available features and added to the feature vector; for example, for the study of diseases the feature 'Age' is useful and is defined as Age = 'Year of death' minus 'Year of birth' . This process is referred to as feature construction. Feature construction is the application of a set of constructive operators to a set of existing features resulting in construction of new features. Examples of such constructive operators include checking for the equality conditions {=, ≠}, the arithmetic operators {+,−,×, /}, the array operators {max(S), min(S), average(S)} as well as other more sophisticated operators, for example count(S, C) that counts the number of features in the feature vector S satisfying some condition C or, for example, distances to other recognition classes generalized by some accepting device. Feature construction has long been considered a powerful tool for increasing both accuracy and understanding of structure, particularly in high-dimensional problems. Applications include studies of disease and emotion recognition from speech. == Selection and extraction == The initial set of raw features can be redundant and large enough that estimation and optimization is made difficult or ineffective. Therefore, a preliminary step in many applications of machine learning and pattern recognition consists of selecting a subset of features, or constructing a new and reduced set of features to facilitate learning, and to improve generalization and interpretability. Extracting or selecting features is a combination of art and science; developing systems to do so is known as feature engineering. It requires the experimentation of multiple possibilities and the combination of automated techniques with the intuition and knowledge of the domain expert. Automating this process is feature learning, where a machine not only uses features for learning, but learns the features itself.

Digital cassettes

Digital audio cassette formats introduced to the professional audio and consumer markets: Digital Audio Tape (or DAT) is the most well-known, and had some success as an audio storage format among professionals and "prosumers" before the prices of hard drive and solid-state flash memory-based digital recording devices dropped in the late 1990s. Hard-drive recording has mostly made DAT obsolete, as hard disk recorders offer more editing versatility than tape, and easier importation into digital audio workstations (DAWs) and non-linear video editing (NLE) systems. Digital Compact Cassette was intended as a digital replacement for the mass-market analog cassette tape, but received very little attention or adaptation. Its failure is generally attributed to higher production costs than audio CDs, durability and indifferent reception by consumers. Digital video cassettes include: Betacam IMX (Sony) D-VHS (JVC) D1 (Sony) D2 (Sony) D3 D5 HD Digital-S D9 (JVC) Digital Betacam (Sony) Digital8 (Sony) DV HDV ProHD (JVC) MiniDV MicroMV == Analog cassettes used as digital data storage == Historically, the compact audio cassette which was originally designed for analog storage of music was used as an alternative to disk drives in the late 1970s and early 1980s to provide data storage for home computers. There is a number of unique and incompatible cassette tape data storage formats that all use the same analog compact audio cassette tape media. The ADAT system uses Super VHS tapes to record 8 synchronized digital audiotracks at once. There have also been several audio recording systems that used VHS video recorders as storage devices and video tape transports, generally by encoding the digital data to be recorded into an analog composite video signal (which resembles static) and then recording this to magnetic tape. These systems were often used as "mixdown" recorders, to record the finished mix from a multi-track recorder in preparation for the manufacture of a vinyl record, cassette tape, or CD. An example was the Dbx Model 700. Another example is the Sony PCM adaptor series. Several companies sold VHS backup solutions in the 1980s and 1990s where data was converted to a video image which was then saved onto a VHS tape. the Corvus "Mirror" ( U.S. patent 4380047A ) the Metrum Model 64 on S-VHS tape, the Danmere Backer tape backup system, the Alpha Microsystems Videotrax the Legacy Storage Systems International VAST (Variable Array Storage) the ArVid the Video Backup System Amiga, The S2 VLBI system at three NASA Deep Space Network complexes and over 20 other radio telescopes stores digital data on SVHS tapes.

Battleboarding

Battleboarding, also known as versus debating and "who would win" debating, is an activity that involves discussing and debating around hypothetical fights between individuals; most popularly, fictional characters. These debates are often held in forums, blogs, sites and wikis, known as versus sites or battle boards. Netizens who engage in battleboarding online are often called "battleboarders". The earliest iterations of battleboarding first appeared in various online boards and forums, though its origins can be traced back to magazines, television shows, and comic book letter columns. Eventually, the online activity grew, becoming one of the most popular internet activities today, and spawning many online communities dedicated solely for battleboarding. It soon evolved into its own subculture, and even went on to inspire other media. == History == === Origins === Before the advent of the internet, articles about hypothetical fights were published in magazines. These articles range from topics like sports, comics and anime, such as Black Belt Magazine issue May 1997 which discussed about a hypothetical match between Muhammad Ali and Bruce Lee, and Wizard Magazine #133 which discussed about various hypothetical fights between American comic characters against Japanese anime characters. During that time, many comic book publishers also conceptualized and published "versus" storylines like Batman Versus Predator and Justice League/Avengers. Many films also capitalized on the concept of characters from different franchises fighting each other, such as Frankenstein Meets the Wolf Man (1934), King Kong vs. Godzilla (1962), Freddy vs Jason (2003), and Alien vs. Predator (2004). Another inspiration behind battleboarding were television shows and documentaries whose premise involved hypothetical fights concerning a variety of subjects like zoology, paleontology, and military history. These include shows such as Animal Face-Off (which pitted animals against each other), Deadliest Warrior (which pitted historical warriors, oftentimes from different time periods, against each other), and Jurassic Fight Club (which was about analyzing cases where different types of dinosaurs fought one another). Death Battle, a web series about pitting characters against each other that began in 2010, is a similar show that soon inspired many battleboarding communities and fandoms. Death Battle, as with many other battleboarding series and websites before it, utilised "calcs", which are mathematical equations that try to calculate how strong a character or weapon is. Other popular web series about the subject include Super Power Beat Down and Grudge Match. === Forums and sites === Many internet forums about movies, comics, anime, and video games often held discussions about hypothetical fights between characters from these media. These discussions would be the first iteration of online battleboarding. A notable early battleboarding website was stardestroyer.net (founded 1998), created by Michael Wong. The website focuses in large part on match-ups between the Star Wars and Star Trek franchises, and also includes a forum covering this as well as other more general battleboarding topics, usually related to science fiction and space opera. In addition to the forums, several webpages written by the administrators and contributors were embedded on the site. These attempted to mathematically quantify the capabilities of Star Wars technology and prove their superiority to their Star Trek equivalents, such as Wong's "Star Wars vs Star Trek: Technology Overview" and Brian Young's "Turbolaser Commentaries." stardestroyer.net had a notable impact on early battleboarding culture and also influenced official products. Curtis Saxton, author of several officially-licensed Star Wars technical reference books, thanked Wong, Young, and several other stardestroyer.net contributors by name in the acknowledgements section of Star Wars: Attack of the Clones Incredible Cross-Sections (2002), referring to them as "prominent among the hundreds of people contributing to constructive debates about Star Wars technicalities over the years, resulting in the consensus of conceptual and physical foundations applied in these pages." Saxton's books in the Incredible Cross-Sections series contain specific numbers about the capabilities of Star Wars ships original to these publications and not used in any other official sources. In an interview conducted by TheForce.Net, Saxton claimed to have been offered the job of writing reference books by a DK employee familiar with his "Star Wars Technical Commentaries" webpage (1995–2001), where Saxton attempted to calculate the firepower, speed, and durability of Star Wars spaceships using his background as an astrophysics student. One of the oldest and longest-running battleboarding forum is Comic Vine's "battle forum", whose first post was in 2007. Comic Vine also has one of the largest impacts on battleboarding, creating many common rules and terminologies such as "bloodlusted", "morals are off", "speed equalized", and many others. Another long-running battle forum is a subreddit called r/whowouldwin, where redditors can post and debate fights about real or fictional individuals. Verdicts of these match-ups are often chosen by using evidences of a character's power, weakness, or feat, such as movie clips, comic book panel scans, and excerpts from related literature; all of which are posted and categorized in a separate subreddit called r/respectthreads. Other influential battle forums include Fanverse, where users can post their own calcs about a character's power level. The popularity of battle forums inspired the creation of websites dedicated only for battleboarding. These include The Outskirts Battle Dome, a website that popularized the use of "power levels" in battleboarding; the aforementioned stardestroyer.net; and Space Battles, a website whose forums and threads are filled with posts about hypothetical fights between characters as well as other related topics. Another influential battleboarding site is the now defunct Fact Pile, and its sister site, FactPileTopia. Fact Pile is one of the first battleboarding site that actually listed down and documented winners of their match-ups. The site closed down in 2016 along with its forum, wikia, and YouTube channel. Besides these, blogs about battleboarding were also created, such as dreager1.com. === Wikis === Nowadays, the most popular battleboarding communities can be seen in Fandom, with two of the oldest and most popular being Deadliest Fiction and VS Battles Wiki. Deadliest Fiction is a Deadliest Warrior-inspired fanon created in July 2010 by a group of historians, academics, and pop culture enthusiasts. Being one of the most influential and accurate battleboarding sites around, Deadliest Fiction allows users to create hypothetical match-ups in the form of blogs, where other users can vote and debate around who will win in the comment section. Once a verdict is reached, the site allows the user to create a simulated fanfiction of how the fight would happen. The same year in October, a similar battleboarding site named VS Battles Wiki was created. In the VS Battles Wiki, users can create profiles and power levels of characters, post match-ups in its threads and forums, and list down the winners and losers of these threads in said character profiles. The wiki is considered the most active wiki battleboarding site today, with over 1 million visitors per month. However, throughout the years, the VS Battles Wiki has had its share of controversies, such as alleged inaccuracies in its profiles. There have also been websites and fanfiction wikis inspired by the battleboarding internet show Death Battle. These include the long-running G1 Death Battle Fan Blog, r/deathbattlematchups, and the popular Death Battle Fanon Wiki and DBX Fanon Wiki. Death Battle also released its own dice and card game, complete with rules and effects taken from battleboarding. == Subculture == In its rise in popularity, battleboarding has given birth to a unique online subculture with its own rules, activities, and terminologies. Several of these influences have become present in other online communities and popular media. Some of the common slang and terminologies used in battleboarding subculture includes: Battle Field Removal: Often abbreviated to "BFR", this is a rule that a fight can end if one character is taken out of a battlefield. This rule is used for characters who have the powers to teleport or transport enemies without actually killing them. Battle Royale: A term originating from Comic Vine in which multiple characters are pitted against each other. The name is probably derived from the film Battle Royale or the video game genre of the same name. Bloodlusted: A hypothetical situation wherein the characters are pitted against each other while in a furious, berserker-like state. Calc: These are calculations battl

Digital inclusion

Digital inclusion involves the activities necessary to ensure equitable access to and use of information and communications technologies for participation in social and economic life including for education, social services, health, social, and community participation. Digital inclusion includes access to affordable broadband Internet services, Internet-enabled devices, access to digital literacy training, quality technical support, and applications and online content designed to enable and encourage self-sufficiency, participation, and collaboration. Related concepts include digital divide, digital exclusion and digital inequality, however digital inclusion focuses more on the strategies, policies, and programs required to address the digital divide. As many services have moved online and with the increasing use of telehealth to deliver primary care, particularly during the COVID-19 pandemic in 2020, digital inclusion, including digital literacy and internet access is increasingly regarded as a social determinant of health. Accessibility, relevance, and impact have been identified as essential elements of digital inclusion as it pertains to health information systems. "Digital inclusion is broadly defined as different strategies designed to ensure that all people have equal access, opportunities and skills to benefit from digital technologies and systems" (ITU, 2019, as cited in Carmi and Yates, 2020). Since 2020, there have been many technology companies that have begun implementing different features or roles within their companies to support breaking down the digital divide. For example, HP has announced the digital divide accelerator. This accelerator will support nonprofits in Greece, Indonesia, Nigeria, and Spain. The goal for this role is to help equip children and other people within the community to understand the skills needed to become a part of the digital community. == Background == With the increasing use of computers and the Internet in the 1990s and early 2000s concerns rose around digital equality, however this primarily focused on the physical access to technology. This gave rise to the concept of the digital divide which was originally developed to describe the growing disparity in Internet access between rural and urban areas of the United States of America. This gradually expanded to considerations of digital access between countries in what is termed the global digital divide, which mirrors many of the disparities seen within countries but on an international scale. However, with the adoption of digital technologies across most sectors of society, and the increasing diversity of technologies and programs, access and use of ICT became more complex and essential for many aspects of daily life. This led to new terminology and a second wave of research on digital inequality which has been identified as the (1) usage gap, (2) second level digital divide, (3) emerging digital differentiation, and (4) digital inclusion. == Strategies for digital inclusion == A review of the literature in 2019 found that while physical access to digital technologies and the internet continues to be a barrier to digital inclusion, digital ability and attitude were also potential barriers. Key strategies identified for improving digital inclusion are social support, direct user experience and collaborative learning/design. Education is a key aspect of digital inclusion as digital technologies have become a key means of engaging with all levels of the education system, requiring levels of digital competence for successful engagement with the curriculum. In addition lifelong learning is required as technologies, services and systems are changing constantly. Public libraries and community service providers play a key role in supporting digital inclusion through access to computers, internet connection and expertise and training. Designing for digital inclusion may also help with poor written literacy, which remains a barrier for 10% of the world's population. UNESCO has developed Guidelines for designing digital technologies in ways that could assist those who are illiterate. == Indigenous digital inclusion == Digital inclusion is a critical issue for many Indigenous communities across the globe, many of whom lack access to adequate resources. The Australian Government has set a National Closing the Gap target for Aboriginal and Torres Strait Islander people to have equal levels of digital inclusion by 2026. Many people on tribal land and in Native Hawaiian land struggle with the technology gap. The Native Entities Capacity and Planning Grant Program has $45.3 million available to help address these challenges and empower Indian Tribes, Alaska Native entities, and Native Hawaiian organizations. Some of the impacts so far are in the education and workforce development and healthcare access through telehealth.[13] == Measuring digital inclusion == The Australian Digital Inclusion Index (ADII) is a research project which has been tracking digital inclusion throughout Australia since 2016. It uses survey data to measure digital inclusion across three dimensions of access, affordability and digital ability. == The Future of Digital Inclusion == On February 16, 2021, a global dialogue within the United Nations (UN) took a look at the future of digital inclusion. Through the adoption of the 2030 UN Agenda for Sustainable Development, Member States made a commitment. They pledged to "leave no one behind." By 2030, the UN's goal is to close the digital divide by providing access to the Internet and mobile technologies for all nations and peoples and for all segments of society. The UN sees the crisis of too many people in our global society still living unconnected and how the digital divide remains a challenge that must be addressed. == Gaming == The Xbox Adaptive Controller is a groundbreaking example of digital inclusion, designed to make gaming more accessible to people with limited mobility. Developed by Microsoft, it features large programmable buttons and ports that connect to a wide range of external devices like switches, joysticks, and mounts, allowing users to customize their gaming experience based on their unique needs. By removing traditional physical barriers to gameplay, the Xbox Adaptive Controller empowers more people to participate in digital entertainment, promotes equal access to technology, and fosters a more inclusive gaming community. == Digital inclusion advocacy groups == Australian Digital Inclusion Alliance National Digital Inclusion Alliance (US)

Inductive programming

Inductive programming (IP) is a special area of automatic programming, covering research from artificial intelligence and programming, which addresses learning of typically declarative (logic or functional) and often recursive programs from incomplete specifications, such as input/output examples or constraints. Depending on the programming language used, there are several kinds of inductive programming. Inductive functional programming, which uses functional programming languages such as Lisp or Haskell, and most especially inductive logic programming, which uses logic programming languages such as Prolog and other logical representations such as description logics, have been more prominent, but other (programming) language paradigms have also been used, such as constraint programming or probabilistic programming. == Definition == Inductive programming incorporates all approaches which are concerned with learning programs or algorithms from incomplete (formal) specifications. Possible inputs in an IP system are a set of training inputs and corresponding outputs or an output evaluation function, describing the desired behavior of the intended program, traces or action sequences which describe the process of calculating specific outputs, constraints for the program to be induced concerning its time efficiency or its complexity, various kinds of background knowledge such as standard data types, predefined functions to be used, program schemes or templates describing the data flow of the intended program, heuristics for guiding the search for a solution or other biases. Output of an IP system is a program in some arbitrary programming language containing conditionals and loop or recursive control structures, or any other kind of Turing-complete representation language. In many applications the output program must be correct with respect to the examples and partial specification, and this leads to the consideration of inductive programming as a special area inside automatic programming or program synthesis, usually opposed to 'deductive' program synthesis, where the specification is usually complete. In other cases, inductive programming is seen as a more general area where any declarative programming or representation language can be used and we may even have some degree of error in the examples, as in general machine learning, the more specific area of structure mining or the area of symbolic artificial intelligence. A distinctive feature is the number of examples or partial specification needed. Typically, inductive programming techniques can learn from just a few examples. The diversity of inductive programming usually comes from the applications and the languages that are used: apart from logic programming and functional programming, other programming paradigms and representation languages have been used or suggested in inductive programming, such as functional logic programming, constraint programming, probabilistic programming, abductive logic programming, modal logic, action languages, agent languages and many types of imperative languages. == History == The early works of Plotkin, and his "relative least general generalization (rlgg)", had an enormous impact in inductive logic programming. There were some encouraging results on learning recursive Prolog programs such as quicksort from examples together with suitable background knowledge, for example with GOLEM. However, after initial success, the community got disappointed by limited progress about the induction of recursive programs with ILP less and less focusing on recursive programs and leaning more and more towards a machine learning setting with applications in relational data mining and knowledge discovery. In parallel to work in ILP, Koza proposed genetic programming in the early 1990s as a generate-and-test based approach to learning programs. The idea of genetic programming was further developed into the inductive programming system ADATE and the systematic-search-based system MagicHaskeller. Here again, functional programs are learned from sets of positive examples together with an output evaluation (fitness) function which specifies the desired input/output behavior of the program to be learned. The early work in grammar induction (also known as grammatical inference) is related to inductive programming, as rewriting systems or logic programs can be used to represent production rules. In fact, early works in inductive inference considered grammar induction and Lisp program inference as basically the same problem. The results in terms of learnability were related to classical concepts, such as identification-in-the-limit, as introduced in the seminal work of Gold. More recently, the language learning problem was addressed by the inductive programming community. In the recent years, the classical approaches have been resumed and advanced with great success. Therefore, the synthesis problem has been reformulated on the background of constructor-based term rewriting systems taking into account modern techniques of functional programming, as well as moderate use of search-based strategies and usage of background knowledge as well as automatic invention of subprograms. Many new and successful applications have recently appeared beyond program synthesis, most especially in the area of data manipulation, programming by example and cognitive modelling (see below). Other ideas have also been explored with the common characteristic of using declarative languages for the representation of hypotheses. For instance, the use of higher-order features, schemes or structured distances have been advocated for a better handling of recursive data types and structures; abstraction has also been explored as a more powerful approach to cumulative learning and function invention. One powerful paradigm that has been recently used for the representation of hypotheses in inductive programming (generally in the form of generative models) is probabilistic programming (and related paradigms, such as stochastic logic programs and Bayesian logic programming). == Application areas == The first workshop on Approaches and Applications of Inductive Programming (AAIP) Archived 2016-03-03 at the Wayback Machine held in conjunction with ICML 2005 identified all applications where "learning of programs or recursive rules are called for, [...] first in the domain of software engineering where structural learning, software assistants and software agents can help to relieve programmers from routine tasks, give programming support for end users, or support of novice programmers and programming tutor systems. Further areas of application are language learning, learning recursive control rules for AI-planning, learning recursive concepts in web-mining or for data-format transformations". Since then, these and many other areas have shown to be successful application niches for inductive programming, such as end-user programming, the related areas of programming by example and programming by demonstration, and intelligent tutoring systems. Other areas where inductive inference has been recently applied are knowledge acquisition, artificial general intelligence, reinforcement learning and theory evaluation, and cognitive science in general. There may also be prospective applications in intelligent agents, games, robotics, personalisation, ambient intelligence and human interfaces.

Hardware-based encryption

Hardware-based encryption is the use of computer hardware to assist software, or sometimes replace software, in the process of data encryption. Typically, this is implemented as part of the processor's instruction set. For example, the AES encryption algorithm (a modern cipher) can be implemented using the AES instruction set on the ubiquitous x86 architecture. Such instructions also exist on the ARM architecture. However, more unusual systems exist where the cryptography module is separate from the central processor, instead being implemented as a coprocessor, in particular a secure cryptoprocessor or cryptographic accelerator, of which an example is the IBM 4758, or its successor, the IBM 4764. Hardware implementations can be faster and less prone to exploitation than traditional software implementations, and furthermore can be protected against tampering. == History == Prior to the use of computer hardware, cryptography could be performed through various mechanical or electro-mechanical means. An early example is the Scytale used by the Spartans. The Enigma machine was an electro-mechanical system cipher machine notably used by the Germans in World War II. After World War II, purely electronic systems were developed. In 1987 the ABYSS (A Basic Yorktown Security System) project was initiated. The aim of this project was to protect against software piracy. However, the application of computers to cryptography in general dates back to the 1940s and Bletchley Park, where the Colossus computer was used to break the encryption used by German High Command during World War II. The use of computers to encrypt, however, came later. In particular, until the development of the integrated circuit, of which the first was produced in 1960, computers were impractical for encryption, since, in comparison to the portable form factor of the Enigma machine, computers of the era took the space of an entire building. It was only with the development of the microcomputer that computer encryption became feasible, outside of niche applications. The development of the World Wide Web lead to the need for consumers to have access to encryption, as online shopping became prevalent. The key concerns for consumers were security and speed. This led to the eventual inclusion of the key algorithms into processors as a way of both increasing speed and security. == Implementations == === In the instruction set === ==== x86 ==== The X86 architecture, as a CISC (Complex Instruction Set Computer) Architecture, typically implements complex algorithms in hardware. Cryptographic algorithms are no exception. The x86 architecture implements significant components of the AES (Advanced Encryption Standard) algorithm, which can be used by the NSA for Top Secret information. The architecture also includes support for the SHA Hashing Algorithms through the Intel SHA extensions. Whereas AES is a cipher, which is useful for encrypting documents, hashing is used for verification, such as of passwords (see PBKDF2). ==== ARM ==== ARM processors can optionally support Security Extensions. Although ARM is a RISC (Reduced Instruction Set Computer) architecture, there are several optional extensions specified by ARM Holdings. === As a coprocessor === IBM 4758 – The predecessor to the IBM 4764. This includes its own specialised processor, memory and a Random Number Generator. IBM 4764 and IBM 4765, identical except for the connection used. The former uses PCI-X, while the latter uses PCI-e. Both are peripheral devices that plug into the motherboard. === Proliferation === Advanced Micro Devices (AMD) processors are also x86 devices, and have supported the AES instructions since the 2011 Bulldozer processor iteration. Due to the existence of encryption instructions on modern processors provided by both Intel and AMD, the instructions are present on most modern computers. They also exist on many tablets and smartphones due to their implementation in ARM processors. == Advantages == Implementing cryptography in hardware means that part of the processor is dedicated to the task. This can lead to a large increase in speed. In particular, modern processor architectures that support pipelining can often perform other instructions concurrently with the execution of the encryption instruction. Furthermore, hardware can have methods of protecting data from software. Consequently, even if the operating system is compromised, the data may still be secure (see Software Guard Extensions). == Disadvantages == If, however, the hardware implementation is compromised, major issues arise. Malicious software can retrieve the data from the (supposedly) secure hardware – a large class of method used is the timing attack. This is far more problematic to solve than a software bug, even within the operating system. Microsoft regularly deals with security issues through Windows Update. Similarly, regular security updates are released for Mac OS X and Linux, as well as mobile operating systems like iOS, Android, and Windows Phone. However, hardware is a different issue. Sometimes, the issue will be fixable through updates to the processor's microcode (a low level type of software). However, other issues may only be resolvable through replacing the hardware, or a workaround in the operating system which mitigates the performance benefit of the hardware implementation, such as in the Spectre exploit.