<div dir="ltr">A temporary secret is insufficient because an adult can give such a secret to a child, similar to asking your older brother to buy you some cigarettes.<br><div><br></div><div>Of the examples you give, only two are amenable to solution - nightclub entry and local alcohol sales. I can imagine a tamper-proof device that contains a biometric reader, accepts remote attestations (e.g. from my bank), confirms a customer's age but does not otherwise identify them.</div><div><br></div><div>I deliberately say 'local' because if you offer a remote service it is open to the older brother attack.</div><div><br></div><div>Mark</div><div><br></div></div><div class="gmail_extra"><br><div class="gmail_quote">On 2 December 2016 at 14:36, Graham Cobb <span dir="ltr"><<a href="mailto:g+ukcrypto@cobb.uk.net" target="_blank">g+ukcrypto@cobb.uk.net</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Age verification is back in the news again due to the DE Bill.  I have<br>
wondered for a while whether crypto could allow us to create some sort<br>
of double-blind age verification system: where the identity (name, date<br>
of birth, etc) of the person is hidden from the entity needing<br>
verification, and the identity of the resource being accessed is hidden<br>
from the entity providing verification.  Ideally, of course, it would be<br>
triple blind: third parties such as law enforcement cannot find out what<br>
resource was accessed by what person, at least not after the fact (maybe<br>
they could with prior notification that a particular person or a<br>
particular resource was to be monitored).<br>
<br>
I had in mind something like:<br>
<br>
1. Assume that some entities exist who can provide acceptable age<br>
verification (I will use a bank as an example below but it could be any<br>
private or state entity).<br>
<br>
2. Bank verifies your age.<br>
<br>
3. You request them to sign a certificate stating that you are over a<br>
specific age (say 18).<br>
<br>
4. Bank provides the certificate to you.<br>
<br>
5. You pass the certificate to the entity needing the proof (say, a<br>
nightclub).<br>
<br>
6. Nightclub validates the certificate against the bank's public key<br>
(without needing to contact the bank).<br>
<br>
The hard part would seem to be proving that the certificate relates to<br>
the actual person who is presenting it (to a practical level of<br>
certainty similar to traditional techniques), without allowing the<br>
nightclub to find out who that person is! I assume it would have to be<br>
based on some sort of temporary secret which you would have to present<br>
along with the certificate.<br>
<br>
I am sure the naive approach above would not work for various reasons<br>
but I wonder what work has been done on this? It seems that proof of age<br>
for everything from creating social media accounts, to shopping, to<br>
drinking, to accessing porn, to ... is becoming more common and it is<br>
essential that we have some way of proving age without disclosing who we<br>
are, or what we want the proof for.<br>
<span class="HOEnZb"><font color="#888888"><br>
Graham<br>
<br>
</font></span></blockquote></div><br></div>