How does Siri recognize me saying "Hey Siri"? I am trying to understand how my iPhone can continually listening for me saying Hey Siri, Alexa, Hey Cortana or Okay Google without quickly draining my battery down. 

I imagined two kind of algorithm. One that record slice of time such as 10 ms wide slices each 200 ms and perform a synchronous detection on specific frequencies. However these parameters strongly depend on the characteristic of my voice. Moreover, it will still consume a lot of CPU power to continually try to match a Hey Siri in the middle of nowhere. 

What kind of efficient low-power algorithm/implementation (hardware or software) can perform such task?

This is somehow related to this patent I think: https://www.google.com/patents/US20160253997

I read some articles that talk about hidden Markov models, but I doubt it is very low power approach.
"Ok Google" is described in many publications by Google

Automatic Gain Control and Multi-style Training for Robust Small-Footprint Keyword Spotting with Deep Neural Networks

Convolutional Neural Networks for Small-Footprint Keyword Spotting

It is based on DNN specifically trained for keyphrase and runs really fast. It does not consume a lot of power even on mobile.

Alexa spotting is implemented by the same guys and available as Snowboy

UPDATE: Apple describes their implementation here.