Host card emulation (HCE) is the software architecture that provides exact virtual representation of various electronic identity (access, transit and banking) cards using only software. Prior to the HCE architecture, near field communication (NFC) transactions were mainly carried out using hardware-based secure elements.

HCE enables mobile applications running on supported operating systems to offer payment card and access card solutions independently of third parties while leveraging cryptographic processes traditionally used by hardware-based secure elements without the need for a physical secure element. This technology enables the merchants to offer payment cards solutions more easily through mobile closed-loop contactless payment solutions, offers real-time distribution of payment cards and allows for an easy deployment scenario that does not require changes to the software inside payment terminals.

History
The term "host card emulation" (HCE) was coined in 2012 by Doug Yeager and Ted Fifelski, the founders of SimplyTapp, Inc., describing the ability to open a communication channel between a contactless payments terminal and a remotely hosted secure element containing financial payment card data, allowing financial transactions to be conducted at a point-of-sale terminal. They have implemented this new technology on the Android operating system. At that time, RIM had a similar functionality, calling it "virtual target emulation," which was supposed to be available on the BlackBerry Bold 9900 device through the BB7 operating system. Prior to HCE, card emulation only existed in physical space, meaning that a card could be replicated with multiple-purpose secure element hardware that is typically housed inside the casing of a smart phone.

After the adoption of HCE by Android, Google had hoped that by including HCE in the world's largest mobile operating system (which by that time covered 80% of the market), it would offer the Android payments ecosystem a chance to grow more rapidly while also allowing Google themselves to deploy their Google Wallet more easily across the mobile network operator ecosystem. However, even with the inclusion of HCE in Android 4.4, the banks still needed the major card networks to support HCE.  Four months later, at Mobile World Congress 2014, both Visa and MasterCard made public announcements about supporting the HCE technology.

On December 18, 2014, less than ten months after Visa and MasterCard announced their support for HCE, Royal Bank of Canada (RBC) became the first North American financial institution to launch a commercial implementation of mobile payments using the HCE technology.

As a result of widespread adoption of HCE, some companies offer modified implementations that usually focus on providing additional security for the HCE's communication channel.  One such implementation is termed HCE+.

Impact
Some areas the new HCE architecture can support include payments, loyalty programs, card access and transit passes.

Before HCE, NFC has faced adoption issues due to lack of infrastructure (terminals) and the secure element approach preventing organizations with the desire to participate in mobile payments from doing so due to the high up-front capital costs and complex partner relationships.

By supporting HCE in Android 4.4, Google enabled any organization that can benefit from the NFC technology to do so at a relatively low cost.

Implementation

Host card emulation enables near field communication (NFC) information transfer between a terminal configured to exchange NFC radio information with an NFC card and a mobile device application configured to act or pretend to emulate the functional responses of an NFC card.  HCE requires that the NFC protocol be routed to the main operating system of the mobile device instead of being routed to a local hardware-based secure element (SE) chip configured to respond only as a card, with no other functionality.

Since the release of Android 4.4, Google has implemented HCE within the Android operating system. Google introduced platform support for secure NFC-based transactions through Host Card Emulation (HCE), for payments, loyalty programs, card access, transit passes, and other custom services.
With HCE, any app on an Android 4.4 device can emulate an NFC smart card, letting users tap to initiate transactions with an app of their choice. Apps can also use a new Reader Mode so as to act as readers for HCE cards and other NFC-based transactions.

The first known mobile handset to support anything like HCE outside of the Android family was the BlackBerry bold 9900 that was first available in Thailand. released together with BlackBerry 7 OS.

CyanogenMod operating system was the next known mobile device operating system to support HCE  through the effort of modifying the NXP NFC stack known as libnfc-nxp, the NFC service manager, and operating system APIs by Doug Yeager.  The OS APIs were adapted to include two new tag types that were called ISO_PCDA and ISO_PCDB which are also known terminal or PCD standards. This would imply that you could "read" a tag in the same manner that you could read a terminal.

Microsoft has announced new support for HCE NFC payments in Windows 10. This will allow improved payment integration flows and enable coexistence of HCE with UICC-based secure elements in Windows 10 and Windows 10 Mobile.

Uses
HCE is used to allow transactions between mobile devices and other credential acquiring devices.  Those devices may include other mobile devices, contactless point-of-sale terminals, transit turnstiles, or a variety of access control touch pads.  For example, Android developers can leverage HCE to create specific payment experiences, such as using HCE to enable a mobile application as a transit card.

References 

Near-field communication
Smart cards