In game-based security proof, I found that games are defiend to be played between a PPT adversary and a challenger. The adversary is able to issue queries to different oracles and receives corresponding reponses. Assume A is the participant of the protocol, the queries sent by the adversary could be: Test(A) or hash queries.
A little explaination about Test(A) query: This query is typically used in proofing the semantic security of a key-exchange protocol. If this query is asked, A will filp a random coin 'b', if b=1, A replies the adversary with the correct session key (if formed); otherwise, a random bitstring is replied.
My question is: since games are played between adversary and challenger, does it mean the challenger has access to all the oracles (e.g., participants, hashes) and the adversary can only query the oracle through the challenger? Say, if the adversary want to issue a Test(A) query, the challenger will receive this query and pass it to participant A and transfer the received reply from A to the adversary (see image below)? It seems the challenger is a communicaiton media between the adversary and the oracles.
(Actually I'm not sure whether A in the above example could be called oracle. The concept "oracle" is also confusing to me...)
Many thanks in advance.